0

我的日志文件在同一个实例中记录了一堆消息,所以简单地搜索一个消息 id 后跟一个计数是行不通的(当我想每个事件计数多达 50 个时,我只会计算每个事件 1 个)。我想首先将搜索范围缩小到显示正在发送消息的事件(“入队”),然后计算字符串“mid”的所有实例。

有任何想法吗?我对 splunk 很不满意。如何让“mid”的所有实例成为可数字段?

index=* service=myservice "enqueued" "mid" | stats count mid
4

1 回答 1

4

您当前的搜索不起作用,因为您(可能)没有名为“mid”的字段。
要在事件中搜索字符串,您可以使用rex. 尝试这个。

index=* service=myservice "enqueued" "mid" 
| rex max_match=0 "(?<mids>mid)" 
| eval midCount=mvcount(mids) 
| table midCount

顺便说一句,“index=*”是一种不好的做法。它迫使 Splunk 在每个索引中进行搜索,这确实减慢了速度。第一次搜索后,您应该知道并使用真正的索引名称。

于 2018-04-25T01:54:25.913 回答