elasticsearch 将字符串字段转换为日期,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" /> elasticsearch 将字符串字段转换为日期,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" />

elasticsearch 将字符串字段转换为日期

elasticsearch 将字符串字段转换为日期,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,因此,我的日志中有两个字段:timeloged,timeQueued所有这些字段都有日期格式:2014-06-14 19:41:21+0000 我的问题是,如何将字符串日期值转换为日志存储日期?与@timestamp类似,您可以尝试使用此筛选器 filter { ruby { code => " event['timeLogged'] = Time.parse(event['timeLogged']) event['t

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


我的问题是,如何将字符串日期值转换为日志存储日期?与@timestamp类似,您可以尝试使用此筛选器

filter {
    ruby {
        code => "
            event['timeLogged'] = Time.parse(event['timeLogged'])
            event['timeQueued'] = Time.parse(event['timeQueued'])
        "
    }
}

使用强大的ruby库来完成您需要的任务

对于转换为@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" ]
 }

这取决于你去试验,我自己从来没有试过;)

这就足够了

date{
    match => [ "timeLogged","ISO8601","YYYY-MM-dd HH:mm:ss" ]
    target => "timeLogged"
    locale => "en"
    }

您好,它生成了一个错误:
WARN:org.elasticsearch.index.mapper:[Chi Demon][logstash-2014.06.29]类型[.fr(93.17.128.7)]包含一个“.”,建议不要将其包含在类型名称中
是日志存储错误还是elasticsearch错误?您提供的日志对我有效。您可以尝试先禁用筛选器,然后尝试它是否也会产生elasticsearch错误。在错误消息中,这不是筛选器问题。所以,可能是另一个问题导致了这一点。你能提供完整的日志和你的配置吗?
date{
    match => [ "timeLogged","ISO8601","YYYY-MM-dd HH:mm:ss" ]
    target => "timeLogged"
    locale => "en"
    }