comparison common/logwatch/dovecot @ 81:c858ca1e01d0 puppet-3.6

Move to CentOS7-based dovecot (with a tweak for "in=…") because it seems to match output better
author IBBoard <dev@ibboard.co.uk>
date Sun, 01 Nov 2015 21:18:07 +0000
parents 956e484adc12
children ab82c65dcb28
comparison
equal deleted inserted replaced
80:bdbb8f6176c2 81:c858ca1e01d0
1 ######################################################## 1 ########################################################
2 # $Id: dovecot 159 2013-08-19 09:35:30Z stefjakobs $ 2 # $Id: dovecot,v 1.18 2010/09/18 17:41:00 stefan Exp $
3 ######################################################## 3 ########################################################
4 # $Log: dovecot,v $ 4 # $Log: dovecot,v $
5 # Revision 1.18 2010/09/18 17:41:00 stefan 5 # Revision 1.18 2010/09/18 17:41:00 stefan
6 # ignore: ssl-build-param 6 # ignore: ssl-build-param
7 # 7 #
128 } 128 }
129 return $rdns{ $ipaddr }; 129 return $rdns{ $ipaddr };
130 } 130 }
131 131
132 # Handle "dovecot: <svc>" and "dovecot: [ID yyyyy mail.info] <svc" 132 # Handle "dovecot: <svc>" and "dovecot: [ID yyyyy mail.info] <svc"
133 # Also handle optional hostname before dovecot tag for syslog format. 133 my $dovecottag = qr/dovecot:(?:\s*\[[^]]+\])?/;
134 my $dovecottag = qr/(?:[a-z][a-z0-9]+ )?dovecot:(?:\s*\[[^]]+\])?/;
135 134
136 while (defined($ThisLine = <STDIN>)) { 135 while (defined($ThisLine = <STDIN>)) {
137 # remove timestamp. We can't use *RemoveHeaders because we need the 136 # remove timestamp. We can't use *RemoveHeaders because we need the
138 # service name 137 # service name
139 $ThisLine =~ s/^\w{3} .\d \d\d:\d\d:\d\d (?:[^\s:]* |)//; 138 $ThisLine =~ s/^\w{3} .\d \d\d:\d\d:\d\d (?:[^\s:]* |)//;
140
141 if ( ($ThisLine =~ /(?:ssl-build-param|ssl-params): SSL parameters regeneration completed/) or 139 if ( ($ThisLine =~ /(?:ssl-build-param|ssl-params): SSL parameters regeneration completed/) or
142 ($ThisLine =~ /ssl-params: Generating SSL parameters/) or 140 ($ThisLine =~ /ssl-params: Generating SSL parameters/) or
143 ($ThisLine =~ /auth-worker/) or 141 ($ThisLine =~ /auth-worker/) or
144 ($ThisLine =~ /auth:.*: Connected to/) or 142 ($ThisLine =~ /auth:.*: Connected to/) or
145 ($ThisLine =~ /Connection closed/) or 143 ($ThisLine =~ /Connection closed/) or
150 ) 148 )
151 { 149 {
152 # We don't care about these 150 # We don't care about these
153 } elsif ( $ThisLine =~ /Killed with signal /) { 151 } elsif ( $ThisLine =~ /Killed with signal /) {
154 $End++; 152 $End++;
155 } elsif ( $ThisLine =~ /Dovecot (v\d[^ ]* |)starting up( \(core dumps disabled\))?$/) { 153 } elsif ( $ThisLine =~ /Dovecot (v\d[^ ]* |)starting up( \(.*\))?$/) {
156 $Restarts++; 154 $Restarts++;
157 $End = 0; 155 $End = 0;
158 } elsif ( ( ($User, $Host) = ( $ThisLine =~ /^$dovecottag pop3-login: Login: (.*?) \[(.*)\]/ ) ) or 156 } elsif ( ( ($User, $Host) = ( $ThisLine =~ /^pop3-login: Login: (.*?) \[(.*)\]/ ) ) or
159 ( ($User, $Host) = ( $ThisLine =~ /^$dovecottag pop3-login: (?:Info: )?Login: user=\<(.*?)\>.*rip=(.*)\, lip=/ ) ) ) { 157 ( ($User, $Host) = ( $ThisLine =~ /^pop3-login: Info: Login: user=\<(.*?)\>.*rip=(.*)\, lip=/ ) ) ) {
160 if ($Host !~ /$IgnoreHost/) { 158 if ($Host !~ /$IgnoreHost/) {
161 $Host = hostName($Host); 159 $Host = hostName($Host);
162 $Login{$User}{$Host}++; 160 $Login{$User}{$Host}++;
163 $LoginPOP3{$User}++; 161 $LoginPOP3{$User}++;
164 $ConnectionPOP3{$Host}++; 162 $ConnectionPOP3{$Host}++;
165 $Connection{$Host}++; 163 $Connection{$Host}++;
166 } 164 }
167 } elsif ( ( ($User, $Host) = ( $ThisLine =~ /^$dovecottag imap-login: Login: (.*?) \[(.*)\]/ ) ) or 165 } elsif ( ( ($User, $Host) = ( $ThisLine =~ /^imap-login: Login: (.*?) \[(.*)\]/ ) ) or
168 ( ($User, $Host) = ( $ThisLine =~ /^$dovecottag imap-login: (?:Info: )?Login: user=\<(.*?)\>.*rip=(.*)\, lip=/ ) ) ) { 166 ( ($User, $Host) = ( $ThisLine =~ /^imap-login: Info: Login: user=\<(.*?)\>.*rip=(.*)\, lip=/ ) ) ) {
169 if ($Host !~ /$IgnoreHost/) { 167 if ($Host !~ /$IgnoreHost/) {
170 $Host = hostName($Host); 168 $Host = hostName($Host);
171 $Login{$User}{$Host}++; 169 $Login{$User}{$Host}++;
172 $LoginIMAP{$User}++; 170 $LoginIMAP{$User}++;
173 $ConnectionIMAP{$Host}++; 171 $ConnectionIMAP{$Host}++;
174 $Connection{$Host}++; 172 $Connection{$Host}++;
175 } 173 }
176 } elsif ( ($User, $Host) = ( $ThisLine =~ /$dovecottag managesieve-login: Login: user=\<(.*?)\>.*rip=(.*)\, lip=/ ) ) { 174 } elsif ( ($User, $Host) = ( $ThisLine =~ /managesieve-login: Login: user=\<(.*?)\>.*rip=(.*)\, lip=/ ) ) {
177 if ($Host !~ /$IgnoreHost/) { 175 if ($Host !~ /$IgnoreHost/) {
178 $Host = hostName($Host); 176 $Host = hostName($Host);
179 $SieveLogin{$User}{$Host}++; 177 $SieveLogin{$User}{$Host}++;
180 $LoginSieve{$User}++; 178 $LoginSieve{$User}++;
181 $ConnectionSieve{$Host}++; 179 $ConnectionSieve{$Host}++;
182 $Connection{$Host}++; 180 $Connection{$Host}++;
183 } 181 }
184 182
185 # 'lda' for dovecot 2.0, 'deliver' for earlier versions 183 # 'lda' for dovecot 2.0, 'deliver' for earlier versions
186 } elsif ( ($User, $Mailbox) = ( $ThisLine =~ /^$dovecottag (?:lda|deliver)\((.*)\): msgid=.*: saved mail to (\S+)/ ) ) { 184 } elsif ( ($User, $Mailbox) = ( $ThisLine =~ /^$dovecottag (?:lda|deliver)\((.*)\): msgid=.*: saved mail to (.*)/ ) ) {
187 $Deliver{$User}{$Mailbox}++; 185 $Deliver{$User}{$Mailbox}++;
188 186
189 # For Sieve-based delivery 187 # For Sieve-based delivery
190 } elsif ( ($User, $Mailbox) = ( $ThisLine =~ /^$dovecottag (?:lda\(|deliver\(|lmtp\(\d+, )(.*)\): (?:[^:]+: )?sieve: msgid=.*: stored mail into mailbox '([^']*)'/ ) ) { 188 } elsif ( ($User, $Mailbox) = ( $ThisLine =~ /^$dovecottag (?:lda|deliver)\((.*)\): sieve: msgid=.*: stored mail into mailbox '(.*)'/ ) ) {
191 $Deliver{$User}{$Mailbox}++; 189 $Deliver{$User}{$Mailbox}++;
192 190
193 # LMTP-based delivery 191 # LMTP-based delivery
194 } elsif ( ($User, $Mailbox) = ( $ThisLine =~ /^$dovecottag lmtp\(\d+, (.*)\): [^:]+: msgid=.*: saved mail to (\S+)/ ) ) { 192 } elsif ( ($User, $Mailbox) = ( $ThisLine =~ /^$dovecottag lmtp\(\d+, (.*)\): [^:]+: msgid=.*: saved mail to (.*)/ ) ) {
195 # dovecot: [ID 583609 mail.info] lmtp(12782, cloyce@headgear.org): jBt1EfjCMk3uMQAAm9eMBA: msgid=<4D32DB1F.3080707@c-dot.co.uk>: saved mail to INBOX 193 # dovecot: [ID 583609 mail.info] lmtp(12782, cloyce@headgear.org): jBt1EfjCMk3uMQAAm9eMBA: msgid=<4D32DB1F.3080707@c-dot.co.uk>: saved mail to INBOX
196 $Deliver{$User}{$Mailbox}++; 194 $Deliver{$User}{$Mailbox}++;
197 195
198 # sieve forward 196 # sieve forward
199 } elsif (($User, $Recip) = ($ThisLine =~ /^$dovecottag (?:lda|deliver)\((.*)\): sieve: msgid=.* forwarded to \<(.*)\>/)) { 197 } elsif (($User, $Recip) = ($ThisLine =~ /^$dovecottag (?:lda|deliver)\((.*)\): sieve: msgid=.* forwarded to \<(.*)\>/)) {
256 254
257 } elsif ($ThisLine =~ /Disconnected (\[|top)/) { 255 } elsif ($ThisLine =~ /Disconnected (\[|top)/) {
258 $Disconnected{"no reason"}++; 256 $Disconnected{"no reason"}++;
259 } elsif (($Reason) = ($ThisLine =~ /Disconnected: (.*) \[/) ) { 257 } elsif (($Reason) = ($ThisLine =~ /Disconnected: (.*) \[/) ) {
260 $Disconnected{$Reason}++; 258 $Disconnected{$Reason}++;
261 } elsif (($Reason) = ($ThisLine =~ /Disconnected: (.*) (bytes|top)=.*/) ) { 259 } elsif (($Reason) = ($ThisLine =~ /Disconnected: (.*) (bytes|top|in)=.*/) ) {
262 $Disconnected{$Reason}++; 260 $Disconnected{$Reason}++;
263 } elsif (($Reason) = ($ThisLine =~ /Disconnected \((.*)\):/) ) { 261 } elsif (($Reason) = ($ThisLine =~ /Disconnected \((.*)\):/) ) {
264 $Disconnected{$Reason}++; 262 $Disconnected{$Reason}++;
265 } elsif ($ThisLine =~ /Disconnected (bytes|top)=.*/) {
266 $Disconnected{"No reason"}++;
267 } elsif (($Reason, $Host) = ($ThisLine =~ /TLS initialization failed/) ) { 263 } elsif (($Reason, $Host) = ($ThisLine =~ /TLS initialization failed/) ) {
268 $TLSInitFail++; 264 $TLSInitFail++;
269 } elsif (($Host) = ($ThisLine =~ /Aborted login:.* rip=(.*),/) ) {
270 $Host = hostName($Host);
271 $Aborted{$Host}++;
272 } elsif (($Host) = ($ThisLine =~ /Aborted login \[(.*)\]/) ) { 265 } elsif (($Host) = ($ThisLine =~ /Aborted login \[(.*)\]/) ) {
273 $Host = hostName($Host); 266 $Host = hostName($Host);
274 $Aborted{$Host}++; 267 $Aborted{$Host}++;
275 } elsif (($Reason) = ($ThisLine =~ /Aborted login \((.*)\):/)) { 268 } elsif (($Reason) = ($ThisLine =~ /Aborted login \((.*)\):/)) {
276 $Aborted{$Reason}++; 269 $Aborted{$Reason}++;
289 $Disconnected{"in APPEND"}++; 282 $Disconnected{"in APPEND"}++;
290 } elsif (($ThisLine =~ /Disconnected$/) or 283 } elsif (($ThisLine =~ /Disconnected$/) or
291 ($ThisLine =~ /(IMAP|POP3)\(.+\): Disconnected (bytes|top|rip|user|method)=/) or 284 ($ThisLine =~ /(IMAP|POP3)\(.+\): Disconnected (bytes|top|rip|user|method)=/) or
292 ($ThisLine =~ /(imap\-login|pop3\-login): Disconnected: (bytes|top|rip|user|method)=/) ) { 285 ($ThisLine =~ /(imap\-login|pop3\-login): Disconnected: (bytes|top|rip|user|method)=/) ) {
293 $Disconnected{"no reason"}++; 286 $Disconnected{"no reason"}++;
294 } elsif ( (($Reason) = ($ThisLine =~ /(?:IMAP|POP3).+: Disconnected: (.+) (bytes|top)=/i)) or 287 } elsif ( (($Reason) = ($ThisLine =~ /(?:IMAP|POP3).+: Disconnected: (.+) (bytes|top|in)=/i)) or
295 (($Reason) = ($ThisLine =~ /(?:imap\-login|pop3\-login): Disconnected: \(?(.+)\)?: /)) or 288 (($Reason) = ($ThisLine =~ /(?:imap\-login|pop3\-login): Disconnected: \(?(.+)\)?: /)) or
296 #This one should go away also -mgt 289 #This one should go away also -mgt
297 (($Reason) = ($ThisLine =~ /IMAP.+: Disconnected: (.+)/i)) ) { 290 (($Reason) = ($ThisLine =~ /IMAP.+: Disconnected: (.+)/i)) ) {
298 $Disconnected{$Reason}++; 291 $Disconnected{$Reason}++;
299 } elsif ($ThisLine =~ /(IMAP|POP3).+: Connection closed (top|bytes)=/i) { 292 } elsif ($ThisLine =~ /(IMAP|POP3).+: Connection closed (top|bytes)=/i) {