Introducción
Este documento describe el proceso paso a paso para integrar Catalyst SD-WAN con ServiceNow para la generación de tickets basada en eventos.
Prerequisites
Requirements
Cisco recomienda:
- Conocimiento de la solución Cisco Catalyst SD-WAN.
- Una cuenta activa en ServiceNow con privilegios de administrador.
- Accesibilidad a Internet desde la red privada virtual (VPN) de transporte de SD-WAN Manager.
- Si ServiceNow está alojado en las instalaciones, asegúrese de que dispone de conectividad desde el administrador de SD-WAN en VPN 0.
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- Cisco Catalyst SD-WAN Manager que ejecuta la versión 20.15.3.1.
- C8000v con Cisco IOS® XE Catalyst SD-WAN versión 17.15.3.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Diagrama de la red
Diagrama de conectividad
Configuraciones
Consejo: Para esta integración, utilizamos Webhooks desde SD-WAN Manager directamente a ServiceNow.
Esta configuración consta de dos partes:
- Configuración de la API ServiceNow y preparación para aceptar y procesar mensajes HTTP POST del Administrador de SD-WAN.
- Configuración del webhook del administrador de SD-WAN.
Configuración de ServiceNow
Crear una instancia
- Inicie sesión en el portal de desarrolladores de ServiceNow https://developer.servicenow.com/dev.do con sus credenciales de ServiceNow.
- En la página de bienvenida, haga clic en "Solicitar su instancia" y elija cualquier versión (Zurich, Yokohama o Xanadu).
Figura -1
Figura -2
3. Espere unos minutos mientras su instancia se prepara.
4. Actualice la página transcurridos unos minutos y cree su instancia de desarrollador personal (PDI).
Figura -3
Crear una aplicación
5. Haga clic en App Engine Studio.
6. Cerrar cuadro de diálogo de bienvenida.
7. Haga clic en Create app.
Figura -4
8. Dé un nombre a esta aplicación y haga clic en Continuar.
Figura -5
9. Deje los roles como predeterminados y haga clic en Continuar.
Figura -6
10. Espere unos minutos para que se cree esta aplicación.
11. Vaya al panel de la aplicación.
Crear aplicación
12. En App Home, haga clic en "Try it out" para abrir ServiceNow Studio.
Figura -7
13. Observe la URL. Es algo así como PDI-ID.service-now.com.
14. En el panel de navegación izquierdo, haga clic en el nombre de la aplicación. En este caso: ud-vmanage.
Figura -8
15. Haga clic en el icono (+) y, a continuación, haga clic en Crear archivo.
Crear archivo
16. Busque y seleccione API REST con scripts.
Figura -9
17. Haga clic en Continuar.
18. Cree un nuevo registro para el servicio REST con scripts.
- Introducir nombre de API
- ID de API
- Haga clic en el icono de bloqueo de ACL predeterminadas:
- Haga clic en el botón de búsqueda para seleccionar el registro de destino.
- En Access control search, busque y haga clic en "Scripted REST External Default".
Figura -10
Figura -11
19. Haga clic en Enviar.
Nuevo registro del servicio REST con scripts
20. Cree un nuevo recurso.
Figura -12
21. Introduzca el nombre de este nuevo recurso y seleccione el método HTTP como POST.
Figura -13
22. En la sección de script, cree un javascript para procesar el JSON desde SD-WAN Manager y crear tickets en ServiceNow.
Guión de ejemplo:
(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);
Advertencia: Este es un script de ejemplo. Valide completamente el script antes de utilizarlo en un entorno de laboratorio o de producción.
23. Haga clic en Enviar.
Nuevo registro de recurso REST con scripts
24. Anote la ruta de acceso del recurso. Esta es la URL que debemos introducir en la configuración de Webhook del administrador de SD-WAN.
25. URL de Webhook: https://PDI.service-now.com/Resource_path.
URL de ejemplo en esta guía de configuración: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Configuración del administrador SD-WAN
En esta sección, configuramos SD-WAN Manager Webhook para enviar las alarmas hacia la API ServiceNow: https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
Consejo: Para un administrador SD-WAN de varios arrendatarios, aplique la configuración respectiva en la vista de arrendatario para enviar eventos Webhook para ese arrendatario. También se puede aplicar esta configuración en la vista del proveedor para recibir alarmas de los dispositivos de dominio del proveedor.
Webhook SD-WAN
- Inicie sesión en el Administrador de SD-WAN y navegue hasta Monitor > Logs > Alarm Notifications .
Figura -14
Notificación de alarma SD-WAN
2. Haga clic en Agregar notificaciones de alarma.
Figura -15
3. Introduzca los campos correspondientes para configurar la notificación de alarma.
- Nombre de notificación
- Tipo de alarma
- Método de entrega: WebHook
- Elija un canal para Webhook: Local'
- URL de WebHook (API creada en el paso 24 de la configuración del lado ServiceNow): https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
- Umbral de WebHook: 100
- Deje el nombre de usuario y la contraseña en blanco.
Precaución: Dejar en blanco los campos de nombre de usuario y contraseña en producción supone un riesgo para la seguridad. Muévase con precaución.
4. Haga clic en Add Notification.
Figura -16
Verificación
página de notificaciones de ServiceNow
- Navegemos a la página de notificaciones de ServiceNow.
- Utilice esta URL para acceder al espacio de trabajo principal de ServiceNow. Es su PDI.service-now.com/nav_to.do.
- Ejemplo: https://dev271953.service-now.com/nav_to.do
espacio de trabajo ServiceNow
2. Haga clic en Todo y busque y haga clic en Incidentes.
Figura -17
3. Se abre la página Incidente.
Página Incidente
4. Desde el vshell CLI del Administrador de SD-WAN, ejecute el comando CURL hacia ServiceNow:
curl -X POST "<your_webhook_url_towards_servicenow>"
Mensaje de éxito:
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. Observe un incidente creado en ServiceNow.
Figura -18
Si observa un error de autenticación en CURL como el siguiente:
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"}
Pasos para corregir el error de autenticación
- Vuelva a la página ServiceNow Studio y acceda a la aplicación (por ejemplo: ud-vmanage) en el panel de navegación izquierdo y seleccione la API REST con secuencia de comandos (por ejemplo, ud-vm-snow).
Figura -19
2. Desplácese hasta Recursos y haga clic en el recurso (ejemplo: alarmas).
Figura -20
3. Desplácese hasta Seguridad y desmarque Autenticación y autorización ACL como se muestra a continuación.
a. Requiere autenticación
b. Requiere autorización de ACL
c. Haga clic en Actualizar
Figura -21
4. Ejecute de nuevo el comando CURL desde el vshell del administrador SD-WAN, que es exitoso esta vez.
Generación de alarmas
5. Ahora generar una alarma en SD-WAN Manager por, por ejemplo:
a. Cierre de una interfaz de un router de extremo WAN dentro de la superposición SD-WAN.
b. Borrado de conexiones de control desde cualquier administrador SD-WAN o cualquier router de extremo WAN.
c. Realización de un salto de puerto.
Compruebe el sitio deseado para generar alarmas durante la configuración de Webhook.
6. Observe los incidentes creados en la página ServiceNow.
Figura -22
Figura -23
Figura -24
Troubleshoot
1. Desde el lado del Administrador de SD-WAN, verifique el contenido de /var/log/nms/vmanage-server.log para ver si hay errores relacionados con los mensajes HTTP POST.
Ejemplo de Webhook correcto:
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
Ejemplo de solicitud de Webhook incorrecta:
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. También podemos realizar la captura de paquetes para confirmar una sesión saludable entre el Administrador de SD-WAN y ServiceNow.
Captura de paquetes con IP pública oculta
Información Relacionada