如何编写Grok模式解析Kibana中的指定日志?含两个需求
问题1:匹配完整日志的正确Grok表达式
原始日志是标准JSON格式,你的表达式未对应JSON的键名与结构,导致匹配失败。正确的Grok表达式如下:
^\{"log":%{QS:log},"stream":%{QS:stream},"time":%{QS:time}\}$
^和$限定匹配整条日志的开头与结尾,避免部分匹配%{QS:字段名}用于捕获带双引号的字符串值,分别对应日志里的log、stream、time三个字段- 严格对应日志中的JSON键名与标点(比如逗号、大括号),保证结构匹配
问题2:仅保留log字段内容的Grok模式
若只需提取并保留log字段的内容,只需捕获log对应的值,忽略其他字段即可,表达式如下:
^\{"log":%{QS:log}.*\}$
如果想要更精确匹配后续结构(避免意外匹配无关内容),可以使用:
^\{"log":%{QS:log},"stream":%{QS},"time":%{QS}\}$
这两个表达式都会仅将log字段的内容捕获到名为log的字段中,未命名的捕获内容会被自动丢弃,最终只保留你需要的log字段数据。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

