个人logtash最重要和方便的功能就是日志的过滤和分类了,特此记录一下syslog的时间过滤和替换@timestamp的方法。
网上大多数的过滤规则和替换方法与新版不太相同,详情建议参考官方文档中过滤插件的日期一栏,既然都看到这里了logstash的使用方法我就不介绍了,直接上干货,logstash配置里的filter书写(重点是grok的正则和添加tag):
filter {
grok{
match => ["message","(?<logdate>%{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
网友评论