使用 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 屬性可以是 InformationalWarningErrorCritical

剖析受影響的服務以判斷事件範圍

服務健康狀態警示可以通知您跨多個區域和服務的問題。 若要取得完整的詳細數據,您必須剖析 的值 impactedServices

內部的內容是逸 出 JSON 字串,在未逸出時,會包含另一個可定期剖析的 JSON 物件。 例如:

{"data.context.activityLog.properties.impactedServices": "[{\"ImpactedRegions\":[{\"RegionName\":\"Australia East\"},{\"RegionName\":\"Australia Southeast\"}],\"ServiceName\":\"Alerts & Metrics\"},{\"ImpactedRegions\":[{\"RegionName\":\"Australia Southeast\"}],\"ServiceName\":\"App Service\"}]"}

成為:

[
   {
      "ImpactedRegions":[
         {
            "RegionName":"Australia East"
         },
         {
            "RegionName":"Australia Southeast"
         }
      ],
      "ServiceName":"Alerts & Metrics"
   },
   {
      "ImpactedRegions":[
         {
            "RegionName":"Australia Southeast"
         }
      ],
      "ServiceName":"App Service"
   }
]

這個範例顯示下列項目的問題:

  • 澳大利亞東部和澳大利亞東南部的「警示和計量」。
  • 澳大利亞東南部的“App Service”。

透過 HTTP POST 要求測試 Webhook 整合

執行下列步驟:

  1. 建立您想要傳送的服務健康情況承載。 如需 Azure 活動記錄警示,請參閱 Webhook 的範例服務健康情況 Webhook 承載。

  2. 建立 HTTP POST 要求,如下所示:

    POST        https://your.webhook.endpoint
    
    HEADERS     Content-Type: application/json
    
    BODY        <service health payload>
    

    您應該會收到「2XX - 成功」回應。

  3. 移至 PagerDuty 以確認您的整合已成功設定。

下一步