Comment installer LibreNMS sur Debian 11

LibreNMS est un système de surveillance de réseau open-source basé sur PHP et prenant en charge l’autodiscovery. Il s’agit d’un fork communautaire du logiciel de surveillance Observium publié sous licence GPLv3. L’utilisation de LibreNMS te permet de surveiller des systèmes d’exploitation comme Linux, Windows et BSD. Il prend également en charge une large gamme de matériel réseau de plusieurs fournisseurs comme Aruba, Cisco, Dell, D-Link, HP, Mikrotik, etc.

En tant que système de surveillance complet, LibreNMS offre une multitude de fonctionnalités avec de multiples intégrations et une collecte de données à protocoles multiples.

Voici quelques fonctionnalités remarquables de LibreNMS :

  • Auto-découverte de l’ensemble de ton réseau avec plusieurs protocoles tels que CDP, BGP, SNMP, OSPF et ARP.
  • Plusieurs méthodes d’alerte utilisant l’email, slacks, IRC, Rocket.chat, Telegram, etc.
  • API étendue pour la gestion, la création de graphiques et l’extraction de données de ton système de surveillance.
  • Prend en charge le système de facturation pour générer des factures de bande passante en fonction de l’utilisation du réseau ou du transfert.
  • Prend en charge plusieurs méthodes d’authentification telles que MySQL, Radius, LDAP, HTTP et Active Directory.
  • Prend en charge l’authentification à deux facteurs
  • Multiples intégrations avec des applications tierces telles que Graylog, NfSen, Nagios Plugins, Oxidized, RANCID.
  • Prise en charge d’une large gamme de fournisseurs de matériel, vérifie tes fournisseurs ici.
  • Tableau de bord convivial et personnalisable.
  • Conserve ton logiciel LibreNMS grâce aux supports de mise à jour automatique.
  • Application native pour Android et iOS qui fournit les fonctionnalités de base.

Dans ce guide, tu apprendras comment installer et configurer l’outil de surveillance LibreNMS sur la Debian 11 Bullseye.

Conditions préalables

Pour terminer ce guide, assure-toi que tu as la configuration requise suivante :

  • Système d’exploitation : Debian 11 Bullseye
  • Privilèges de racine

Commençons maintenant l’installation.

Installation des dépendances des paquets

Dans cette première étape, tu vas installer les paquets de base et essentiels pour LireNMS. Tu installeras la pile LEMP, les paquets Python, snmpd et des utilitaires système supplémentaires tels que curl, fping, git et imagemagick.

1. Rafraîchis et mets à jour les dépôts Debian à l’aide de la commande suivante.

sudo apt update

2. Exécute maintenant la commande suivante pour installer les dépendances des paquets.

sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-gmp php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-pip python3-systemd rrdtool snmp snmpd whois

Tape ‘y’ pour confirmer l’installation et appuie sur ‘Enter’ pour continuer.

3. Une fois l’installation des dépendances de paquets terminée, exécute les commandes suivantes pour démarrer et activer des services comme Nginx, MariaDB, PHP-FPM et snmpd.

sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php7.4-fpm
sudo systemctl enable --now snmpd.service

Tu as maintenant terminé l’installation des dépendances des paquets pour LibreNMS.

Configurer le nouvel utilisateur librenms

Dans cette étape, tu vas créer un nouvel utilisateur système ‘librenms’. Ton outil de surveillance LibreNMS fonctionnera sous l’utilisateur ‘librenms’.

1. Exécute la commande suivante pour créer un nouvel utilisateur ‘librenms’.

useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

Options que tu dois connaître :

  • -d /opt/librenms : Configure le répertoire personnel par défaut de l’utilisateur ‘librenms’ dans ‘/opt/librenms’.
  • -M : Ne pas créer de répertoire personnel pour l’utilisateur ‘librenms’.
  • -r : Fais de cet utilisateur ‘librenms’ un utilisateur système.
  • -s « $(which bash) »: Configure l’interpréteur de commandes par défaut pour l’utilisateur ‘librenms’. L’interpréteur de commandes sera la sortie de la commande ‘which bash’.

2. Ensuite, crée un nouveau mot de passe pour l’utilisateur ‘librenms’ à l’aide de la commande suivante.

passwd librenms

Tape un nouveau mot de passe fort et répète.

Passe à l’étape suivante pour configurer ton système pour l’installation de LibreNMS.

Configurer le système de fuseau horaire et PHP

