Introduzione
Questo documento descrive il processo dettagliato per integrare Catalyst SD-WAN con ServiceNow per la generazione di ticket basata su eventi.
Prerequisiti
Requisiti
Cisco consiglia:
- Conoscenza della soluzione Cisco Catalyst SD-WAN.
- Account attivo in ServiceNow con privilegi di amministratore.
- Raggiungibilità Internet da SD-WAN Manager trasporto Virtual Private Network (VPN).
- Se ServiceNow è ospitato in locale, verificare la connettività da SD-WAN Manager in VPN 0.
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- Cisco Catalyst SD-WAN Manager con versione 20.15.3.1.
- C800v con Cisco IOS® XE Catalyst SD-WAN versione 17.15.3.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Esempio di rete
Diagramma connettività
Configurazioni
Suggerimento: Per questa integrazione, utilizziamo Webhook da SD-WAN Manager direttamente a ServiceNow.
Questa configurazione è composta da due parti:
- Configurazione dell'API ServiceNow e preparazione per l'accettazione e l'elaborazione dei messaggi HTTP POST da SD-WAN Manager.
- Configurazione di SD-WAN Manager Webhook.
Configurazione ServiceNow
Crea istanza
- Accedere al portale per gli sviluppatori ServiceNow https://developer.servicenow.com/dev.do utilizzando le credenziali ServiceNow.
- Nella pagina iniziale, fare clic su "Request your instance" (Richiedi la tua istanza) e scegliere una versione (Zurigo, Yokohama o Xanadu).
Figura 1
Figura 2
3. Attendere alcuni minuti mentre l'istanza è pronta.
4. Dopo alcuni minuti, aggiornare la pagina e creare l'istanza PDI (Personal Developer Instance).
Figura 3
Crea un'app
5. Fare clic su App Engine Studio.
6. Chiudere la finestra di dialogo iniziale.
7. Fare clic su Crea app.
Figura 4
8. Assegna un nome all'app e fai clic su Continua.
Figura 5
9. Lasciare i ruoli predefiniti e fare clic su Continua.
Figura 6
10. Attendere alcuni minuti per la creazione dell'app.
11. Vai al dashboard dell'app.
Crea APP
12. Da App Home, fare clic su "Prova" per aprire ServiceNow Studio.
Figura 7
13. Notare l'URL. È simile a PDI-ID.service-now.com.
14. Nel riquadro di navigazione a sinistra, fare clic sul nome dell'app. In questo caso: e' onesto.
Figura 8
15. Fare clic sull'icona (+), quindi su Crea file.
Crea file
16. Cercare e selezionare l'API REST basata su script.
Figura 9
17. Fare clic su Continua.
18. Creare un nuovo record per il servizio REST controllato da script.
- Immettere il nome API
- ID API
- Fare clic sull'icona del blocco ACL predefiniti:
- Fare clic sul pulsante di ricerca per selezionare il record di destinazione.
- Nella ricerca del controllo di accesso, cercare e fare clic su "Scripted REST External Default".
Figura 10
Figura 11
19. Fare clic su Sottometti.
Nuovo record servizio REST controllato da script
20. Creare una nuova risorsa.
Figura 12
21. Assegnare il nome della nuova risorsa e selezionare il metodo HTTP come POST.
Figura 13
2. Nella sezione script, creare un codice javascript per elaborare il JSON da SD-WAN Manager e creare ticket in ServiceNow.
Script di esempio:
(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);
Avviso: Questo è uno script di esempio. Convalidare attentamente lo script prima di utilizzarlo in laboratorio o in ambiente di produzione.
23. Fare clic su Sottometti.
Nuovo record risorsa REST controllata da script
24. Prendere nota del percorso della risorsa. Questo è l'URL da immettere nella configurazione di SD-WAN Manager Webhook.
25. URL webhook: https://PDI.service-now.com/Resource_path.
URL di esempio in questa guida alla configurazione: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Configurazione di SD-WAN Manager
In questa sezione, configuriamo SD-WAN Manager Webhook per inviare gli allarmi verso l'API ServiceNow: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Suggerimento: Per un gestore SD-WAN multi-tenant, applicare la rispettiva configurazione nella visualizzazione tenant per inviare eventi Webhook per quel tenant. È inoltre possibile applicare questa configurazione nella visualizzazione Provider per ricevere gli allarmi dai dispositivi del dominio Provider.
SD-WAN Webhook
- Accedere a SD-WAN Manager e selezionare Monitor > Logs > Alarm Notifications (Monitor > Log > Notifiche di allarme).
Figura 14
Notifica di allarme SD-WAN
2. Fare clic su Aggiungi notifiche di allarme.
Figura 15
3. Inserire i rispettivi campi per impostare la notifica di allarme.
- Nome notifica
- Tipo di allarme
- Metodo di recapito: WebHook
- Scegli un canale per Webhook: Personalizzato
- URL WebHook (API creata al passaggio 24 nella configurazione lato ServiceNow): https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
- Soglia WebHook: 100
- Lasciare vuoti il campo relativo al nome utente e alla password.
Attenzione: Lasciare vuoti i campi relativi a nome utente e password durante la produzione rappresenta un rischio per la sicurezza. Muoviti con cautela.
4. Fare clic su Aggiungi notifica.
Figura 16
Verifica
Pagina ticketing ServiceNow
- Passiamo alla pagina di emissione dei biglietti di ServiceNow.
- A tale scopo, utilizzare questo URL per accedere all'area di lavoro principale di ServiceNow. È il tuo PDI.service-now.com/nav_to.do.
- Esempio: https://dev271953.service-now.com/nav_to.do
area di lavoro ServiceNow
2. Fare clic su Tutti e cercare e fare clic su Incidenti.
Figura 17
3. Viene visualizzata la pagina Incidente.
Pagina Incidente
4. Dalla shell CLI di SD-WAN Manager, eseguire il comando CURL verso ServiceNow:
curl -X POST "<your_webhook_url_towards_servicenow>"
Messaggio di operazione riuscita:
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. Si noti un incidente creato in ServiceNow.
Figura 18
Se si nota un errore di autenticazione in CURL come indicato di seguito:
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"}
Passaggi per correggere l'errore di autenticazione
- Tornare alla pagina di ServiceNow Studio e accedere all'app (ad esempio: ud-vmanage) dal riquadro di navigazione a sinistra e selezionare l'API REST basata su script (ad esempio ud-vm-snow).
Figura 19
2. Scorrere fino a Risorse e fare clic sulla risorsa (ad esempio: allarmi).
Figura 20
3. Scorrere fino a Protezione e deselezionare autenticazione e autorizzazione ACL come mostrato di seguito.
r. Autenticazione obbligatoria
b. Richiede l'autorizzazione ACL
c. Fare clic su Aggiorna
Figura 21
4. Eseguire di nuovo il comando CURL dalla shell di SD-WAN Manager. Questa volta l'operazione ha esito positivo.
Generazione di allarmi
5. Generare ora un allarme in SD-WAN Manager, ad esempio:
r. Chiusura di un'interfaccia di un router perimetrale WAN all'interno della sovrimpressione SD-WAN.
b. Cancellazione delle connessioni di controllo da qualsiasi SD-WAN Manager o router di edge WAN.
c. Esecuzione di un port-hop.
Controllare il sito per generare allarmi durante la configurazione di Webhook.
6. Notare gli incidenti creati nella pagina ServiceNow.
Figura 22
Figura 23
Figura 24
Risoluzione dei problemi
1. Dal lato SD-WAN Manager, controllare il contenuto di /var/log/nms/vmanage-server.log per eventuali errori relativi ai messaggi HTTP POST.
Esempio di Webhook riuscito:
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
Esempio di richiesta Webhook non riuscita:
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. Possiamo anche eseguire l'acquisizione dei pacchetti per confermare l'integrità della sessione tra SD-WAN Manager e ServiceNow.
Acquisizione dei pacchetti con IP pubblico nascosto
Informazioni correlate