总的来说,我正试图设置一个天蓝色警报,当一台电脑通过“心跳表”关机时,我会发电子邮件给我。
假设我的Azure订阅中有5台机器,它们每分钟向一张名为Heart节拍的桌子报告一次,所以看起来如下:

目前,我可以查询“==‘Computer’name‘computer’name‘TimeGenerated >ago(500万)”,并找出一台计算机在过去5分钟内没有报告,并且已经停机(感谢您对这篇伟大的文章的查询。)。
我对任何查询语言都不是很有经验,所以我想知道是否有一个查询可以检查是否有任何计算机在最后5-10分钟期间停止发送它的日志,因此会被关闭。Azure使用KQL或Kusto查询语言进行查询,上面的链接中有文档。
谢谢你的帮助
发布于 2022-05-19 19:20:05
一种选择是计算每台计算机的最大报告时间,然后筛选到最大报告时间大于5分钟的计算机:
let all_computers_lookback = 12h
;
let monitor_looback = 5m
;
Heartbeat
| where TimeGenerated > ago(all_computers_lookback)
| summarize last_reported = max(TimeGenerated) by computer
| where last_reported < ago(monitor_looback)另一种选择:
注意:如果您有超过100万台计算机,则可以使用join运算符而不是in()运算符。
let all_computers_lookback = 12h
;
let monitor_looback = 5m
;
let all_computers =
Heartbeat
| where TimeGenerated > ago(all_computers_lookback)
| distinct computer
;
let reporting_computers =
Heartbeat
| where TimeGenerated > ago(monitor_looback)
| distinct computer
;
let non_reporting_computers =
all_computers
| where computer !in(reporting_computers)
;
non_reporting_computershttps://stackoverflow.com/questions/72309970
复制相似问题