Logstash 使用时区解析日期

Logstash 使用时区解析日期,logstash,logstash-configuration,Logstash,Logstash Configuration,我正在尝试将以下日期与logstash匹配: Thu Apr 07 13:09:40 BST 2016 使用以下命令: date { match => ["report_time", "EEE MMM dd HH:mm:ss z yyyy"] target => "@timestamp" } 但这会导致以下错误: Failed parsing date from field {:field=>"report_time", :value=>"Thu A

我正在尝试将以下日期与logstash匹配:

Thu Apr 07 13:09:40 BST 2016
使用以下命令:

date {
    match => ["report_time", "EEE MMM dd HH:mm:ss z yyyy"]
    target => "@timestamp"
}
但这会导致以下错误:

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}

我认为是
z
部分导致了这个问题,有人能解释一下我如何解析时区,即
BST

这是JODA(Logstash使用的)的一个已知问题,它无法解析时区名称,在你的例子中,它是BST(时区名称)

参考链接:-

要解决此问题,可以用时区偏移量替换时区名称。 您可以将BST更改为等效偏移量,例如+0100

为此,请将以下内容添加到日志存储配置文件中:

mutate  {
gsub => ["report_time", "BST", "+0100"]
       }
它将替换为以下内容:

date {
    match => ["report_time", "EEE MMM dd HH:mm:ss z yyyy"]
    target => "@timestamp"
}
“消息”=>“英国夏令时2016年4月7日星期四13:09:40”


“report_time”=>“Thu Apr 07 13:09:40+0100 2016”

这是JODA(Logstash使用)的一个已知问题,它无法解析时区名称,在您的情况下是BST(时区名称)

参考链接:-

要解决此问题,可以用时区偏移量替换时区名称。 您可以将BST更改为等效偏移量,例如+0100

为此,请将以下内容添加到日志存储配置文件中:

mutate  {
gsub => ["report_time", "BST", "+0100"]
       }
它将替换为以下内容:

date {
    match => ["report_time", "EEE MMM dd HH:mm:ss z yyyy"]
    target => "@timestamp"
}
“消息”=>“英国夏令时2016年4月7日星期四13:09:40”

“报告时间”=>“2016年4月7日星期四13:09:40+0100”