Recherche de site Web

Comment installer l'outil de surveillance LibreNMS sur Debian 11/10


LibreNMS est un outil de surveillance réseau open source et complet qui offre un large éventail de fonctionnalités et de capacités de surveillance pour vos périphériques réseau.

Les principales fonctionnalités incluent :

  • Découverte automatique de l'ensemble de votre réseau à l'aide des protocoles ARP, SNMP, BGP, OSPF, LLDP et FDP.
  • Un système d'alerte hautement personnalisable et pouvant être modifié pour envoyer des alertes par e-mail, Slack et d'autres canaux.
  • Un tableau de bord simple et facilement personnalisable.
  • Une API complète pour gérer et représenter graphiquement les données de votre serveur de surveillance.
  • Prise en charge étendue des appareils – Prend en charge un large éventail de fournisseurs de matériel tels que Cisco, Juniper, HP et bien d'autres.
  • Mises à jour automatiques et corrections de bugs.
  • Authentification multifacteur.
  • Prise en charge native des applications Android et iOS.
  • et beaucoup plus.

Dans ce guide, nous installerons l'outil de surveillance LibreNMS sur Debian 11/10.

Étape 1 : Installez Nginx, MariaDB et PHP

Pour commencer, actualisez les référentiels et installez les packages prérequis comme suit :

sudo apt update
sudo apt install software-properties-common wget apt-transport-https

L'étape suivante consiste à installer Nginx et des packages supplémentaires tels que les packages curl, git, SNMP et python qui seront requis par l'outil de surveillance LibreNMS.

Alors, exécutez la commande :

sudo apt install nginx-full curl acl fping graphviz composer git imagemagick mtr-tiny nmap python3-pip python3-memcache python3-mysqldb python3-dotenv python3-pymysql rrdtool snmp snmpd whois python3-redis python3-systemd python3-setuptools python3-systemd

Ensuite, installez le serveur de base de données MariaDB, PHP et les extensions PHP supplémentaires nécessaires à l'outil de surveillance LibreNMS.

sudo apt install mariadb-server php php-fpm php-cli php-xml php-common php-gd php-json php-snmp php-pdo php-mysql php-zip php-curl php-mbstring php-pear php-bcmath

Une fois installé, assurez-vous d'activer les services Nginx, php-fpm, MariaDB et SNMP comme indiqué.

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

Étape 2 : Configurer TimeZone pour PHP

L'étape suivante nous oblige à configurer ou définir le fuseau horaire PHP. Cela se fait dans le fichier php.ini qui est le fichier de configuration PHP par défaut.

Accédez aux fichiers de configuration php.ini dans les chemins suivants à l'aide de votre éditeur préféré.

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

Accédez au paramètre date.timezone et définissez-le sur votre fuseau horaire. Pour obtenir une liste complète de tous les fuseaux horaires pris en charge, rendez-vous sur le site officiel de PHP.

Dans cet exemple, nous définissons le fuseau horaire sur UTC.

date.timezone = UTC

Enregistrez ensuite les modifications et quittez les fichiers.

Étape 3 : Créer une base de données pour LibreNMS

Dans cette étape, nous allons créer une base de données pour l'installation de LibreNMS. Mais d’abord, sécurisons la base de données en exécutant le script suivant :

sudo mysql_secure_installation

Suivez les instructions détaillées qui vous guideront sur la façon de créer le mot de passe root MariaDB, de supprimer les utilisateurs anonymes, de tester la base de données et enfin d'interdire la connexion root à distance.

Ensuite, connectez-vous à MariaDB :

sudo mysql -u root -p

Exécutez ensuite les commandes suivantes pour créer une base de données et un utilisateur de base de données et attribuer tous les privilèges à l'utilisateur de base de données.

CREATE DATABASE librenms_db CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms_user'@'localhost' IDENTIFIED BY 'P@ssword321'; 
GRANT ALL PRIVILEGES ON librenms_db.* TO 'librenms_user'@'localhost';

