Nach Protokolle Parsen Ich bin finden es einige neue Zeilen am Ende der Nachricht sindGrok Muster arbeiten nicht in Logstash
Beispiel Nachricht
ts: 2016.04.26 05-02-16 -018 CDT | ll: TRACE | tid: 10000.140 | scf: xxxxxxxxxxxxxxxxxxxxxxxxxxx.pc | mn: null | fn: xxxxxxxxxxxxxxxxxxxxxxxxxxx | ln: 749 | auid: xxxxxxxxxxxxxxxxxxxxxxxxxxx | eid: xxx.xxx.xxx.xxx-58261618-1-1461664935955 -139 | cid: 900009865 | ml: null | mittel: -99 | uip: xxx.xxx.xxx.xxx | hip: xxx.xxx.xxx.xxx | pli: null | msg: xxxxxxxxxxxxxxxxxxxxxxxxxxx | pl: xxxxxxxxxxxxxxxxxxxxxxxxxxx
TAKE 1 xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx
ich das RegexMuster verwenden unten, wie unten vorgeschlagen als Antworten
ts: ((([0-9] +) - ) + ([0-9] + -) + [AZ] +) \ | ll:% {WORT: ll} \ | tid:% {NUMMER: tid} \ | scf:% {DATA: scf} \ | mn:% {WORT: mn} \ | fn:% {WORT: fn} \ | ln:% {WORT: ln} \ | auid:% {WORT: auid} \ | eid:% {DATA: eid} \ | cid:% {WORD: cid} \ | ml:% {WORT: ml} \ | mid:% {NUMBER: mid} \ | uip:% {DATEN: uip} \ | hip:% {DATA: hip} \ | pli:% {WORD: pli} \ | \ s msg:% {GREEDYDATA: Nachricht} (\ | pl: (? (. | \ R | \ n)))
Aber leider ist es nicht richtig funktioniert, wenn der letzte Teil des Stammes nicht vorhanden ist
ts: 2016.04.26 05-02-16-018 CDT | ll: TRACE | tid: 10000.140 | scf: xxxxxxxxxxxxxxxxxxxxxxxxxxx.pc | mn: null | fn: xxxxxxxxxxxxxxxxxxxxxxxxxxx | ln: 749 | auid: xxxxxxxxxxxxxxxxxxxxxxxxxxx | eid: xxx.xxx.xxx.xxx-58261618-1-1461664935955-139 | cid: 900009865 | ml : null | mittel: -99 | uip: xxx.xxx.xxx.xxx | hip: xxx.xxx.xxx.xxx
Was sollte das richtige Muster sein?
------------------- Vorherige Frage ------------------------- -------------
Ich versuche, Protokollzeile wie diese zu analysieren.
ts: 2016.04.26 05-02-16-018 CDT | ll: TRACE | tid: 10.000,140 | scf: xxxxxxxxxxxxxxxxxxxxxxxxxxx.pc | mn: null | fn: xxxxxxxxxxxxxxxxxxxxxxxxxxx | ln: 749 | AUID: xxxxxxxxxxxxxxxxxxxxxxxxxxx | eid: xxx.xxx.xxx.xxx-58261618-1-1461664935955-139 | cid: 900009865 | ml: null | mittel: -99 | uip: xxx.xxx.xxx.xxx | hip: xxx.xxx.xxx.xxx | pli: null | msg: xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx
Unten ist mein logstash Filter
filter {
grok {
match => ["mesage", "ts:(?<date>(([0-9]+)-*)+ ([0-9]+-*)+ [A-Z]+)\|ll:%{WORD:ll}\|tid:%{WORD:tid}\|scf:%{WORD:scf}\|mn:%{WORD:mn}\|fn:%{WORD:fn}\|ln:%{WORD:ln}\|auid:%{WORD:auid}\|eid:%{WORD:eid}\|cid:%{WORD:cid}\|ml:%{WORD:ml}\|mid:%{WORD:mid}\|uip:%{WORD:uip}\|hip:%{WORD:hip}\|pli:%{WORD:pli}\|msg:%{WORD:msg}"]
}
date {
match => ["ts","yyyy-MM-dd HH-mm-ss-SSS ZZZ"]
target => "@timestamp"
}
}
ich erhalte "_grokparsefailure"
Es gibt ein paar Fehler in der Konfiguration ist, siehe meine Antwort – baudsp