Usar um webhook para configurar notificações de integridade para sistemas de gerenciamento de problemas

Este artigo mostra como configurar alertas de Integridade do Serviço do Azure para enviar dados por meio de webhooks para seu sistema de notificação existente.

Você pode configurar alertas de Integridade do Serviço para notificá-lo por mensagem de texto ou email quando um incidente de serviço do Azure o afetar.

Mas você pode já ter um sistema de notificação externo existente que você prefere usar. Este artigo identifica as partes mais importantes da carga útil do webhook. E descreve como criar alertas personalizados para notificá-lo quando ocorrerem problemas de serviço relevantes.

Se você quiser usar uma integração pré-configurada, consulte:

Assista a um vídeo introdutório:

Configurar uma notificação personalizada usando a carga útil do webhook de Integridade do Serviço

Para configurar sua própria integração de webhook personalizada, você precisa analisar a carga JSON enviada por meio da notificação de Integridade do Serviço.

Veja um exemplo ServiceHealth de carga útil do webhook.

Pode confirmar que se trata de um alerta de estado de funcionamento do serviço consultando context.eventSource == "ServiceHealth". As seguintes propriedades são as mais relevantes:

  • 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

Você pode criar um link direto para seu painel de Integridade do Serviço em um desktop ou dispositivo móvel gerando uma URL especializada. Use o trackingId e os três primeiros e últimos três dígitos do seu subscriptionId neste formato:

https://app.azure.com/h/< trackingId<>/primeiros três e últimos três dígitos de subscriptionId>

Por exemplo, se o seu subscriptionId for aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e e o trackingId for 0DET-URB, o URL de Estado de Funcionamento do Serviço é:

Disponível em: https://app.azure.com/h/0DET-URB/bbadb3

Use o nível para detetar a gravidade do problema

Da gravidade mais baixa à mais alta, a propriedade level na carga útil pode ser Informativa, Aviso, Erro ou Crítica.

Analise os serviços afetados para determinar o escopo do incidente

Os alertas de Estado de Funcionamento do Serviço podem informá-lo sobre problemas em várias regiões e serviços. Para obter detalhes completos, você precisa analisar o valor de impactedServices.

O conteúdo que está dentro é uma cadeia de caracteres JSON escapada que, quando não escapada, contém outro objeto JSON que pode ser analisado regularmente. Por exemplo:

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

torna-se:

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

Este exemplo mostra problemas para:

  • "Alertas e Métricas" no Leste da Austrália e no Sudeste da Austrália.
  • "Serviço de Aplicativo" no sudeste da Austrália.

Teste sua integração com webhook por meio de uma solicitação HTTP POST

Siga estes passos:

  1. Crie a carga útil de integridade do serviço que você deseja enviar. Veja um exemplo de carga útil do webhook de integridade do serviço em Webhooks para alertas de log de atividades do Azure.

  2. Crie uma solicitação HTTP POST da seguinte maneira:

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

    Deverá receber uma resposta "2XX - Bem sucedido".

  3. Vá para PagerDuty para confirmar que sua integração foi configurada com êxito.

Próximos passos