所以,我的日志中有两个字段:timeLogged
,timeQueued
所有这些字段都有日期格式:2014-06-14 19:41:21+0000
我的问题是,如何将字符串日期值转换为logstash日期?比如@timestamp
答案 0 :(得分:1)
仅转换为@timestamp的目的是有一个专用的日期过滤器
date {
match => ["timeLogged","YYYY-MM-dd HH:mm:ss+SSSS"]
}
现在在您的情况下,基本上可以使用两种类型的字段,因此您需要稍微挖掘一下,使用grok过滤器来复制泛型中的值" log_date"字段,或试图查看日期过滤器是否可以采取多种参数,如可能的一种:
date {
match => ["timeLogged","YYYY-MM-dd HH:mm:ss+SSSS",
"timeQueued","YYYY-MM-dd HH:mm:ss+SSSS" ]
}
OR
date {
match => ["timeLogged","YYYY-MM-dd HH:mm:ss+SSSS"]
match => ["timeQueued","YYYY-MM-dd HH:mm:ss+SSSS"]
}
由你来实验,我从未尝试过自己;)
答案 1 :(得分:1)
这应该足够了
date{
match => [ "timeLogged","ISO8601","YYYY-MM-dd HH:mm:ss" ]
target => "timeLogged"
locale => "en"
}
答案 2 :(得分:0)
您可以尝试使用此过滤器
filter {
ruby {
code => "
event['timeLogged'] = Time.parse(event['timeLogged'])
event['timeQueued'] = Time.parse(event['timeQueued'])
"
}
}
使用功能强大的ruby库来完成您的需要!