如何编写Splunk查询从嵌套JSON中仅提取字段x?
Splunk提取嵌套JSON里的x字段方法
针对你给出的嵌套JSON事件格式,要只保留x字段,试试这两种Splunk查询写法:
写法1:用spath精准提取+table过滤
spath命令专门用来解析JSON,能直接定位嵌套字段:
index=<你的索引名> sourcetype=<你的源类型> | spath path=c.x output=x | table x
- 说明:
spath path=c.x output=x指定提取c下面的x字段;table x只保留这个字段,其他内容全部去掉。
写法2:用fields保留字段+重命名
如果Splunk已经自动识别了JSON结构(能看到c.x这个字段),可以这么写:
index=<你的索引名> sourcetype=<你的源类型> | fields c.x | rename c.x as x | table x
- 说明:
fields c.x只保留目标嵌套字段,rename把字段名改成简洁的x,最后用table展示。
额外提示
- 如果Splunk没自动解析JSON,先加一句
| spath(不带参数)让它全量解析所有JSON字段,再提取x。 - 要是有些事件没有
x字段,想过滤掉的话,加| where isnotnull(x)就行。
内容的提问来源于stack exchange,提问作者Piotr Gorak
相关产品推荐
相关产品推荐

