sergeymakinen / postfix_exporter

Export Postfix stats to Prometheus
BSD 3-Clause "New" or "Revised" License
11 stars 0 forks source link

2.0.0-beta0 produces lots of errors when dovecot is used #11

Closed deajan closed 9 months ago

deajan commented 9 months ago

Hello Sergey,

I'm currently testing your 2.0.0-beta0 release on one of my servers. The server has dovecot writing to /var/log/mail.log which produces alot of "non postfix" error lines in your exporter.

ts=2023-12-26T10:24:32.242Z caller=main.go:39 level=info msg="Starting postfix_exporter" version="(version=2.0.0-beta.0, branch=HEAD, revision=91d1f51e7e5bd424c0190f4bd6ff5d004bd758d0)"
ts=2023-12-26T10:24:32.242Z caller=main.go:40 level=info msg="Build context" context="(go=go1.21.4, platform=linux/amd64, user=root@ee34a7c5589c, date=20231203-21:15:58, tags=netgo)"
ts=2023-12-26T10:24:32.242Z caller=tls_config.go:274 level=info msg="Listening on" address=[::]:9907
ts=2023-12-26T10:24:32.242Z caller=tls_config.go:277 level=info msg="TLS is disabled." http2=false address=[::]:9907
ts=2023-12-26T10:24:40.660Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:40 mail dovecot: pop3-login: Login: user=<someone@example.tld>, method=PLAIN, rip=123.123.123.256, lip=231.231.231.256, mpid=25823, TLS, session=<hPwZF2cNLtzB/T5C>\"" record=
ts=2023-12-26T10:24:40.746Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:40 mail dovecot: imap-login: Login: user=<someone@example.tld>, method=PLAIN, rip=123.123.123.256, lip=231.231.231.256, mpid=25824, TLS, session=<N0kbF2cNLdzB/T5C>\"" record=
ts=2023-12-26T10:24:40.854Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:40 mail dovecot: imap-login: Login: user=<someone@example.tld>, method=PLAIN, rip=123.123.123.256, lip=231.231.231.256, mpid=25825, TLS, session=<ZeocF2cNL9zB/T5C>\"" record=
ts=2023-12-26T10:24:42.620Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:42 mail dovecot: pop3(someone@example.tld)<25823><hPwZF2cNLtzB/T5C>: Disconnected: Logged out top=0/0, retr=10/430675, del=13/319, size=69523868\"" record=
ts=2023-12-26T10:24:43.560Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:43 mail dovecot: lmtp(25736): Connect from local\"" record=
ts=2023-12-26T10:24:43.749Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:43 mail dovecot: lmtp(someone@example.tld)<25736><kK/+IOupimWIZAAAYRFFHw>: sieve: msgid=<JIRA.14713.1701100651000.88bd67ae-9e6a-405b-95ee-0d9ee9a81f10.1703586255696@Atlassian.JIRA>: stored mail into mailbox 'INBOX'\"" record=
ts=2023-12-26T10:24:43.751Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:43 mail dovecot: lmtp(25736): Disconnect from local: Client has quit the connection (state=READY)\"" record=
ts=2023-12-26T10:24:44.777Z caller=exporter.go:156 level=warn msg="Error parsing log record" err="missing \"[\" in \"Dec 26 11:24:44 mail dovecot: imap-login: Login: user=<someone@example.tld>, method=PLAIN, rip=123.123.123.256, lip=231.231.231.256, mpid=25827, TLS, session=<dhdZF2cNMtzB/T5C>\"" record=

Perhaps you could filter out non postfix logs from the exporter to lighten it's output ? AFAIK, all postfix logs begin with the timestamp and the word "postfix", eg:

Dec 26 11:03:06 mail postfix/lmtp[20812] ...
Dec 26 11:31:20 mail postfix/cleanup ...
Dec 26 11:32:02 mail postfix/smtps/smtpd[25531] ...
Dec 26 11:32:37 mail postfix/submission/smtpd ...
deajan commented 9 months ago

As a side node, the above logs were produced using vanilla postfix_exporter, without any regex config file.

sergeymakinen commented 9 months ago

It should be fixed since v2.0.0-beta.1.