Enregistrez ensuite les modifications et quittez l'invite MariaDB.

FLUSH PRIVILEGES;
EXIT;

Certains ajustements de la base de données sont nécessaires. Ouvrez donc le fichier de configuration MariaDB affiché :

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

Collez ensuite les lignes de code suivantes dans la section « mysqld ».

innodb_file_per_table=1
lower_case_table_names=0

Enregistrez les modifications et quittez le fichier. Pour appliquer les modifications, redémarrez le serveur de base de données.

sudo systemctl restart mariadb

Étape 4 : Ajouter un utilisateur LibreNMS

Vous devez également créer un nouvel utilisateur LibreNMS. Il s'agit de l'utilisateur sous lequel LibreNMS sera exécuté. Dans cet exemple, nous créons un utilisateur appelé librenms avec les attributs suivants.

sudo useradd librenms -d /opt/librenms -M -r -s /bin/bash
sudo usermod -aG librenms www-data
  • L'option -d définit le répertoire personnel de l'utilisateur librenms sur le répertoire /opt/librenms.
  • L'option -r configure l'utilisateur librenms comme utilisateur système.
  • L'option -M ignore la création d'un répertoire personnel pour l'utilisateur puisqu'il a déjà été défini à l'aide de l'option -d.
  • L'option -s spécifie le type de shell, dans ce cas, bash.

Étape 5 : Cloner le référentiel Git LibreNMS

Passant à la vitesse supérieure, nous allons maintenant cloner le référentiel git LibreNMS pour commencer sa configuration.

Exécutez les commandes suivantes pour cloner le référentiel Git

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

Revenez ensuite au répertoire personnel.

cd  ~

Ensuite, nous devons attribuer la propriété du répertoire et les autorisations au répertoire personnel Librenms. Pour y parvenir, exécutez les commandes suivantes :

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

De plus, modifiez les listes de contrôle d'accès pour le répertoire personnel Librenms à l'aide de la commande setfacl. Cela accorde au groupe Librenms l'autorisation de lire et d'écrire sur les sous-répertoires du répertoire personnel.

sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Étape 6 : Installer les dépendances PHP

Certaines dépendances sont requises par PHP lors de la configuration de l'outil de surveillance LibreNMS. Pour ce faire, vous devez être connecté en tant que librenmsuser.

sudo su - librenms

Ensuite, installez toutes les dépendances PHP comme suit.

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

Une fois l'installation des dépendances terminée, quittez l'utilisateur librenms.

exit

Étape 7 : Configurer PHP-FPM pour l'installation de LibreNMS

Ensuite, nous devons apporter quelques modifications à PHP-FPM afin de prendre en charge LibreNMS.

Pour y parvenir. Copiez le fichier « www.conf », qui est le fichier de configuration du pool par défaut, dans le fichier « librenms.conf » comme suit.

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

Ensuite, modifiez le fichier « librenms.conf ».

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

Modifiez les paramètres utilisateur et groupe en librenms comme indiqué

user = librenms
group = librenms

Ensuite, modifiez l'attribut d'écoute en /run/php-fpm-librenms.sock comme suit.

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

Enregistrez les modifications et quittez la configuration. Assurez-vous de redémarrer le service PHP-FPM pour appliquer les modifications.

sudo systemctl restart php7.4-fpm

Étape 8 : Configurer le démon SNMP

Le protocole SNMP est un protocole TCP/IP qui collecte et organise des métriques ou des informations provenant de périphériques gérés sur un réseau.

La plupart des outils de surveillance tels que Cacti exploitent le service SNMP pour collecter des informations auprès d'hôtes distants. Et LibreNMS aussi.

Pour configurer le service SNMP, copiez le fichier snmpd.conf.example dans le fichier /etc/snmp/snmpd.conf.

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

Ensuite, modifiez le fichier snmpd.conf.

sudo vim /etc/snmp/snmpd.conf

