Azure应用网关故障时生成警报的实现方案咨询
实现Azure应用网关故障即时邮件告警的可行方案
以下是几个能满足需求的具体方案,可根据实际场景选择:
方案1:资源日志+Log Analytics告警
- 先开启应用网关的资源日志(包含
ApplicationGatewayAccessLog和ApplicationGatewayPerformanceLog),将日志流转到Log Analytics工作区。 - 编写Kusto查询检测故障场景,示例如下:
- 检测后端池健康异常:
AzureDiagnostics | where ResourceType == "APPLICATIONGATEWAYS" and OperationName == "ApplicationGatewayBackendHealth" | where BackendHealthStatus_s != "Healthy" | summarize anomalyCount = count() by ResourceName, bin(TimeGenerated, 1m) | where anomalyCount > 0 - 检测网关部署/运行状态失败:
AzureActivity | where ResourceType == "Microsoft.Network/applicationGateways" | where OperationNameValue in ("Microsoft.Network/applicationGateways/write", "Microsoft.Network/applicationGateways/stop/action") | where parse_json(Properties).ProvisioningState in ("Failed", "Stopped") | project TimeGenerated, ResourceName, OperationName, StatusValue
- 检测后端池健康异常:
- 基于上述查询创建Log Analytics告警规则,设置触发阈值(比如连续1分钟检测到异常),关联邮件通知的动作组,即可实现故障即时告警。
方案2:可用性探针+指标告警
- 利用Azure Monitor的可用性测试,创建针对应用网关前端地址的HTTP/HTTPS测试,设置测试频率(比如1分钟1次)。
- 基于可用性测试的失败次数指标创建告警规则:当连续3次测试失败时触发告警。
- 这种方案直接模拟用户访问场景,能精准检测网关是否真的对外不可用,弥补原生指标的覆盖盲区。
方案3:优化资源运行状况告警配置
- 虽然原生资源运行状况的事件触发存在延迟,但可以调整告警规则的触发逻辑:
- 在Azure Monitor中创建“资源运行状况”类型的告警规则,设置信号条件为状态等于 Degraded 或 Unavailable。
- 勾选“当资源运行状况状态变更时触发告警”,确保状态从正常切换到异常时立即触发,而不是仅在恢复时通知。
方案4:Event Grid事件驱动告警
- 为应用网关创建Event Grid订阅,订阅
Microsoft.Network/applicationGateways资源的状态变更事件和资源故障事件。 - 将Event Grid的事件端点指向逻辑应用:在逻辑应用中配置触发器,当收到故障相关事件时,直接调用Office 365连接器发送邮件通知。
- 这种方案能直接监听网关的状态变更,实现近乎实时的告警触发。
内容的提问来源于stack exchange,提问作者Arpit
相关产品推荐
相关产品推荐

