Tuto : LibreNMS sur Debian avec nginx

Header LibreNMS

Étant actuellement en pleine ré-installation de tous mes serveurs, il est venu le moment de réinstaller LibreNMS pour surveiller toutes mes machines. C’est l’occasion de rédiger ce tutoriel pour la mise en place de ce dernier sur un serveur Debian avec nginx.

[box type= »info »] Cet article traite uniquement de l’installation de la partie serveur de LibreNMS. Il est librement inspiré (voire même totalement copié/collé) de la documentation officielle du service.[/box]

Mise en place de la base de données

Nous allons commencer par configurer la base de données qui sera utilisée par LibreNMS (Si vous avez déjà une base de donnée de type MySQL sur votre serveur, vous pouvez ignorer les 2 premières commandes listées ci-dessous). On commence donc par installer le serveur mysql puis nous nous connectons en root :

apt-get install mariadb-server mariadb-client
service mysql restart
mysql -u root -p

On va ensuite créer la base de données pour LibreNMS et lui associer un utilisateur (pensez à choisir le mot de passe par un de votre choix) :

CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.*
  TO 'librenms'@'localhost'
  IDENTIFIED BY '<password>'
;
FLUSH PRIVILEGES;
exit

La base de données est maintenant créée et nous allons pouvoir attaquer la configuration du serveur web.

Configuration initiale

On va maintenant ajouter l’utilisateur LibreNMS et lui donner les bons droits :

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data

On clone ensuite le repo de LibreNMS et on met en place quelques permissions :

cd /opt
git clone https://github.com/librenms/librenms.git librenms
cd /opt/librenms
mkdir rrd logs
chmod 775 rrd

Configuration de nginx

Nous allons commencer par ajouter nginx et quelques paquets qui sont nécessaires au bon fonctionnement de LibreNMS. Si vous avez déjà un nginx fonctionnel et/ou une autre version de PHP, pensez à adapter la configuration qui va suivre.

apt-get install php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl php7.0-fpm snmp graphviz php7.0-mcrypt php7.0-json nginx-full fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd php-net-ipv4 php-net-ipv6 rrdtool git

Il vous faudra définir une timezone dans les fichiers de configuration de php : /etc/php/7.0/fpm/php.ini et /etc/php/7.0/cli/php.ini. Modifiez la ligne :

;date.timezone =

en :

date.timezone = "Europe/Paris"

On relance ensuite php et on active mcrypt :

service php7.0-fpm restart
phpenmod mcrypt

On va maintenant configurer notre vhost nginx. Cette configuration est celle recommandée par la documentation de LibreNMS. N’hésitez pas à l’adapter à vos besoins. Personnellement j’ai simplement forcé le HTTPS sans oublier d’ajouter mes certificats Let’s Encrypt.

nano /etc/nginx/conf.d/librenms.conf
server {
 listen      80;
 server_name librenms.example.com;
 root        /opt/librenms/html;
 index       index.php;
 access_log  /opt/librenms/logs/access_log;
 error_log   /opt/librenms/logs/error_log;
 location / {
  try_files $uri $uri/ @librenms;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
 location @librenms {
  rewrite api/v0(.*)$ /api_v0.php/$1 last;
  rewrite ^(.+)$ /index.php/$1 last;
 }
}

Sans oublier de relancer nginx :

service nginx restart

Installateur web et finalisation

Vous pouvez maintenant accéder à http://librenms.domain.tld/install.php et suivre les instructions de l’installateur. Il peut être nécessaire de rajouter quelques paquets php oubliés ou bien copier manuellement le fichier de configuration en fin d’installation. En ce qui concerne la base de données, il faudra renseigner les informations utilisées lors de la création de celle-ci en début de tutoriel.

Il ne reste plus qu’à ajouter une tache cron pour poller régulièrement les équipements surveillés :

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

On s’assure une dernière fois que les permissions sont ok puis on lance le script de validation. Il vous remontera les erreurs potentiellement présentes dans votre installation :

chown -R librenms:librenms /opt/librenms
cd /opt/librenms
./validate.php

Vous pouvez maintenant accéder à l’interface web de LibreNMS et commencer à ajouter vos premiers hosts ! Vous pouvez y accéder via l’url que vous avez configurée plus haut, http://librenms.domain.tld dans notre exemple. Nous verrons dans un prochain article comment bien configurer les équipements à superviser pour que LibreNMS puisse récupérer un maximum d’information.

LAISSER UN COMMENTAIRE

Merci d'entrer votre commentaire !
Merci d'entrer votre nom

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.