Поделиться через


Отправка оповещений на внешние системы с помощью веб-перехватчика

Узнайте, как настроить оповещения о состоянии служб Azure с помощью веб-перехватчиков для получения уведомлений в режиме реального времени о проблемах со службами. Этот подход позволяет легко интегрироваться с существующими платформами уведомлений, такими как ServiceNow, PagerDuty или OpsGenie.

Используйте webhook для настройки уведомлений о работоспособности

Руководство описывает ключевые компоненты полезной нагрузки веб-перехватчика и демонстрирует настройку пользовательских оповещений, чтобы держать вас в курсе актуальных вопросов работы сервиса.

Если вы хотите использовать предварительно настроенную интеграцию, ознакомьтесь со следующими сведениями:

Просмотрите видео с вводной информацией:

Настройка пользовательского уведомления с помощью полезных данных веб-перехватчика работоспособности служб

Чтобы настроить собственную интеграцию вебхука, необходимо проанализировать полезную нагрузку JSON, отправленную с помощью уведомления о состоянии службы.

См. пример полезных данных веб-перехватчика ServiceHealth.

Оповещение о работоспособности служб можно распознать по элементу 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.журнал активности.свойства.коммуникация
  • data.context.activityLog.properties.затронутыеСервисы
  • data.context.activityLog.properties.trackingId

Создайте прямую ссылку на панель мониторинга работоспособности службы на рабочем столе или мобильном устройстве, создав специализированный URL-адрес. Используйте идентификатор trackingId, а также первые три и последние три цифры subscriptionId в следующем формате:

https://app.azure.com/h/<trackingId>/<первые три и последние три цифры subscriptionId>

Например, если идентификатор подписки — aaaa0a0a0a-bb1b-cc2c-dd3d-ee4e4e4e4e4e4e, а идентификатор отслеживания — 0DET-URB, URL-адрес работоспособности службы:

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

Определение серьезности проблемы по значению уровня

Свойство уровня level в полезных данных может иметь значения Информация, Предупреждение, Ошибка или Критическое (от низкого уровня до высокого).

Определение области инцидента

Оповещения о работоспособности служб могут информировать вас о проблемах, затрагивающих несколько регионов и служб. Чтобы получить полные сведения, необходимо проанализировать значение 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"
   }
]

Этот пример указывает на следующие проблемы:

  • "Оповещения и метрики" в регионах "Восточная Австралия" и "Юго-Восточная Австралия".
  • "Служба приложений" в регионе "Юго-Восточная Австралия".

Проверка интеграции с веб-перехватчиком с помощью запроса HTTP POST

Выполните следующие действия:

  1. Создайте полезные данные о работоспособности служб, которые хотите отправить. Пример полезных данных для веб-перехватчика службы работоспособности служб см. в статье Веб-перехватчики для оповещений журнала действий Azure.

  2. Создайте запрос HTTP POST следующим образом:

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

    Вы должны получить ответ "2XX — успех".

  3. Откройте PagerDuty и убедитесь, что интеграция настроена успешно.

Следующие шаги