Splunk技术求助:提取ERROR级日志并抽取message字段
提取ERROR日志及message字段的解决方案
方法一:利用JSON解析(推荐)
你的日志是标准JSON格式,用Splunk自带的spath命令可以自动解析所有键值对,操作更简单且不易出错:
<你的基础搜索语句> | spath | search level=ERROR | rename message AS extracted_message
spath:自动解析JSON格式日志,将每个键(如level、message)转为独立字段search level=ERROR:直接过滤出级别为ERROR的日志,比你之前用rex提取Err再搜索更高效rename message AS extracted_message:将原message字段重命名为你需要的新字段(如果不需要改名,可省略这部分)
方法二:使用正则表达式(rex)提取
如果必须用正则处理,可直接匹配message字段的内容,替换你之前的rex语句:
<你的基础搜索语句> | rex "\"level\":\"ERROR\"" | rex "\"message\":\"(?<extracted_message>[^\"]+)\""
- 第一个
rex匹配ERROR级别日志(替代你之前的(?<Err>ERROR)) - 第二个
rex通过(?<extracted_message>[^\"]+)捕获双引号内的message内容,存入extracted_message新字段
内容的提问来源于stack exchange,提问作者Diksha
相关产品推荐
相关产品推荐

