2016-04-13 17 views
0

Ich habe ein Problem, ein Recht grok Muster für alle meine Protokolle zu finden, um alle von ihnen durch logstash zu analysieren.Logstash grok Muster für pgpool Protokolle

Beispiel meiner logs:

1) 2016-04-13 19:55:40: pid 21950: LOG: pool_send_and_wait: Fehler oder Hinweismeldung vom Backend:: DB-Knoten-ID: 4 backend pid: 65156 Anweisung: "UPDATE certname ......" ... (Der Rest des Protokolls spielt keine Rolle)

2) 2016-04-13 19:55:40: pid 17555: FATAL: fehlgeschlagen lesen Art von Back-End-

Mein grok Muster (die zum Teil funktioniert):

grok { Spiel => { "Message" => "% {GREEDYDATA: LogDate}: pid% {NUMBER: pid}:% {LOGLEVEL: loglevel}:% {GREEDYDATA: logmessage}"} }

Wie Sie können diese sehen die Dinge sind mir wichtig: 1) das Datum der Protokoll 2) die PID 3) die loglevel 4) die Nachricht selbst

mit Ausnahme von dem Muster oben ich das Datum auch mit dem angeben versucht \ Ein% {TIMESTAMP_ISO8601: timestamp} -Muster (genau wie der Grok-Debugger mich vorgeschlagen hat).

Meine Annahme ist, dass das erste Protokoll die Art meiner problematischen Logs ist, weil es das Wort "log" zweimal drin hat, obwohl es in der zweiten Zeit nicht nach einem Doppelpunkt erscheint (im Gegensatz zu meinem Grokmuster) Ich habe also keine Ahnung, warum die Parsing-Operation fehlschlägt.

In der Tat, meine Protokolle, die nicht enthält das Wort "log" zweimal erfolgreich geparst - mein Muster funktioniert teilweise.

Thanks :)

+0

Versuchen Sie, GREEDYDATA nur am Ende von Mustern zu verwenden. Wechseln Sie zu ISO8601, um die Datetime anzupassen und sehen Sie, wie das geht. –

+0

Ich habe versucht, es hat nicht funktioniert –

Antwort

0

Der Trick grok Muster zu machen, ist auf der linken Seite beginnen, die erste Arbeits erhalten, und langsam nach rechts bewegen, bis Sie fertig sind.

Dadurch würden Sie sehen, dass es funktioniert, wenn Sie% {LOGLEVEL} hinzufügen. Warum? Weil "LOG" für LOGLEVEL nicht gültig ist. Es erwartet Dinge wie DEBUG usw. Verwenden Sie stattdessen etwas wie% {WORD} und es funktioniert gut.

+0

Danke, es hat funktioniert! –

Verwandte Themen