从 Splunk 查询结果中提取某些字段
Posted
技术标签:
【中文标题】从 Splunk 查询结果中提取某些字段【英文标题】:Extracting certain fields from Splunk query results 【发布时间】:2018-10-11 11:57:35 【问题描述】:我想从运行特定搜索查询产生的一组事件中打印某个字段的值。这是我的查询:
index=abc "all events that contain this string" sourcetype=prd
现在,这将返回包含名为traceId
的字段的某些事件。我想要的是从结果中提取唯一的traceId
s 并打印出来。这是我目前正在使用的查询,但无济于事:
index=abc "all events that contain this string" sourcetype=prd | rex field=_raw "traceId: (?<traceId>.*)"
此查询打印事件中的所有字段(事件打印为 JSON 文档。
有人可以帮我解决这个问题吗?我以前从未使用过 Splunk,所以如果问题看起来有点简单,请放轻松。
谢谢!
【问题讨论】:
几乎不可能在没有看到一些示例事件的情况下调试正则表达式问题。然而,也许这根本不是一个正则表达式问题。显示所有字段,因为这是默认行为,除非您告诉 Splunk 要显示哪些字段(您没有)。尝试将| fields traceId
添加到您的查询中。
@RichG 作品。谢谢!
【参考方案1】:
在没有一些样本数据的情况下回答这个问题几乎是不可能的......不过,我认为你得到了所有数据,因为:
-
您没有使用
fields
命令过滤您感兴趣的字段。它会像这样:`index=abc "所有包含此字符串的事件" sourcetype=prd | rex field=_raw "traceId: (?.*) | fields fiel1, field2, traceId"
您的正则表达式是贪婪的,这意味着traceId
字段将包含从该点到事件结束的所有文本。尝试更具体,例如 \d+
用于数字数据,甚至 [^\s]+
用于非空白。
~HTH
【讨论】:
以上是关于从 Splunk 查询结果中提取某些字段的主要内容,如果未能解决你的问题,请参考以下文章
如何在图表管道后保留Splunk中的表字段?尝试将值连接到'over'参数,但得到'未找到结果'