[Debian 8] Superviser un serveur Linux via SNMP v2 et LibreNMS

Le serveur de supervision LibreNMS s’installe assez rapidement – vous vous retrouverez ainsi avec un serveur prêt à l’emploi mais vide. L’ajout de matériels supervisés se fait de deux façons : via l’interface web, soit par ligne de commandes.

I. Superviser le serveur local LibreNMS via SNMP v2c

Dans votre serveur Linux qui sera supervisé en SNMP, il faut installer le paquet le plus important : « snmpd« . C’est uniquement grâce à ce paquet que votre machine pourra être supervisée via SNMP.

apt update && apt upgrade && apt install snmp snmpd
  • Le paquet « snmp » permet d’avoir les outils nécessaires pour tester si la supervision SNMP fonctionne correctement.
  • « snmpd » est le serveur SNMP chargé de récupérer / envoyer les données SNMP de vos hôtes.

Les paquets sont très légers, les configurations sont simples ! Il faut ouvrir le fichier « snmpd.conf » pour y ajouter une variable :

nano /etc/snmp/snmpd.conf

Dans la partie « Access control », il faut ajouter ceci :

rocommunity public 127.0.0.1

Explications

  • Pour effectuer la supervision, il faut une « communauté » envoyant/réceptionnant les données – la variable est définie par « rocommunity« 
  • « public » est le nom de cette communauté – il s’agit d’un standard utilisé un peu partout en supervision. Il est possible de modifier ce nom par ce que vous souhaitez, mais pensez bien à remettre le même nom dans le serveur de supervision, sans quoi la communication ne pourra se faire entre le superviseur et le supervisé.
  • « 127.0.0.1 » est l’adresse de boucle locale – vous pouvez y ajouter soit un nom DNS ou l’adresse IP de votre machine locale.

Le reste de la configuration par défaut dans le fichier est correct, il n’est pas nécessaire d’y toucher.
Vous pouvez toutefois parcourir le fichier aisément, puisque tout est commenté.

Il faut redémarrer le service « snmpd » pour prendre en compte les modifications.

systemctl restart snmpd

Le paquet « snmp » a été installé précédemment, nous pouvons donc tester immédiatement si les données sont correctement accessibles via SNMP avec cette commande :

snmpwalk -v 2c -c public 127.0.0.1

Si tout se passe convenablement, vous devriez avoir ce genre de retour :

La commande « snmpwalk » permet d’interroger en SNMP le serveur et donc de récupérer les données, notamment via la communauté citée.
Selon le matériel ou le serveur supervisé, vous aurez plus ou moins d’informations. Il vous sera possible de modifier les informations SNMP à remonter dans LibreNMS en configurant via l’interface web de LibreNMS.


II. Superviser un serveur Linux dans le réseau local avec LibreNMS via SNMP v2c

La procédure pour superviser un de vos serveurs Linux local est sensiblement la même que la supervision du serveur « localhost ».

Tout en haut du fichier /etc/snmp/snmpd.conf, vous devez enlever le dièse (#) en face de « agentAddress udp:161,udp6:[::1]:161 » : ainsi, toutes les requêtes SNMP pourront transiter sans problème sur le réseau.

Enfin, plus bas dans le fichier – partie Access Control -, il faut ajouter cette ligne :

rocommunity public ip_server_snmp

La fin de cette ligne comprend l’adresse IP de votre serveur SNMP LibreNMS.
Sauvegardez le fichier et redémarrer le service SNMP du serveur supervisé (systemctl snmpd restart) – le tour est joué !


L’ajout d’un hôte dans LibreNMS se fait aisément via l’interface web.
Mettez votre souris sur « Devices« , puis cliquez sur « Add device« .

Il faut ajouter les informations concernant la machine qui sera supervisée, adresse IP et communauté.
Par défaut, le port de communication pour le SNMP est le 161, via le protocole UDP. Il faut aussi choisir « v2c », qui est le SNMP V2 – c’est la façon la plus simple de superviser un hôte via SNMP.

Pour valider les changements, il faut cliquer sur le bouton « Add Device« .

Si tout est OK au niveau de la communication entre l’hôte de supervision (LibreNMS) et le matériel / la machine supervisé(e), des notifications vertes devraient s’afficher !

En retournant sur l’interface web de LibreNMS, vous devriez voir tous les appareils supervisés de cette façon :

Il n’y a pas beaucoup d’informations comme vous pouvez le constater : Il faut forcer la synchronisation des hôtes supervisés en lançant la commande suivante :

cd /opt/librenms && php poller.php -h all

Tous les hôtes déjà ajoutés à votre LibreNMS vont alors être « rechargés » et les données de ces hôtes vont être mise à jour. Toutefois, il faut de nouveau mettre à jour les droits et les autorisations sur les dossiers / fichiers des hôtes supervisés, sans quoi il vous sera impossible de voir les graphiques correctement affichés sur l’interface web.

chown -R librenms:librenms /opt/librenms/rrd && chmod 0775 /opt/librenms/rd

En effet, si l’utilisateur est « root » sur les dossiers et les fichiers de vos hôtes, LibreNMS ne sera pas en mesure d’utiliser les fichiers et donc de les exploiter pour afficher les graphiques.

Ainsi, les informations vont finir par s’afficher de la sorte :

Et en allant plus loin sur une des machines supervisées :

Julien H

Passionné depuis toujours par l'informatique, je transforme ma passion en expertise. J'utilise quotidiennement les outils et systèmes Microsoft. Je ne délaisse pas mon côté ouvert, notamment via l'utilisation des OS Debian et Archlinux. L'infosec m'ouvre les yeux sur les enjeux actuels et futurs de l'IT.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Fermer
Fermer