Webhook を使用して問題管理システム用に正常性通知を構成するUse a webhook to configure health notifications for problem management systems

この記事では、既存の通知システムに Webhook を使用してデータを送信するように Azure Service Health アラートを構成する方法を示します。This article shows you how to configure Azure Service Health alerts to send data through webhooks to your existing notification system.

Azure サービス インシデントの影響を受けた場合にテキスト メッセージまたはメール経由で通知を受け取るように Service Health アラートを構成することができます。You can configure Service Health alerts to notify you by text message or email when an Azure service incident affects you.

しかし、利用したい既存の外部通知システムが既に構成されている場合もあります。But you might already have an existing external notification system in place that you prefer to use. この記事では、Webhook ペイロードの最も重要な部分について説明します。This article identifies the most important parts of the webhook payload. また、関連するサービスの問題が発生したときに通知を受けられるようにカスタム アラートを作成する方法についても説明します。And it describes how to create custom alerts to notify you when relevant service issues occur.

構成済みの統合を使用する場合は、以下を参照してください。If you want to use a preconfigured integration, see:

紹介ビデオを視聴する:Watch an introductory video:

Service Health の Webhook ペイロードを使用してカスタム通知を構成するConfigure a custom notification by using the Service Health webhook payload

独自のカスタム Webhook 統合を設定するには、Service Health の通知を介して送信される JSON ペイロードを解析する必要があります。To set up your own custom webhook integration, you need to parse the JSON payload that's sent via Service Health notification.

Webhook ペイロードの ServiceHealth を参照してください。See an example ServiceHealth webhook payload.

それがサービス正常性アラートであることを確認するには、context.eventSource == "ServiceHealth" を探します。You can confirm that it's a service health alert by looking at context.eventSource == "ServiceHealth". 以下のプロパティが最も関連性があります。The following properties are the most relevant:

  • data.context.activityLog.statusdata.context.activityLog.status
  • data.context.activityLog.leveldata.context.activityLog.level
  • data.context.activityLog.subscriptionIddata.context.activityLog.subscriptionId
  • data.context.activityLog.properties.titledata.context.activityLog.properties.title
  • data.context.activityLog.properties.impactStartTimedata.context.activityLog.properties.impactStartTime
  • data.context.activityLog.properties.communicationdata.context.activityLog.properties.communication
  • data.context.activityLog.properties.impactedServicesdata.context.activityLog.properties.impactedServices
  • data.context.activityLog.properties.trackingIddata.context.activityLog.properties.trackingId

ご利用の Service Health ダッシュボードへの直接リンクをデスクトップまたはモバイル上に作成するには、特別な URL を生成します。You can create a direct link to your Service Health dashboard on a desktop or mobile device by generating a specialized URL. trackingId と、ご利用の subscriptionId の最初の 3 桁と最後の 3 桁を次の形式で使用します。Use the trackingId and the first three and last three digits of your subscriptionId in this format:

https://app.azure.com/h/ <trackingId> / <subscriptionId の最初の 3 桁と最後の 3 桁>https://app.azure.com/h/<trackingId>/<first three and last three digits of subscriptionId>

たとえば、ご利用の subscriptionId が bba14129-e895-429b-8809-278e836ecdb3 であり、ご利用の trackingId が 0DET-URB の場合、Service Health の URL は次のようになります。For example, if your subscriptionId is bba14129-e895-429b-8809-278e836ecdb3 and your trackingId is 0DET-URB, your Service Health URL is:

https://app.azure.com/h/0DET-URB/bbadb3https://app.azure.com/h/0DET-URB/bbadb3

level を使用して問題の重大度を検出するUse the level to detect the severity of the issue

ペイロードの level プロパティは、InformationalWarningError、または Critical とすることができます (最低の重大度から順に最高の重大度まで)。From lowest to highest severity, the level property in the payload can be Informational, Warning, Error, or Critical.

影響を受けるサービスを解析してインシデントの範囲を特定するParse the impacted services to determine the incident scope

Service Health アラートによって通知される内容は、複数のリージョンおよびサービスにまたがる問題である場合もあります。Service Health alerts can inform you about issues across multiple regions and services. 完全な詳細情報を取得するには、impactedServices の値を解析する必要があります。To get complete details, you need to parse the value of impactedServices.

その内部にあるコンテンツは、エスケープされた JSON 文字列です。エスケープされていない場合は、規則的に解析することができる別の JSON オブジェクトが含まれます。The content that's inside is an escaped JSON string that, when unescaped, contains another JSON object that can be parsed regularly. 次に例を示します。For example:

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

次のようになります。becomes:

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

この例では、次の問題を示します。This example shows problems for:

  • オーストラリア東部とオーストラリア南東部での "アラートとメトリック"。"Alerts & Metrics" in Australia East and Australia Southeast.
  • オーストラリア南東部の "App Service"。"App Service" in Australia Southeast.

HTTP POST 要求によって Webhook 統合をテストするTest your webhook integration via an HTTP POST request

次の手順に従います。Follow these steps:

  1. 送信するサービス正常性のペイロードを作成します。Create the service health payload that you want to send. サービス正常性 Webhook ペイロードの例については、「Azure アクティビティ ログ アラートのための Webhook」を参照してください。See an example service health webhook payload at Webhooks for Azure activity log alerts.

  2. 次のような HTTP POST 要求を作成します。Create an HTTP POST request as follows:

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

    "2XX - Successful" という応答が表示されます。You should receive a "2XX - Successful" response.

  3. PagerDuty に移動して、統合が正常に設定されたことを確認します。Go to PagerDuty to confirm that your integration was set up successfully.

次のステップNext steps