如何编写Splunk查询按actionFlag值分组统计事件并生成表格?
Splunk 查询实现按 actionFlag 分组的事件分布表格
完整查询语句
index=你的索引 sourcetype=你的数据源类型 earliest=-30m latest=now | rex "actionFlag:\s*(?<actionFlag>\d+)" | where actionFlag IN (1,2,3) | stats count(eval(actionFlag=1)) as "actionFlag = 1" count(eval(actionFlag=2)) as "actionFlag = 2" count(eval(actionFlag=3)) as "actionFlag = 3"
分步解释
筛选目标日志
index=你的索引 sourcetype=你的数据源类型:替换为实际的Splunk索引和数据源类型,定位需要分析的日志。earliest=-30m latest=now:指定查询最近30分钟的数据,可根据需求调整时间范围(比如earliest=-1h代表最近1小时,或用具体时间戳如earliest="2023-08-15 00:00:00")。
提取actionFlag字段
rex "actionFlag:\s*(?<actionFlag>\d+)":通过正则表达式精准提取字段。其中:actionFlag:\s*匹配日志中"actionFlag: "的固定格式,\s*兼容冒号后任意数量的空格;(?<actionFlag>\d+)是命名捕获组,将匹配到的数字存入名为actionFlag的字段中。
过滤有效数据
where actionFlag IN (1,2,3):仅保留actionFlag值为1、2、3的事件,避免无关数据干扰统计结果。
生成目标表格
stats count(eval(actionFlag=1)) as "actionFlag = 1":统计actionFlag等于1的事件数量,并将列名设置为"actionFlag = 1";- 同理,另外两行分别统计actionFlag为2和3的事件数,最终生成你需要的三列表格。
内容的提问来源于stack exchange,提问作者Shiv
相关产品推荐
相关产品推荐

