Implementar la supervisión de un gran SI a partir de 4 archivos CSV
Por qué el CSV por API es un formato ideal para la supervisión masiva
El rápido crecimiento de los sistemas de información, la heterogeneidad de los entornos y la creciente presión sobre los equipos de TI hacen que la supervisión sea cada vez más compleja. Cuando hay que supervisar cientos o incluso miles de equipos, los enfoques manuales alcanzan rápidamente sus límites. La supervisión mediante archivos CSV en ServicePilot ofrece una respuesta sencilla, industrializable y perfectamente adaptada a los grandes sistemas de información.
El CSV se impone como un estándar en los entornos informáticos. Su simplicidad lo convierte en una herramienta potente para orquestar la supervisión a gran escala.
- Universal e interoperable: compatible con Excel, scripts, CMDB, herramientas de inventario
- Automatizable: fácil de generar a través de PowerShell, Bash, Python o pipelines CI/CD
- Legible y modificable: ideal para revisiones rápidas y correcciones masivas
- Versionable: se puede integrar en Git o SVN para rastrear los cambios
- Rápido: carga cientos o miles de equipos en segundos
Al combinar estas ventajas, el CSV se convierte en un eje natural entre el inventario del SI y la plataforma de supervisión.
¿Cómo supervisar todo un SI con 4 archivos CSV?
1. Requisitos previos y preparación antes de la importación CSV
Antes de implementar un flujo de trabajo de importación CSV en ServicePilot, algunos requisitos técnicos garantizan una supervisión fiable, segura y eficaz, especialmente en grandes entornos distribuidos.
Despliegue de agentes
Para los servidores (físicos o virtuales), la supervisión más precisa y fiable se basa en la instalación de un Agente ServicePilot por máquina. Este agente aporta varias ventajas:
- Recopilación local detallada de métricas del sistema (CPU, RAM, discos, procesos, etc.)
- Supervisión avanzada (tráfico de red, registros, transacciones de aplicaciones, etc.)
- Configuración simplificada.
Despliegue de SPProxy
En arquitecturas multisitio o multicentro de datos, se recomienda implementar un SPProxy por cada centro de datos. Este componente desempeña un papel esencial:
- Centraliza las comunicaciones entre los equipos locales y la plataforma ServicePilot
- Reduce drásticamente las aperturas de flujo de red, evitando exponer directamente las infraestructuras internas
- Permite contener el tráfico de supervisión dentro del centro de datos, lo que limita las latencias y mejora la resiliencia
- Facilita el aumento de la carga distribuyendo la recopilación entre varios proxys
La implementación de agentes se puede automatizar y realizar de forma masiva mediante GPO o scripts tipo Ansible. Un SPProxy no es más que un recurso implementado en un agente. La combinación de proxy por centro de datos y agente por servidor constituye una base sólida para industrializar la supervisión, al tiempo que garantiza la seguridad, el rendimiento y la simplificación de la gestión de la red.
Modelización de vistas
La modelización de vistas es una etapa clave en cualquier implementación de supervisión mediante archivos CSV. Esta preparación garantiza que la importación CSV no cree una supervisión «plana», sino una supervisión estructurada, explotable y evolutiva.
¿Por qué modelar las vistas por adelantado?
- Estructurar el SI: las vistas permiten representar la organización lógica o funcional del sistema de información: sitios, entornos, aplicaciones, servicios, equipos.
- Garantizar la coherencia de las importaciones CSV: cada línea de un CSV tiene un lugar claro en el árbol.
- Facilitar la navegación y el análisis: unas vistas bien diseñadas permiten a los equipos identificar rápidamente los impactos, las anomalías y las prioridades.
Elementos clave de un buen modelado:
- División jerárquica: definir los niveles con organización → sitio → dominio → servicio → equipo → objetos y métricas.
- Nomenclatura homogénea: elegir convenciones de nomenclatura estables para las vistas, los equipos y los objetos.
- Alineación con el negocio: las vistas deben reflejar la forma en que los equipos utilizan realmente el sistema de información.
Preparación de las claves API y del clúster ServicePilot
La preparación de las claves API para el entorno cluster es un paso crucial para garantizar la seguridad y la resiliencia de la implementación de la supervisión. Las claves API para el Cluster ServicePilot permiten:
- Proteger el diálogo entre el agente y el gestor
- Proteger el acceso a las API de aprovisionamiento
- Enrutar los agentes o las solicitudes de aprovisionamiento al nodo correcto en modo clúster
Estudio de los packages que se van a implementar
Los packages determinan los objetos creados, las métricas recopiladas, los umbrales predeterminados y los cuadros de mando asociados.
Antes de cualquier importación masiva, es imprescindible adaptar los archivos CSV a los campos esperados por los packages ServicePilot, ya que cada package impone sus propios atributos obligatorios: dirección IP, tipo de equipo, credenciales, opciones de detección, etc. Esta preparación garantiza que los objetos creados estén completos y sean funcionales desde el momento de su importación.
Al mismo tiempo, la selección y normalización de los packages que se van a utilizar permiten estandarizar la implementación en todo el sistema de información.
2. Preparación de los archivos CSV
Archivo CSV para las vistas
Para garantizar una importación fluida y una organización coherente de los objetos en el árbol, es imprescindible preparar el archivo CSV dedicado a las vistas, ya que define con precisión la estructura lógica en la que se insertarán todos los elementos supervisados.
Plantilla para Vistas :
# Creación de 2 vistas «Customer», distribuidas cada una en 3 sitios con subvistas por ámbito técnico
name,oldname,view,x,y,width,height,shape,picture,enablegeo,latitude,longitude,autoarrange,description,display
# Vistas principales «Customer»
Customer 1,,MAIN,350,250,60,60,image,building-office.svg,0,,,linear,,map
Customer 2,,MAIN,550,250,60,60,image,building-office.svg,0,,,linear,,map
# Vistas de sitios
C1 - Site A,,Customer 1,,,30,30,image,building-office.svg,1,48.827522,2.240526,linear,adresse du site A du Customer 1,table
C1 - Site B,,Customer 1,,,30,30,image,building-office.svg,1,47.827522,2.240526,linear,adresse du site B du Customer 1,table
C1 - Site C,,Customer 1,,,30,30,image,building-office.svg,1,46.827522,2.240526,linear,adresse du site C du Customer 1,table
C2 - Site A,,Customer 2,,,30,30,image,building-office.svg,1,48.827522,2.240526,linear,adresse du site A du Customer 2,table
C2 - Site B,,Customer 2,,,30,30,image,building-office.svg,1,48.827522,1.240526,linear,adresse du site B du Customer 2,table
C2 - Site C,,Customer 2,,,30,30,image,building-office.svg,1,48.827522,0.240526,linear,adresse du site C du Customer 2,table
# Vistas técnicas
C1 - Site A - Network,,C1 - Site A,,,30,30,image,firewall-flame.svg,0,,,linear,,map
C1 - Site A - Servers,,C1 - Site A,,,30,30,image,server-server.svg,0,,,linear,,map
C1 - Site A - Applications,,C1 - Site A,,,30,30,image,activity-monitor-user-group.svg,0,,,linear,,map
C1 - Site B - Network,,C1 - Site B,,,30,30,image,firewall-flame.svg,0,,,linear,,map
C1 - Site B - Servers,,C1 - Site B,,,30,30,image,server-server.svg,0,,,linear,,map
C1 - Site B - Applications,,C1 - Site B,,,30,30,image,activity-monitor-user-group.svg,0,,,linear,,map
C1 - Site C - Network,,C1 - Site C,,,30,30,image,firewall-flame.svg,0,,,linear,,map
C1 - Site C - Servers,,C1 - Site C,,,30,30,image,server-server.svg,0,,,linear,,map
C1 - Site C - Applications,,C1 - Site C,,,30,30,image,activity-monitor-user-group.svg,0,,,linear,,map
C2 - Site A - Network,,C2 - Site A,,,30,30,image,firewall-flame.svg,0,,,linear,,map
C2 - Site A - Servers,,C2 - Site A,,,30,30,image,server-server.svg,0,,,linear,,map
C2 - Site A - Applications,,C2 - Site A,,,30,30,image,activity-monitor-user-group.svg,0,,,linear,,map
C2 - Site B - Network,,C2 - Site B,,,30,30,image,firewall-flame.svg,0,,,linear,,map
C2 - Site B - Servers,,C2 - Site B,,,30,30,image,server-server.svg,0,,,linear,,map
C2 - Site B - Applications,,C2 - Site B,,,30,30,image,activity-monitor-user-group.svg,0,,,linear,,map
C2 - Site C - Network,,C2 - Site C,,,30,30,image,firewall-flame.svg,0,,,linear,,map
C2 - Site C - Servers,,C2 - Site C,,,30,30,image,server-server.svg,0,,,linear,,map
C2 - Site C - Applications,,C2 - Site C,,,30,30,image,activity-monitor-user-group.svg,0,,,linear,,map
Modelado con Provisioning-auto
El modelado mediante reglas de Provisioning-auto para servidores permite definir un marco automatizado en el que cada nuevo servidor se asocia inmediatamente a las recopilaciones necesarias: NetTrace, AppTrace, Logs, etc.
Este enfoque garantiza una supervisión completa y homogénea desde la llegada de un servidor al sistema de información: se analizan los flujos de red, se rastrean las transacciones de las aplicaciones, se recopilan los registros y se integran las métricas del sistema.
Además, es posible definir reglas de vista para mover automáticamente los elementos a las vistas adecuadas.
Archivos CSV para los packages
Un archivo CSV destinado a ServicePilot (por package) suele contener la siguiente información:
- Nombre del equipo
- Vista (grupo o carpeta de clasificación)
- Políticas que se deben aplicar
- Agente de recopilación
- Etiquetas definidas por el usario (entorno, sitio, criticidad...)
- Dirección IP o FQDN
- Parámetros específicos del Package
Cada línea representa un elemento que supervisar. Esta sencilla estructura permite describir miles de elementos en pocos segundos.
Plantilla para cortafuegos:
# Creación de un recurso firewall Fortigate por sitio con un Agente Poller por Customer
name,oldname,view,policy,agents,description,tags,ip_address_fqdn,interfaces,interface_filter,enable_monitoring_of_sdwan,discover_only_connected_sdwan,enable_monitoring_of_ipsec
# Firewalls Customer 1
FW1A,,C1 - Site A - Network,snmpv2,C1-Poller,,,10.1.1.1,true,*,true,true,true
FW1B,,C1 - Site B - Network,snmpv2,C1-Poller,,,10.1.1.2,true,*,true,true,true
FW1C,,C1 - Site C - Network,snmpv2,C1-Poller,,,10.1.1.3,true,*,true,true,true
# Firewalls Customer 2
FW2A,,C2 - Site A - Network,snmpv2,C2-Poller,,,10.2.1.1,true,*,true,true,true
FW2B,,C2 - Site B - Network,snmpv2,C2-Poller,,,10.2.1.2,true,*,true,true,true
FW2C,,C2 - Site C - Network,snmpv2,C2-Poller,,,10.2.1.3,true,*,true,true,true
Plantilla para aplicaciones:
# Creación de una comprobación web de aplicaciones por sitio con un agente Poller por Customer
name,oldname,view,policy,agents,description,tags,web_site_url,polling_interval,expected_http_return_code
# Checks Web Customer 1
MyApp1A,,C1 - Site A - Applications,snmpv2,C1-Poller,,,https://MyApp1A,60,200
MyApp1B,,C1 - Site B - Applications,snmpv2,C1-Poller,,,https://MyApp1B,60,200
MyApp1C,,C1 - Site C - Applications,snmpv2,C1-Poller,,,https://MyApp1C,60,200
# Checks Web Customer 2
MyApp2A,,C2 - Site A - Applications,snmpv2,C2-Poller,,,https://MyApp2A,60,200
MyApp2B,,C2 - Site B - Applications,snmpv2,C2-Poller,,,https://MyApp2B,60,200
MyApp2C,,C2 - Site C - Applications,snmpv2,C2-Poller,,,https://MyApp2C,60,200
Plantilla para servidores:
# Creación de un recurso de servidor Windows por sitio con un Agente Poller + SPProxy por Customer
name,oldname,view,policy,agents,description,tags,icmp_ping,ip_address_fqdn,interfaces,interface_filter,discover_only_connected_interfaces,volumes,drive_letter_and_path_filter,specified_services,services
# Servidores Customer 1
SRV1A,,C1 - Site A - Servers,snmpv2,"[SRV1A,C1-Poller]",,,true,10.1.2.1,true,*,true,true,*,true,Netlogon
SRV1B,,C1 - Site B - Servers,snmpv2,"[SRV1B,C1-Poller]",,,true,10.1.2.2,true,*,true,true,*,true,Netlogon
SRV1C,,C1 - Site C - Servers,snmpv2,"[SRV1C,C1-Poller]",,,true,10.1.2.3,true,*,true,true,*,true,Netlogon
# Servidores Customer 2
SRV2A,,C2 - Site A - Servers,snmpv2,"[SRV2A,C2-Poller]",,,true,10.2.2.1,true,*,true,true,*,true,Netlogon
SRV2B,,C2 - Site B - Servers,snmpv2,"[SRV2B,C2-Poller]",,,true,10.2.2.2,true,*,true,true,*,true,Netlogon
SRV2C,,C2 - Site C - Servers,snmpv2,"[SRV2C,C2-Poller]",,,true,10.2.2.3,true,*,true,true,*,true,Netlogon
3. Importación a ServicePilot
A continuación, los archivos CSV se importan a ServicePilot.
Plantilla para el script Powershell:
# Uncomment line below if HTTPS with TLS>=1.2 only
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12'
# Select an API key with write access
$APIKEY="0af8b87c-49c0-40b6-9c39-87bf445cf866"
Invoke-WebRequest -UseBasicParsing -Uri "https://{servicepilot_fqdn}/api/provisioning/view" -Method "POST" -Headers @{ 'x-api-key'=$APIKEY } -ContentType "text/csv" -InFile views.csv
Invoke-WebRequest -UseBasicParsing -Uri "https://{servicepilot_fqdn}/api/provisioning/security-fortigate-firewall" -Method "POST" -Headers @{ 'x-api-key'=$APIKEY } -ContentType "text/csv" -InFile fortigate.csv
Invoke-WebRequest -UseBasicParsing -Uri "https://{servicepilot_fqdn}/api/provisioning/user-webcheck" -Method "POST" -Headers @{ 'x-api-key'=$APIKEY } -ContentType "text/csv" -InFile applications.csv
Invoke-WebRequest -UseBasicParsing -Uri "https://{servicepilot_fqdn}/api/provisioning/server-microsoft-windows-sp-agent" -Method "POST" -Headers @{ 'x-api-key'=$APIKEY } -ContentType "text/csv" -InFile servers.csv
Durante la importación, ServicePilot:
- Crea los nuevos elementos.
- Actualiza los ya existentes.
Existe también una API DELETE que permite eliminar los elementos que ya no se desean supervisar.
Una vez procesado los CSV, ServicePilot aplica automáticamente las plantillas de supervisión definidas.
Se tarda unos segundos en importar cientos de elementos.
Buenas prácticas para los archivos CSV
Para sacar el máximo partido a la supervisión por CSV, es necesario seguir algunas buenas prácticas:
- Normalizar los nombres, grupos y convenciones de etiquetado
- Versionar los archivos CSV en Git, SVN o un software de gestión de versiones
- Separar los archivos por ámbito (red, servidores, nube...)
- Documentar los parámetros de los packages de supervisión utilizados (encabezados de columnas y formato de los campos CSV)
- Solo se pueden gestionar los recursos añadidos a través de CSV utilizando la API de aprovisionamiento
Estas prácticas refuerzan la calidad, la mantenibilidad y la escalabilidad de la supervisión.
Una implementación industrializada, fiable y sostenible
Este flujo de trabajo presenta varias ventajas importantes:
- Supervisión operativa rápida, sin necesidad de formación para los operadores
- Modificación fácil de los CSV para perfeccionar la modelización
- Reducción de los errores humanos
- Trazabilidad gracias al control de versiones de los archivos
La supervisión mediante archivos CSV en ServicePilot no solo supone un ahorro de tiempo, sino que es una verdadera palanca para la industrialización. Permite supervisar miles de equipos con facilidad y reducir los errores humanos. Para las grandes organizaciones, es un enfoque imprescindible para garantizar una observabilidad moderna, escalable y sostenible.