Splunk 查询以查找一段时间内日志中所有出现的布尔键值对

Splunk Query to find all the occurrences of a Boolean key value pair in logs over a period of time

下面是 splunk 事件的片段。我的要求是找出所有出现的 "isOutstanding": true。这里需要注意的是,一个事件may/may不能多次出现。需要查找一段时间内多个事件的总数。

{
  \"school\": {
    \"schoolId\": \"1\",
    \"schoolName\": \"SchoolX\",
    \"schoolType\": \"private\",
    \"students\": [
      {
        \"id\": \"1\",
        \"isOutstanding\": true,
        
      },
      {
        \"id\": \"2\",
        \"isOutstanding\": false,
        
      },
      {
        \"id\": \"3\",
        \"isOutstanding\": false,
        
      }
    ]
  }
}

下面的 Splunk 查询 index=myIndex "isOutstanding":true 给出具有 "isOutstanding": true 的事件计数。但它不考虑一个事件中多次出现的计数。 我怎样才能得到一个事件中所有发生的次数? TIA

您可以结合 rex 功能来提取您要查找的模式的所有实例,然后使用 mvcount 对它们进行计数。


    index=syslog sourcetype=testing isOutstanding
    | rex field=school max_match=0 "(?<outs>isOutstanding\": true") 
    | eval total=mvcount(outs)
    | table total

终于得到了符合我要求的查询

index=myindex sourcetype=mysourceType 
| rex max_match=0 "(?<isOutstanding>isOutstanding\\\":true)"
|  stats count(isOutstanding) as total