Déploiement et Configuration de LibreNMS
🚀 Déploiement de LibreNMS
Installation de A à Z d'un serveur de supervision réseau centralisé (LibreNMS) sur Linux (Debian/Ubuntu), suivie de l'ajout d'équipements hétérogènes (Cisco, pare-feux Stormshield, serveurs Windows).
🏗️ Phase 0 : Installation de LibreNMS (Prérequis)
L'installation de LibreNMS repose sur une pile standard (Serveur Web, PHP, Base de données MariaDB). Voici les grandes étapes de l'installation initiale :
1. Préparation du système et de l'utilisateur
Bash
# Ajout de l'utilisateur système dédié
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
# Téléchargement de l'application depuis Github
cd /opt
git clone https://github.com/librenms/librenms.git
chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms
# Installation des dépendances PHP (Composer)
su - librenms -c "./scripts/composer_wrapper.php install --no-dev"
2. Création de la Base de Données (MariaDB)
Il faut créer une base de données dédiée et un utilisateur avec les bons droits :
SQL
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'MOT_DE_PASSE';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit
3. Installation Web finale
Une fois le serveur web (Nginx ou Apache) configuré pour pointer sur /opt/librenms/html, l'installation se termine via l'interface graphique :
- Accéder à
http://IP_DU_SERVEUR
- Renseigner les identifiants de la base de données.
- Créer le premier compte Administrateur de LibreNMS.
🛠️ Phase 1 : Résolution des erreurs post-installation (Core)
Suite à l'installation graphique, la commande ./validate.php lève souvent des erreurs liées à l'architecture. Voici comment les corriger pour un serveur unique (Standalone) :
- Conflit Cron vs Scheduler : Transition vers le nouveau planificateur
librenms-scheduler.timer.
- Désactivation de RRDcached : Désactivé car inutile hors architecture multi-serveurs (Distributed Polling).
- Problème de permissions : Réinitialisation des droits (ACL) sur les dossiers de stockage.
Commandes de résolution (Cheatsheet)
Bash
# Forcer le rechargement des services Linux
systemctl daemon-reload
# Activer et démarrer le Scheduler LibreNMS (Pilote automatique)
systemctl enable --now librenms-scheduler.timer
# Désactiver le mode Poller Distribué (erreur rrdcached)
su - librenms -c "./lnms config:set distributed_poller false"
# Réparer les permissions des dossiers (ACL)
chown -R librenms:librenms /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
📡 Phase 2 : Ajout des équipements (SNMP)
Le protocole principal utilisé pour la supervision est le SNMP v2c (Port de destination : UDP 161). La communauté SNMP (mot de passe) choisie pour le labo est : Berlin.
1. Switch Cisco (192.168.32.181)
- Statut : 🟢 Actif
- Ajout direct via l'interface web. Détection automatique du modèle (Cisco Small Business) et génération des graphiques 100% fonctionnelles.
2. Serveurs & Clients Windows (ex: 192.168.32.185)
- Statut : 🟢 Actif
- Configuration de la Sécurité locale (services.msc) :
- Onglet Sécurité > Droits restreints en Lecture Seule.
- Onglet Sécurité > Filtrage IP activé : Seule l'IP du serveur LibreNMS (192.168.32.178) est autorisée à interroger le service.
- Onglet Sécurité > Droits restreints en Lecture Seule.
Le service SNMP n'est plus installé par défaut. Il faut l'ajouter via une invite de commande PowerShell (en tant qu'Administrateur) :
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
3. Pare-feux Stormshield (ex: 192.168.32.182 & 172.16.32.254)
- Statut : 🟢 Actif
- Résolution du Timeout SNMP (Aucune réponse du pare-feu) :
- Filtrage (Règle de Pare-feu) : La règle entrante (In) vers le pare-feu limitait le trafic à
ICMP(Ping). Modification pour autoriserAny(ou spécifiquement le portsnmpen UDP 161). - Communauté : Vérification stricte de la casse. La communauté dans LibreNMS (
Berlin) doit correspondre exactement à l'agent SNMP du pare-feu.
- Filtrage (Règle de Pare-feu) : La règle entrante (In) vers le pare-feu limitait le trafic à
- Résolution de l'erreur "Duplicate sysName" (Lors de l'ajout du 2ème pare-feu) :
- Lors de l'ajout d'un nouvel équipement cloné (ou avec le même numéro de série par défaut), LibreNMS bloque l'ajout.
- Solution appliquée côté serveur Linux pour autoriser les doublons de nom d'hôte :
Bash
su - librenms -c "./lnms config:set allow_duplicate_sysName true"
- Lors de l'ajout d'un nouvel équipement cloné (ou avec le même numéro de série par défaut), LibreNMS bloque l'ajout.
⚙️ Commandes Utiles (Maintenance au quotidien)
| Action | Commande (à taper en root) |
|---|---|
| Lancer un diagnostic santé complet | su - librenms -c "./validate.php" |
| Forcer l'interrogation immédiate d'un équipement | su - librenms -c "./poller.php -h <ADRESSE_IP>" |
| Forcer l'interrogation avec affichage des erreurs (Debug) | su - librenms -c "./poller.php -h <ADRESSE_IP> -d" |
| Vérifier si le pilote automatique fonctionne | systemctl status librenms-scheduler.timer |