如何配置Azure VM可用性警报:用户/自动化关机不触发,异常停机触发
配置Azure VM可用性警报(排除主动关机场景)
由于未启用VM Insights,可通过Azure Monitor的指标警报或日志警报实现需求,核心是区分「主动关机(用户/自动化账户发起)」和「意外停机(崩溃/微软端故障)」的触发源:
方案一:基于VM电源状态指标的警报(快速配置)
- 创建警报规则
- 进入Azure Monitor → 警报 → 创建 → 警报规则
- 目标资源:选择需监控的VM
- 信号名称:选择Virtual Machine Power State
- 配置信号逻辑
- 聚合类型:选择Latest
- 运算符:选择Equals
- 值:填写
Deallocated或Stopped(可根据需求同时包含两种状态) - 添加维度筛选:维度选
Shutdown Reason,运算符选Not In,值选择User Initiated和Automation Account Initiated
- 完成警报配置
- 关联已创建的动作组(含邮件通知)
- 填写警报名称、描述,保存规则
方案二:基于Activity Log的日志警报(精准区分原因)
- 创建日志警报规则
- 进入Azure Monitor → 警报 → 创建 → 警报规则
- 目标资源:选择需监控的VM
- 信号名称:选择Activity Log - Administrative
- 编写Kusto查询逻辑
输入以下查询语句,筛选出非主动发起的停机操作:AzureActivity | where ResourceType == "MICROSOFT.COMPUTE/VIRTUALMACHINES" | where OperationNameValue in ("Microsoft.Compute/virtualMachines/deallocate/action", "Microsoft.Compute/virtualMachines/stop/action") | where ActivityStatusValue == "Success" | where Reason !in ("User initiated shutdown", "Automation Account initiated shutdown") - 配置触发条件
- 基于结果计数,运算符选Greater Than,阈值设为0
- 关联动作组并保存规则
注意事项
- 无需额外配置Activity Log采集,Azure默认保留此类日志数据
Shutdown Reason的具体值可能因区域或VM配置略有差异,可先查看目标VM的Activity Log确认实际值后调整筛选条件- 测试时可分别触发主动关机(用户手动停止)和意外停机(强制终止VM进程),验证警报是否按预期触发或抑制
内容的提问来源于stack exchange,提问作者ArunV
相关产品推荐
相关产品推荐

