2017-03-26 5 views
0

Ich versuche, ein Timestamp-Feld in Logstash einzugeben und ich erhalte eine Dateparsefailure Nachricht.Logstash - Benutzerdefinierte Timestamp Error

Meine Nachricht -

2014.08.01; 11: 00: 22,123

Pipeline Datei

input { 
stdin{} 
#beats { 
#  port => "5043" 
# } 
} 
# optional. 
filter { 
    date { 
     locale => "en" 
     match => ["message", "YYYY-MM-dd;HH:mm:ss.SSS"] 
     target => "@timestamp" 
     add_field => { "debug" => "timestampMatched"} 
    } 
} 
output { 
elasticsearch { 
     hosts => [ "127.0.0.1:9200" ] 
    } 
stdout { codec => rubydebug } 
} 

Kann mir jemand sagen, was ich fehle?

aktualisieren 1

ich auf den Link genannt - How to remove trailing newline from message field und jetzt funktioniert es.

Aber meiner Log-Nachricht, ich habe mehrere andere Werte als Zeitmarke

<B 2014-08-01;11:00:22.123 Field1=Value1 Field2=Value2 

Wenn ich diese geben als Eingabe, es funktioniert nicht. Wie lese ich einen Teil des Logs und mache es als Timestamp?

aktualisieren 2

es funktioniert jetzt.

Changed die Konfigurationsdatei wie unten

filter { 
kv 
    { 

    } 
mutate { 
    strip => "message" 
    } 
    date { 
     locale => "en" 
     match => ["timestamp1", "YYYY-MM-dd;HH:mm:ss.SSS"] 
     target => "@timestamp" 
     add_field => { "debug" => "timestampMatched"} 
    } 

} 

Antwort

1

ich die Antwort bin Entsendung unten und Schritte i verwendet, um das Problem zu lösen, so dass ich Leute wie ich helfen kann.

Schritt 1 - I Lesen Sie die Meldung in Form von Schlüssel- und Wertpaar

Schritt 2 - I off getrimmt den zusätzlichen Raum, der Ausnahme

Schritt 3 zu parsen führt - I las den Zeitstempel-Wert und andere Felder in den jeweiligen Feldern.

input { 
beats { 
     port => "5043" 
    } 
} 
# optional. 
filter { 
    kv { } 
    date { 
      match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ] 
      remove_field => [ "timestamp" ] 
     } 
} 
output { 
elasticsearch { 
     hosts => [ "127.0.0.1:9200" ] 
    } 
} 
Verwandte Themen