logstash DATE过滤插件

2019-11-25  本文已影响0人  _str_

说明

日期过滤器用于解析字段中的日期,然后使用该日期或时间戳作为事件的logstash时间戳。

日期过滤器对于事件排序和回填旧数据尤其重要。如果您在活动中没有得到正确的日期,那么稍后搜索它们可能会导致排序混乱。

在没有此过滤器的情况下,如果未在事件中设置时间戳,logstash将基于它第一次看到该事件(在输入时间)选择一个时间戳。例如,对于文件输入,时间戳记设置为每次读取的时间

所以我们需要在logstash挖掘日志的时候将时间戳换成日志本身产生的时间,不应该是logstash挖掘时候的系统时间 这样我们会混乱

编写一个date过滤插件


input { stdin { } }

filter {
  grok { match => [ "message", "%{HTTPDATE:[@metadata][timestamp]}" ] }
  date { match => [ "[@metadata][timestamp]", "dd/MMM/yyyy:HH:mm:ss Z" ] }
}

output {
  stdout { codec => rubydebug }
--------------
date插件还可以写成这种
date { 
      match => [ "logdate", "dd/MMM/yyyy:HH:mm:ss Z" ] 
      target => "@timestamp"
}
-- 修改时间戳成为日志产生的时间

注意:时区偏移量只需要用一个字母 Z 即可。

image.png

时区问题的解释

很多中国用户经常提一个问题:为什么 @timestamp 比我们早了 8 个小时?怎么修改成北京时间?
上一篇 下一篇

猜你喜欢

热点阅读