我正在使用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
?
答案 0 :(得分:1)
我认为logstash足够聪明,可以使用当前年份(正如您所看到的那样),但它不会违反其他字段。
您应该使用所需的完整日期时间字符串创建一个新字段。这样的事情应该在你的grok和日期之间起作用:
grok { }
mutate {
add_field => { "datetime" => "%{+YYYY.MM.dd} %{time}" }
}
date { }
请务必更改日期{}模式以使用新的日期时间字段及其格式。如果您在调用日期{}后不想要日期时间字段,则可以使用元数据字段,也可以将remove_field作为日期{}的一部分。