logstash转换时间

时间:2016-10-14 17:01:33

标签: logstash logstash-configuration

我正在使用logstash将数据从filebeat推送到elasticsearch。我的数据时间为hh:mm:ss a(上午05:21:34)。我想在今天添加日期。 这是logstash配置的过滤器

filter{
    grok{ some grok pattern to get time}
    date {
        locale => "en"
        match => ["time", "hh:mm:ss a"]
        target => "@timestamp"
    }
}

但数据转换为2016-01-01T05:21:34.000Z 如何将其更改为2016-10-14T05:21:34.000Z

1 个答案:

答案 0 :(得分:1)

我认为logstash足够聪明,可以使用当前年份(正如您所看到的那样),但它不会违反其他字段。

您应该使用所需的完整日期时间字符串创建一个新字段。这样的事情应该在你的grok和日期之间起作用:

grok { }
mutate {
    add_field => { "datetime" => "%{+YYYY.MM.dd} %{time}" }
}
date { }

请务必更改日期{}模式以使用新的日期时间字段及其格式。如果您在调用日期{}后不想要日期时间字段,则可以使用元数据字段,也可以将remove_field作为日期{}的一部分。