SNMP est un protocole réseau qui permet le monitoring d’éléments systèmes et réseaux. Généralement, un serveur de supervision comme Centreon utilise SNMP pour connaitre rapidement l’état d’un parc informatique (switch, routeur, serveurs) comme l’occupation RAM, CPU, Disque, etc.
Dans ce tutoriel nous allons voir comment installer SNMP sous Linux et en particulier sous le système RedHat.
Installation de SNMP.
Lors de l’installation du service SNMP sur la machine Linux, le service se mettra en écoute sur le port 161 en UDP.
#yum install -y net-snmp net-snmp-utils
Une fois les paquets installés, je vous conseille de faire une sauvegarde du fichier de configuration SNMP original, snmp.conf
# cd /etc/snmp # cp -p snmpd.conf snmpd.conf.dist
Puis nous allons modifier ce fichier et le remplacer son contenu par ces lignes :
# echo "rocommunity public">snmpd.conf # echo "syslocation here" >>snmpd.conf # echo "syscontact root@localhost" >>snmpd.conf
La première définit la communauté « public » avec un accès en lecture et les 2 dernières sont libres. C’est ici que vous rajouterez la localisation et la fonction du serveur et les informations de contact en cas de problème.
Activation du SNMP.
Je n’ai pas trop l’habitude du système RedHat, concernant le service SNMP, une fois qu’il est installé, vous devez l’activer et le lancer avec les commandes suivantes :
# systemctl enable snmpd && systemctl start snmpd
Si vous voulez connaitre le statut du service SNMP, utiliser la commande ci-dessous :
# service snmpd status
Par défaut, le firewall est activé sur les nouvelles installations.
# service firewalld status
Si le firewall est actif, il faut rajouter ces 2 lignes (autoriser le port 161 à répondre) pour autoriser une machine distante à interroger notre serveur.
# firewall-cmd --permanent --add-port=161/udp # firewall-cmd --reload
Test du SNMP.
Afin de s’assurer que notre serveur répond bien aux sollicitations SNMP, nous allons faire deux tests.
Test SNMP local
Il suffit d’utiliser la commande ci-dessous pour afficher toutes les informations que l’on peut récupérer sur le serveur avec SNMP.
snmpwalk -v 1 -c public -O e 127.0.0.1
Ici le serveur répond bien à la requête SNMP et affiche les MIB disponibles.
Test SNMP Distant
A l’aide d’un logiciel de type « MIB Browser » comme iReasonning MIB Browser, tester l’accès SNMP au serveur. Ce test permet de s’assurer que vous avez accès à SNMP depuis une machine distante et que le port 161 est bien ouvert sur vos firewalls.
En cas de problème.
- S’assurer de la connectivité réseau de vos deux machines, dans un premier temps via un ping
- Vérifiez si votre pare-feu (netfilter, iptables, nftables) ne bloque pas les paquets en entrée ou en sortie
- S’assurer que les OID basiques soient joignables avant de questionner des OID plus spécifiques.
- Vérifiez que votre service est bien en écoute sur le bon port, la bonne interface réseau, la bonne IP (v4, v6), notamment avec la commande « ss » qui permet de lister les ports en écoute.
#ss –ulnp | grep 161
On voit ici que le port 161 est bien écoute en UDP.
Voici le détail des principales options :
- « u » permet de lister les ports UDP uniquement
- « l » permet de lister les ports en écoute (« Listening » )
- « n » permet d’afficher les numéros de ports et non leur correspondance (exemple : afficher « 22 » plutôt que « SSH » )
- « p » permet d’afficher les processus correspondants aux ports en écoute
Le service SNMP sous RedHat devrait être maintenant actif. Vous allez pouvoir superviser votre serveur Linux en toute simplicité avec Centreon par exemple ;)
That’s All.