Freigeben über


Senden von Warnungen an externe Systeme mithilfe von Webhook

Erfahren Sie, wie Sie Azure Service Health-Warnungen mithilfe von Webhooks einrichten, um Echtzeitbenachrichtigungen zu Dienstvorfällen zu erhalten. Dieser Ansatz ermöglicht eine nahtlose Integration in Ihre vorhandenen Benachrichtigungsplattformen wie ServiceNow, PagerDuty oder OpsGenie.

Webhook verwenden, um Gesundheitsbenachrichtigungen zu konfigurieren

In diesem Leitfaden werden die wichtigsten Komponenten der Webhook-Nutzlast beschrieben und veranschaulicht, wie Sie benutzerdefinierte Warnungen einrichten, um Sie über relevante Dienstprobleme auf dem Laufenden zu halten.

Wenn Sie eine vorkonfigurierte Integration verwenden möchten, lesen Sie:

Sehen Sie sich ein Einführungsvideo an:

Konfigurieren einer benutzerdefinierten Benachrichtigung mit der Service Health-Webhooknutzlast

Um Ihre eigene benutzerdefinierte Webhook-Integration einzurichten, müssen Sie die JSON-Nutzlast analysieren, die über die Service Health-Benachrichtigung gesendet wird.

Hier finden Sie ein Beispiel für die ServiceHealth-Webhooknutzlast.

Durch einen Blick auf context.eventSource == "ServiceHealth" können Sie bestätigen, dass dies eine Service Health-Warnung ist. Die folgenden Eigenschaften sind die relevantesten:

  • daten.kontext.aktivitätsprotokoll.status
  • data.context.activityLog.level
  • data.context.activityLog.subscriptionId
  • data.context.activityLog.properties.title
  • data.context.activityLog.properties.impactStartTime
  • Daten.Kontext.Aktivitätsprotokoll.Eigenschaften.Kommunikation
  • data.context.activityLog.properties.impactedServices
  • data.context.activityLog.properties.trackingId

Erstellen Sie einen direkten Link zu Ihrem Dienststatus-Dashboard auf einem Desktop oder mobilen Gerät, indem Sie eine spezielle URL generieren. Verwenden Sie die Nachverfolgungs-ID (trackingId) und die ersten drei und die letzten drei Ziffern Ihrer Abonnement-ID (subscriptionId) im folgenden Format:

https://app.azure.com/h/<trackingId>/<erste drei und letzte drei Ziffern von subscriptionId>

Wenn Ihre Abonnement-ID (subscriptionId) z. B. „ aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e“ und Ihre Nachverfolgungs-ID (trackingId) „0DET-URB“ lautet, sieht Ihre Service Health-URL folgendermaßen aus:

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

Erkennen des Schweregrads des Problems anhand der Level-Eigenschaft

Vom niedrigsten zum höchsten Schweregrad kann die level-Eigenschaft in der Nutzlast den Wert Informativ, Warnung, Fehler oder Kritisch aufweisen.

Ermitteln des Umfangs des Vorfalls

Service Health-Warnungen informieren Sie über Probleme über mehrere Regionen und Dienste hinweg. Um die vollständigen Details zu erhalten, müssen Sie den Wert von impactedServices analysieren.

Der Inhalt ist eine maskierte JSON-Zeichenfolge, die, wenn sie unmaskiert wird, ein weiteres JSON-Objekt enthält, das regelmäßig analysiert werden kann. Beispiel:

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

Wird zu:

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

In diesem Beispiel wird gezeigt, dass Probleme bestehen bei:

  • „Warnungen & Metriken“ in „Australien, Osten“ und „Australien, Südosten“.
  • „App Service“ in „Australien, Südosten“.

Testen der Webhookintegration über eine HTTP POST-Anforderung

Folgen Sie diesen Schritten:

  1. Erstellen Sie die Service Health-Nutzlast, die Sie senden möchten. Ein Beispiel für eine Service Health-Webhooknutzlast finden Sie unter Webhooks für Azure-Aktivitätsprotokollwarnungen.

  2. Erstellen Sie eine HTTP POST-Anforderung, indem Sie wie folgt vorgehen:

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

    Sie sollten eine Antwort vom Typ „2xx“ (erfolgreich) erhalten.

  3. Wechseln Sie zu PagerDuty, um zu überprüfen, ob Ihre Integration erfolgreich eingerichtet wurde.

Nächste Schritte