Le temps est un élément essentiel de la surveillance. Dans cette étape, tu vas configurer le fuseau horaire par défaut pour ton PHP et le fuseau horaire du système. Assure-toi que les deux fuseaux horaires (PHP et système) sont synchronisés et utilisent le même fuseau horaire.

1. Modifie la configuration ‘php.ini’ pour PHP-FPM et CLI en utilisant la commande suivante.

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.ini

Décommente l’option ‘date.timezone’ et ajoute ton fuseau horaire après. Pour cet exemple, nous utilisons le fuseau horaire‘Europe/Paris’.

date.timezone = Europe/Paris

Sauvegarde les deux configurations et quitte.

2. Redémarre maintenant PHP-FPM pour appliquer une nouvelle configuration à l’aide de la commande suivante.

sudo systemctl restart php7.4-fpm

3. Ensuite, exécute la commande timedatectl ci-dessous pour définir le fuseau horaire par défaut du système sur‘Europe/Paris‘.

sudo timedatectl set-timezone Europe/Paris

Tu as terminé la configuration du fuseau horaire pour ton PHP et ton système.

Configurer MariaDB et créer une base de données

Dans cette étape, tu vas ajouter la configuration pour MariaDB en fonction des exigences de LibreNMS, puis créer une nouvelle base de données MariaDB et un utilisateur pour l’installation de LibreNMS.

1. Modifie la configuration du serveur MariaDB‘/etc/mysql/mariadb.conf.d/50-server.cnf‘ en utilisant l’éditeur nano.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ajoute la configuration suivante sous la section ‘[mysqld]’.

[mysqld]
.....
....
innodb_file_per_table=1
lower_case_table_names=0

Sauvegarde la configuration et quitte.

2. Pour appliquer la nouvelle configuration de MariaDB, redémarre le service à l’aide de la commande systemctl ci-dessous.

sudo systemctl restart mariadb

Tu as maintenant ajouté une configuration supplémentaire au serveur MariaDB.

3. Ensuite, connecte-toi au shell MariaDB/MySQL en utilisant la commande‘mysql‘ en tant qu’utilisateur‘root‘ comme ci-dessous.

mysql -u root -p

Tape ton mot de passe ou appuie sur‘Enter‘ pour te connecter.

4. Exécute maintenant les requêtes MariaDB suivantes pour créer une nouvelle base de données et un nouvel utilisateur‘librenms‘. Et assure-toi de changer le mot de passe‘LibreNMSPassword‘ par ton mot de passe fort.

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'LibreNMSPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;

Tape ‘exit’ et appuie sur‘Enter‘ pour te déconnecter du shell MariaDB.

Crée une nouvelle base de données et un nouvel utilisateur LibreNMS

Tu as maintenant créé la base de données et l’utilisateur pour l’installation de LibreNMS.

Crée un nouveau pool PHP-FPM

FastCGI Process Manager (FPM) ou PHP-FPM te permet de créer des pools personnalisés pour tes applications PHP. Par défaut, le PHP-FPM exécute le pool ‘www’ avec la configuration‘/etc/php/7.4/fpm/pool.d/www.conf’.

Dans cette étape, tu vas créer un nouveau pool PHP-FPM personnalisé pour LibreNMS. Tu vas créer un nouveau pool PHP-FPM‘librenms‘ avec la configuration ‘/etc/php/7.4/fpm/pool.d/librenms.conf‘, et tu fonctionneras sous l’utilisateur‘librenms‘.

1. Tout d’abord, copie la configuration de pool par défaut‘www.conf‘ dans‘librenms.conf‘ à l’aide de la commande suivante.

cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf

2. Modifie la configuration de pool personnalisée ‘librenms.conf’ à l’aide de l’éditeur nano.

sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf

En haut de la ligne, change l’utilisateur par défaut de ‘[www]’ en ‘[librenms]’.

[librenms]

Change l’utilisateur et le groupe par défaut en‘librenms‘.

user = librenms
group = librenms

Change le fichier sock par défaut de PHP-FPM en ‘/run/php-fpm-librenms.sock‘.

listen = /run/php-fpm-librenms.sock

Enregistre la configuration et quitte.

3. Ensuite, redémarre le service PHP-FPM pour appliquer la nouvelle configuration.

sudo systemctl restart php7.4-fpm

Maintenant, PHP-FPM va créer un nouveau pool ‘librenms’ avec le fichier sock ‘/run/php/php-fpm-librenms.sock’.

