Installation LibreNMS Debian11 - CPNV-ES-MAS3-X/LibreNMS-Containerization GitHub Wiki
Installation LibreNMS Debian11
https://librenms.cld.education/
Accès Web :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']