如同磁铁吸引四周的铁粉,热情也能吸引周围的人,改变周围的情况。

@timestamp获取message时间

Logstash | 作者 shitangjiejie | 发布于2018年01月23日 | 阅读数:12266

请问如何将message中的时间覆盖@timestamp的时间?message时间格式为:14:29:53.628
我logstash的grok配置为:
grok {
        match => ["message", "%{TIMESTAMP_ISO8601:logdate}"]
    }
    date {
        match => ["logdate", "HH:mm:ss.SSS"]
        target => "@timestamp"
    }
message时间无法传递给@timestamp,请问各位大神正确配置应该是怎样的?
 
已邀请:

strglee

赞同来自:

date 当然不能只有时分秒了,年月日也得加上(date就是timestamp时间戳,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,只有时分秒没有意义)
 date {

match => ["logdate", "yyyy-MM-dd HH:mm:ss.SSS"]

target => "@timestamp"

}

strglee

赞同来自:

filter {
grok {
match => ["message", "(?<logdate>\d{2}:\d{2}:\d{2}\.\d{3})"]
}
mutate {
add_field => {"new_logdate" => "%{+YYYY-MM-dd} %{logdate}"}
}
date {
match => ["new_logdate", "yyyy-MM-dd HH:mm:ss.SSS"]
target => "@timestamp"
}
}
这样用正则获取时分秒,然后添加一个新的字段拼接下年月日应该就可以了 

要回复问题请先登录注册