2016-05-31 8 views
0

Ich benutze Logstash-1.4.0 mit Elasticsearch 1.3.4 und Kibana 3.1.1 (Ich weiß, ich bin veraltet, das ist das Beste, was ich jetzt tun kann) .Grok Filter funktioniert nicht, obwohl es in grok Debugger

Log Beispiel:

2016-05-31 16:05:33 RequestManager [INFO] Die manuelle Markierungszeichen LOLROFLin TRALALA 123456Was geändert true

Mein grok Filter:

filter { 
    grok { 
     match => { "message" => "%{DATESTAMP:timestamp} %{WORD:clazz} %{NOTSPACE:level} %{GREEDYDATA:content}"} 
    } 

    if (!([stack_trace])) and (!([clazz] == "RequestAsset")) { 
     drop {} 
    } 
} 

Meine Fragen sind:

  1. Warum sehe ich die grok fields in kibana nicht? Ich sehe nur die Standardfelder, aber nicht meine. Grok Debugger zeigt Erfolg, aber Kibana funktioniert nicht.

  2. Mein Ziel ist es, jede Log-Nachricht, die keine Stack-Trace oder nicht von der Klasse (genannt clazz in meinem grok-Filter) "RequestAsset" hat fallen zu lassen. Sollte das funktionieren? Kann ich die vom grok-Filter erzeugten Felder in einem separaten if-Filter verwenden?

EDIT: Ich erkennen, was schief gelaufen ist, war ich die log4j-Plugin, das bereits das Protokoll, um den Inhalt trennt, und das Feld Nachricht war bereits nur die Nachricht selbst.

Antwort

0

Ich habe Ihren Grok-Filter in diesem grok debugger getestet und es ist fehlgeschlagen. Also habe ich es neu geschrieben.

Hier ist der richtige Grok Filter.

filter { 
grok { 
    match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{WORD:clazz} %{NOTSPACE:level} %{GREEDYDATA:content}"} 
} 

if (!([stack_trace])) and (!([clazz] == "RequestAsset")) { 
    drop {} 
} 

TIMESTAMP_ISO8601 =>%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?

Wenn Sie "_grokparsefailure" in Kibana sehen, wissen Sie, dass Ihr grok Filter fehlgeschlagen.

Zu Ihrer zweiten Frage sollten Sie den OR-Operator nicht verwenden?

+0

Ich sehe keinen Unterschied zwischen den beiden? Ich habe sie auch beide im Grow-Debugger ausprobiert, aber beide haben nicht funktioniert. Ich benutzte dieses und beide arbeiten: https://grokdebug.herokuapp.com/ – user1137582

+0

Es tut mir leid, dass ich die falsche grok Aussage eingefügt habe. Sie sollten die Bearbeitung überprüfen. –

0

Ich erkannte, was schief gelaufen ist, habe ich das log4j-Plugin verwendet, das bereits das Protokoll auf seinen Inhalt trennt, und die Feldnachricht war bereits nur die Nachricht selbst.