2016-04-09 19 views
1

Ich versuche, den folgenden Tag mit logstash zum Spiel:Parsing Datum mit Zeitzone

Thu Apr 07 13:09:40 BST 2016 

Unter Verwendung der folgenden:

date { 
    match => ["report_time", "EEE MMM dd HH:mm:ss z yyyy"] 
    target => "@timestamp" 
} 

Aber dies führt zu dem folgenden Fehler:

Failed parsing date from field {:field=>"report_time", 
:value=>"Thu Apr 07 13:08:03 BST 2016", 
:exception=>"Invalid format: \"Thu Apr 07 13:08:03 BST 2016\" 
is malformed at \"BST 2016\"", :config_parsers=>"EEE MMM dd HH:mm:ss z yyyy", 
:config_locale=>"default=en_US", :level=>:warn} 

Ich denke, es ist der z Teil, der das Problem verursacht, kann jemand bitte erklären, wie ich kann parse die Zeitzone, d. h. BST?

Antwort

0

Es ist ein bekanntes Problem von JODA (das von Logstash verwendet wird), das Zeitzonennamen nicht analysieren kann, in Ihrem Fall ist es BST. (Name der Zeitzone)

Referenz-Link: - https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html#plugins-filters-date-timezone

Um dieses Problem zu überwinden Sie Namen der Zeitzone von der Zeitzone ersetzen können ausgeglichen werden. Sie können BST in äquivalenten Offset wie +0100 ändern.

so tun, um die folgenden in Ihrer logstash Konfigurationsdatei hinzufügen:

mutate { 
gsub => ["report_time", "BST", "+0100"] 
     } 

Es folgend ersetzen:

"message" => "Do 7. April 13.09.40 BST 2016" ,

"report_time" => "Do Apr 07 13:09:40 +0100 2016",