Comment configurer l’outil de surveillance LibreNMS avec Nginx sur Ubuntu 20.04

LibreNMS est un outil de surveillance de réseau gratuit et open-source pour le système d’exploitation Linux. Tu peux surveiller différents systèmes d’exploitation tels que Linux, Windows, FreeBSD et plusieurs périphériques réseau tels que Cisco, Juniper, Foundry, FreeBSD, Brocade et bien d’autres avec LibreNMS. Il utilise les protocoles SNMP, ARP, CDP, FDP, LLDP, OSPF et BGP pour découvrir automatiquement tout le réseau. Il possède une interface web simple et conviviale qui t’aide à surveiller tous les appareils à partir du navigateur web. Il dispose d’un riche ensemble de fonctionnalités, notamment la découverte automatique, les alertes personnalisables, l’accès API, les mises à jour automatiques et bien d’autres encore.

Dans ce tutoriel, nous allons te montrer étape par étape comment installer LibreNMS sur Ubuntu 20.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur.

Pour commencer

Tout d’abord, il est recommandé de mettre à jour les paquets de ton système à la dernière version. Tu peux le faire avec la commande suivante :

apt-get update -y

Après avoir mis à jour tous les paquets, installe toutes les dépendances requises pour LibreNMS avec la commande suivante :

apt-get install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3-mysqldb snmp snmpd python3-pip python3-memcache mtr-tiny acl unzip git curl wget -y

Une fois que toutes les dépendances sont installées, tu peux passer à l’étape suivante.

Installer le serveur LEMP

Ensuite, tu devras installer le serveur Web Nginx, le serveur MariaDB, PHP et d’autres extensions PHP dans ton serveur. Tu peux les installer tous en exécutant la commande suivante :

apt-get install nginx mariadb-server php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-bcmath php-imap php-json php-xml php-snmp php-fpm php-zip -y

Après avoir installé tous les paquets, tu devras définir le fuseau horaire dans ton fichier php.ini.

Tout d’abord, trouve le fuseau horaire de ton système avec la commande suivante :

cat /etc/timezone

Tu devrais voir la sortie suivante :

Etc/UTC

Ensuite, modifie les deux fichiers php.ini avec la commande suivante :

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

Définis le fuseau horaire de ton système comme indiqué ci-dessous :

date.timezone = Etc/UTC

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, redémarre le service PHP-FPM pour appliquer les modifications :

systemctl restart php7.4-fpm

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

Configurer la base de données MariaDB

Ensuite, tu devras créer une base de données et un utilisateur pour LibreNMS.

Tout d’abord, connecte-toi au shell MariaDB avec la commande suivante :

mysql

Une fois connecté, crée une base de données et un utilisateur avec la commande suivante :

MariaDB [(none)]> create database librenmsdb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> grant all privileges on librenmsdb.* to [email protected] IDENTIFIED by "password";

Ensuite, vide les privilèges et quitte le shell MariaDB avec la commande suivante :

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Ensuite, modifie le fichier de configuration de MariaDB et ajoute certains paramètres souhaités :

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

Ajoute les lignes suivantes dans la section [mysqld] :

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

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

systemctl restart mariadb

À ce stade, ton MariaDB est configuré. Tu peux maintenant passer à l’étape suivante.

Installer et configurer LibreNMS

Tout d’abord, tu dois créer un utilisateur distinct pour exécuter LibreNMS. Tu peux l’ajouter avec la commande suivante :

useradd -r -M -d /opt/librenms librenms

Ensuite, ajoute l’utilisateur librenms au groupe www-data avec la commande suivante :

usermod -a -G librenms www-data

Ensuite, change le répertoire en /opt et télécharge la dernière version de LibreNMS avec la commande suivante: :

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

Ensuite, crée un fichier journal pour LibreNMS avec la commande suivante: :

touch /opt/librenms/logs/librenms.log

Ensuite, copie le fichier de configuration type SNMP avec la commande suivante :

cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

Ensuite, modifie le fichier snmpd.conf :

nano /etc/snmp/snmpd.conf

Trouve la ligne suivante :

com2sec readonly  default RANDOMSTRINGGOESHERE

Et, remplace-la par la ligne suivante :

com2sec readonly  default mysnmpserverkey        

Sauvegarde et ferme le fichier puis télécharge le binaire de distro SNMP et copie-le à l’emplacement souhaité :

curl -o distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x distro
mv distro /usr/bin/distro

Ensuite, redémarre le service SNMP pour appliquer les modifications :

systemctl restart snmpd

Ensuite, tu devras également copier le fichier cron et logrotate de LibreNMS à l’emplacement souhaité. Tu peux les copier avec la commande suivante :

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

Ensuite, change le répertoire en librenms et installe les dépendances requises à l’aide de la commande suivante :

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

Une fois que toutes les dépendances sont installées, change la propriété du répertoire librenms et donne les permissions nécessaires avec la commande suivante :

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

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 librenms.example.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 /api/v0 {
  try_files $uri $uri/ /api_v0.php?$query_string;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
 }
 location ~ /\.ht {
  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

Tu devrais voir la sortie suivante :

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

Ensuite, redémarre le service Nginx pour appliquer les modifications :

systemctl restart nginx

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

systemctl status nginx

Tu devrais obtenir 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 Sat 2020-09-05 06:15:20 UTC; 4min 5s ago
       Docs: man:nginx(8)
    Process: 28239 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 28250 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 28253 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 3.4M
     CGroup: /system.slice/nginx.service
             ??28253 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??28254 nginx: worker process
             ??28255 nginx: worker process

Sep 05 06:15:20 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 05 06:15:20 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

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

Accède à l’interface Web de LibreNMS

Maintenant, ouvre ton navigateur Web et accède à LibreNMS en utilisant l’URL http://librenms.example.com. Tu seras redirigé vers la page de vérification de la pré-installation :

Vérification de la pré-installation

Assure-toi que toutes les extensions requises sont installées puis clique sur les paramètres de la base de données. Tu devrais voir la page suivante :

Indique le nom d’utilisateur de ta base de données, le nom de la base de données, le mot de passe et clique sur le bouton Vérifier les informations d’identification. Une fois la vérification réussie, tu devrais voir la page suivante :

Construis la base de données

Maintenant, clique sur le bouton Construire la base de données. Tu devrais voir la page suivante :

Ensuite, clique sur le bouton Créer un utilisateur Admin. Tu devrais voir la page suivante :

Créer un utilisateur admin

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

Installation terminée

Ensuite, clique sur le bouton Terminer l’ installation. Tu devrais voir la page suivante :

Finir l'installation

Ensuite, clique sur le bouton« Valider ton installation« . Tu devrais voir la page de connexion de LibreNMS :

Connexion à LibreNMS

Indique ton nom d’utilisateur et ton mot de passe d’administrateur LibreNMS et clique sur le bouton Connexion. Tu devrais voir le tableau de bord de LibreNMS :

Configuration de LibreNMS

Conclusion

Félicitations ! Tu as réussi à installer et à configurer l’outil de surveillance du réseau LibreNMS sur le serveur Ubuntu 20.04. Tu peux maintenant ajouter un appareil ou un hôte et commencer à surveiller depuis le tableau de bord LibreNMS. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...