Движок автоматизаций с вебхуками для GLPI

Модуль Automations от NexTool принимает вебхуки от любой системы, сопоставляет данные через JSONPath и запускает действия в GLPI — без кода. Разбираем реальный сценарий от payload до создания заявки, чего не умеет нативный вебхук GLPI 11 и ловушку с HMAC, из-за которой вебхук отклоняется с 401.

В этой статьеРазделов: 9

Двусторонняя интеграция между системами без собственных скриптов и внешнего middleware. Модуль Automations от NexTool превращает GLPI в хаб, способный принимать события от любой системы и автономно на них реагировать: приходит вебхук, данные сопоставляются, запускается действие — и всё это внутри вашей среды.

Проблема

Команды, работающие с множеством инструментов — мониторингом, ITSM, интернет-магазином, ERP, платформами наблюдаемости, — живут с разрывом между системами. Когда в Zabbix срабатывает алерт или в интернет-магазин приходит заказ, кто-то должен создать заявку в GLPI, заполнить поля и назначить ответственного. Каждое ручное вмешательство — точка отказа и источник задержек.

Универсальные решения вроде Zapier или Make справляются с простыми случаями, но требуют внешней учётной записи, берут плату за каждую операцию и находятся вне контроля команды. Для процессов, где нужны прослеживаемость, безопасность и глубокая интеграция с GLPI, решение должно жить внутри самой среды — и именно это даёт модуль Automations.

Как работает Automations

Модуль построен на трёх последовательных опорах:

  • Вход (Trigger) — stateless-endpoint вебхука принимает POST-запросы от любой системы. У каждого сценария есть уникальный токен и аутентификация HMAC SHA-256, так что запускать действия могут только авторизованные источники.
  • Обработка (PayloadMapper) — полученный JSON-payload сопоставляется через JSONPath. Преобразования вроде map_priority, resolve_user_by_email и resolve_category_by_name превращают внешние данные в нативные поля GLPI без кода.
  • Выход (ActionRunner) — два типа действий: создать заявку в GLPI (с session impersonation, чтобы назначить правильного инициатора) или отправить HTTP-запрос во внешнюю систему через зарегистрированный коннектор.

Visual Flow Wizard позволяет собирать и редактировать сценарии в интерфейсе из трёх связанных карточек: Trigger, Сопоставление и Действие. Редактировать JSON вручную не нужно. Сценарии можно включать, выключать и отслеживать на панели. Модуль также управляет Коннекторами — десятки провайдеров, распределённых по категориям, с разными типами аутентификации (API Key, Bearer, Basic, OAuth2, HMAC) и учётными данными, хранящимися с шифрованием AES-256-GCM. Благодаря этому действие сценария выполняет аутентифицированные вызовы внешних API, таких как Microsoft 365, Jira, Slack или любой сервис с REST API.

Реальный сценарий: от payload до действия

Самый частый пример, который мы собираем, — превращение алерта мониторинга в заявку. Внешняя система отправляет POST, подписанный HMAC SHA-256, на endpoint сценария:

# Zabbix (or any system) fires a signed POST to the flow endpoint
curl -X POST 'https://glpi.yourcompany.com/plugins/nextool/automations/webhook/...token...' \
  -H 'Content-Type: application/json' \
  -d '{
    "event": {
      "host": "srv-db-01",
      "severity": "High",
      "trigger": "Disk space < 10%",
      "requester": "[email protected]"
    }
  }'

В карточке сопоставления каждый путь JSONPath становится нативным полем заявки. Преобразования переводят значения: «High» становится срочностью 4, e-mail — пользователем-инициатором:

$.event.trigger    -> name                    (ticket title)
$.event.host       -> content                 (description)
$.event.severity   -> urgency  (map_priority: High=4, Disaster=5)
$.event.requester  -> _users_id_requester (resolve_user_by_email)

Деталь, которую знают только те, кто эксплуатирует интеграции

