Ich benutze Logstash, um einige Protokolldatei zu lesen. Hier sind einige Datenquellen DatensätzeLogstash Grok Parsing Problem
<2016-07-07 00:31:01> Start
<2016-07-07 00:31:59> Warning - Export_Sysem 6 (1) => No records to be exported
<2016-07-07 00:32:22> Export2CICAP (04) => Export PO : 34 record(s)
<2016-07-07 00:32:22> Export2CICAP (04) => Export CO : 87 record(s)
<2016-07-07 00:32:22> Export2CICAP (04) => Export FC
Diese meine conf Datei ist
grok{
match => {"message" => [
'<%{TIMESTAMP_ISO8601:Timestamp}> (%{WORD:Level} -)%{NOTSPACE:Job_Code} => %{GREEDYDATA:message}',
'<%{TIMESTAMP_ISO8601:Timestamp}> %{WORD:Parameter} - %{GREEDYDATA:Message}',
'<%{TIMESTAMP_ISO8601:Timestamp}> %{WORD:Status}',
]}
}
Dieser Teil meiner Ausgabe ist
{
"message" => "??2016-07-07 00:31:01> Start\r?",
"@version" => "1",
"@timestamp" => "2016-07-08T03:22:01.076Z",
"path" => "C:/CIGNA/Export.log",
"host" => "SIMSPad",
"type" => "txt",
"tags" => [
[0] "_grokparsefailure"
]
}
{
"message" => "<2016-07-07 00:31:59> Warning - Export_Sysem 6 (1) => No records to be exported\r?",
"@version" => "1",
"@timestamp" => "2016-07-06T16:31:59.000Z",
"path" => "C:/CIGNA/Export.log",
"host" => "SIMSPad",
"type" => "txt",
"Timestamp" => "2016-07-07 00:31:59",
"Parameter" => "Warning",
"Message" => "Export_Sysem 6 (1) => No records to be exported\r?"
}
{
"message" => "<2016-07-07 00:32:22> Export2CICAP (04) => Export CO : 87 record(s)\r?",
"@version" => "1",
"@timestamp" => "2016-07-06T16:32:22.000Z",
"path" => "C:/CIGNA/Export.log",
"host" => "SIMSPad",
"type" => "txt",
"Timestamp" => "2016-07-07 00:32:22",
"Status" => "Export2CICAP"
}
Wie aus der Ausgabe zu sehen ist, die erste Ausgangsnachricht hat einen Grok-Parsing-Fehler und die anderen 2 Ergebnisse haben die Nachricht nicht vollständig analysiert. Wie sollte ich meine grok-Anweisung ändern, damit sie die Nachricht vollständig parsen kann?
Für die erste Nachricht, verwende ich Hex-Editor und haben, dass die gefunden ?? kommt von Byte of Mark. Wie soll ich das loswerden? –
@KennedyKan Vielleicht http://stackoverflow.com/questions/1068650/using-awk-to-remove-the-byte-order-mark kann helfen. Oder weil es nur in der ersten Zeile ist, können Sie es ignorieren – baudsp
Ich habe die Informationen in den Link, aber ich weiß nicht, wie Scan ich die Ideen in Logstash integrieren. Gibt es einen Logstash-Befehl, der den Job erledigen kann oder Logstash Hex-Char analysieren kann? –