Перейти до вмісту

Вхідні вебхуки

Вхідні вебхуки отримують події від інших інструментів і перетворюють їх на тікети або оновлення. Є три точки входу:

Джерело Адреса Налаштування в 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} — код тенанта, для якого ти налаштував конектор.

  • GitHub, GitLab, PagerDuty, Opsgenie і Statuspage підписують запити власним механізмом: exoCortex його перевіряє.
  • Для всіх інших інструментів використовуй підпис exoCortex, обчислений із секретом конектора (див. Як підписувати запити).

Якщо конектор кілька разів поспіль завершується помилкою, exoCortex тимчасово призупиняє запити і відповідає 503 з resume_in_ms — кількістю мілісекунд, після яких можна спробувати знову.

Для 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, якщо її поставлено в чергу для надійної обробки.

Щоб підписати запит до exoCortex, надішли два заголовки:

  • X-Exo-Timestamp: поточний час у секундах Unix;
  • X-Exo-Signature: v1=, а за ним шістнадцятковий HMAC-SHA256 від timestamp + "." + body, обчислений із секретом конектора.

exoCortex відхиляє запити, позначка часу яких відрізняється від його часу більш ніж на 300 секунд.

Finestra del terminale
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-трапи, шлюз у твоїй мережі перетворює їх на 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"
}
}