4. Vérifie le fichier sock‘librenms‘ à l’aide de la commande suivante.

ss -anl | grep librenms

Tu verras une sortie similaire à celle ci-dessous.

u_str LISTEN 0      511                /run/php/php-fpm-librenms.sock 69199                  * 0     users:(("php-fpm7.4",pid=26105,fd=10),("php-fpm7.4",pid=26104,fd=10),("php-fpm7.4",pid=26103,fd=7))

Tu es maintenant prêt à télécharger et à installer l’outil de surveillance LibreNMS.

Télécharger LibreNMS

Dans cette étape, tu vas télécharger le code source de LibreNMS et configurer la permission et le contrôle d’accès pour celui-ci.

1. Change ton répertoire de travail en ‘/opt’ et télécharge le code source de LibreNMS en utilisant la commande git comme ci-dessous.

cd /opt/
git clone https://github.com/librenms/librenms.git

Ton installation de LibreNMS se trouve dans le répertoire‘/opt/librenms‘.

2. Change la propriété et la permission de l’installation LibreNMS à l’aide de la commande suivante.

chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms

3. Ensuite, configure les listes de contrôle d’accès (ACL) pour le répertoire d’installation de LibreNMS. Autorise le groupe à lire, écrire et exécuter sur chaque répertoire ci-dessous à l’aide de la commande setfacl suivante.

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/

Passe à l’étape suivante pour installer les dépendances PHP pour LibreNMS.

Télécharger le code source de LibreNMS

Installation des dépendances PHP de LibreNMS

Pour installer les dépendances PHP de LibreNMS, tu dois te connecter en tant qu’utilisateur ‘librenms’ et utiliser le composer_wrapper, qui est inclus dans le code source de LibreNMS.

1. Connecte-toi en tant qu’utilisateur ‘librenms’ en utilisant la commande suivante.

su - librenms

2. Exécute le script PHP‘composer_wrapper.php‘ pour installer les dépendances des paquets PHP pour LibreNMS.

./scripts/composer_wrapper.php install --no-dev

3. Une fois que tous les processus de téléchargement sont terminés, tape‘exit‘ et appuie sur‘Enter‘ pour te déconnecter de l’utilisateur‘librenms‘.

Tu as maintenant terminé l’installation des dépendances PHP pour LibreNMS.

Configuration de Nginx pour LibreNMS

Dans cette étape, tu vas créer un nouveau bloc de serveur Nginx pour l’outil de surveillance LibreNMS. Dans cet exemple, nous utiliserons le nom de domaine ‘librenms.example.io’.

1. Crée une nouvelle configuration de bloc serveur Nginx‘librenms‘ à l’aide de l’éditeur nano.

sudo nano /etc/nginx/sites-available/librenms

Copie et colle la configuration suivante. Et assure-toi de changer le nom de domaine avec ton domaine.

server {
 listen      80;
 server_name librenms.example.io;
 root        /opt/librenms/html;
 index       index.php;

 charset utf-8;
 gzip on;
 gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
 location / {
  try_files $uri $uri/ /index.php?$query_string;
 }
 location ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/run/php-fpm-librenms.sock;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  include fastcgi.conf;
 }
 location ~ /\.(?!well-known).* {
  deny all;
 }
}

Pour une installation HTTPS sécurisée de LibreNMS, utilise la configuration suivante. Et assure-toi de changer le nom de domaine et le chemin des certificats SSL.

server {
    listen      80;
    server_name librenms.example.io;
    rewrite     ^   https://$server_name$request_uri? permanent;
}

server {

 server_name librenms.example.io;
 root        /opt/librenms/html;
 index       index.php;

   listen 443 ssl http2;
    server_name example.io;
    ssl_certificate           /etc/letsencrypt/live/librenms.example.io/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/librenms.example.io/privkey.pem;

    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

 charset utf-8;
 gzip on;
 gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
 location / {
  try_files $uri $uri/ /index.php?$query_string;
 }
 location ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/run/php/php-fpm-librenms.sock;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  include fastcgi.conf;
 }
 location ~ /\.(?!well-known).* {
  deny all;
 }
}

Enregistre maintenant la configuration et quitte.

2. Ensuite, active le nouvel hôte virtuel‘librenms‘ et vérifie la configuration de nginx à l’aide de la commande suivante.

sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
sudo nginx -t

Si ta configuration est correcte, tu verras le message de sortie tel que ‘test is successful’.

