从 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 的字段的某些事件。我想要的是从结果中提取唯一的traceIds 并打印出来。这是我目前正在使用的查询,但无济于事:

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_常用关键字函数(施工中。。。)

如何在图表管道后保留Splunk中的表字段?尝试将值连接到'over'参数,但得到'未找到结果'

Splunk通过正则表达式提取关键字

Splunk 正则表达式字段提取

Typescript Mongoose 以类型安全的方式忽略查询结果中的某些字段

splunk安装介绍