使用Logstash过滤插件Grok实现多模式匹配
一个日志文件很有可能存在多种不同数据格式的日志,tomcat的日志文件中就存在多种不同格式的日志数据。
我们需要兼容几种不同格式的日志,就需要使用到grok的多模式匹配了,针对日志数据字段的不同,配置多种格式的正则表达式,将可能出现的数据格式全部都配置一个正则模式,日式数据采集以后,首先使用第一个正则模式去匹配,不兼容则使用第二个正则去匹配,直到最终匹配到对应的内容。
grok多模式语法格式:
grok {
mastch => [
"message","%{IP:client_ip}",
"message","%{IP:client_ip} %{WORD:request_type}"
]
}
mastch从{}变成了[]
字段间的不同表达式以,进行分隔
原来的字段名称后面是=>改成,
案例:
模拟数据:
"10.1.1.1 GET /subsaji/akshd/sadjhi/index 1726 0.124 521123"
192.168.223.223 GET /resource/js/iuys.png 876 1.23 xyszs 12345"
采集这两种不同内容格式的日志数据
1)首先编写正则表达式分别匹配出两个数据的字段
#第一条数据
192.168.10.1 GET /subsa