Этот способ оповещений полезен для выполнения вызовов 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 в виде тегов. Эти теги добавляются к любым существующим тегам проблем. Обратите внимание, что когда вебхук использует теги вебхуков [en], вебхук обязан возвращать JSON объект, содержащий по крайней мере пустой объект тегов: var result = {tags: {}}; Примеры тегов, которые можно вернуть: Jira ID: PROD-1234, Responsible: John Smith, Processed:<no value> |
Добавить запись в меню события | Отметьте, чтобы в меню события добавить запись, связывающую с созданной внешней задачей (тикетом). Запись будет добавлена для каждого вебхука, который активирован и имеет этот флажок отмеченным. Обратите внимание, что если параметры Имя записи в меню и URL записи в меню содержат любые из макросов {EVENT.TAGS.<имя_тега>}, то запись будет добавлена только если эти макросы могут быть раскрыты (то есть, для события эти теги определены). Если отмечено, вебхук не должен использоваться для отправки оповещений разным пользователям (вместо этого рассмотрите возможность создания выделенного пользователя) и не должен использоваться в нескольких действиях оповещений для одного события о проблеме. |
Имя записи в меню | Укажите название пункта меню. Поддерживаются макросы {EVENT.TAGS.<имя тега>}. Это поле является обязательным, только если отмечена опция Добавить запись в меню события. |
URL записи в меню | Укажите основной URL адрес пункта меню. Поддерживаются макросы {EVENT.TAGS.<имя тега>}. Это поле является обязательным, только если отмечена опция Добавить запись в меню события. |
Смотрите также общие параметры способов оповещений для получения подробной информации о настройке сообщений по умолчанию и опциях обработки оповещений.
Даже если вебхук не использует сообщения по умолчанию, всё же необходимо задать шаблоны сообщений для типов операций, используемые этим вебхуком.
После того, как способ оповещения настроен, перейдите в раздел Администрирование → Пользователи и измените профиль пользователя, назначив адресата вебхука по этому способу оповещения, или создайте нового пользователя для использования с этим вебхуком. Шаги по настройке оповещений пользователей, общие для всех способов оповещений, описаны на странице Способов оповещений.
Если вебхук использует теги для хранения идентификатора задачи (тикета) \ сообщения, избегайте назначение этого же вебхука в качестве способа оповещения разным пользователям, так как это может вызвать ошибки вебхука (применимо к большинству вебхуков, которые используют опцию Добавить запись в меню события). В этом случае лучше всего создать для вебхука выделенного пользователя:
При настройке действия на оповещение добавьте этого пользователя в поле Отправка пользователям в деталях Операции - это укажет Zabbix использовать вебхук для оповещений с этого действия.
Действия определяют, какие оповещения следует отправлять через вебхук. Шаги для настройки действий с использованием вебхуков абсолютно такие же, как и для всех остальных способов оповещения, за некоторыми исключениями: