Многие администраторы знают о механизме вебхуков (webhooks), который позволяет системам обмениваться сообщениями и обрабатывать их. Иногда пользователям требуется отправлять некоторые полезные сообщения системы логирования и аналитики vRealize Log Insight (vRLI) в систему управления рабочими процессами vRealize Orchestrator. В апрельской версии vRLI 8.8 появился механизм отправки предопределенных вебхуков.
Теперь настройка этого механизма находится в разделе Alerts, для создания нового вебхука нужно нажать +New Webhook:
В качестве Endpoint нужно выбрать vRealize Orchestrator (vRO), после чего нужно заполнить поле Webhook URL в следующем формате:
Здесь <host> - это IP/FQDN инстанса vRO. Чтобы получить {workflowId} нужно пойти в консоль vRO и перейти на страницу Workflows в секции Library. Затем нужно нажать NEW WORKFLOW, заполнить имя рабочего процесса и создать его с соответствующим ID.
Таким образом, мы можем теперь заполнить поле URL:
Для этого рабочего процесса нужно будет добавить IP-адреса виртуальных машин в инпуте, поэтому нужно создать его (vms_ips):
Затем нужно создать схему сценарной задачи (scriptable task) и использовать параметр инпута vms_ips. Напишите скрипт для подготовки инпута и выполнения полезной нагрузки (например, перезагрузка ВМ):
Теперь нужно пойти в консоль vRealize Log Insight и выбрать метод авторизации. Здесь есть две опции - bearer token и basic. По умолчанию basic-аутентификация отключена в vRO (вот тут рассказано, как ее включить).
Следующий шаг - это конфигурация полезной нагрузки вебхука. Мы создали инпут vms_ips, поэтому нужно переслать его значение в событии нотификации. Нужно задать новый параметр с тем же именем в поле webhook payload. В качестве знчения этого параметр определим ${Info}:
Последний шаг - это создание алерта. Когда вы будете создавать алерт в vRealize Log Insight введите ${source} в поле Description. Выберите созданный вебхук в качестве endpoint:
На этом все! Когда сработает триггер для алерта - он сгенерирует вебхук. Этот вебхук, придя в vRO, вызовет запуск рабочего процесса (например, перезагрузка ВМ) на базе IP-адреса виртуальной машины: