Select Page

Multiline in Grok – Kein schönes Format

by | Jan 7, 2021 | Graylog

In einem modernen Log-Management ist das Aufbereiten für die spätere Analyse unverzichtbar. Je schöner das Format ist, in welchem wir eine Information geliefert bekommen, desto einfacher ist deren Verarbeitung.
Das Aufbereiten der Daten ist oft eine große Herausforderung. Doch über die Jahre hinweg habe ich mir beholfen, indem ich mir ein standardisiertes Vorgehen angewöhnt habe. Und das nicht nur weil ich ein großer Fan der RFC5424 bin.

Egal ob ich mit Graylog oder Logstash arbeite, irgendwann kommt der Punkt an dem ein Grok-Filter benötigt wird, weil kein einfaches Key-Value-Format oder noch besser kein JSON-Format vorliegt.

Ein schönes Beispiel sind Stack-Traces einer JAVA-Anwendung in JBOSS:

[code lang=”plain”]
2020-07-02 23:54:32,979 [severity] [class] [thread]\n
traceline1\n
traceline2\n
traceline3]
[/code]

Eine solches Ereignis fängt immer mit den Meta-Informationen an und ich würde zuerst aus diesen Felder erzeugen und mich im Nachgang der eigentlichen Information dem Trace als Nachricht zuwenden. Dies erfordert aber das ich mittels Grok das Feld “message” neu belegen kann. Dies ist die Voraussetzung für das weitere verarbeiten der Kern-Nachricht. Hier würde sich zum Beispiel ein Key-Value Filter anbieten.

Hierfür würden wir in der Implementierung von Grok in Logstash folgendes Muster benötigen:

[code lang=”plain”]
(?m)
[/code]

Doch nicht so in Graylog. Die Implementierung von Grok in Graylog erfordert einen anderes Muster zumindest für die Filter in den “Pipeline-Processors”

[code lang=”plain”]
(?s)
[/code]

Somit sind wir mit diesem Muster in der Lage die mehrzeilige Information als eine Nachricht in einem Grok-Filter in einer “Pipeline-Regel” abzufangen.
Hier ein Beispiel in der gänze für ein mögliches JBoss Server-Log

[code lang=”plain”]
%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:severity}%{SPACE}\[%{HOSTNAME:jboss_class}\]%{SPACE}\[%{HOSTNAME:thread}\]\n(?<message>(?s).*)
[/code]

Diese Erkenntnis für die Multiline in Grok stammt aus dem folgenden Issue #2465.
Ich hoffe es hilft dem nächsten Suchenden, dem es ergeht wie mir um mit Zeilenumbrüchen in Grok umzugehen.

Wenn Ihr gerne mehr über Graylog oder die spannenden Welt des Informations- und Event-Management wissen wollt zögert nicht ein Training bei NETWAYS Events zu besuchen oder euch direkt Hilfe bei unseren Kollegen von Netways Professional Services zu holen.

Daniel Neuberger
Daniel Neuberger
Senior Consultant

Nach seiner Ausbildung zum Fachinformatiker für Systemintegration und Tätigkeit als Systemadministrator kam er 2012 zum Consulting. Nach nun mehr als 4 Jahren Linux und Open Source Backup Consulting zieht es ihn in die Welt des Monitorings und System Management. Seit April 2017 verstärkt er das NETWAYS Professional Services Team im Consulting rund um die Themen Elastic, Icinga und Bareos. Wenn er gerade mal nicht um anderen zu Helfen durch die Welt tingelt geht er seiner Leidenschaft für die Natur beim Biken und der Imkerei nach und kassiert dabei schon mal einen Stich.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic Graylog

Graylog Release Version 5.2 ist da! HURRA!

Diese Woche wurde Graylog 5.2 veröffentlicht. Natürlich gibt es auch in diesem Release wieder Abstufungen für Open, Operations und Security. Da wir nicht auf alles eingehen können, möchte ich hier auf die hervorzuhebenden Neuerungen und Änderungen eingehen. Ein...

NETWAYS Webinare – Die nächsten Themen

Wie viele vielleicht wissen führen wir auf unserem YouTube-Kanal eine Vielzahl von Webinaren durch. Diese handeln nicht nur von Icinga, sondern beispielsweise auch Elastic und Graylog. Im Laufe der Zeit sind wir von den einzelnen, getrennten Webinaren zu Serien...

Aus Graylog ENTERPRISE wird Graylog Operations

Wie im Blogpost von Graylog bekannt gegeben, wurde die Lösung Graylog ENTERPRISE umbenannt in Graylog Operations. Der neue Name spiegelt dabei das Ziel von Graylog wider, sich verstärkt in den operational Bereich einzugliedern und Herausforderungen, die sich aus...