تخطَّ إلى المحتوى

Webhook الواردة

تستقبل webhook الواردة الأحداث من أدوات أخرى وتحوّلها إلى تذاكر أو تحديثات. هناك ثلاث نقاط دخول:

المصدر العنوان الإعداد في 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، ثم توجّهون webhook الأداة إلى عنوان الموصِّل. ترسل الأداة صيغتها الأصلية: يوحّدها 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 ثم ينشئ التذكرة أو يحدّثها.

التوقيع إلزامي عندما يكون للتكامل سرّ، ويجب أن يكون للتكاملات العاملة بوضع webhook سرّ. استخدموا توقيع 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 ثانية عن توقيته.

نافذة طرفيّة
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 trap، فإن بوابة داخل شبكتكم تحوّلها إلى JSON وترسلها إلى exoCortex. يُعيَّن السر في Integrations → SNMP gateway.

توقّع البوابة كل طلب بما يلي:

  • X-NH-SNMP-Timestamp: الوقت الحالي بـ أجزاء الألف من الثانية وفق Unix؛
  • X-NH-SNMP-Signature: ‏sha256= متبوعة بقيمة HMAC-SHA256 الست عشرية لـ timestamp + "|" + body.

هامش التسامح في الوقت هو 5 دقائق. مثال على 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"
}
}