Я успешно использую Постфикс в Debian для ретрансляции моей внутренней электронной почты, и я отправляю журналы из файла mail.log в Logstash экземпляр, и я показываю их на Кибана дашборды искать не доставлен и отскочил электронные письма.
Проблема, с которой я столкнулся, заключается в том, что 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=<user@client.fqdn>, 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=<recipient@server.fqdn>, 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 я показываю логи с статус = , чтобы узнать, успешно ли доставлено сообщение, но таким образом я теряю информацию об отправителе, которая отображается в другой строке журнала из Postfix.
Есть ли способ разрешить Postfix вставить от = тег также в ту же строку журнала с успех = тег?
Или есть способ «объединить» несколько журналов в Logstash, чтобы оба от = и успех = теги в панель управления Kibana?
Вы можете использовать aggregate
плагин Logstash для извлечения данных из многострочного ввода queue-id
. Некоторые примеры этого подхода доступны на Github