Supervision avec SNMP
Introduction à SNMP
SNMP (Simple Network Management Protocol) est un protocole de communication réseau proposé par l’IETF. Ce protocole est utilisé pour gérer et superviser les équipements réseau comme les switchs et les routeurs et aussi les machines connectées à un réseau comme les serveurs, les applications et les bases de données. Bien qu’il soit un protocole relativement simple, il offre un ensemble de fonctionnalités permettant aux administrateurs système et réseau de gérer facilement un réseau hétérogène et de grande taille. Un réseau de gestion SNMP est composé de trois éléments principaux qui sont une station de gestion de réseau aussi appelée gestionnaire SNMP, des nœuds connectés au même réseau et des agents de collecte d’informations. Les différents éléments d’un réseau de gestion SNMP sont les suivants :
-
Le gestionnaire SNMP
Le gestionnaire SNMP est une machine connectée au réseau configurée pour interroger l’agent SNMP pour information. Cette station de gestion de réseau peut être une machine qui peut envoyer des requêtes d’interrogation aux agents SNMP avec les informations d’identification correctes. Parfois, cela est mis en œuvre à travers un logiciel de surveillance et à l’aide d’utilitaires simples exécutés par l’administrateur pour élaborer une demande rapide. Dans un réseau, nous pouvons avoir plusieurs stations de gestion. Dans notre cas, le serveur Nagios joue le rôle d’un gestionnaire SNMP.
-
Le nœud
Un nœud est tout équipement ou logiciel que nous cherchons à gérer avec le protocole SNMP. Chaque nœud doit disposer d’un agent de collecte SNMP qui répond aux requêtes envoyées par le gestionnaire. Ce nœud peut être un serveur, routeur, etc. La plupart des systèmes d’exploitation et équipements réseau possèdent un agent SNMP préconfiguré et ils sont livrés avec divers utilitaires permettant la communication avec d’autres périphériques via le protocole SNMP.
-
L’agent de collecte SNMP...
Installation et configuration de l’agent SNMP
SNMP est l’un des protocoles les plus utilisés pour contrôler et superviser les hôtes de différents types et constructeurs. L’installation et la configuration de l’agent sur l’hôte sont nécessaires si vous souhaitez le surveiller à partir d’un serveur de supervision comme Nagios ou de tout autre logiciel qui utilise le protocole SNMP. Dans cette partie, nous allons décrire les étapes nécessaires à l’installation et la configuration de l’agent SNMP sur un serveur Linux, un serveur Windows et un équipement réseau Cisco.
1. Activer SNMP sur un serveur Linux
Nous allons effectuer l’installation d’un agent SNMP sur un serveur Linux avec une distribution Ubuntu/Debian et une distribution CentOS/Red Hat. Nous avons besoin d’installer le paquet Net-SNMP (http://netsnmp.sourceforge.net/). Ce paquet existe dans toutes les distributions Linux et fonctionne avec presque tous les systèmes d’exploitation UNIX.
Pour installer ce paquet sur un serveur CentOS/Red Hat, il faut utiliser la commande ci-dessous :
yum install net-snmp
Pour installer ce paquet sur Ubuntu/Debian, exécutez la commande suivante :
apt-get install snmp
Après la terminaison de l’installation, nous pouvons exécuter la commande ci-dessous pour vérifier la bonne installation et aussi la version de paquet installée :
snmpget -V
NET-SNMP version: 5.3.1
Maintenant, nous allons configurer le service SNMP en ajoutant une communauté et en autorisant les serveurs qui jouent le rôle d’un gestionnaire SNMP comme le serveur Nagios. Le fichier de configuration de service snmp est /etc/snmp/snmpd.conf, nous allons donc l’éditer avec l’éditeur de texte vi mais avant de commencer la modification, sauvegardez le fichier snmpd.conf :
cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
vi /etc/snmp/snmpd.conf
Puis il faut modifier les lignes suivantes en écrivant une nouvelle communauté :
# sec.name source community
com2sec notConfigUser default public
Comme ci-dessous :
# sec.name source community
com2sec read-only 192.168.0.0/24...
Contrôle d’un hôte avec SNMP
Nagios utilise aussi le protocole SNMP pour contrôler les hôtes connectés sur le réseau. Nagios opère comme un gestionnaire SNMP en interrogeant les agents SNMP sur des informations précises. Nagios utilise le plugin check_snmp pour envoyer les requêtes SNMP vers la machine supervisée. Ce plugin utilise les deux commandes de Net-SNMP snmpget et snmpgetnext, et il ne fonctionne pas sans ces commandes. L’exemple suivant montre comment le plugin check_snmp peut être utilisé pour contrôler le nombre d’interfaces réseau sur un serveur Linux.
./check_snmp -H 192.168.0.120 -C Nagios!@comm -o IF-MIB::ifNumber.0
SNMP OK - 2.00 | IF-MIB::ifNumber.0 =2.00
D’une manière générale, la syntaxe de la commande check_snmp est la suivante :
check_snmp -H <Address-IP> -o <OID> [-p port] [-P protocol]
[-C community] [-w warnning] [-c critical] [-s string]
[-r regex] [-R regexi] [-l label] [-u units] [-d delimiter]
[-D output- delimiter] [-t timeout] [-e retries] [-m miblist]
[-L seclevel] [-U secname] [-a authproto]
[-A authpasswd] [-X privpasswd]
Voyons la signification de chaque option disponible avec le plugin check_snmp :
-
-H, --hostname : cette option spécifie l’adresse IP ou nom DNS de la machine à superviser....
Diagnostic et solutions pour les problèmes du contrôle avec SNMP
Si vous avez suivi soigneusement les étapes décrites dans la section précédente, tout devrait fonctionner sans aucun problème. Si ça ne marche pas et que vous rencontrez des problèmes pour exécuter le contrôle sur les hôtes en utilisant le protocole SNMP, suivez la procédure ci-dessous pour trouver la cause racine et résoudre votre problème.
La première étape consiste à vérifier que l’agent SNMP est bien installé et configuré sur l’hôte.
Aussi, il faut vérifier que le serveur est à l’écoute sur le port SNMP 161. Lancez la commande ci-dessous pour tester sur un serveur Linux :
netstat -nlup | grep snmp
Pour un serveur Windows, ouvrez cmd.exe avec des privilèges d’administrateur et lancez la commande ci-dessous :
netstat -an | find /i "listening"
Si vous ne trouvez pas le port SNMP 161 à l’écoute, vérifiez que l’état de l’agent est démarré.
La deuxième étape consiste à vérifier que l’hôte accepte les requêtes SNMP depuis le serveur Nagios et qu’il n’y a aucun pare-feu qui bloque la connexion entre les deux serveurs. Nous pouvons utiliser la commande snmpget pour tester la communication...