从Splunk查询结果中提取某些字段

时间:2018-10-11 11:57:36

标签: splunk

我想从运行特定搜索查询所导致的一组事件中打印某个字段的值。这是我的查询:

index=abc "all events that contain this string" sourcetype=prd

现在,这将返回某些事件,其中包含一个名为traceId的字段。我想要的是从结果中提取唯一的traceId并将其打印出来。这是我当前正在使用的查询,但无济于事:

index=abc "all events that contain this string" sourcetype=prd | rex field=_raw "traceId: (?<traceId>.*)"

此查询将打印事件中的所有字段(事件以JSON文档的形式打印。)。

有人可以帮我吗?我以前从未与Splunk一起工作过,所以如果问题看起来很简单,请放轻松。

谢谢!

1 个答案:

答案 0 :(得分:1)

几乎没有采样数据来解决这个问题……,我认为您正在获取所有数据,因为:

  1. 您没有使用fields命令来过滤您感兴趣的字段。它将是这样的:`index = abc“所有包含此字符串的事件” sourcetype = prd | rex field = _raw“ traceId:(?。*)|字段fiel1,field2,traceId”
  2. 您的正则表达式是贪婪的,这意味着traceId字段将包含从该点到事件结束的所有文本。尝试更具体一些,例如\d+用于数字数据,甚至[^\s]+用于非空白。

〜HTH