2016-04-26 5 views
0

aus irgendeinem Grunde, logstash (Version 1.5) kann nicht verarbeiten Protokolle mit dieser Ausnahme analysieren:logstash/Elasticsearch fehlgeschlagen Datumsfeld versucht, beide Datumsformat [dateOptionalTime] und Zeitstempel-Nummer mit locale

{: Zeitstempel => "2016-04-26T09: 20: 12.141000-0400",: message => "Fehler beim Parsen des Datums vom Feld",: Feld => "Uhrzeit",: Wert => "2016-04-26T09: 20: 03.520 -04: 00 ",: exception => java.lang.IllegalArgumentException: Ungültiges Format:" 2016-04-26T09: 20: 03.520-04: 00 "ist fehlerhaft bei" T09: 20: 03.520-04: 00 ",: level =>: warnen}

My Time Feld in json ist:

"time":"25-04-2016 04:21:06.786" 

meine logstash Konfiguration ist:

filter { 

if [type] == "json" { 
    json { 
     source => "message" 
     } 
    date { 
     match => [ "time", "dd-MM-yyyy HH:mm:ss", "dd-MM-yyyy HH:mm:ss:SSS", "dd-MM-yyyy HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss,SSS" ] 
    }  
    } 
} 

Auf Elasticsearch Seite sehe ich diese Ausnahme:

fehlgeschlagen Datumsfeld analysieren [25-04-2016 04: 48: 14,305], versuchten beide Datumsformat [dateOptionalTime] und Zeitstempel-Nummer mit locale [] java.lang.IllegalArgumentException: Ungültige Format: "25-04-2016 04: 48: 14,305" an malformed "16 04: 48: 14,305"

Wie? Ich repariere das?

+0

Es tatsächlich das Feld Ihre Zeit sieht nicht erwischt zu werden und Zeitwert ist Ihr Systemzeitwert, das ist, warum es in diesem spezifischen Format. –

+0

Ich denke, Sie schlagen [diese] (https://github.com/elastic/logstash/issues/4989) Fehler. –

Antwort

0

Ihr @timestamp hat Offset (Zeitwert) und Sie müssen das zu Ihrer Konfiguration hinzufügen. Sehen Sie bitte diesen Link: https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html

  • Z Zeitzonen-Offset oder Identität
    • Z: Zeitzone Offset als SSMM strukturiert (Stunden- und Minuten-Offset von Zulu/UTC). Beispiel: -0700.
    • ZZ: Zeitzone Offset als HH: mm (Doppelpunkt zwischen Stunden und Minuten Offsets) strukturiert. Beispiel: -07: 00.
    • ZZZ: Zeitzone Identität. Beispiel: Amerika/Los_Angeles. Hinweis: Gültige IDs sind unter Joda.org available time zones page aufgeführt.

So sollte Ihr Muster sieht ziemlich ähnlich wie folgt aus:

YYYY-MM-dd HH:mm:ss.SSSZ

+0

Ich dachte, dass bei Verwendung des "Datum" -Filters dann @timestamp durch den Wert in meinem "Zeit" -Feld überschrieben wird, ist das nicht das Problem? Wie auch immer, ich habe versucht, das Muster, das Sie mir gaben, und ich sehe immer noch den gleichen Fehler – deez

+0

@deezx es ist überschrieben, aber Sie müssen korrekte Eingabeformat angeben, so dass es keine Fehler wirft, was Ihr Fall ist. Eigentlich habe ich deine Frage falsch verstanden, ich werde versuchen, mehr zu untersuchen: | –