logstash默认timestamp时间戳值修改为日志中提取的时间

x33g5p2x  于2022-06-13 转载在 Logstash  
字(0.5k)|赞(0)|评价(0)|浏览(818)

logstash中的timestamp时间戳时间由logtash在采集到日志时间时候自动设置,有些时候,需要把这个默认的timestamp时间修改为日志数据中提取到的时间,使两者一致。可以通过配置文件实现:

  1. filter {
  2. grok {
  3. match => [
  4. "message", "\[%{DATA:logtime}\] "
  5. ]
  6. break_on_match => false
  7. }
  8. date {
  9. match=> ["logtime","yyyy-MM-dd HH:mm:ss.SSS"]
  10. target=>"@timestamp"
  11. }
  12. }

上述配置的grok将匹配每一行日志中开始的[]里面的数据作为时间放入到logtime中,然后在date里面,将按照yyyy-MM-dd HH:mm:ss.SSS的日期时间格式把时间最终覆盖系统默认的timestamp中。

也可以通过ruby代码实现把自己提取到的日志时间作为系统默认的时间戳:

  1. filter {
  2. ruby {
  3. code => "
  4. event.set('@timestamp',event.get('this_is_my_log_time'))
  5. "
  6. }
  7. }

相关文章