2017-12-22 15 views
0

Ich bin mit logstash und ich habe folgende mehrzeiliges Eingabe in logstash von filebeats:Kann nicht mehrzeilige Eingabe von filebeats in logstash mit grok Griff

"message":"[step info]\nstep: 3\ngrammar name: grammar1\nnoInputTimeout: 6000\nstep stream idle time: 14910\nstep stream start time: 2017-12-01 17:06:10.024\nrec start time: 2017-12-01 17:06:09.994\nrec finish time: 2017-12-01 17:06:12.748\nsystem prompt duration: 570\nuser barged in: true\nuser noInput time: 0\nuser speech duration: 1190\nspeech start trigger: 8265\nspeech start on rec: 7945\nspeech end trigger: 8415\nspeech end on rec: 9135\nrec completion cause: 000 success\nrec completion type: SR\nrec result: onetwothreefour\nrec inputMode: speech\nRTF: 0.47\nrec process time: 557\nrec latency: 61\nrec post delay: 62"

Ich versuche, ein Muster mit grok, aber nichts zu finden funktioniert. Ich habe es auch mit Split und Mutate versucht, aber es gelingt mir nicht, es zum Laufen zu bringen.

Antwort

0

Dies ist nur ein Zeiger für Sie zu versuchen, aber die KV filter, (Schlüssel Wert Filter) kann helfen.

Wenn Sie Ihr Beispiel betrachten, könnten Sie so etwas tun.

kv { 
    source => "message" 
    field_split => "\n" 
    value_split => ":" 
} 

Dieses Ihr Beispiel

"message":"[step info]\nstep: 3\ngrammar name: grammar1\nnoInputTimeout: 6000\nstep stream idle time: 14910\nstep stream start time: 2017-12-01 17:06:10.024\nrec start time: 2017-12-01 17:06:09.994\nrec finish time: 2017-12-01 17:06:12.748\nsystem prompt duration: 570\nuser barged in: true\nuser noInput time: 0\nuser speech duration: 1190\nspeech start trigger: 8265\nspeech start on rec: 7945\nspeech end trigger: 8415\nspeech end on rec: 9135\nrec completion cause: 000 success\nrec completion type: SR\nrec result: onetwothreefour\nrec inputMode: speech\nRTF: 0.47\nrec process time: 557\nrec latency: 61\nrec post delay: 62" 

und Split auf der \ n char, dann erstellen Schlüsselwertepaare aus den Beispielen Sie haben, die linke Seite wäre der Feldname nehmen würde und die rechte Seite wäre der Wert.

step: 3 
grammar name: grammar1 
noInputTimeout: 6000 
step stream idle time: 14910 
step stream start time: 2017-12-01 17:06:10.024 
rec start time: 2017-12-01 17:06:09.994 
rec finish time: 2017-12-01 17:06:12.748 

Wenn Sie die [Schritt info] aufzuschlüsseln dann würden Sie brauchen mehr Beispiele zur Verfügung zu stellen, aber ich wäre greedydata mit im Grunde Sie sind Inhalte in zwei Felder aufgeteilt, 1 für [Schritt info] und 1 für [step lines] und pass Split Lines als Quellfeld für den obigen KV-Filter.

Hoffe das zeigt Ihnen in die richtige Richtung.

E.