如何编写Kusto查询语句获取Sentinel中上个月的日志数据
上月全量日志查询语句(适配Power BI导出)
你当前使用的| where TimeGenerated > ago(30d)语句是取当前时间往前推30天的日志,无法匹配自然月的时间范围,遇到大小月、闰月都会出现数据多取/漏取的问题,不适合导出上月完整数据。
通用动态查询语句(自动匹配上月范围)
无需手动修改时间,任意时间运行都能自动获取上个月完整的自然月日志:
// 替换为你实际的日志表名 YourLogTableName | where TimeGenerated >= startofmonth(now(), -1) and TimeGenerated < startofmonth(now()) // 可按需添加字段筛选逻辑,仅保留导出需要的字段,减少数据体积 | project TimeGenerated, EventLevel, Message, UserAccount, SourceIp
语句逻辑说明:
startofmonth(now(), -1):自动计算上个月1号的0点整,作为查询起始边界startofmonth(now()):自动计算当前月1号的0点整,作为查询结束边界- 采用
>= 起始 and < 结束的时间判断逻辑,可以完整覆盖上月最后一天的所有毫秒级日志,不会出现边界数据遗漏
指定历史月份查询语句
如果需要导出非上一个月的历史月份数据,可以使用固定时间边界的写法:
YourLogTableName // 示例为查询2024年3月的全量日志,修改前后日期即可调整目标月份 | where TimeGenerated >= datetime(2024-03-01) and TimeGenerated < datetime(2024-04-01)
Power BI导出适配提示
- 提前用
project语句仅保留需要导出的字段,可大幅降低数据导出和Power BI加载的耗时 - 如果日志量过大,可以先通过
summarize语句做预聚合后再导出,进一步减少数据体积
内容的提问来源于stack exchange,提问作者St Online
相关产品推荐
相关产品推荐

