Déployer la supervision d'un grand SI à partir de 4 fichiers CSV
Pourquoi le CSV par API est un format idéal pour la supervision massive
La croissance rapide des systèmes d’information, l’hétérogénéité des environnements et la pression croissante sur les équipes IT rendent la supervision toujours plus complexe. Lorsqu’il faut superviser des centaines, voire des milliers d’équipements, les approches manuelles atteignent vite leurs limites. La supervision par fichier CSV dans ServicePilot apporte une réponse simple, industrialisable et parfaitement adaptée aux grands SI.
Le CSV s’impose comme un standard dans les environnements IT. Sa simplicité en fait un outil puissant pour orchestrer la supervision à grande échelle.
- Universel et interopérable : compatible avec Excel, scripts, CMDB, outils d’inventaire
- Automatisable : facile à générer via PowerShell, Bash, Python ou pipelines CI/CD
- Lisible et modifiable : idéal pour les revues rapides et les corrections en masse
- Versionnable : peut être intégré dans Git ou SVN pour tracer les évolutions
- Rapide : charger des centaines ou des milliers d'équipements en quelques secondes
En combinant ces avantages, le CSV devient un pivot naturel entre l’inventaire du SI et la plateforme de supervision.
Comment superviser tout un SI avec 4 fichiers CSV ?
1. Prérequis et préparation avant l'import CSV
Avant de mettre en place un workflow d’import CSV dans ServicePilot, quelques prérequis techniques garantissent une supervision fiable, sécurisée et performante, en particulier dans les grands environnements distribués.
Déploiement des Agents
Pour les serveurs (physiques ou virtuels), la supervision la plus fine et la plus fiable repose sur l’installation d’un Agent ServicePilot par machine. Cet agent apporte plusieurs avantages :
- Collecte locale détaillée des métriques système (CPU, RAM, disques, processus…)
- Supervision avancée (trafic réseau, logs, transactions applicatives…)
- Configuration simplifiée
Déploiement des SPProxy
Dans les architectures multi‑sites ou multi‑datacenters, il est recommandé de déployer un SPProxy par DC. Ce composant joue un rôle essentiel :
- Il centralise les communications entre les équipements locaux et la plateforme ServicePilot
- Il réduit drastiquement les ouvertures de flux réseau, en évitant d’exposer directement les infrastructures internes
- Il permet de contenir le trafic de supervision au sein du datacenter, limitant les latences et améliorant la résilience
- Il facilite la montée en charge en répartissant la collecte sur plusieurs proxys
Le déploiement des agents peut être automatisé et se faire en masse à l'aide de GPO ou de script type Ansible. Un SPProxy n'est qu'une ressource déployée sur un agent. L’association Proxy par DC et agent par serveur constitue une base solide pour industrialiser la supervision, tout en garantissant sécurité, performance et simplification de la gestion réseau.
Modélisation des vues
La modélisation des vues est une étape clé de tout déploiement de supervision via fichiers CSV. Cette préparation garantit que l’import CSV ne crée pas une supervision « à plat », mais bien une supervision structurée, exploitable et évolutive.
Pourquoi modéliser les vues en amont ?
- Structurer le SI : les vues permettent de représenter l’organisation logique ou métier du système d’information : sites, environnements, applications, services, équipements.
- Garantir la cohérence des imports CSV : chaque ligne d’un CSV a une place claire dans l’arborescence.
- Faciliter la navigation et l’analyse : des vues bien pensées permettent aux équipes d’identifier rapidement les impacts, les anomalies et les priorités.
Les éléments clés d’une bonne modélisation :
- Découpage hiérarchique : définir les niveaux avec organisation → site → domaine → service → équipement → objets et métriques.
- Nomenclature homogène : choisir des conventions de nommage stables pour les vues, les équipements et les objets.
- Alignement métier : les vues doivent refléter la manière dont les équipes exploitent réellement le SI.
Préparation des clés API et du Cluster ServicePilot
La préparation des clés API pour l'environnement cluster est une étape cruciale pour garantir la sécurité et la résilience du déploiement de la supervision. Les clés API pour le Cluster ServicePilot permettent de :
- Sécuriser le dialogue Agent-Manager
- Sécuriser l'accès aux API's de provisioning
- Router les agents ou les requêtes de provisioning vers le bon noeud en mode cluster
Etude des packages à déployer
Les packages déterminent les objets créés, les métriques collectées, les seuils par défaut et les dashboards associés.
Avant tout import massif, il est indispensable d’adapter les fichiers CSV aux champs attendus par les packages ServicePilot, car chaque package impose ses propres attributs obligatoires — adresse IP, type d’équipement, credentials, options de découverte, etc. Cette préparation garantit que les objets créés seront complets et fonctionnels dès leur import.
En parallèle, la sélection et la normalisation des packages à utiliser permettent de standardiser le déploiement sur l’ensemble du SI.
2. Préparation des fichiers CSV
Fichier CSV pour les vues
Pour garantir un import fluide et une organisation cohérente des objets dans l’arborescence, la préparation du fichier CSV dédié aux vues est indispensable, car elle définit précisément la structure logique dans laquelle viendront s’insérer tous les éléments supervisés.
Template pour les Vues :
# Création de 2 vues "Customer", répartis chacun sur 3 sites avesc des sous-vues par périmètre technique
name,oldname,view,x,y,width,height,shape,picture,enablegeo,latitude,longitude,autoarrange,description,display
# Vues 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
# Vues Sites
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
# Vues Techniques
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
Modélisation avec Provisioning-auto
La modélisation par règles de Provisioning-auto pour les serveurs permet de définir un cadre automatisé dans lequel chaque nouveau serveur est immédiatement associé aux collectes nécessaires - NetTrace, AppTrace, Logs, etc.
Cette approche garantit une supervision complète et homogène dès l’arrivée d’un serveur dans le SI : les flux réseau sont analysés, les transactions applicatives sont tracées, les journaux sont collectés et les métriques système sont intégrées.
En complément, il est possible de définir des règles de vue afin de déplacer automatiquement les éléments dans les vues adéquates.
Fichiers CSV pour les packages
Un fichier CSV destiné à ServicePilot (par package) contient généralement les informations suivantes :
- Nom de l’équipement
- Vue (Groupe ou dossier de classement)
- Policies à appliquer
- Agent de collecte
- Tags définis par l'utilisateur (environnement, site, criticité…)
- Adresse IP ou FQDN
- Paramètres spécifiques au Package
Chaque ligne représente un élément à superviser. Cette structure simple permet de décrire des milliers d’éléments en quelques secondes.
Template pour les pare-feux :
# Création d'une ressource Firwall Fortigate par site avec un Agent Poller par 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
Template pour les applications :
# Création d'un Check Web applicatif par site avec un Agent Poller par Customer
name,oldname,view,policy,agents,description,tags,web_site_url,polling_interval,expected_http_return_code
# Check 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
# Check 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
Template pour les serveurs :
# Création d'une ressource de serveur Windows par site avec un Agent Poller + SPProxy par 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
# Serveurs 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
# Serveurs 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. Import dans ServicePilot
Les fichiers CSV sont ensuite importés dans ServicePilot.
Template de 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
Lors de l’import, ServicePilot :
- Crée les nouveaux éléments
- Met à jour ceux déjà existants
Il existe aussi une API DELETE qui permet de supprimer les éléments que l'on ne souhaite plus superviser.
Une fois les CSV traités, ServicePilot applique automatiquement les modèles de supervision définis.
L'importation de centaines d'éléments prend quelques secondes.
Bonnes pratiques pour les fichiers CSV
Pour tirer le meilleur parti de la supervision par CSV, quelques bonnes pratiques s’imposent :
- Normaliser les noms, groupes et conventions de tagging
- Versionner les fichiers CSV dans Git, SVN ou un logiciel de gestion de versions
- Séparer les fichiers par périmètre (réseau, serveurs, cloud…)
- Documenter les paramètres des packages de supervision utilisés (en-têtes de colonnes et format des champs CSV)
- Gérer uniquement les ressources ajoutées via CSV à l'aide de l'API de provisioning
Ces pratiques renforcent la qualité, la maintenabilité et la scalabilité de la supervision.
Un déploiement industrialisé, fiable et durable
Ce workflow présente plusieurs avantages majeurs :
- Supervision opérationnelle rapidement, pas de formation nécessaire pour les opérateurs
- Modifcation facile des CSV pour affiner la modélisation
- Réduction des erreurs humaines
- Traçabilité grâce au versionnement des fichiers
La supervision par fichier CSV dans ServicePilot n’est pas seulement un gain de temps : c’est un véritable levier d’industrialisation. Elle permet de superviser des milliers d’équipements avec facilité et de réduire les erreurs humaines. Pour les grandes organisations, c’est une approche incontournable pour garantir une observabilité moderne, scalable et durable.