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:
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.
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.
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
Es tut mir leid, dass ich die falsche grok Aussage eingefügt habe. Sie sollten die Bearbeitung überprüfen. –