1

Postfix を使用しており、メールの送信後にメール ログを解析する必要があります。現在、テールプラグインを使用してFluentdを使用してPostfixログを解析しようとしています。

私が直面している問題は、テール プラグインの複数行オプションを使用してそれらを解析できないことです。正規表現を使用して個別に解析できますが、まとめて解析することはできません。これは、ログが本質的に非同期であり、ログに記録する情報があるたびに各プロセスがファイルにログを記録するためである可能性があります。この目的のために ruby​​ スクリプトを作成する予定ですが、これにはかなりの時間がかかる可能性があります。

Ruby/Perl を知らないことを考えると、Fluentd のスクリプト/カスタム プラグインを作成するよりも良い解決策はありますか?

情報を抽出したくないログ:

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=<20170105140248.1733D16A90A@mail.testserver.com>
Jan  5 09:02:48 localhost postfix/qmgr[2596]: 1733D16A90A: from=<root@mail.testserver.com>, size=460, nrcpt=1 (queue active)
Jan  5 09:02:51 localhost postfix/smtp[5980]: 1733D16A90A: to=<divij.sehgaal7@gmail.com>, 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)

サンプル ログは JSON ファイルとして ElasticSearch に送信する必要があり、さらに処理するために保存されます。

4

3 に答える 3