Les protocoles utilisés dans le cadre de la supervision
Introduction
La supervision des systèmes et des réseaux consiste à collecter et à analyser des informations provenant d'équipements (routeurs, commutateurs, serveurs, etc.) afin de détecter ou de prévenir les pannes et d'assurer une disponibilité optimale. Pour cela, différents protocoles et méthodes de collecte de données sont utilisés par les superviseurs (outils tels que Nagios, Centreon, Zabbix, PRTG, etc.).
Nous allons aborder les points suivants :
- SNMP (Simple Network Management Protocol) :
- Notions de base et versions (v1, v2, v3)
- Rôle des communautés et sécurisation (communautés, SNMPv3 et ses améliorations)
- Notion d'OID (Object Identifiers) et structure MIB
- Autres protocoles et méthodes :
- WMI (Windows Management Instrumentation)
- ICMP (Internet Control Message Protocol)
- SSH (Secure Shell)
- Collecte via agents ou en mode agentless (sans agent)
- Différence entre méthodes de polling et réception de traps/alertes
1. SNMP (Simple Network Management Protocol)
1.1 Notions de base
SNMP est un protocole de couche application (basé sur UDP, ports 161 pour les requêtes et 162 pour les traps). Il permet l'échange d'informations de gestion entre des équipements réseau (appelés agents SNMP) et des stations de management (appelées managers ou superviseurs).
- Le manager envoie des requêtes SNMP (GET, GETNEXT, GETBULK, SET) à un agent SNMP pour lire ou modifier des informations dans la MIB de l'équipement.
- L'agent SNMP, installé ou natif sur l'équipement, répond aux requêtes du manager ou envoie de lui-même une notification (TRAP ou INFORM) au manager lorsqu'un événement particulier se produit.
1.2 Versions d'SNMP
- SNMPv1 :
- Première version du protocole.
- Simple à mettre en place, mais la sécurité est quasi inexistante (les noms de communauté circulent en clair sur le réseau).
- SNMPv2c :
- Amélioration des performances (introduit GETBULK, par exemple, pour récupérer plusieurs informations en une seule requête).
- La sécurité reste basée sur le même principe de communauté que SNMPv1 (toujours en clair).
- Utilisé assez fréquemment pour ses performances par rapport à la v1.
- SNMPv3 :
- Introduit un véritable mécanisme de sécurité (authentification et chiffrement).
- Permet de définir plusieurs niveaux de sécurité :
- noAuthNoPriv : pas d'authentification, pas de chiffrement
- authNoPriv : authentification, pas de chiffrement
- authPriv : authentification et chiffrement (niveau le plus sécurisé)
- Plus complexe à configurer, mais indispensable pour un environnement sécurisé.
1.3 Rôle des communautés et sécurisation
- Communauté (community string) : c'est un mot ou une chaîne de caractères utilisée pour accéder à l'agent SNMP dans les versions 1 et 2c.
- Communauté de lecture (read-only) : permet uniquement de lire les informations.
- Communauté de lecture-écriture (read-write) : permet également de modifier la configuration via SNMP.
- Sécurisation :
- Dans SNMPv1/v2c, la seule "sécurité" repose sur ces communautés, mais elles sont transmises en clair, ce qui expose aux attaques.
- Dans SNMPv3, le concept de communauté est remplacé par des utilisateurs (users) avec des mots de passe et des mécanismes de chiffrement/authentification. Cela renforce grandement la confidentialité et l'intégrité des données.
1.4 OID (Object Identifiers) et structure MIB
- OID (Object Identifier) : représente une information spécifique dans la MIB (Management Information Base). C'est un identifiant hiérarchique, unique, qui ressemble à une arborescence de chiffres séparés par des points (par ex. 1.3.6.1.2.1.1.5.0 pour le nom d'hôte).
- MIB (Management Information Base) :
- Base d'informations structurées permettant de décrire toutes les variables gérables sur un équipement (par exemple, la mémoire, l'interface réseau, le nombre de processus, etc.).
- Chaque constructeur peut fournir des extensions de MIB spécifiques à son matériel (ex. Cisco, HP, etc.).
- Les MIBs standardisées (RFC) couvrent des informations communes à la plupart des équipements (MIB-II, IF-MIB, HOST-RESOURCES-MIB, etc.).
2. Autres protocoles et méthodes
2.1 WMI (Windows Management Instrumentation)
- WMI est un ensemble de protocoles et de services intégrés dans les systèmes Windows permettant de récupérer des informations (processus, services, performances, logs, etc.) ou de configurer certaines options à distance.
- Pour les outils de supervision, WMI est souvent utilisé pour collecter des informations sur l'état d'un serveur Windows sans avoir besoin d'installer un agent supplémentaire (monitoring agentless), bien que cela nécessite des droits suffisants et une configuration adaptée (ouverture de ports, paramétrage de la sécurité, etc.).
2.2 ICMP (Internet Control Message Protocol)
- Protocole utilisé principalement pour la commande ping afin de tester la connectivité et la latence entre deux équipements.
- Dans le contexte de la supervision, l'utilisation d'ICMP sert à :
- Vérifier rapidement la disponibilité d'une machine (up/down).
- Calculer des temps de réponse et des taux de perte de paquets.
- ICMP est simple et utile pour un premier niveau de supervision (disponibilité), mais ne fournit pas de données de performance détaillées.
2.3 SSH (Secure Shell)
- SSH est un protocole sécurisé permettant un accès à distance au système via un shell chiffré.
- Dans la supervision, SSH peut être utilisé de plusieurs manières :
- Exécuter des scripts ou des commandes à distance pour collecter des métriques.
- Vérifier l'état de certains services ou fichiers de configuration.
- Les outils de supervision peuvent s'appuyer sur SSH pour se connecter au serveur, y lancer des commandes spécifiques (par exemple, df -h pour connaître l'utilisation des disques) et récupérer les résultats.
2.4 Collecte via agents ou en mode agentless
- Agent-based :
- Un agent (un petit logiciel) est installé sur la machine à superviser.
- Cet agent collecte des données (CPU, mémoire, disque, etc.) et les envoie au superviseur.
- Avantages :
- Généralement plus complet et plus configurable (peut collecter des informations précises en local).
- Moins dépendant des configurations réseau spécifiques, car l'agent sait exactement quelles données récupérer.
- Inconvénients :
- Nécessite l'installation et la maintenance de l'agent sur chaque machine.
- Peut poser des problèmes de compatibilité ou de charge supplémentaire sur la machine.
- Agentless (sans agent) :
- Le superviseur se connecte directement à la machine via un protocole (SNMP, WMI, SSH, etc.) pour récupérer les informations.
- Avantages :
- Rien à installer sur la machine cible.
- Facilité de déploiement dans certains contextes.
- Inconvénients :
- Moins de granularité ou de performance dans certains cas.
- Dépend parfois de configurations plus complexes (ouverture de ports, gestion des droits).
3. Différence entre méthodes de polling et réception de traps/alertes
3.1 Polling (ou scrutation)
- Le superviseur interroge régulièrement les équipements pour récupérer des informations.
- Avantages :
- Le superviseur contrôle la fréquence de collecte et peut détecter des changements réguliers.
- Facile à configurer (intervalle de polling).
- Inconvénients :
- Génère du trafic réseau régulier.
- Les alertes peuvent ne pas être instantanées ; la détection d'un problème peut dépendre de l'intervalle de polling (par exemple toutes les 5 minutes).
3.2 Réception de traps (ou alerts)
- Traps SNMP (v1/v2c) ou Informs (SNMPv2 / v3) : l'agent envoie spontanément une notification au superviseur lorsqu'un événement particulier se produit (chute d'interface, surcharge CPU, etc.).
- Avantages :
- Notification quasi-immédiate d'un événement.
- Moins de trafic de requêtes entre le superviseur et l'équipement (c'est l'équipement qui "parle" au besoin).
- Inconvénients :
- Dépend du bon fonctionnement de l'agent et de la configuration de l'envoi de traps. Si l'agent est défaillant, on ne reçoit plus d'alertes.
- Nécessite de configurer des règles de filtrage et de gestion des traps pour éviter un trop grand nombre de notifications (risque de "bruit").
Synthèse : Polling vs Traps
- Polling : le superviseur va chercher l'information à intervalles réguliers.
- Traps : l'information est poussée par l'agent en temps réel lorsqu'un seuil ou un événement est atteint.
En pratique, les solutions de supervision utilisent souvent un mélange des deux approches :
- Le polling pour collecter des données de performance (CPU, mémoire, etc.) de manière continue.
- Les traps/alertes pour être immédiatement prévenu en cas de panne critique ou de changement d'état.
Conclusion
La collecte de données pour la supervision des systèmes et des réseaux repose sur un ensemble de protocoles et de méthodes variées, adaptées à différents besoins et environnements :
- SNMP reste un protocole central, particulièrement pour les équipements réseaux, grâce à sa standardisation et son efficacité. Les évolutions avec SNMPv3 renforcent la sécurité.
- WMI, ICMP et SSH sont des protocoles/méthodes complémentaires pour superviser des serveurs (notamment sous Windows pour WMI) et pour vérifier la disponibilité ou récupérer des métriques de performance.
- Le choix entre agent-based et agentless dépend du niveau de granularité souhaité, de la facilité de déploiement et de la sécurité requise.
- Enfin, la méthode de collecte (polling périodique ou réception de traps/alertes) doit être choisie en fonction du contexte, de la criticité et de la réactivité souhaitées.
Un bon système de supervision combine généralement plusieurs protocoles et modes de collecte pour couvrir au mieux l'ensemble des équipements et fournir une vision complète du parc informatique.