如何修改QRadar AQL查询以生成按日志源分组的每日EPS时间图表
解决QRadar时间序列EPS报表的AQL修改方案
原查询的核心问题是:它只统计了整个时间段内每个日志源的总EPS,没有按时间维度拆分数据,所以切换成时间序列图表时没有可展示的多时间点数据。要生成X轴为日期、每条曲线对应单个日志源的时间图表,必须在AQL中加入时间区间分组,让查询返回每个日志源在不同时间点的EPS数据。
修改后的AQL查询(按天聚合示例)
SELECT DATEFORMAT(starttime, 'yyyy-MM-dd') AS "Date", LOGSOURCENAME(logsourceid) AS "Log Source", SUM(eventcount) AS "Events in Day", SUM(eventcount) / 86400 AS "Daily EPS" FROM events WHERE NOT (LOGSOURCENAME(logsourceid) IN ( 'Asset Profiler-2 :: QRadar', 'Custom Rule Engine-8 :: QRadar', 'SIM Audit-2 :: QRadar', 'Health Metrics-2 :: QRadar', 'System Notification-2 :: QRadar', 'SIM Generic Log DSM-7 :: QRadar', 'Anomaly Detection Engine-2 :: QRadar' )) GROUP BY "Date", "Log Source" ORDER BY "Date" ASC, "Daily EPS" DESC LAST Y DAYS
关键修改点说明
- 新增时间维度字段:用
DATEFORMAT(starttime, 'yyyy-MM-dd')把事件时间格式化为日期,作为X轴的数据源。如果需要更细的粒度(比如小时级),可以改成DATEFORMAT(starttime, 'yyyy-MM-dd HH')。 - 调整分组逻辑:
GROUP BY必须同时包含时间字段("Date")和日志源("Log Source"),这样才能得到每个日志源在每个时间区间的独立统计数据。 - EPS计算适配时间区间:原查询用整个时间段的总秒数计算EPS,现在要换成单个时间区间的秒数——按天的话是86400秒,按小时是3600秒,按分钟是60秒,按需调整即可。
- 排序调整:先按日期升序排列,保证时间序列的顺序正确,再按EPS降序方便查看每个时间点的高EPS源。
灵活时间区间示例(按小时聚合)
如果需要更精细的时间粒度,也可以用QRadar的INTERVAL语法:
SELECT starttime AS "Interval Start", LOGSOURCENAME(logsourceid) AS "Log Source", SUM(eventcount) AS "Events in Interval", SUM(eventcount) / 3600 AS "Hourly EPS" FROM events WHERE NOT (LOGSOURCENAME(logsourceid) IN (...)) GROUP BY INTERVAL 1 HOUR, "Log Source" ORDER BY "Interval Start" ASC LAST Y DAYS
图表配置提示
切换成时间序列图表后,在图表设置里把X轴绑定为时间字段("Date"或"Interval Start"),Y轴绑定EPS字段,系列字段选择"Log Source",就能生成每个日志源的EPS趋势曲线了。
内容的提问来源于stack exchange,提问作者Luca Sepe
相关产品推荐
相关产品推荐

