المقدمة
يصف هذا المستند العملية بالتفصيل لدمج Catalyst SD-WAN مع ServiceNow لإنشاء التذكرة المستندة إلى الحدث.
المتطلبات الأساسية
المتطلبات
توصي Cisco بما يلي:
- معرفة حل Cisco Catalyst SD-WAN.
- حساب نشط في ServiceNow له امتيازات المسؤول.
- إمكانية الوصول إلى الإنترنت من شبكة SD-WAN Manager Transport Virtual Private Network (VPN).
- إذا تم إستضافة ServiceNow محليا، فعليك التأكد من الاتصال بها من مدير SD-WAN في شبكة VPN 0.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
- مدير Cisco Catalyst SD-WAN الذي يشغل الإصدار 20.15.3.1.
- C8000v يركض cisco IOS® XE Catalyst SD-WAN 17.15.3 صيغة.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
الرسم التخطيطي للشبكة
الرسم التخطيطي للاتصال
التكوينات
تلميح: بالنسبة لهذا الدمج، نستخدم إرتباطات الويب من برنامج SD-WAN Manager مباشرة إلى برنامج ServiceNow.
هناك جزءان لهذا التكوين:
- تكوين واجهة برمجة تطبيقات ServiceNow وجعلها جاهزة لقبول رسائل HTTP POST ومعالجتها من SD-WAN Manager.
- تكوين مساعد ويب مدير SD-WAN.
تكوين ServiceNow
إنشاء مثيل
- تسجيل الدخول إلى مدخل مطور ServiceNow https://developer.servicenow.com/dev.do باستخدام بيانات اعتماد ServiceNow.
- في صفحة الترحيب، انقر فوق طلب المثيل الخاص بك" واختر أي إصدار (زيوريخ أو يوكوهاما أو Xanadu).
شكل-1
شكل-2
3. انتظر لبضع دقائق بينما يستعد المثيل الخاص بك.
4. قم بتحديث صفحتك بعد بضع دقائق واحصل على إنشاء مثيل المطور الشخصي (PDI).
شكل-3
إنشاء تطبيق
5. انقر فوق App Engine Studio.
6. إغلاق مربع حوار الترحيب.
7. انقر فوق إنشاء تطبيق.
شكل-4
8. قم بتسمية هذا التطبيق وانقر فوق متابعة.
شكل-5
9. أترك الأدوار كقيمة افتراضية وانقر فوق متابعة.
شكل-6
10. انتظر دقائق قليلة حتى يتم إنشاء هذا التطبيق.
11. انتقل إلى لوحة معلومات التطبيق.
إنشاء تطبيق
12. من صفحة App Home، انقر فوق "جرب" لفتح ServiceNow Studio.
شكل-7
13. لاحظ عنوان URL. إنه شيء مثل PDI-ID.service-now.com.
14. في جزء التنقل الأيسر، انقر فوق اسم التطبيق. في هذه الحالة: تقنية UD-vManage.
شكل-8
15. انقر فوق (+) الأيقونة ثم انقر فوق إنشاء ملف.
إنشاء ملف
16. البحث في واجهة برمجة تطبيقات REST المفتوحة برمجيا واختيارها.
شكل-9
17. انقر فوق متابعة.
18. قم بإنشاء سجل جديد لخدمة REST المفتوحة.
- إدخال اسم واجهة برمجة التطبيقات
- معرف واجهة برمجة التطبيقات
- انقر على أيقونة قفل قوائم التحكم في الوصول (ACL) الافتراضية:
- انقر فوق زر البحث لتحديد السجل الهدف.
- في البحث عن عنصر التحكم في الوصول، ابحث وانقر فوق REST الافتراضي الخارجي".
شكل-10
شكل-11
19. انقر فوق إرسال.
السجل الجديد لخدمة الراحة المفتوحة بالبرامج النصية
20. إنشاء مورد جديد.
شكل-12
21. حدد اسم هذا المورد الجديد، أسلوب HTTP ك POST.
شكل-13
22. في قسم البرامج النصية، قم بإنشاء JavaScript لمعالجة JSON من مدير SD-WAN وإنشاء تذاكر في ServiceNow.
نموذج البرنامج النصي:
(function process(request, response) {
try {
var payload = request.body.data;
gs.info("🚨 vManage Webhook Received: " + JSON.stringify(payload));
var alertMessage = payload.message || 'No message';
var alertSeverity = payload.severity || 'medium';
var deviceId = payload.deviceId || 'Unknown device';
var inc = new GlideRecord('incident');
inc.initialize();
inc.short_description = "vManage Alert: " + alertMessage;
inc.description = "Device ID: " + deviceId + "\nSeverity: " + alertSeverity + "\n\n" + JSON.stringify(payload);
inc.urgency = (alertSeverity === 'critical') ? 1 : 2;
inc.impact = 2;
inc.insert();
response.setStatus(201);
response.setBody({ message: "Webhook received and processed." });
} catch (err) {
gs.error("❌ vManage Webhook Error: " + err.message);
response.setStatus(500);
response.setBody({ error: "Error processing webhook: " + err.message });
}
})(request, response);
تحذير: هذا نموذج لبرنامج نصي. الرجاء التحقق من البرنامج النصي بشكل كامل قبل إستخدامه في المختبر أو بيئة الإنتاج.
23. انقر فوق إرسال.
السجل الجديد لمورد REST المشفر برمجيا
24. دون مسار الموارد. هذا هو عنوان URL الذي نحتاج إلى إدخاله في تكوين ويب لإدارة SD-WAN.
25- عنوان URL الخاص بأداة WebHook https://PDI.service-now.com/Resource_path.
عينة عنوان URL في دليل التكوين هذا: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
تكوين مدير SD-WAN
في هذا القسم، نقوم بتكوين SD-WAN WebHook لإرسال الإنذارات نحو ServiceNow API: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
تلميح: بالنسبة لمدير SD-WAN متعدد المستأجرين، قم بتطبيق التكوين الخاص في طريقة عرض المستأجر لإرسال أحداث WebHook لذلك المستأجر. كما يمكن تطبيق هذا التكوين في طريقة عرض الموفر لتلقي الإنذارات من أجهزة مجال الموفر.
شبكة WAN المعرفة عن طريق البرامج
- قم بتسجيل الدخول إلى برنامج SD-WAN Manager وانتقل إلى الشاشة > السجلات > إعلامات التنبيه.
شكل-14
إعلام تنبيه SD-WAN
2. انقر فوق إضافة إعلامات التنبيه.
شكل-15
3. أدخل الحقول ذات الصلة لإعداد إعلام التنبيه.
- اسم الإخطار
- نوع التنبيه
- أسلوب التسليم: ويب هوك
- إختيار قناة ل WebHook: مخصص
- عنوان URL الخاص ب WebHook (تم إنشاء واجهة برمجة التطبيقات (API) في الخطوة 24 في تكوين جانب ServiceNow): https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
- عتبة WebHook: 100
- أترك اسم المستخدم وكلمة المرور فارغين.
تحذير: يعد ترك حقلي اسم المستخدم وكلمة المرور فارغين في الإنتاج خطرا على الأمان. تحركوا بحذر.
4. انقر فوق إضافة إعلام.
شكل-16
التحقق من الصحة
صفحة تذاكر ServiceNow
- دعنا ننتقل إلى صفحة التذاكر ل ServiceNow.
- لهذا الغرض، أستخدم عنوان URL هذا للوصول إلى مساحة العمل الرئيسية ل ServiceNow. إنه الموقع PDI.service-now.com/nav_to.do.
- مثال: https://dev271953.service-now.com/nav_to.do
مساحة عمل ServiceNow
2. انقر فوق الكل وابحث عن الحوادث وانقر فوقها.
شكل-17
3. يتم فتح صفحة الحدث.
صفحة الحوادث
4. من SD-WAN Manager CLI VSHELL، قم بتنفيذ الأمر curl باتجاه ServiceNow:
Curl -X POST <your_webhook_url_towards_servicenow>"
رسالة النجاح:
udutt-krk-dmz-vmanage:~$ curl -X POST "https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow"
{"result":{"message":"Webhook received and processed."}}
5. لاحظ حادث تم إنشاؤه على ServiceNow.
شكل-18
إذا لاحظت حدوث خطأ مصادقة في CURL مثل التالي:
udutt-krk-dmz-vmanage:~$ curl -X POST "https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow"
{"error":{"message":"User is not authenticated","detail":"Required to provide Auth information"},"status":"failure"}
خطوات إصلاح خطأ المصادقة
- انتقل مرة أخرى إلى صفحة ServiceNow Studio، وقم بالوصول إلى تطبيقك (مثال: UD-vManage) من جزء التنقل الأيسر وحدد واجهة برمجة تطبيقات REST المفتوحة (مثل ud-vm-snow).
شكل-19
2. قم بالتمرير لأسفل إلى "الموارد" وانقر فوق المورد (مثال: أجهزة الإنذار).
شكل-20
3. قم بالتمرير لأسفل إلى الأمان وإلغاء التحقق من المصادقة وتخويل قائمة التحكم في الوصول (ACL) كما هو موضح أدناه.
أ. تتطلب المصادقة
ب. تتطلب تفويض قائمة التحكم في الوصول (ACL)
ج. انقر فوق تحديث
شكل-21
4. قم بتنفيذ الأمر curl مرة أخرى من خلال SD-WAN Manager vshell والذي كان ناجحا هذه المرة.
توليد الإنذارات
5. الآن قم بإنشاء تنبيه في SD-WAN Manager، على سبيل المثال:
أ. إيقاف تشغيل واجهة لموجه واحد من موجهات WAN Edge داخل تغشية SD-WAN لديك.
ب. مسح إتصالات التحكم من أي برنامج SD-WAN Manager أو أي موجه من موجه WAN Edge.
ج. أداء خطوة الميناء.
الرجاء التحقق من الموقع المقصود لإنشاء تنبيهات أثناء تكوين WebHook.
6. إشعار بالحوادث المنشأة على صفحة ServiceNow.
شكل-22
شكل-23
شكل-24
استكشاف الأخطاء وإصلاحها
1. من جانب إدارة SD-WAN، تحقق من محتوى /var/log/nms/vmanage-server.log بحثا عن أي أخطاء متعلقة برسائل HTTP POST.
مثال على WebHook الناجح:
03-Oct-2025 12:21:05,394 UTC INFO [] [udutt-krk-vmanage] [DataCollectionManager] (Thread-157) || ******* Requested device 10.1.1.3, Adding to dataCollectionQueue, Sync type DATA_SYNC.
03-Oct-2025 12:21:05,677 UTC INFO [] [udutt-krk-vmanage] [EventDataCollector] (device-event-processing-2) || Configuration change event from device. Device IP: [10.1.1.3] Device type: [vsmart] User: [admin]
03-Oct-2025 12:21:05,677 UTC INFO [] [udutt-krk-vmanage] [DataCollectionManager] (Thread-157) || ******* Requested device 10.1.1.3, Adding to dataCollectionQueue, Sync type DATA_SYNC.
03-Oct-2025 12:21:06,745 UTC INFO [] [udutt-krk-vmanage] [DeviceHistoryConfigurationDAO] (device-config-0) || saveConfigToElasticDataStore entryTime 1761567666745 personality vsmart
03-Oct-2025 12:21:07,192 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-9) || Response status code after sending webhook: 201
03-Oct-2025 12:21:07,196 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-1) || Response status code after sending webhook: 201
مثال على طلب WebHook غير الناجح:
03-Oct-2025 12:24:46,949 UTC INFO [] [udutt-krk-vmanage] [DataCollectionManager] (Thread-157) || ******* Requested device 10.1.1.3, Adding to dataCollectionQueue, Sync type DATA_SYNC.
03-Oct-2025 12:24:48,065 UTC INFO [] [udutt-krk-vmanage] [DeviceHistoryConfigurationDAO] (device-config-0) || saveConfigToElasticDataStore entryTime 1761567888065 personality vsmart
03-Oct-2025 12:24:48,305 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-15) || Response status code after sending webhook: 401
03-Oct-2025 12:24:48,305 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-14) || Response status code after sending webhook: 401
2. يمكننا أيضا إجراء التقاط الحزمة لتأكيد الجلسة السليمة بين مدير SD-WAN و ServiceNow.
التقاط الحزمة باستخدام IP العام المخفي
معلومات ذات صلة