Installation LibreNMS Debian11 - CPNV-ES-MAS3-X/LibreNMS-Containerization GitHub Wiki

Installation LibreNMS Debian11

Accès Web : https://librenms.cld.education/

Prérequis

  • Une machine Debian 11
    • 50 GB de stockage
    • 4 GB de RAM
    • 1 processeur 4 coeurs
  • Un utilisateur standard
  • Sudo

Installation des paquets

sudo apt install apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list
apt update
apt install acl curl fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-systemd python3-pip rrdtool snmp snmpd whois

Ajout de l'utilisateur librenms

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

Attribution de mdp à l'utilisateur librenms

sudo passwd librenms

Récupérations des fichiers de LibreNMS

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

Modifier les permissions des différents dossiers afin de ne pas avoir de soucis pour la suite

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

Installer les dépendances PHP

su - librenms
./scripts/composer_wrapper.php install --no-dev
exit

Appliquer la «Time zone»

Modifier le fichier php.ini se trouvant sous /etc/php/8.2/fpm/ et /etc/php/8.2/cli.

Ajouter Europe/Zurich

Appliquer également la bonne «Time zone» au système avec la commande sudo timedatectl set-timezone Europe/Zurich

Configuration de mariadb

Modifier le fichier /etc/mysql/mariadb.conf.d/50-server.cnf

Ajouter ces deux lignes sous la section «[mysqld]»

innodb_file_per_table=1
lower_case_table_names=0

Redémarrer le service après modification

sudo systemctl enable mariadb
sudo systemctl restart mariadb

Démarrage du client mariadb

Se connecter au prompt de mariadb avec la commande mysql -u root

Exécuter cette requête SQL

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'Pa$$w0rd';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
exit

Configuration PHP-FPM

Copier le fichier www.conf en librenms.conf avec la commande suivante

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

Modifier ce nouveau fichier librenms.conf avec l'éditeur de texte de votre choix

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

Changer la case «[www]» en «[librenms]»

Changer ces deux lignes sous cette nouvelle section «[librenms]»

user = 
group = 

Par

user = librenms
group = librenms

Changer listen par un path unique :

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

Configuration du serveur web

Modifier le fichier de configuration web pour notre site librenms

sudo nano /etc/nginx/sites-enabled/librenms.vhost

Ajouter ce contenu

Modifier la ligne server_name par nos besoins

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 ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/run/php-fpm-librenms.sock;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  include fastcgi.conf;
 }
 location ~ /\.(?!well-known).* {
  deny all;
 }
}

Supprimer la configuration par défaut et redémarrer les services de nginx

rm /etc/nginx/sites-enabled/default
systemctl reload nginx
systemctl restart php8.2-fpm

Configuration de l'autocomplétion pour les commandes de librenms

sudo ln -s /opt/librenms/lnms /usr/bin/lnms
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Configuration de snmpd

Copier le fichier d'exemple de configuration

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

Modifier le string RANDOMSTRINGGOESHERE par nos propres besoins, mettre public à la place.

sudo nano /etc/snmp/snmpd.conf

Récupérer les fichier requis et démarrage du service snmpd

sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
sudo systemctl enable snmpd
sudo systemctl restart snmpd

Modification du Cron job

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

Copy de la configuration logrotate

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

Installation de libreNMS via l'interface web

Procéder à l'installation via un navigateur web en vous connectant à l'interface web de LibreNMS.

Troubleshooting

La commande de troubleshooting à faire dans le dossier /opt:

sudo su - librenms
./validate.php

Mettre la base de donnée MariaDB à la meme heure que php.

mysql -u root

SET time_zone = '+01:00';

Validate.php

SESSION_SECURE_COOKIE=true lnms config:cache

source

https://docs.librenms.org/Installation/Install-LibreNMS/

Configuration pour l'auto-discovery

cd /opt/librenms
su librenms

sudo nano ./config.php

Enlever le # devant la ligne pour activer le SNMP

$config['snmp']['community']

Ajout du bon réseau

$config['nets']