Этот способ оповещений полезен для выполнения вызовов HTTP с использованием пользовательского кода JavaScript для прямой интеграции с внешними системами, такими как системы поддержки, чаты или мессенджеры. Вы можете импортировать интеграции, поставляемые Zabbix, или создать свою собственную интеграцию с нуля.
Доступны следующие интеграции, которые позволяют использовать подготовленные способы оповещения вебхук для отправки оповещений из Zabbix на:
В дополнение к перечисленным здесь сервисам, Zabbix можно интегрировать с Spiceworks (вебхук не требуется). Чтобы преобразовать оповещения Zabbix в тикеты Spiceworks, используйте тип оповещений e-mail способ оповещения и введите e-mail адрес службы поддержки Spiceworks (например, [email protected]) в настройках выделенного под Spiceworks пользователя Zabbix.
Чтобы начать использовать интеграцию вебхук:
templates/media
загруженной версии Zabbix или загрузите его из git репозитория Zabbix.Чтобы создать пользовательский вебхук с нуля:
Вкладка Способ оповещений содержит различные уникальные атрибуты по этому способу оповещений:
Все обязательные поля ввода отмечены красной звёздочкой.
Следующие параметры уникальны для способов оповещений на основе вебхук:
Параметр | Описание |
---|---|
Параметры | Укажите переменные вебхук в виде пар атрибутов и значений. По уже предварительно добавленным вебхукам список параметров зависит от сервиса. Для информации о параметрах проверьте файл Readme.md вебхука. По новым вебхукам некоторые переменные включены по умолчанию (URL: <пусто>, HTTPProxy: <пусто>, To: {ALERT.SENDTO}, Subject: {ALERT.SUBJECT}, Message: { ALERT.MESSAGE}), вы можете сохранить их или удалить. Все макросы, которые поддерживаются в оповещениях на проблемы, поддерживаются в параметрах. Если вы указываете прокси-сервер HTTP, поле поддерживает те же функции, что поле HTTP прокси настройки элемента данных. Строка прокси может иметь префикс [схема]:// , чтобы можно было указать, какой тип прокси будет использоваться (например, https, socks4, socks5; смотрите документацию). |
Скрипт | Введите код JavaScript в блоке, который появляется при нажатии на поле параметра (или на кнопку просмотра / изменения сразу после него). Этот код, собственно, и будет производить работу вебхука. Скрипт - код функции, который принимает пары "параметр - значение". Значения должны быть преобразованы в объекты JSON, используя метод JSON.parse(), например: var params = JSON.parse(value); .Этот код имеет доступ ко всем параметрам, он может выполнять запросы HTTP GET, POST, PUT и DELETE и управлять заголовками HTTP и телом запроса. Скрипт должен содержать оператор возврата (return), в противном случае он не будет корректным. Код может возвращать состояние OK вместе с необязательным списком тегов и их значений (смотрите опцию Обработка тегов ) или строку с ошибкой. Обратите внимание, что скрипт выполняется только после создания оповещения. Если скрипт настроен на возврат и обработку тегов, эти теги не будут раскрыты в макросах {EVENT.TAGS} и {EVENT.RECOVERY.TAGS} при начальном сообщении о проблеме и в сообщениях о восстановлении, потому что скрипт еще не успел запуститься. Смотрите также: Руководство по разработке вебхуков [en], Примеры скриптов вебхук, Дополнительные объекты JavaScript. |
Время ожидания | Время ожидания выполнения JavaScript (1-60с, по умолчанию 30с). Поддерживаются суффиксы времени, например, 30s, 1m. |
Обработка тегов | Отметьте для обработки возвращаемых значений свойств JSON в виде тегов. Эти теги добавляются к уже существующим (если имеются) тегам событий о проблемах в Zabbix. Если вебхук использует теги (опция Обработка тегов отмечена), вебхук всегда должен возвращать JSON объект, содержащий по крайней мере пустой объект тегов: var result = {tags: {}}; .Примеры тегов, которые можно вернуть: Jira ID: PROD-1234, Responsible: John Smith, Processed:<no value> и т.д. |
Добавить запись в меню события | Отметьте, чтобы в меню события добавить запись, связывающую с созданной внешней задачей (тикетом). Если отмечено, вебхук не должен использоваться для отправки оповещений разным пользователям (вместо этого рассмотрите возможность создания выделенного пользователя) или в нескольких действиях оповещений, которые связаны с одним событием о проблеме. |
Имя записи в меню | Укажите название пункта меню. Поддерживаются макросы {EVENT.TAGS.<имя тега>}. Это поле является обязательным, только если выбрана опция Добавить запись в меню события. |
URL записи в меню | Укажите основной URL адрес пункта меню. Поддерживаются макросы {EVENT.TAGS.<имя тега>}. Это поле является обязательным, только если выбрана опция Добавить запись в меню события. |
Смотрите также общие параметры способов оповещений для получения подробной информации о настройке сообщений по умолчанию и опциях обработки оповещений.
Даже если вебхук не использует сообщения по умолчанию, всё же необходимо задать шаблоны сообщений для типов операций, используемые этим вебхуком.
После того, как способ оповещения настроен, перейдите в раздел Администрирование → Пользователи и измените профиль пользователя, назначив адресата вебхука по этому способу оповещения, или создайте нового пользователя для использования с этим вебхуком. Шаги по настройке оповещений пользователей, общие для всех способов оповещений, описаны на странице Способов оповещений.
Если вебхук использует теги для хранения идентификатора задачи (тикета) \ сообщения, избегайте назначение этого же вебхука в качестве способа оповещения разным пользователям, так как это может вызвать ошибки вебхука (применимо к большинству вебхуков, которые используют опцию Добавить запись в меню события). В этом случае лучше всего создать для вебхука выделенного пользователя:
При настройке действия на оповещение добавьте этого пользователя в поле Отправка пользователям в деталях Операции - это укажет Zabbix использовать вебхук для оповещений с этого действия.
Действия определяют, какие оповещения следует отправлять через вебхук. Шаги для настройки действий с использованием вебхуков абсолютно такие же, как и для всех остальных способов оповещения, за некоторыми исключениями: