Uso de un webhook para configurar las notificaciones relativas al estado en sistemas de administración de problemas

En este artículo se muestra cómo configurar las alertas de Azure Service Health para que envíen datos a través de webhooks a un sistema de notificación existente.

Puede configurar las alertas de Service Health para que reciba una notificación, mediante mensaje de texto o correo electrónico, cuando se produzca algún incidente que le afecte en algún servicio de Azure.

Pero también es posible que tenga implementado un sistema de notificación externo y prefiera utilizarlo. En este artículo se identifican las partes más importantes de la carga del webhook. También se describe cómo crear alertas personalizadas que envíen una notificación en cuanto se produzca algún problema significativo en un servicio.

Si desea usar una integración preconfigurada, consulte:

Vea un vídeo introductorio:

Configuración de una notificación personalizada mediante la carga del webhook de Service Health

Para configurar su propia integración de webhook personalizada, es preciso que analice la carga JSON que se envía en las notificaciones de Service Health.

Vea un ejemplo de la carga del webhook de ServiceHealth.

Para confirmar que se trata de una alerta de Service Health examine context.eventSource == "ServiceHealth". Las siguientes propiedades son las más importantes:

  • 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

Para crear un vínculo directo al panel de Service Health en cualquier escritorio o dispositivo móvil, genere una dirección URL especializada. Use trackingId y los tres primeros y últimos dígitos de subscriptionId con este formato:

https://app.azure.com/h/<trackingId>/<tres primeros y tres últimos dígitos de subscriptionId>

Por ejemplo, si subscriptionId es bba14129-e895-429b-8809-278e836ecdb3 y trackingId es 0DET-URB, la dirección URL del Service Health es:

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

Uso de level para detectar la gravedad del problema

De menor a mayor gravedad, la propiedadlevel de la carga puede tener los siguientes valores: Informational (Información), Warning (Advertencia), Error o Critical (Crítico).

Análisis de los servicios afectados para determinar el ámbito del incidente

Las alertas de Service Health pueden informar acerca de los problemas que aparecen en varias regiones y servicios. Para obtener todos los detalles, es preciso analizar el valor de impactedServices.

El contenido interior es una cadena con caracteres de escape JSON que, cuando no tiene caracteres de escape, contiene otro objeto JSON que puede analizarse regularmente. Por ejemplo:

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

se convierte en:

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

En este ejemplo se muestran los problemas de:

  • "Alertas & métricas" en las regiones Este de Australia y Sudeste de Australia.
  • "App Service" en la región Sudeste de Australia.

Prueba de la integración de un webhook a través de una solicitud HTTP POST

Siga estos pasos:

  1. Cree la carga de Service Health que desee enviar. Puede ver una carga del webhook de Service Health de ejemplo en Webhooks para alertas del registro de actividad de Azure.

  2. Cree una solicitud HTTP POST de la siguiente manera:

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

    Debería recibir la respuesta "2XX - Successful".

  3. Vaya a PagerDuty para confirmar que la integración se ha configurado correctamente.

Pasos siguientes