Comment installer l’outil de surveillance LibreNMS sur Debian 11

LibreNMS est un outil de surveillance de réseau gratuit, open-source, basé sur le Web et à découverte automatique, écrit en PHP. Il utilise MySQL ou MariaDB comme base de données et utilise SNMP pour découvrir les clients distants. Il prend en charge un large éventail de périphériques réseau, notamment Linux, Cisco, Juniper, FreeBSD, HP, Windows, etc. Il prend en charge plusieurs méthodes d’authentification, notamment Radius, Active Directory, LDAP, MySQL, et plus encore. Il est simple, convivial et facile à comprendre et à utiliser pour tout le monde.

Dans ce tutoriel, je vais t’expliquer comment installer LibreNMS avec Nginx sur Debian 11.

Conditions préalables

  • Un serveur fonctionnant sous Debian 11.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur ton serveur.

Installer et configurer la base de données MariaDB

Tout d’abord, tu dois installer le serveur de base de données MariaDB sur ton serveur. Tu peux l’installer à l’aide de la commande suivante :

apt-get install mariadb-server -y

Une fois l’installation terminée, exécute le script suivant pour sécuriser l’installation de MariaDB et définir un mot de passe root :

mysql_secure_installation

Réponds à toutes les questions comme indiqué ci-dessous :

Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] 
Reload privilege tables now? [Y/n] Y

Une fois que l’installation de MariaDB est sécurisée, édite le fichier de configuration de MariaDB et modifie certains paramètres :

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

Ajoute les lignes suivantes dans la section [mysqld] :

innodb_file_per_table=1
lower_case_table_names=0

Enregistre et ferme le fichier puis redémarre MariaDB pour appliquer les modifications :

systemctl restart mariadb

Ensuite, connecte-toi à MariaDB avec la commande suivante :

mysql -u root -p

Une fois que tu es connecté, crée une base de données et un utilisateur pour LibreNMS :

MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'securepassword';

Ensuite, accorde tous les privilèges à la base de données LibreNMS à l’aide de la commande ci-dessous :

MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';

Enfin, vide les privilèges et quitte le shell MariaDB à l’aide de la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe Nginx, PHP et les dépendances requises

Ensuite, tu devras installer le serveur Web Nginx, PHP et les autres dépendances requises par LibreNMS. Tu peux les installer tous en exécutant la commande suivante :

apt-get install nginx-full nmap php-cli php-curl php-fpm php-gd php-json php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pip python3-pymysql python3-redis python3-setuptools python3-systemd rrdtool snmp snmpd whois acl curl composer fping git graphviz imagemagick mtr-tiny

Une fois que tous les paquets sont installés, modifie le fichier php.ini et règle ton fuseau horaire :

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

Change la ligne suivante :

date.timezone = UTC

Sauvegarde et ferme le fichier lorsque tu as terminé.

Installer et configurer LibreNMS

Tout d’abord, crée un utilisateur dédié à LibreNMS à l’aide de la commande suivante :

useradd librenms -d /opt/librenms -M -r -s /bin/bash

Ensuite, ajoute l’utilisateur LibreNMS au groupe www-data à l’aide de la commande suivante :

usermod -a -G librenms www-data

Ensuite, télécharge la dernière version de LibreNMS depuis le dépôt GitHub dans le répertoire /opt :

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

Ensuite, définis la propriété et la permission du répertoire LibreNMS :

chown -R librenms:librenms /opt/librenms
chmod 775 /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/

Ensuite, change l’utilisateur en LibreNMS avec la commande suivante :

su - librenms

Ensuite, installe le compositeur PHP à l’aide de la commande suivante :

cd /opt/librenms
./scripts/composer_wrapper.php install --no-dev

Une fois le Composer et les autres dépendances PHP installés, tu devrais voir la sortie suivante :

