Eingehende Webhooks
Eingehende Webhooks empfangen Ereignisse aus anderen Werkzeugen und wandeln sie in Tickets oder Aktualisierungen um. Es gibt drei Eingangspunkte:
| Herkunft | Adresse | Konfiguration in Core |
|---|---|---|
| Monitoring-, DevOps- und Sicherheitswerkzeuge | /api/connectors/{vendor}/{tenant} |
Integrations, Konnektor des Anbieters |
| Andere ITSM-Systeme und generische REST-Quellen | /api/integration/webhook/{integration_id} |
Integration Center |
| On-Premises-SNMP-Gateway | /api/snmp-gateway/trap/{tenant} |
Integrations → SNMP gateway |
Alle Adressen liegen unter https://exocortex-api.ai-exo-cortex.com.
Konnektoren für Monitoring-, DevOps- und Sicherheitswerkzeuge
Abschnitt betitelt „Konnektoren für Monitoring-, DevOps- und Sicherheitswerkzeuge“Sie konfigurieren den Konnektor in exoCortex Core und richten dann den Webhook des Werkzeugs auf die Adresse des Konnektors. Das Werkzeug sendet sein natives Format: exoCortex normalisiert es und eröffnet bei Bedarf ein Ticket.
Unterstützte Werkzeuge:
- Monitoring: Datadog, New Relic, Prometheus, Grafana, Nagios, Icinga, Centreon, Statuspage, NinjaOne.
- DevOps und Bereitschaft: GitHub, GitLab, Jenkins, Bitbucket, PagerDuty, Opsgenie.
- Sicherheit: Wazuh, Microsoft Sentinel, Tenable, Qualys, Splunk, Elastic, CrowdStrike, SentinelOne, QRadar, Cyber Protect, Fortigate, Check Point und Netzwerk-EDR-Sensoren.
In der Adresse ist {vendor} der Name des Werkzeugs in Kleinbuchstaben (zum Beispiel datadog) und {tenant} der Code des Tenants, für den Sie den Konnektor konfiguriert haben.
Authentifizierung
Abschnitt betitelt „Authentifizierung“- GitHub, GitLab, PagerDuty, Opsgenie und Statuspage signieren die Anfragen mit ihrem eigenen Mechanismus: exoCortex prüft ihn.
- Für alle anderen Werkzeuge verwenden Sie die exoCortex-Signatur, berechnet mit dem Secret des Konnektors (siehe Anfragen signieren).
Schlägt ein Konnektor mehrmals hintereinander fehl, setzt exoCortex die Anfragen vorübergehend aus und antwortet mit 503 und resume_in_ms, den Millisekunden, nach denen Sie es erneut versuchen können.
ITSM-Integrationen und -Bridges
Abschnitt betitelt „ITSM-Integrationen und -Bridges“Für ServiceNow, Jira, Zendesk, BMC oder eine generische REST-Quelle konfigurieren Sie die Integration im Integration Center von exoCortex Core, einschließlich der Feldzuordnung. Das andere System sendet die Ereignisse an die Adresse der Integration; exoCortex ordnet sie zu und legt das Ticket an oder aktualisiert es.
Die Signatur ist Pflicht, wenn die Integration ein Secret hat, und Integrationen im Webhook-Modus müssen eines haben. Verwenden Sie die exoCortex-Signatur; alternativ werden X-Bridge-Signature, X-Hub-Signature-256 oder X-Signature mit dem Wert sha256=<hex HMAC of the body> akzeptiert.
Die Antwort ist 200, wenn das Ereignis sofort verarbeitet wurde, und 202, wenn es für eine zuverlässige Verarbeitung in die Warteschlange gestellt wurde.
Anfragen signieren
Abschnitt betitelt „Anfragen signieren“Um eine Anfrage an exoCortex zu signieren, senden Sie zwei Header:
X-Exo-Timestamp: die aktuelle Zeit in Unix-Sekunden;X-Exo-Signature:v1=gefolgt vom hexadezimalen HMAC-SHA256 vontimestamp + "." + body, berechnet mit dem Secret des Konnektors.
exoCortex lehnt Anfragen ab, deren Zeitstempel um mehr als 300 Sekunden von seiner eigenen Uhrzeit abweicht.
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"Der Header X-NH-Connector-Signature mit dem HMAC nur des Bodys ist veraltet und funktioniert bis zum 30. Juni 2027.
SNMP-Gateway
Abschnitt betitelt „SNMP-Gateway“Wenn Sie Geräte haben, die SNMP-Traps senden, wandelt ein Gateway in Ihrem Netzwerk sie in JSON um und sendet sie an exoCortex. Das Secret legen Sie unter Integrations → SNMP gateway fest.
Das Gateway signiert jede Anfrage mit:
X-NH-SNMP-Timestamp: die aktuelle Zeit in Unix-Millisekunden;X-NH-SNMP-Signature:sha256=gefolgt vom hexadezimalen HMAC-SHA256 vontimestamp + "|" + body.
Die Zeittoleranz beträgt 5 Minuten. Ein Beispiel für einen Trap:
{ "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" }}