Я использую Postfix, и мне нужно разобрать почтовые журналы после отправки писем. Прямо сейчас, я пытался заставить вещи работать, используя Fluentd, используя плагин tail для анализа журналов Postfix.Анализ журналов POSTFIX и отправка в ElasticSearch
Проблема, с которой я столкнулась, заключается в том, что я не могу разобрать их, используя многострочный вариант плагина хвоста. Я могу разобрать их индивидуально, используя регулярные выражения, но не вместе. Это может быть из-за того, что журналы являются асинхронными по своей природе, и каждый процесс регистрируется в файле всякий раз, когда у него есть информация для регистрации. Я планирую написать рубиновый скрипт для этой цели, но это может занять много времени.
Есть ли лучшее решение, чем писать скрипт/пользовательский плагин для Fluentd, учитывая, что я не знаю Ruby/Perl?
журналы, для которых я не забочусь, чтобы извлечь информацию из:
Jan 5 09:02:48 localhost postfix/pickup[5501]: 1733D16A90A: uid=0 from=<root>
Jan 5 09:02:51 localhost postfix/qmgr[2596]: 1733D16A90A: removed
журналы, для которых я забочусь, чтобы извлечь информацию из:
Jan 5 09:02:48 localhost postfix/cleanup[5978]: 1733D16A90A: message-id=<[email protected]>
Jan 5 09:02:48 localhost postfix/qmgr[2596]: 1733D16A90A: from=<[email protected]>, size=460, nrcpt=1 (queue active)
Jan 5 09:02:51 localhost postfix/smtp[5980]: 1733D16A90A: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.130.27]:25, delay=3.4, delays=0.05/0.01/1.9/1.5, dsn=2.0.0, status=sent (250 2.0.0 OK 1483624971 s11si76004239pgc.259 - gsmtp)
В этом примере журналы должны быть отправленный в ElasticSearch в виде файла JSON, который затем сохранит их для дальнейшей обработки.
Спасибо за ваш ответ. Хотя, написал собственный скрипт python, который экспортирует данные журнала в мой индекс Elasticsearch и обновляет документы с помощью QueueIDs в виде ключей и данных в json, как только данные будут найдены. –