Recherchez la chaîne RANDOMSTRINGGOESHERE.

com2sec readonly  default         RANDOMSTRINGGOESHERE

Changez-le en librenms.

com2sec readonly  default		  librenms

Enregistrez les modifications et quittez.

Ensuite, téléchargez le fichier de distribution, qui est un fichier qui détecte automatiquement le système d'exploitation des nœuds gérés et distingue sa distribution.

sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro

Rendez-le exécutable et redémarrez le service SNMP.

sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd

Étape 9 : Configurer Nginx pour LibreNMS

Avec Nginx comme serveur Web préféré, nous devons franchir une étape supplémentaire et le configurer afin de serveur LibreNMS.

Tout d’abord, nous allons créer un bloc serveur Nginx comme indiqué.

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

Collez les lignes de codes suivantes. Pour l'attribut server_name, indiquez le nom de domaine enregistré ou l'adresse IP de votre serveur.

server {
  listen      80;
  server_name 23.92.30.144;        
  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/php-fpm.sock;
  }
  location ~ /.ht {
   deny all;
  }
 }

Enregistrez les modifications et quittez le fichier de configuration. Ensuite, activez le blocage du serveur Nginx en créant un lien symbolique comme indiqué.

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

Redémarrez ensuite Nginx pour appliquer les modifications apportées à la configuration.

sudo systemctl restart nginx

De plus, vous pouvez confirmer que tous les paramètres Nginx sont corrects en exécutant la commande :

sudo nginx -t

Étape 10 : Copiez la configuration de Logrotate et Cron

Par défaut, LibreNMS stocke ses logs dans le répertoire /opt/librenms/logs. Au fil du temps, cela peut facilement se remplir et poser des problèmes d’espace. Pour éviter cela, la rotation des anciens fichiers journaux est recommandée.

Copiez donc le fichier logrotate du répertoire LibreNMS dans le répertoire /etc/logrotate.d/.

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

Tout aussi important, copiez le fichier de tâche cron comme suit pour permettre l'interrogation et la découverte automatiques de nouveaux appareils.

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

Étape 11 : Terminez la configuration de LibreNMS à partir d'un navigateur

Pour terminer la configuration à partir d'un navigateur, rendez-vous sur l'URL suivante :

http://server-ip

Cela vous amène à la liste de contrôle de pré-installation affichée. Si tout semble bon, cliquez sur l'icône « base de données » à droite.

Assurez-vous de remplir tous les détails de la base de données et cliquez sur « Vérifier les informations d'identification ».

Une fois les détails de la base de données validés, cliquez sur « Build Database ».

Une fois cette étape passée, cliquez sur l'icône suivante pour créer un utilisateur Admin. Fournissez le nom d'utilisateur, le mot de passe et l'e-mail de l'utilisateur administrateur et cliquez sur « Ajouter un utilisateur ».

Enfin, cliquez sur le dernier bouton pour terminer l'installation.

Vous tomberez sur cette erreur vous informant que le programme d'installation « Échec de l'écriture du fichier : /opt/librenms/.env ».

Mais ne vous inquiétez pas. Mettez simplement à jour manuellement le fichier /opt/librenms/.env avec les détails de la base de données fournis. Ces détails varieront dans votre cas.

Alors, accédez au fichier.

sudo nano /opt/librenms/.env

Supprimez tout le contenu du fichier, collez les détails fournis ci-dessus dans le fichier et enregistrez les modifications.

Revenez ensuite en arrière et cliquez sur le bouton « Réessayer ». Cela vous amène à la page de connexion LibreNMS. Fournissez les informations de connexion et cliquez sur « Connexion ».

Une fois connecté, vous obtiendrez un tel tableau de bord. À partir de là, vous pouvez commencer à ajouter vos hôtes et surveiller diverses mesures.

Et c'est tout. Dans ce guide, nous vous avons expliqué l'installation de l'outil de surveillance LibreNMS sur Debian 11/10.