######################################################## # Please file all bug reports, patches, and feature # requests under: # https://sourceforge.net/p/logwatch/_list/tickets # and copy: # Jeff Frost # Help requests and discusion can be filed under: # https://sourceforge.net/p/logwatch/discussion/ ######################################################## ########################################################################## # This was written and is maintained by: # Jeff Frost # # 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 ######################################################## ####################################################### ## Copyright (c) 2008 Jeff Frost ## Covered under the included MIT/X-Consortium License: ## http://www.opensource.org/licenses/mit-license.php ## All modifications and contributions by other persons to ## this script are assumed to have been donated to the ## Logwatch project and thus assume the above copyright ## and licensing terms. If you want to make contributions ## under your own copyright or a different license this ## must be explicitly stated in the contribution an the ## Logwatch project reserves the right to not accept such ## contributions. If you have made significant ## contributions to this script and want to claim ## copyright please contact logwatch-devel@lists.sourceforge.net. ######################################################### use Logwatch ':all'; use strict; my $Debug = $ENV{'LOGWATCH_DEBUG'} || 0; my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0; my $DebugCounter = 0; #Init Counters my $Errors= my $Starts= my $Kills= my $ReceivedEvent= my $ForwardConfirm= my $QueueEvent= my $SyncsProcessed= my $CleanupThread= 0; #Init Arrays my @ErrorList = (); my @OtherList = (); if ( $Debug >= 5 ) { print STDERR "\n\nDEBUG: Inside SLON Filter \n\n"; $DebugCounter = 1; } while (defined(my $ThisLine = )) { 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 # Local Variables: # mode: perl # perl-indent-level: 3 # indent-tabs-mode: nil # End: