如何在Sumo Logic日志搜索中显示特定事件的0计数结果?
解决Sumo Logic无匹配日志时显示0计数的问题
要实现当POTENTIAL_IMPORT_DUPLICATION日志不存在时,结果表中仍显示该事件及0计数,你需要手动添加一条默认记录,再与原有统计结果合并。修改后的查询语句如下:
_sourceCategory=infosec/edr/logs/prod | json "message" as msg | json field=msg "message" | count(message) by message // 添加默认的POTENTIAL_IMPORT_DUPLICATION记录,计数为0 | append [ make_results | eval message="POTENTIAL_IMPORT_DUPLICATION", _count=0 ] // 按message分组取最大计数(确保实际有日志时用真实计数,无日志时保留0) | max(_count) as _count by message // 可选:如果只关心目标事件和其他已有事件,可添加过滤 // | where message matches "POTENTIAL_IMPORT_DUPLICATION" OR _count > 0
关键步骤说明:
append [make_results | eval ...]:生成一条包含目标事件名称、计数为0的虚拟记录,追加到原有统计结果后max(_count) as _count by message:对相同message的记录取最大计数——如果原有统计中存在该事件的真实计数(>0),则保留真实值;如果只有默认的0,则保留0- 可选的
where子句:可以过滤掉其他无计数的默认记录(如果不需要展示其他事件的0计数)
如果需要同时处理多个这类需要默认0的事件,也可以扩展append里的内容,比如:
| append [ make_results | eval message=split("POTENTIAL_IMPORT_DUPLICATION,OTHER_EVENT_NAME", ",") | mvexpand message | eval _count=0 ]
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

