5月30日 12:39
Logstash Grok 过滤器是什么?如何解析日志?
Grok 是 Logstash 里把非结构化日志拆成字段的过滤器,本质是“命名正则模板”。它用 %{PATTERN:field} 把文本匹配成字段,比如把 Nginx 日志拆出 IP、状态码、请求路径。面试时要说清:Grok 适合解析固定格式文本;解析失败会打 _grokparsefailure;性能上要避免一上来就用 %{GREEDYDATA} 贪婪匹配。
追问
Grok 和普通正则有什么区别?
Grok 是对正则的封装,内置了很多模式,如 IP、NUMBER、TIMESTAMP_ISO8601。
解析失败怎么排查?
先用 Grok Debugger 验证模式,再看事件里是否出现 _grokparsefailure。
写段配置
conffilter { grok { match => { "message" => "%{TIMESTAMP_ISO8601:time} %{LOGLEVEL:level} %{GREEDYDATA:msg}" } } }