2017-04-24 4 views
0

Ich versuche, den Loglevel einer Log-Datei mit einem Grok-Filter zu vergleichen, aber immer noch eine _grokparsefailure bekommen. Das Problem ist vielleicht mit dem Abstand zwischen [und der Log-Ebene.grok Filtermuster Problem

Beispiel log: 2017.04.21 10: 12: 03.004 [INFO] Nachricht

mein Filter:

filter { 
    grok { 
     match => { 
      "log.level" => "\[ %{LOGLEVEL:loglevel}\]" 
     } 
    } 
} 

ich auch einige andere Lösungen ohne Erfolg versucht:

"\[ *%{LOGLEVEL:loglevel}\]" 
"\[%{SPACE}%{LOGLEVEL:loglevel}\]" 

Vielen Dank im Voraus für Ihre Hilfe

Antwort

0

Der Punkt ist das Standardfeld ist Nachricht und Sie müssen passen Sie die ganze Zeichenfolge an

filter { 
    grok { 
     match => { 
      "message" => "%{TIMESTAMP_ISO8601:logDate} \[ %{LOGLEVEL:loglevel}\]%{GREEDYDATA:messages}" 
     } 
    } 
}