我正在尝试在我的计算机上设置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可以解释一下我做错了什么吗?为什么日期模式没有按预期工作?
答案 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。
希望有所帮助。