Inleiding
In dit document wordt het stapsgewijze proces beschreven om Catalyst SD-WAN te integreren met ServiceNow voor het genereren van tickets op basis van gebeurtenissen.
Voorwaarden
Vereisten
Cisco raadt aan:
- Kennis van de Cisco Catalyst SD-WAN oplossing.
- Een actieve account in ServiceNow met beheerdersbevoegdheden.
- Internetbereikbaarheid via SD-WAN Manager transport Virtual Private Network (VPN).
- Als ServiceNow on-premises wordt gehost, moet u ervoor zorgen dat de verbinding met ServiceNow vanuit SD-WAN Manager in VPN 0 wordt uitgevoerd.
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Cisco Catalyst SD-WAN Manager met versie 20.15.3.1.
- C8000v met Cisco IOS® XE Catalyst SD-WAN versie 17.15.3.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Netwerkdiagram
Connectiviteitsdiagram
Configuraties
Tip: Voor deze integratie gebruiken we Webhooks van SD-WAN Manager rechtstreeks naar ServiceNow.
Deze configuratie bestaat uit twee delen:
- ServiceNow API configureren en gereed maken voor het accepteren en verwerken van HTTP POST-berichten van SD-WAN Manager.
- SD-WAN Manager Webhook configureren.
Configuratie van ServiceNow
Een instantie maken
- Meld u aan bij ServiceNow-ontwikkelaarsportaal https://developer.servicenow.com/dev.do met uw ServiceNow-referenties.
- Klik op de welkomstpagina op "Vraag uw exemplaar aan" en kies een release (Zürich, Yokohama of Xanadu).
Figuur-1
Figuur-2
3. Wacht een paar minuten terwijl uw exemplaar klaar is.
4. Vernieuw uw pagina na een paar minuten en maak uw Personal Developer Instance (PDI) aan.
Figuur-3
Een app maken
5. Klik op App Engine Studio.
6. Sluit het welkomstdialoogvenster.
7. Klik op App maken.
Figuur-4
8. Geef een naam op voor deze app en klik op Doorgaan.
Figuur-5
9. Laat rollen standaard staan en klik op Doorgaan.
Figuur-6
10. Wacht enkele minuten voordat deze app wordt gemaakt.
11. Ga naar het app-dashboard.
APP maken
12. Klik in App Home op "Probeer het uit" om ServiceNow Studio te openen.
Figuur-7
13. Let op de URL. Het is zoiets als PDI-ID.service-now.com.
14. Klik in het linkernavigatiedeelvenster op de naam van de app. In dit geval: ud-vmanage.
Figuur-8
15. Klik op het pictogram (+) en klik vervolgens op Bestand maken.
Bestand maken
16. Zoek en selecteer Scripted REST API.
Figuur-9
17. Klik op Doorgaan.
18. Maak een nieuw record voor Scripted REST Service.
- API-naam invoeren
- API-ID
- Klik op het vergrendelingspictogram voor standaard ACL's:
- Klik op de knop Zoeken om doelrecord te selecteren.
- Zoek in Access control en klik op "Scripted REST External Default".
Figuur-10
Figuur-11
19. Klik op Indienen.
Scripted REST Service Nieuw record
20. Maak een nieuwe bron aan.
Figuur-12
21. Geef de naam van deze nieuwe bron op en selecteer HTTP-methode als POST.
Figuur-13
22. Maak in de scriptsectie een javascript om de JSON van SD-WAN Manager te verwerken en maak tickets aan in ServiceNow.
Voorbeeldscript:
(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);
Waarschuwing: Dit is een voorbeeldscript. Gelieve het script grondig te valideren voordat het in een laboratorium- of productieomgeving wordt gebruikt.
23. Klik op Indienen.
Scripted REST Resource New Record
24. Noteer het bronpad. Dit is de URL die we moeten invoeren in de SD-WAN Manager Webhook-configuratie.
25. Webhook-URL: https://PDI.service-now.com/Resource_path.
Voorbeeld-URL in deze configuratiehandleiding: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Configuratie van SD-WAN Manager
In deze sectie configureren we SD-WAN Manager Webhook om de alarmen naar ServiceNow API te sturen: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Tip: pas voor een Multi-tenant SD-WAN Manager de betreffende configuratie toe in de tenant-weergave om Webhook-gebeurtenissen voor die tenant te verzenden. Men kan deze configuratie ook toepassen in de weergave Provider om alarmen te ontvangen van Provider-domeinapparaten.
SD-WAN-webhook
- Meld u aan bij SD-WAN Manager en navigeer naar Monitor > Logs > Alarmmeldingen.
Figuur-14
SD-WAN-alarmmelding
2. Klik op Alarmmeldingen toevoegen.
Figuur-15
3. Voer de betreffende velden in om een alarmmelding in te stellen.
- Naam melding
- Alarmtype
- Leveringsmethode: WebHook
- Kies een kanaal voor Webhook: Aangepast
- WebHook URL (API gemaakt op stap 24 in ServiceNow zijconfiguratie): https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
- Drempelwaarde voor WebHook: 100
- Laat gebruikersnaam en wachtwoord leeg.
Let op: het leeg laten van de gebruikersnaam- en wachtwoordvelden in de productie is een veiligheidsrisico. Beweeg voorzichtig.
4. Klik op Kennisgeving toevoegen.
Figuur-16
Verifiëren
Ticketpagina ServiceNow
- Navigeer naar de ticketpagina van ServiceNow.
- Gebruik hiervoor deze URL om toegang te krijgen tot de hoofdwerkruimte van ServiceNow. Het is jouw PDI.service-now.com/nav_to.do.
- Voorbeeld: https://dev271953.service-now.com/nav_to.do
ServiceNow-werkruimte
2. Klik op Alles en zoek en klik op Incidenten.
Figuur-17
3. De pagina Incident wordt geopend.
Incidentpagina
4. Voer vanuit SD-WAN Manager CLI vshell de opdracht CURL uit naar ServiceNow:
curl -X POST "<your_webhook_url_towards_servicenow>"
Succesbericht:
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. Een incident melden dat is gemaakt op ServiceNow.
Figuur-18
Als u een verificatiefout opmerkt in CURL, zoals hieronder:
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"}
Stappen om de verificatiefout te verhelpen
- Navigeer terug naar de ServiceNow Studio-pagina, open uw app (voorbeeld: ud-vmanage) vanuit het linkernavigatievenster en selecteer uw Scripted REST API (voorbeeld ud-vm-snow).
Figuur-19
2. Blader omlaag naar Bronnen en klik op de bron (voorbeeld: alarmen).
Figuur-20
3. Blader omlaag naar Beveiliging en schakel verificatie en ACL-autorisatie uit zoals hieronder wordt weergegeven.
a. Vereist verificatie
b. ACL-autorisatie vereist
c. Klik op Bijwerken
Figuur-21
4. Voer de CURL-opdracht opnieuw uit vanuit SD-WAN Manager vshell, die deze keer succesvol is.
Alarmen genereren
5. Genereer nu een alarm in SD-WAN Manager door bijvoorbeeld:
a. Een interface van één WAN Edge-router afsluiten binnen uw SD-WAN-overlay.
b. Controleverbindingen wissen van elke SD-WAN-beheerder of elke WAN Edge-router.
c. Het uitvoeren van een port-hop.
Controleer de beoogde site om alarmen te genereren tijdens Webhook-configuratie.
6. Melding van incidenten gemaakt op de ServiceNow-pagina.
Figuur-22
Figuur-23
Figuur-24
Problemen oplossen
1. Controleer aan de kant van de SD-WAN Manager de inhoud van /var/log/nms/vmanage-server.log op fouten met betrekking tot HTTP POST-berichten.
Voorbeeld van een succesvolle 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
Voorbeeld van een mislukte aanvraag voor een 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. We kunnen ook packet capture uitvoeren om een gezonde sessie tussen SD-WAN Manager en ServiceNow te bevestigen.
Packet capture met verborgen openbare IP
Gerelateerde informatie