В сопровождении классическая ошибка — внешняя система передаёт e-mail заявителя, но такого пользователя в GLPI нет. Без resolve_user_by_email с запасным вариантом заявка рождается «сиротой» или действие молча падает — и никто этого не замечает, пока не обнаружится пробел в истории. Мы стандартизировали технического инициатора по умолчанию (что-то вроде «integracao-automatica»), чтобы никогда не терять событие, а исходный e-mail оставляем в тексте заявки для отслеживания. Вторая деталь — подпись HMAC: обе стороны должны вычислять хеш строго от одного и того же сырого тела запроса. Прокси, который по пути пересериализует JSON, меняет один пробел, ломает подпись, и вебхук отклоняется с 401 — поэтому проверка выполняется по raw body, а не по уже повторно разобранному JSON. Кто этого не знает, часами ищет ошибку в ключе.

Нативный вход и что добавляет модуль

ВозможностьНативный вебхук GLPI 11Модуль Automations от NexTool
НаправлениеТолько исходящие (outbound)Входящие и исходящие
Аутентификация входящихНе применимоУникальный токен на сценарий + HMAC SHA-256
Сопоставление payloadНе применимоJSONPath + готовые преобразования
Создание заявки от имени правильного инициатораНе применимоSession impersonation
Аудит выполненияОграниченныйInput, output, длительность и статус по каждому запуску

Как включить

  1. Установите плагин NexTool в GLPI.
  2. Откройте Настройки > NexTool > Модули.
  3. Найдите карточку Automations и нажмите Установить, затем Включить.
  4. Создайте сценарий в Visual Flow Wizard и скопируйте сгенерированный URL вебхука.
  5. Настройте внешнюю систему на отправку событий на этот URL с использованием токена и подписи HMAC.

Кому подходит (и когда нет)

Модуль подходит тем, кто работает в средах с множеством интегрированных инструментов: мониторингом (Zabbix, Grafana, Nagios), интернет-магазином, ERP, HR или любым сервисом, способным отправлять вебхуки. Особенно он ценен, когда процессы требуют прослеживаемости и аудита — каждый запуск фиксируется с input, output, длительностью и статусом. Он не предназначен для автоматизации того, что не спроектировано: если в вашем процессе создания заявок ещё не определены категория, срочность и ответственный, автоматизация лишь ускорит беспорядок. Сначала определите ручной процесс, затем автоматизируйте.

Совместимость

  • GLPI: 11.0+
  • Тариф: По запросу
  • Плагин: NexTool 6.9.1 или новее

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

Модуль Automations входит в NexTool. Готовы избавиться от ручных вмешательств между вашими системами? Свяжитесь с командой, и мы спроектируем первый сценарий вместе с вами.


Проверено командой NexTool Solutions.

Часто задаваемые вопросы

В GLPI 11 есть базовая поддержка вебхуков, но только исходящих (outbound). Модуль Automations от NexTool добавляет приём вебхуков, сопоставление через JSONPath и автоматические действия и работает в GLPI 11.

Модуль Automations принимает вебхуки от любой системы, сопоставляет данные через JSONPath и выполняет действия в GLPI (создание заявки или вызов внешнего API) через визуальный интерфейс из трёх карточек — Trigger, Сопоставление и Действие — без написания кода.

Да. Zabbix, Grafana, Nagios или любой инструмент, отправляющий вебхуки, делает POST на endpoint сценария; модуль сопоставляет важность, хост и заявителя с нативными полями и создаёт заявку с правильным инициатором через session impersonation.

Обычно дело в подписи HMAC. Обе стороны должны вычислять хеш строго от одного и того же сырого тела (raw body). Прокси, пересериализующий JSON, изменяет тело и делает подпись недействительной. Проверьте также правильность токена сценария.

Да. Учётные данные внешних коннекторов хранятся с шифрованием AES-256-GCM, а каждый сценарий использует уникальный токен с аутентификацией HMAC SHA-256 на входе.

Нужна помощь?