如何创建Azure Log Analytics查询以跟踪CPU使用率并设置告警
Azure Log Analytics VM高CPU使用率告警查询实现
首先确认目标Azure VM已开启性能日志收集,数据已上报到Log Analytics工作区,直接使用以下Kusto查询语句即可筛选出符合「CPU使用率达到90%且持续不低于30分钟」条件的虚拟机:
// 适用于使用Log Analytics代理(MMA/OMS)的VM Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" // 限定查询过去30分钟内的性能数据 | where TimeGenerated >= ago(30m) | summarize AvgCPU = avg(CounterValue), // 计算CPU使用率≥90%的采样点占比 QualifiedSampleRatio = countif(CounterValue >= 90) * 1.0 / count() by Computer, _ResourceId // 要求30分钟内所有采样点CPU都≥90%,且平均CPU≥90%,避免偶发尖峰误报 | where QualifiedSampleRatio == 1 and AvgCPU >= 90
告警配置注意事项
- 写完查询后点击页面顶部「新建告警规则」进入配置流程
- 告警逻辑处设置:运算符为「大于或等于」,阈值为
1,评估周期选30分钟,检查频率可根据需求选择5~10分钟 - 可根据业务容错需求调整
QualifiedSampleRatio阈值,比如允许少量采样波动可修改为QualifiedSampleRatio >= 0.9,对应容忍10%的采样低于90%
如果你使用的是新版Azure Monitor代理(AMA),性能数据存储在
InsightsMetrics表,使用以下查询语句即可:// 适用于使用Azure Monitor代理(AMA)的VM InsightsMetrics | where Namespace == "Processor" and Name == "UtilizationPercentage" | where TimeGenerated >= ago(30m) | summarize AvgCPU = avg(Val), QualifiedSampleRatio = countif(Val >= 90) * 1.0 / count() by Computer, _ResourceId | where QualifiedSampleRatio == 1 and AvgCPU >= 90
内容的提问来源于stack exchange,提问作者itye1970
相关产品推荐
相关产品推荐

