我在 Debian 上成功使用Postfix来中继我的内部电子邮件,并且我正在将 mail.log 文件中的日志发送到Logstash实例,我在Kibana仪表板上显示它们以查找未发送和退回的电子邮件.
我遇到的问题是 Postfix 在多个日志行上发送有关已发送电子邮件的信息,例如:
Oct 9 18:19:58 mailserver postfix/smtpd[11513]: 7958440AA2: client=client.fqdn[123.123.123.123]
Oct 9 18:19:59 mailserver postfix/cleanup[11518]: 7958440AA2: message-id=<>
Oct 9 18:19:59 mailserver postfix/qmgr[26050]: 7958440AA2: from=<[email protected]>, size=841, nrcpt=1 (queue active)
Oct 9 18:19:59 mailserver postfix/smtpd[11513]: disconnect from client.fqdn[123.123.123.123] helo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Oct 9 18:20:10 mailserver postfix/smtp[11519]: 7958440AA2: to=<[email protected]>, relay=relay.fqdn[111.111.111.111]:25, delay=12, delays=1/0.01/10/1.3, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 1F2BF9679C4)
Oct 9 18:20:10 mailserver postfix/qmgr[26050]: 7958440AA2: removed
在 Kibana 上,我正在显示带有status=标签的日志,以了解消息是否已成功传递,但这样我会丢失有关发件人的信息,这些信息显示在 Postfix 的另一条日志行上。
有没有办法让 Postfix 将from=标签也插入到与success=标签相同的日志行中?
或者,有没有办法将多个日志“合并”到 Logstash 以将from=和success=标签都放入 Kibana 仪表板?
您可以使用
aggregate
Logstash 插件从多行输入中提取数据queue-id
。Github上提供了这种方法的一些示例