如何在Splunk中查询含PROD*字段名的事件并获取字段值?
解决方法
你之前的搜索语句无效是因为Splunk不支持直接用"PROD*"="*"这种字段名通配的匹配语法。要实现查找字段名以PROD开头的事件并获取对应字段值,有两种常用方式:
方式1:仅保留所有PROD开头的字段(包含无对应字段的事件,对应字段为空)
直接用fields命令筛选字段,会显示所有基础搜索结果中PROD开头的字段,没有该字段的事件会显示为空值:
index=myIndex sourcetype=mySourceType | fields PROD*
方式2:仅保留至少有一个PROD开头字段的事件
如果只想保留确实存在PROD开头字段的事件,可以用foreach遍历所有符合前缀的字段,标记后过滤:
index=myIndex sourcetype=mySourceType | foreach PROD* [ eval has_prod_field = 1 ] | where isnotnull(has_prod_field) | fields PROD* _time _raw // 可按需保留_time(事件时间)、_raw(原始内容)等额外字段
补充说明
foreach PROD*会遍历所有字段名以PROD开头的字段,只要存在任意一个,就会给has_prod_field赋值为1fields命令后的PROD*会保留所有符合前缀的字段,你可以根据需求添加其他需要展示的字段,比如事件时间_time
内容的提问来源于stack exchange,提问作者kagarlickij
相关产品推荐
相关产品推荐

