########################################################################## # $Id: slon,v 1.4 2005/10/31 16:21:20 bjorn Exp $ ########################################################################## # $Log: slon,v $ # Revision 1.4 2005/10/31 16:21:20 bjorn # Updates to paths to reflect new Filesystem Hierarchy Standard, # by Ivana Varekova. # # Revision 1.3 2005/10/06 23:36:04 mike # Added #vi tag -mgt # # Revision 1.2 2005/09/28 20:14:53 bjorn # Added filtering, by Jeff Frost # # Revision 1.1 2005/09/27 21:51:25 bjorn # New slon service by Jeff Frost # ########################################################################## # This was written and is maintained by: # Jeff Frost <jeff.frost@frostconsultingllc.com> # # Heavily based on xntpd script # # This script and config file assumes that slon is # logging to /var/log/messages, if not, you need to # update the /usr/share/logwatch/default.conf/services/slon.conf and # possibly add a new entry in /usr/share/logwatch/default.conf/logfiles # # Please send all comments, suggestions, bug reports, # etc, to jeff.frost@frostconsultingllc.com and # logwatch-devel@logwatch.org ######################################################## use Logwatch ':all'; $Debug = $ENV{'LOGWATCH_DEBUG'} || 0; $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0; if ( $Debug >= 5 ) { print STDERR "\n\nDEBUG: Inside SLON Filter \n\n"; $DebugCounter = 1; } while (defined($ThisLine = <STDIN>)) { if ( $Debug >= 5 ) { print STDERR "DEBUG($DebugCounter): $ThisLine"; $DebugCounter++; } chomp($ThisLine); if ( ($ThisLine =~ m/new sl_action_seq/) or ($ThisLine =~ m/new sl_rowid_seq value/) or ($ThisLine =~ m/seconds delay for first row/) or ($ThisLine =~ m/seconds until close cursor/) or ($ThisLine =~ m/syncing set \d+ with .* from provider/) or ($ThisLine =~ m/no sets need syncing/) or ($ThisLine =~ m/SYNC \d+ processing/) ) { # Ignore these } elsif ($ThisLine =~ m/main process started/) { $Starts++; } elsif ($ThisLine =~ m/exit/) { $Kills++; } elsif ($ThisLine =~ m/Received event/) { $ReceivedEvent++; } elsif ($ThisLine =~ m/forward confirm/) { $ForwardConfirm++; } elsif ($ThisLine =~ m/queue event/) { $QueueEvent++; } elsif ($ThisLine =~ m/SYNC \d+ done/) { $SyncsProcessed++; } elsif ($ThisLine =~ m/cleanupThread:/) { $CleanupThread++; } elsif ($ThisLine =~ m/ERROR/) { $Errors++; push @ErrorList, "$ThisLine\n"; } else { # Report any unmatched entries... push @OtherList, "$ThisLine\n"; } } ########################################################### if ($Detail >= 5) { if ($Kills) { print "\nSLON Killed: " . $Kills . " Time(s)\n"; } if ($Starts) { print "\nSLON Started: " . $Starts . " Time(s)\n"; } if ($CleanupThread) { print "\nSLON CleanupThread Event: " . $CleanupThread . " Time(s)\n"; } if ($ForwardConfirm) { print "\nSLON ForwardConfirm Event: " . $ForwardConfirm . " Time(s)\n"; } if ($ReceivedEvent) { print "\nSLON Received Event: " . $ReceivedEvent . " Time(s)\n"; } if ($QueueEvent) { print "\nSLON Queue Event: " . $QueueEvent . " Time(s)\n"; } if ($SyncsProcessed) { print "\nSLON Syncs Processing: " . $SyncsProcessed . " Time(s)\n"; } } if ($Errors) { print "\nSLON Errors: " . $Errors . "\n"; print @ErrorList; } if ($#OtherList >= 0) { print "\n**Unmatched Entries**\n"; print @OtherList; } exit(0); # vi: shiftwidth=3 tabstop=3 syntax=perl et