Вхідні вебхуки
Вхідні вебхуки отримують події від інших інструментів і перетворюють їх на тікети або оновлення. Є три точки входу:
| Джерело | Адреса | Налаштування в Core |
|---|---|---|
| Інструменти моніторингу, DevOps і безпеки | /api/connectors/{vendor}/{tenant} |
Integrations, конектор постачальника |
| Інші ITSM-системи та загальні REST-джерела | /api/integration/webhook/{integration_id} |
Integration Center |
| Локальні SNMP-шлюзи (on-premise) | /api/snmp-gateway/trap/{tenant} |
Integrations → SNMP gateway |
Усі адреси розташовані на https://exocortex-api.ai-exo-cortex.com.
Конектори для інструментів моніторингу, DevOps і безпеки
Section titled “Конектори для інструментів моніторингу, DevOps і безпеки”Налаштуй конектор в exoCortex Core, потім спрямуй вебхук інструмента на адресу конектора. Інструмент надсилає дані у своєму рідному форматі: exoCortex нормалізує їх і, коли потрібно, створює тікет.
Підтримувані інструменти:
- Моніторинг: Datadog, New Relic, Prometheus, Grafana, Nagios, Icinga, Centreon, Statuspage, NinjaOne.
- DevOps і чергування (on-call): GitHub, GitLab, Jenkins, Bitbucket, PagerDuty, Opsgenie.
- Безпека: Wazuh, Microsoft Sentinel, Tenable, Qualys, Splunk, Elastic, CrowdStrike, SentinelOne, QRadar, Cyber Protect, Fortigate, Check Point і мережеві EDR-сенсори.
В адресі {vendor} — це назва інструмента малими літерами (наприклад, datadog), а {tenant} — код тенанта, для якого ти налаштував конектор.
Автентифікація
Section titled “Автентифікація”- GitHub, GitLab, PagerDuty, Opsgenie і Statuspage підписують запити власним механізмом: exoCortex його перевіряє.
- Для всіх інших інструментів використовуй підпис exoCortex, обчислений із секретом конектора (див. Як підписувати запити).
Якщо конектор кілька разів поспіль завершується помилкою, exoCortex тимчасово призупиняє запити і відповідає 503 з resume_in_ms — кількістю мілісекунд, після яких можна спробувати знову.
Інтеграції та ITSM-мости
Section titled “Інтеграції та ITSM-мости”Для ServiceNow, Jira, Zendesk, BMC або загального REST-джерела налаштуй інтеграцію в Integration Center exoCortex Core, разом із зіставленням полів. Інша система надсилає події на адресу інтеграції; exoCortex зіставляє їх і створює або оновлює тікет.
Підпис обов’язковий, якщо інтеграція має секрет, а інтеграції в режимі вебхука повинні його мати. Використовуй підпис exoCortex; як альтернативу приймаються X-Bridge-Signature, X-Hub-Signature-256 або X-Signature зі значенням sha256=<hex HMAC of the body>.
Відповідь — 200, якщо подію опрацьовано одразу, і 202, якщо її поставлено в чергу для надійної обробки.
Як підписувати запити
Section titled “Як підписувати запити”Щоб підписати запит до exoCortex, надішли два заголовки:
X-Exo-Timestamp: поточний час у секундах Unix;X-Exo-Signature:v1=, а за ним шістнадцятковий HMAC-SHA256 відtimestamp + "." + body, обчислений із секретом конектора.
exoCortex відхиляє запити, позначка часу яких відрізняється від його часу більш ніж на 300 секунд.
ts=$(date +%s)body='{"title":"CPU high on web-01","alert_type":"error"}'sig=$(printf '%s.%s' "$ts" "$body" | openssl dgst -sha256 -hmac "$CONNECTOR_SECRET" -hex | sed 's/^.* //')curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/connectors/datadog/ACME" \ -H "Content-Type: application/json" \ -H "X-Exo-Timestamp: $ts" -H "X-Exo-Signature: v1=$sig" \ --data-binary "$body"Заголовок X-NH-Connector-Signature з HMAC лише від тіла застарів і працює до 30 червня 2027 року.
SNMP-шлюз
Section titled “SNMP-шлюз”Якщо в тебе є пристрої, що надсилають SNMP-трапи, шлюз у твоїй мережі перетворює їх на JSON і надсилає в exoCortex. Секрет задається в Integrations → SNMP gateway.
Шлюз підписує кожен запит такими заголовками:
X-NH-SNMP-Timestamp: поточний час у мілісекундах Unix;X-NH-SNMP-Signature:sha256=, а за ним шістнадцятковий HMAC-SHA256 відtimestamp + "|" + body.
Допустиме відхилення часу — 5 хвилин. Приклад трапу:
{ "source_ip": "192.0.2.10", "source_sysname": "core-sw-01", "trap_oid": "1.3.6.1.6.3.1.1.5.3", "severity": "major", "varbinds": { "1.3.6.1.2.1.2.2.1.1": "12", "1.3.6.1.2.1.2.2.1.2": "GigabitEthernet1/0/12" }}