使用日期过滤器解析日期时间字符串时错误的月份数

时间:2014-02-24 13:14:58

标签: logstash

我正在尝试在我的计算机上设置logstash

问题是我无法使用日期过滤器正确解析logdate:

以下是重置此问题的配置文件(test.conf):

input {                                                                                                                
  stdin { }                                                                                                            
}                                                                                                                      

filter {                                                                                                               
  date { match => [ "message", "YYYY-MM-DD HH:mm:ss" ] }                                                               
}                                                                                                                      

output {                                                                                                               
  stdout { codec => rubydebug }                                                                                        
}

然后在输入2014-02-21 12:53:41后,我在@timestamp字段中输入了错误的月号:

$ java -jar logstash-1.3.3-flatjar.jar agent -f test.conf 
2014-02-21 12:53:41
{
       "message" => "2014-02-21 12:53:41",
      "@version" => "1",
    "@timestamp" => "2014-01-21T12:53:41.000+04:00",
          "host" => "localhost.localdomain"
}

smb可以解释一下我做错了什么吗?为什么日期模式没有按预期工作?

2 个答案:

答案 0 :(得分:4)

问题是你的配置错了!请更正图案。

date { match => [ "message", "YYYY-MM-dd HH:mm:ss" ] }                            

日期模式为“ dd ”,而不是“ DD ”。您可以refer在此处获取更多信息。

Symbol  Meaning                      Presentation  Examples
------  -------                      ------------  -------
D       day of year                  number        189
d       day of month                 number        10

修改模式后,我的logstash可以使用您的配置解析您的日志。

答案 1 :(得分:1)

使用http://grokdebug.herokuapp.com/处的Grok调试器。

我能够使用以下方法解析你的表达式:

%{DATE:my_date}

您的logstash文件应如下所示:

filter {
  grok {
    pattern  => "%{DATE:my_date}"
  }
}

然后它将把它放入my_date。

希望有所帮助。