Fwd: improvement for dovecot log parsing

Kirk Bauer <[email protected]>
Newsgroups gmane.comp.log.logwatch.devel
Message-ID <[email protected]>
---------- Forwarded message ----------
From: Kees Cook <[email protected]>
Date: Fri, 23 Jan 2009 12:11:22 -0800
Subject: improvement for dovecot log parsing
To: [email protected]

--- scripts/services/dovecot.orig	2009-01-23 12:09:39.000000000 -0800
+++ scripts/services/dovecot	2009-01-23 12:09:52.000000000 -0800
@@ -133,21 +133,28 @@

 # This is for Dovecot 1.0 series

-   } elsif ($ThisLine =~ /Disconnected for inactivity/) {
-      $Disconnected{"Inactivity"}++;
-   } elsif ($ThisLine =~ /Disconnected in IDLE/) {
-      $Disconnected{"in IDLE"}++;
-   } elsif ($ThisLine =~ /Disconnected$/) {
-      $Disconnected{"no reason"}++;
-   } elsif (($Reason) = ($ThisLine =~ /pop3-login: Disconnected: (.+)/) ) {
-      $Disconnected{"no reason"}++;
-   } elsif (($Reason) = ($ThisLine =~ /imap-login: Disconnected: (.+)/) ) {
-      $Disconnected{"no reason"}++;
-   } elsif (($Reason) = ($ThisLine =~ /IMAP.+: Disconnected: (.+)/) ) {
-      $Disconnected{$Reason}++;
-   } elsif (($Reason) = ($ThisLine =~ /POP3.+: Disconnected: (.+) top/) ) {
-      $Disconnected{$Reason}++;
-
+   } elsif ($ThisLine =~ /(Disconnected|Connection closed):?\s*(.*)/) {
+      $How = $1;
+      $Reason = $2;
+      if ($Reason =~ /for inactivity/) {
+         $Disconnected{"Inactivity"}++;
+      }
+      elsif ($Reason =~ /in IDLE/) {
+         $Disconnected{"in IDLE"}++;
+      }
+      elsif ($How eq "Connection closed") {
+         $Disconnected{"Closed"}++;
+      }
+      else {
+         # Drop "word=num/num," sets (bytes=64/340, top=0/0, retr=0/0, etc)
+         $Reason =~ s/\s*(\w+=\d+(\/\d+)?(, |$))+//;
+         if ($Reason eq "") {
+            $Disconnected{"no reason"}++;
+         }
+         else {
+            $Disconnected{$Reason}++;
+         }
+      }
    } else {
       # Report any unmatched entries...
       chomp($ThisLine);

-- 
Kees Cook                                            @outflux.net


-- 
Sent from my mobile device


------------------------------------------------------
Kirk Bauer <[email protected]>
http://linux.kaybee.org | www.logwatch.org
Author, Automating UNIX & Linux Administration
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.