> @php artisan optimize
Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!
Routes cached successfully!
Files cached successfully!
> @php artisan config:clear
Configuration cache cleared!
> scripts/dynamic_check_requirements.py || pip3 install --user -r requirements.txt || :
Requirement already satisfied: PyMySQL!=1.0.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (0.9.3)
Requirement already satisfied: python-dotenv in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (0.15.0)
Requirement already satisfied: redis>=3.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (3.5.3)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from -r requirements.txt (line 4)) (52.0.0)
Collecting psutil>=5.6.0
  Downloading psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl (293 kB)
Collecting command_runner>=1.3.0
  Downloading command_runner-1.3.0-py3-none-any.whl (17 kB)
Installing collected packages: psutil, command-runner
Successfully installed command-runner-1.3.0 psutil-5.8.0

Ensuite, quitte l’utilisateur de LibreNMS en utilisant la commande suivante: :

exit

Ensuite, tu devras créer un fichier de configuration séparé pour PHP-FPM. Tu peux le créer avec la commande suivante :

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

Ensuite, modifie le fichier de configuration librenms.conf avec ton éditeur préféré :

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

Remplace [www-data] par [librenms] et mets également à jour le socket d’écoute :

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

Sauvegarde et ferme le fichier puis redémarre le service PHP-FPM pour appliquer les changements de configuration :

systemctl restart php7.4-fpm

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer Nginx pour LibreNMS

Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Nginx pour LibreNMS. Tu peux le créer avec la commande suivante :

nano /etc/nginx/conf.d/librenms.conf

Ajoute les lignes suivantes :

server {
  listen 80;
  server_name libre.yourdomain.com;
  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;
  }
}

Enregistre et ferme le fichier puis vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Si tout va bien, tu obtiendras la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarre le Nginx pour appliquer les modifications.

systemctl restart nginx php7.4-fpm

Tu peux aussi vérifier l’état de Nginx à l’aide de la commande suivante :

systemctl status nginx

Tu devrais voir la sortie suivante :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-03 14:39:18 UTC; 18s ago
       Docs: man:nginx(8)
    Process: 39888 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 39892 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 39893 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 2.7M
        CPU: 42ms
     CGroup: /system.slice/nginx.service
             ??39893 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??39894 nginx: worker process

Dec 03 14:39:18 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 03 14:39:18 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Dec 03 14:39:18 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Ensuite, copie le fichier de configuration de la tâche cron pour activer la découverte et l’interrogation automatiques des appareils nouvellement ajoutés.

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

Ensuite, copie le fichier de configuration de logrotate pour faire tourner les anciens journaux.

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

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accéder à l’assistant d’installation Web de LibreNMS

À ce stade, LibreNMS est installé et configuré avec Nginx. Tu peux maintenant accéder à l’installation Web de LibreNMS en utilisant l’URL http://libre.yourdomain.com. Tu devrais voir la page de vérification de la pré-installation :

Vérifications avant l'installation

Assure-toi que toutes les vérifications sont réussies puis clique sur l’icône de la base de données. Tu devrais voir la page de configuration de la base de données :

Indique les informations de ta base de données et clique sur le bouton Vérifier les informations d’identification. Tu devrais voir la page suivante :

Crée une base de données

Maintenant, clique sur l’icône de la clé pour configurer un utilisateur admin :

Créer un utilisateur admin

Indique ton nom d’utilisateur admin, ton mot de passe puis clique sur le bouton Ajouter un utilisateur. Une fois l’utilisateur créé, tu devrais voir la page suivante :

Utilisateur Admin de LibreNMS

Clique sur le bouton de l’icôneOui. Tu devrais voir la page suivante :

Finir l'installation

Maintenant, ouvre un autre onglet dans ton navigateur Web et tape l’URL https://libre.yourdomain.com/val idate pour valider l’installation. Tu devrais voir la page suivante :

Connecte-toi à LibreNMS

Indique ton nom d’utilisateur admin, ton mot de passe et clique sur le bouton Connexion. Tu devrais voir la page suivante :

Tableau de bord de LibreNMS

Conclusion

Félicitations ! Tu as réussi à installer LibreNMS avec Nginx sur Debian 11. Tu peux maintenant commencer à ajouter des appareils distants à LibreNMS et commencer à les surveiller depuis l’emplacement central. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...