使用 Webhook 为问题管理系统配置运行状况通知
本文介绍如何配置 Azure 服务运行状况警报,以通过 Webhook 将数据发送到现有的通知系统。
你可以配置服务运行状况警报,以便在 Azure 服务事件影响到自己时,通过短信或电子邮件收到通知。
但是,你可能已经部署了你偏好使用的现有外部通知系统。 本文将介绍 Webhook 有效负载的最重要部分, 并介绍如何创建自定义警报,以便在服务问题影响到自己时收到通知。
若要使用预配置的集成,请参阅:
观看介绍视频:
使用服务运行状况 Webhook 有效负载配置自定义通知
若要设置自己的自定义 Webhook 集成,需分析通过服务运行状况通知发送的 JSON 有效负载。
请参阅示例 ServiceHealth
Webhook 有效负载。
可以通过查看 context.eventSource == "ServiceHealth"
来确认它是否为服务运行状况警报。 以下属性是最相关的属性:
- data.context.activityLog.status
- data.context.activityLog.level
- data.context.activityLog.subscriptionId
- data.context.activityLog.properties.title
- data.context.activityLog.properties.impactStartTime
- data.context.activityLog.properties.communication
- data.context.activityLog.properties.impactedServices
- data.context.activityLog.properties.trackingId
针对事件创建服务运行状况仪表板的链接
通过生成专用 URL,可在桌面或移动设备上创建服务运行状况仪表板的直接链接。 使用 trackingId 以及采用以下格式的 subscriptionId 的前三个和最后三个数字:
https://app.azure.com/h/ <trackingId>/<subscriptionId 的前三个和最后三个数字>
例如,如果 subscriptionId 为 bba14129-e895-429b-8809-278e836ecdb3,trackingId 为 0DET-URB,则服务运行状况 URL 为:
https://app.azure.com/h/0DET-URB/bbadb3
使用级别来检测问题的严重性
有效负载中的 level 属性可以是 Informational、Warning、Error 或 Critical(从最不严重到最严重排列)。
分析受影响的服务以确定事件范围
服务运行状况警报可告知你有关多个区域和服务的问题。 若要获取完整详细信息,需分析 impactedServices
的值。
其中的内容为转义的 JSON 字符串,取消转义时,包含另一个可以定期分析的 JSON 对象。 例如:
{"data.context.activityLog.properties.impactedServices": "[{\"ImpactedRegions\":[{\"RegionName\":\"China East\"},{\"RegionName\":\"China North\"}],\"ServiceName\":\"Alerts & Metrics\"},{\"ImpactedRegions\":[{\"RegionName\":\"China North\"}],\"ServiceName\":\"App Service\"}]"}
变为:
[
{
"ImpactedRegions":[
{
"RegionName":"China East"
},
{
"RegionName":"China North"
}
],
"ServiceName":"Alerts & Metrics"
},
{
"ImpactedRegions":[
{
"RegionName":"China North"
}
],
"ServiceName":"App Service"
}
]
此示例显示:
- 中国东部和中国北部的“警报和指标”
- 中国北部的“应用服务”。
通过 HTTP POST 请求测试 Webhook 集成
执行以下步骤:
创建要发送的服务运行状况有效负载。 查看 Azure 活动日志警报的 Webhook 中的示例服务运行状况 Webhook 有效负载。
按如下所示创建 HTTP POST 请求:
POST https://your.webhook.endpoint HEADERS Content-Type: application/json BODY <service health payload>
应会收到“2XX - 成功”响应。
转到 PagerDuty,确认集成已设置成功。
后续步骤
- 查看活动日志警报 webhook 架构。
- 了解服务运行状况通知。
- 详细了解操作组。