logstash 新版7.0用messages获取日志里的时间并替换@timestamp

  个人logtash最重要和方便的功能就是日志的过滤和分类了,特此记录一下syslog的时间过滤和替换@timestamp的方法。

   网上大多数的过滤规则和替换方法与新版不太相同,详情建议参考官方文档中过滤插件的日期一栏,既然都看到这里了logstash的使用方法我就不介绍了,直接上干货,logstash配置里的filter书写(重点是grok的正则和添加tag):

filter {
        grok{
           match => ["message","(?%{MONTH} +%{MONTHDAY} %{TIME})"]
           }
        date{
           match => [ "logdate", "MMM dd HH:mm:ss"]
           locale => "en"
           add_tag => "@timestamp"
           timezone => "Asia/Shanghai"
        }
       mutate{
           remove_field => ["logdate"]
        }
}

  这是可以匹配出/var/log/messages的系统日志时间的并替换掉@timestamp

效果图:


image.png

可以看出messages与@timestamp完全一致

分享一下Logstash正则表达式分享的地址和在线grok测试的地址
在线gork正则的地址:http://grokdebug.herokuapp.com/
Logstash基础正则地址:https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns

你可能感兴趣的:(logstash 新版7.0用messages获取日志里的时间并替换@timestamp)