如何为Azure Web应用自定义健康检查配置异常告警通知
解决方案:Azure App Service自定义健康检查异常邮件告警
核心实现思路
借助Azure Monitor的日志查询+告警规则机制,直接捕获自定义健康检查的异常状态,无需额外编写轮询检查代码。
具体操作步骤
1. 确认健康检查日志已采集
确保你的App Service已开启日志采集(如HttpLogs或AppServiceConsoleLogs),这样/health端点的请求日志会被同步到Azure Monitor日志系统中。
2. 编写日志查询语句
在Azure Monitor的日志界面,使用以下Kusto查询筛选健康检查的异常响应(可根据实际失败返回码调整条件):
AppServiceHttpLogs | where UriStartsWith("/health") | where StatusCode == 503 or StatusCode >= 500 // 匹配健康检查失败的状态码 | summarize count() by bin(TimeGenerated, 1m), _ResourceId
该查询会统计最近1分钟内/health端点返回错误状态码的请求次数。
3. 创建基于日志的告警规则
- 进入Azure Monitor的「告警规则」页面,点击「创建」→「告警规则」
- 选择目标资源为你的App Service实例
- 信号类型选择「日志」,并关联刚才编写的日志查询
- 设置触发条件:当查询返回的
count() > 0时触发告警(表示健康检查出现异常) - 配置评估频率:建议设为每1分钟评估一次,查看过去1分钟的日志数据
4. 配置邮件通知动作组
- 在告警规则的「动作」环节,创建或选择一个动作组
- 添加「电子邮件/短信/推送/语音」动作,填写接收告警的邮箱地址
- 保存动作组及告警规则
关键注意点
- 「资源健康」是Azure平台层面的资源可用性监控,和应用级的自定义健康检查不是同一概念,无需在此配置。
- 平台指标里的「健康检查状态」仅统计请求次数类数据,无法直接判断单次检查是否失败,因此日志查询方案更精准。
内容的提问来源于stack exchange,提问作者Chris Fellows
相关产品推荐
相关产品推荐

