将字符串字段转换为日期

时间:2014-06-29 14:04:41

标签: elasticsearch logstash kibana

所以,我的日志中有两个字段:timeLoggedtimeQueued所有这些字段都有日期格式:2014-06-14 19:41:21+0000

我的问题是,如何将字符串日期值转换为logstash日期?比如@timestamp

3 个答案:

答案 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库来完成您的需要!