Splunk正则提取日志JSON失败,该正则在regex101可正常匹配
Splunk正则提取JSON失效问题解决方案
失效核心原因
- 原rex语句未将正则规则用引号包裹,Splunk无法正确识别正则内容,导致规则完全不生效
- 你需要提取的JSON内容实际跨2行存储,未正确启用多行匹配规则时无法完整抓取跨段落内容
- Splunk中使用双引号包裹正则时,内部双引号的转义规则容易出现解析异常,会干扰匹配逻辑
正确使用方式
直接使用如下rex语句完成提取,正则用单引号包裹,无需转义内部的双引号,同时兼容跨行的JSON结构:
| rex field=_raw '(?msi)(?<json_field>\{"unique_appcodes".+\}$)'
提取到json_field字段后,即可直接用spath命令解析JSON内容:
| spath input=json_field
执行后即可拿到JSON中所有结构化字段,可直接用于后续统计、过滤操作。
内容的提问来源于stack exchange,提问作者Rczone
相关产品推荐
相关产品推荐

