INTEGRITY Документация

Настройка вебхуков

Существует множество сервисов, которые можно подключить к Cloudflare с помощью вебхуков для получения уведомлений в вашем аккаунте Cloudflare. В таблице ниже показано, как подключить ваш аккаунт Cloudflare к популярные сервисы вебхуков.

Настройка вебхуков

  1. На панели управления Cloudflare перейдите к разделу Уведомления страницу.

    Перейдите в Уведомления ↗
  2. Перейдите в Назначения.

  3. В Webhooks карточке выберите Создание.

  4. Присвойте вебхуку имя для дальнейшей идентификации.

  5. В URL поле введите URL-адрес стороннего сервиса, который вы ранее настроили и хотите подключить к своему аккаунту Cloudflare.

  6. При необходимости вставьте Секрет. Секреты обеспечивают шифрование вебхуков, и их вид зависит от того, с каким сервисом вы подключаетесь к Cloudflare.

  7. Выберите Save and Test чтобы завершить настройку вебхука.

Новый вебхук появится в Webhooks карточка.

Изменение вебхуков

Для вебхуков можно только изменить имя или удалить их.

  1. На панели управления Cloudflare перейдите к разделу Уведомления страницу.

    Перейдите в Уведомления ↗
  2. Перейдите в Назначения.

  3. В Webhooks карточке выберите Изменить для вебхука, который нужно изменить.

  4. Измените название вебхука и выберите Save.

Вебхук можно удалить, выбрав Изменить или выбрав Удалить в списке вебхуков, отображаемом в Назначения карточка.

Настройки брандмауэра

Уведомления по вебхуку отправляются с диапазоны IP-адресов Cloudflare ↗. Если конечная точка вашего вебхука защищена брандмауэром, добавьте эти IP-адреса в список разрешенных, чтобы получать уведомления.

Чтобы программно получить актуальный список IP-адресов Cloudflare, используйте Cloudflare API.

Generic webhooks

Если вы используете сервис, который не поддерживается доступными сейчас вебхуками Cloudflare, вы можете настроить собственный, и введите действительный URL-адрес вебхука.

Для Generic webhook всегда рекомендуется использовать секретный ключ. Cloudflare передает ваш секретный ключ в заголовке cf-webhook-auth заголовок каждого отправленного запроса. Если этот заголовок отсутствует или не соответствует заданному вами значению, вебхук следует отклонить.

После выбора Save and Test, ваш вебхук теперь должен быть настроен как назначение, которое можно привязывать к политикам.

Когда Cloudflare отправляет вам вебхук, он имеет следующую схему:

Пример схемы
{
	"text": "Hello World! This is a test message sent from https://cloudflare.com. If you can see this, your webhook is configured properly."
}

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

Ограничения Generic webhook

Универсальные уведомления Cloudflare через вебхук отправляются только на публично разрешаемый IP-адрес по порту 80 или 443.

Если вы хотите получать уведомления Generic webhook на частный IP адрес или другой порт, вы можете либо принимать и пересылать уведомление с помощью Workers или настройте Cloudflare Tunnel для маршрутизации в подключенное приложение.

Использование универсальных вебхуков с Workers

С помощью Cloudflare Workers и универсального вебхука можно доставлять уведомления в любой сервис, поддерживающий приём вебхуков.

У Cloudflare есть пример инструмента ↗ чтобы помочь вам разобраться, как можно использовать Workers и универсальные вебхуки. Приведенный пример преобразует ответ универсального вебхука для доставки в Rocket.Chat. Код подробно прокомментирован, чтобы помочь вам адаптировать пример под свои задачи.

Google Chat

Для Google Chat ↗:

Slack

Для Slack ↗:

DataDog

Для DataDog ↗:

Discord

Для Discord ↗:

OpsGenie

Для OpsGenie ↗:

Splunk

Для Splunk ↗:

Feishu

Для Feishu ↗:

Команды

Для Команды ↗:

ServiceNow

Для ServiceNow ↗:

Generic webhook

Для Generic webhook:

Настройка секретов

При создании вебхука Google Chat, Slack, Discord или Feishu секрет является частью URL. Вы можете убрать секрет из URL и явно задать значение secret вместо того чтобы Cloudflare извлекал его автоматически.

Это может быть полезно при описании инфраструктуры вебхуков в виде кода с помощью Terraform, поскольку Cloudflare не изменяет URL.

Пример Terraform
resource "cloudflare_notification_policy_webhooks" "example" {
  account_id = "<ACCOUNT_ID>"
  name       = "Slack Webhook"
  url        = "https://hooks.slack.com/services/T00000000/B00000000"
  secret     = "<secret>"
}