Ich benutze Postfix und ich muss die Mail-Protokolle analysieren, nachdem die Mails gesendet wurden. Im Moment habe ich versucht, Dinge mit Fluentd zu arbeiten, die das Tail-Plugin verwenden, um Postfix-Logs zu analysieren.Parsing von POSTFIX-Protokollen und Senden an ElasticSearch
Das Problem, mit dem ich konfrontiert bin, ist, dass ich sie nicht analysieren kann, indem Sie die Multiline-Option des Tail-Plugins verwenden. Ich kann sie einzeln mit regulären Ausdrücken analysieren, aber nicht zusammen. Dies liegt möglicherweise an der Tatsache, dass die Protokolle asynchron sind und sich jeder Prozess in der Datei anmeldet, wenn Informationen zu protokollieren sind. Ich plane zu diesem Zweck ein Ruby-Skript zu schreiben, aber das könnte eine Menge Zeit in Anspruch nehmen.
Gibt es eine bessere Lösung als das Script/Custom Plugin für Fluentd zu schreiben, da ich Ruby/Perl nicht kenne?
Logs für die ich kümmern sich nicht um Informationen zu extrahieren aus:
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
Protokolle, für die ich mich interessiere Informationen zu extrahieren aus:
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)
Das Beispiel Protokolle müssen sein an ElasticSearch als JSON-Datei gesendet, die sie dann für die weitere Verarbeitung speichert.
Danke für Ihre Antwort. Obwohl, schrieb ein benutzerdefiniertes Python-Skript, das die Protokolldaten in meinen Elasticsearch-Index exportiert und die Dokumente mit QueueIDs als Schlüssel und Daten in JSON aktualisiert, sobald Daten gefunden werden. –