logstash中的timestamp时间戳时间由logtash在采集到日志时间时候自动设置,有些时候,需要把这个默认的timestamp时间修改为日志数据中提取到的时间,使两者一致。可以通过配置文件实现:
filter {
grok {
match => [
"message", "\[%{DATA:logtime}\] "
]
break_on_match => false
}
date {
match=> ["logtime","yyyy-MM-dd HH:mm:ss.SSS"]
target=>"@timestamp"
}
}
上述配置的grok将匹配每一行日志中开始的[]里面的数据作为时间放入到logtime中,然后在date里面,将按照yyyy-MM-dd HH:mm:ss.SSS的日期时间格式把时间最终覆盖系统默认的timestamp中。
也可以通过ruby代码实现把自己提取到的日志时间作为系统默认的时间戳:
filter {
ruby {
code => "
event.set('@timestamp',event.get('this_is_my_log_time'))
"
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://zhangphil.blog.csdn.net/article/details/125223184
内容来源于网络,如有侵权,请联系作者删除!