3. Enfin, redémarre le service nginx pour appliquer la nouvelle configuration.

sudo systemctl restart nginx

Tu as maintenant terminé la configuration du bloc serveur Nginx pour LibreNMS. Tu es prêt à démarrer l’installation de LibreNMS.

Configurer Nginx LibreNMS

Lancer l’installation de LibreNMS

Pour démarrer l’installation de LibreNMS, ouvre ton navigateur Web et tape le nom de domaine de LibreNMS dans la barre d’adresse.

https://librenms.example.io.

1. Tu verras les‘Vérifications de pré-installation‘ de LibreNMS. Vérifie que toutes les vérifications sont marquées en vert, puis clique sur l’icône de la base de données pour continuer.

LiubreNMS Vérifications avant installation

2. Saisis ta base de données, ton utilisateur et ton mot de passe. Puis clique sur le bouton‘Vérifier les informations d’identification‘.

Base de données de vérification LibreNMS

Cela va effectuer une vérification pour ta base de données et ton utilisateur MariaDB. Si la vérification est réussie, tu verras la marque verte sur l’icône‘Références de la base de données‘.

3. Clique maintenant sur le bouton‘Build Database‘ pour importer le schéma de la base de données pour ton LibreNMS.

Import Database LibreNMS

Une fois la configuration de la base de données terminée, vérifie que les deux sections‘Database Credentials‘ et‘Build Database‘ sont marquées en vert.

La configuration de la base de données est terminée

4. Clique maintenant sur l’icône‘Clé‘ pour continuer.

Saisis un nouvel utilisateur, un mot de passe et une adresse e-mail pour créer l’utilisateur admin de LibreNMS.

Créer un nouvel utilisateur

Clique sur le bouton‘Ajouter un utilisateur‘.

Si ton utilisateur admin est créé, tu verras ton utilisateur admin sur la page comme ci-dessous.

Création d'un utilisateur Admin

5. Clique sur l’icône de la marque pour terminer l’installation. Voici le résultat que tu obtiendras.

Pour terminer l’installation de LibreNMS, ouvre la page de validation de LibreNMS comme ci-dessous.

https://librenms.example.io/validate

6. Tu seras redirigé vers la page de connexion de LibreNMS.

Page de connexion de LibreNMS

Saisis ton utilisateur admin et ton mot de passe, puis clique sur le bouton‘Connexion‘.

7. Sur les pages de validation de LibreNMS, tu verras quelques erreurs comme ci-dessous.

LibreNMS Valider l'installation

Tu peux avoir différentes erreurs, mais la page de validation de LibreNMS fournit des solutions pour ton erreur.

8. Tu trouveras ci-dessous quelques erreurs dans notre installation et comment les corriger.

– Corriger le fuseau horaire de la base de données

Connecte-toi au shell MariaDB en utilisant ton utilisateur root.

mysql -u root -p

Change la base de données actuelle en ‘librenms’.

use librenms;

Exécute maintenant les requêtes suivantes pour réparer l’erreur de fuseau horaire de la base de données.

SET TIME_ZONE='+00:00';
ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ;
ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;

– Corriger les erreurs du système

Ajoute la commande binaire LibreNMS ‘lnms’ au répertoire‘/usr/bin‘ à l’aide de la commande suivante.

sudo ln -s /opt/librenms/lnms /usr/bin/lnms

Active la complétion bash pour la commande ‘lnms’.

sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Enfin, copie la configuration de logrotate pour LibreNMS dans le répertoire ‘/etc/logrotate.d/’.

sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

9. Après avoir corrigé les erreurs de LibreNMS, retourne sur les pages de validation de LibreNMS et recharge la page.

Vérifie maintenant que tous les statuts sont« OK ».

Validation de LibreNMS après la correction

10. Clique sur le menu‘Aperçu‘ pour afficher le tableau de bord.

Tableau de bord de LibreNMS

Maintenant, tu as terminé l’installation de LibreNMS sur la Debian 11 Bullseye.

Conclusion

Félicitations ! Tu as réussi à installer l’outil de surveillance LibreNMS avec Nginx, PHP-FPM et la base de données MariaDB sur la dernière version de Debian 11 Bullseye. De plus, tu as appris à créer le pool PHP-FPM personnalisé et à corriger certaines erreurs de l’installation de LibreNMS.

Pour la prochaine étape, tu apprendras comment ajouter des hôtes à surveiller à l’outil de surveillance LibreNMS.

Vous aimerez aussi...