Einleitung
In diesem Dokument wird der schrittweise Prozess zur Integration des Catalyst SD-WAN in ServiceNow für die ereignisbasierte Ticketerstellung beschrieben.
Voraussetzungen
Anforderungen
Cisco empfiehlt:
- Kenntnis der Cisco Catalyst SD-WAN-Lösung
- Ein aktives Konto in ServiceNow mit Administratorberechtigungen.
- Erreichbarkeit über das Internet mittels SD-WAN Manager Transport Virtual Private Network (VPN)
- Wenn ServiceNow vor Ort gehostet wird, stellen Sie die Verbindung mit dem Service über den SD-WAN-Manager in VPN 0 sicher.
Verwendete Komponenten
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
- Cisco Catalyst SD-WAN Manager mit Version 20.15.3.1
- C8000v mit Cisco IOS® XE Catalyst SD-WAN 17.15.3
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Netzwerkdiagramm
Verbindungsdiagramm
Konfigurationen
Tipp: Für diese Integration verwenden wir Webhooks vom SD-WAN-Manager direkt zu ServiceNow.
Diese Konfiguration besteht aus zwei Teilen:
- Konfigurieren der ServiceNow-API und Vorbereitung für die Annahme und Verarbeitung von HTTP-POST-Nachrichten vom SD-WAN-Manager
- Konfigurieren des SD-WAN-Manager-Webhooks
ServiceNow-Konfiguration
Instanz erstellen
- Melden Sie sich mit Ihren ServiceNow-Anmeldeinformationen beim ServiceNow-Entwicklerportal https://developer.servicenow.com/dev.do an.
- Klicken Sie auf der Startseite auf "Request your instance" und wählen Sie eine beliebige Version (Zürich, Yokohama oder Xanadu).
Abbildung 1
Abbildung 2
3. Warten Sie ein paar Minuten, während Ihre Instanz fertig wird.
4. Aktualisieren Sie Ihre Seite nach wenigen Minuten und erstellen Sie Ihre Personal Developer Instance (PDI).
Abbildung-3
App erstellen
5. Klicken Sie auf App Engine Studio.
6. Schließen Sie das Willkommensdialogfeld.
7. Klicken Sie auf App erstellen.
Abbildung-4
8. Geben Sie einen Namen für diese App an, und klicken Sie auf Weiter.
Abbildung 5
9. Belassen Sie die Rollen als Standard bei, und klicken Sie auf Weiter.
Abbildung 6
10. Warten Sie einige Minuten, bis diese App erstellt wird.
11. Wechseln Sie zum App-Dashboard.
APP erstellen
12. Klicken Sie im App Home auf "Try it out", um ServiceNow Studio zu öffnen.
Abbildung 7
13. Beachten Sie die URL. Es ist so etwas wie PDI-ID.service-now.com.
14. Klicken Sie im linken Navigationsbereich auf den App-Namen. In diesem Fall: Cloud-Management.
Abbildung-8
15. Klicken Sie auf (+) Symbol und dann auf Datei erstellen.
Datei erstellen
16. Suchen und wählen Sie Scripted REST API.
Abbildung-9
17. Klicken Sie auf Weiter.
18. Erstellen Sie einen neuen Datensatz für Scripted REST Service.
- API-Namen eingeben
- API-ID
- Klicken Sie auf das Symbol Default ACLs lock (Standard-ACLs sperren):
- Klicken Sie auf die Schaltfläche "Suchen", um den Zieldatensatz auszuwählen.
- Suchen Sie in der Zugriffskontrollsuche, und klicken Sie auf "Scripted REST External Default".
Abbildung -10
Abbildung -11
19. Klicken Sie auf Senden.
Neuer Datensatz für den REST-Dienst mit Skript
20. Erstellen Sie eine neue Ressource.
Abbildung -12
21. Geben Sie den Namen dieser neuen Ressource an, und wählen Sie HTTP-Methode als POST aus.
Abbildung -13
22. Erstellen Sie im Skriptabschnitt ein Javascript, um die JSON vom SD-WAN Manager zu verarbeiten und Tickets in ServiceNow zu erstellen.
Beispielskript:
(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);
Warnung: Dies ist ein Beispielskript. Validieren Sie das Skript vor der Verwendung im Labor oder in der Produktionsumgebung gründlich.
23. Klicken Sie auf Senden.
Neuer Datensatz für REST-Ressource mit Skript
24. Notieren Sie sich den Ressourcenpfad. Dies ist die URL, die wir in die SD-WAN Manager-Webhook-Konfiguration eingeben müssen.
25. Webhook URL: https://PDI.service-now.com/Resource_path.
Beispiel-URL in diesem Konfigurationsleitfaden: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Konfiguration des SD-WAN-Managers
In diesem Abschnitt wird der SD-WAN-Manager Webhook so konfiguriert, dass die Alarme an die ServiceNow-API gesendet werden: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Tipp: Wenden Sie bei einem Multi-Tenant-SD-WAN-Manager die entsprechende Konfiguration in der Tenant-Ansicht an, um Webhook-Ereignisse für diesen Tenant zu senden. Sie können diese Konfiguration auch in der Anbieteransicht anwenden, um Alarme von Anbieterdomänengeräten zu erhalten.
SD-WAN-Webhook
- Melden Sie sich beim SD-WAN Manager an, und navigieren Sie zu Monitor > Logs > Alarm Notifications (Überwachung > Protokolle > Alarmbenachrichtigungen).
Abbildung -14
SD-WAN-Alarmbenachrichtigung
2. Klicken Sie auf Warnmeldungen hinzufügen.
Abbildung -15
3. Geben Sie die entsprechenden Felder ein, um die Warnmeldung einzurichten.
- Benachrichtigungsname
- Alarmtyp
- Bereitstellungsmethode: WebHook
- Channel für Webhook auswählen: Benutzerdefiniert
- WebHook-URL (API erstellt in Schritt 24 der ServiceNow-Seitenkonfiguration): https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
- WebHook-Grenzwert: 100
- Lassen Sie Benutzername und Passwort leer.
Vorsicht: Das Leeren von Benutzernamen und Passwörtern in der Produktion stellt ein Sicherheitsrisiko dar. Gehen Sie mit Vorsicht vor.
4. Klicken Sie auf Benachrichtigung hinzufügen.
Abbildung -16
Überprüfung
ServiceNow-Ticketseite
- Navigieren Sie nun zur ServiceNow-Ticketseite.
- Verwenden Sie hierzu diese URL, um auf den ServiceNow-Hauptarbeitsbereich zuzugreifen. Es ist Ihre PDI.service-now.com/nav_to.do.
- Beispiel: https://dev271953.service-now.com/nav_to.do
ServiceNow-Arbeitsbereich
2. Klicken Sie auf Alle und suchen und klicken Sie auf Vorfälle.
Abbildung -17
3. Die Seite Vorfall wird geöffnet.
Vorfallsseite
4. Führen Sie in der Kommandozeile des SD-WAN-Managers den Befehl "CURL" in Richtung "ServiceNow" aus:
curl -X POST "<your_webhook_url_towards_servicenow>"
Erfolgsmeldung:
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. Beachten Sie einen Vorfall, der auf ServiceNow erstellt wurde.
Abbildung -18
Wenn Sie einen Authentifizierungsfehler in CURL wie unten feststellen:
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"}
Schritte zum Beheben von Authentifizierungsfehlern
- Navigieren Sie zurück zur Seite ServiceNow Studio, und greifen Sie auf Ihre App zu (Beispiel: ud-vmanage) aus dem linken Navigationsbereich und wählen Sie Ihre Scripted REST API (Beispiel ud-vm-snow).
Abbildung -19
2. Blättern Sie nach unten zu Ressourcen, und klicken Sie auf die Ressource (Beispiel: Warnmeldungen).
Abbildung 20
3. Blättern Sie nach unten zu Sicherheit, und deaktivieren Sie Authentifizierung und ACL-Autorisierung, wie unten gezeigt.
antwort: Authentifizierung erforderlich
b. ACL-Autorisierung erforderlich
c. Klicken Sie auf Aktualisieren
Abbildung 21
4. Führen Sie den CURL-Befehl erneut vom SD-WAN-Manager vshell aus, was diesmal erfolgreich ist.
Generieren von Alarmen
5. Generieren Sie jetzt einen Alarm im SD-WAN Manager, indem Sie beispielsweise:
antwort: Herunterfahren der Schnittstelle eines WAN-Edge-Routers innerhalb Ihres SD-WAN-Overlays
b. Löschen der Steuerverbindungen von einem SD-WAN-Manager oder einem WAN-Edge-Router
c. Port-Hop wird ausgeführt.
Bitte überprüfen Sie die beabsichtigte Website, um während der Webhook-Konfiguration Alarme zu generieren.
6. Beachten Sie die auf der ServiceNow-Seite erstellten Vorfälle.
Abbildung 22
Abbildung -23
Abbildung 24
Fehlerbehebung
1. Überprüfen Sie auf der Seite des SD-WAN-Managers den Inhalt von /var/log/nms/vmanage-server.log auf Fehler in Verbindung mit HTTP-POST-Nachrichten.
Beispiel eines erfolgreichen Webhooks:
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
Beispiel für eine nicht erfolgreiche Webhook-Anforderung:
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. Wir können auch eine Paketerfassung durchführen, um eine fehlerfreie Sitzung zwischen dem SD-WAN-Manager und ServiceNow zu bestätigen.
Paketerfassung mit versteckter öffentlicher IP
Zugehörige Informationen