Installer et configurer LibreNMS

11 mars 2016 Monitoring 2 Commentaires

Vous ne vous en souvenez peut être pas mais j’avais rédigé, il y a déjà quelque temps, un article vous expliquant comment installer et configurer Observium. Il existe depuis quelques temps un fork d’Observium : LibreNMS. Je vais donc ici expliquer comment installer et configurer LibreNMS (Apache / NGinx).

 

 

Pourquoi utiliser LibreNMS plutot qu’Observium ?

Observium se décline en deux versions : Observium Community Edition et Observium Profesionnal. Comme vous l’avez certainement déjà compris seule la Community Edition est gratuite et elle n’est mise à jour que tous les 6 mois. Si cela ne vous suffit pas pour vous encourager à passer à LibreNMS sachez que ce dernier ne collecte aucune donnée d’utilisation.

Les développeurs de LibreNMS sont donc partis de la dernière version d’Observium disponible sous licence GPL. A noter qu’il existe un script de migration, vous pouvez donc le tester, de mon coté j’ai préféré partir de zéro.

 

 

Installer et configurer LibreNMS

Dans ce post je pars du principe que :

  1. un serveur web est déjà installé sur votre serveur (Apache2 ou NGinx)
  2. un serveur SQL est déjà installé sur votre serveur (MySQL-server ou MariaDB)
  3. vous avez ajouté les dépots dotdeb

 

Installer LibreNMS

Il va falloir comme d’habitude installer quelques paquets.

sudo apt-get install php7.0 php7.0-fpm php7.0-gd php7.0-curl php7.0-cli php7.0-mcrypt php7.0-mysql php7.0-json php7.0-snmp git rrdtool snmpd snmp fping imagemagick whois mtr-tiny php-pear python-mysqldb php-net-ipv4 php-net-ipv6 curl lm-sensors snmp-mibs-downloader gnuplot

 

Modifiez la configuration snmpd

sudo nano /etc/snmp/snmpd.conf

 

Ajoutez la ligne suivante

rocommunity public 127.0.0.1

 

Sauvegardez le fichier et redémarrez snmpd

sudo service snmpd restart

 

Vous pouvez maintenant télécharger LibreNMS

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

 

Créez les dossiers qui contiendront graphs et logs

sudo mkdir rrd logs
sudo chmod 775 rrd

 

 

Configurer LibreNMS

Configuration de la base de données

Commencez par créer un utilisateur et une base de donnée

mysql -u root -p
<mysql root password>
mysql> CREATE DATABASE librenms_db;
mysql> GRANT ALL PRIVILEGES ON librenms_db.* TO 'librenms_user'@'localhost'
    -> IDENTIFIED BY 'mot de passe db librenms';

 

Configuration de l’interface web

Nous allons créer un utilisateur système librenms et l’ajouter au groupe www-data

sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms www-data
sudo chown -R librenms:librenms /opt/librenms

 

Si vous utilisez Apache2

Créez un nouveau vhost

sudo nano /etc/apache2/sites-available/librenms.conf

 

Utilisez la configuration ci-dessous (Apache 2.4 minimim).

<VirtualHost *:80>
 DocumentRoot /opt/librenms/html/
 ServerName librenms.votre-domaine.tld
 CustomLog /opt/librenms/logs/access_log combined
 ErrorLog /opt/librenms/logs/error_log
 NoDecode
 <Directory "/opt/librenms/html/">
 Require all granted
 AllowOverride All
 Options FollowSymLinks MultiViews
 </Directory>
</VirtualHost>

 

Activez cette configuration ainsi que le mod rewrite puis relancez votre instance d’Apache2

sudo a2ensite librenms.conf
sudo a2enmod rewrite
sudo service apache2 restart

 

Si vous utilisez NGinx

Créez un nouveau vhost

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

 

Utilisez la configuration ci-dessous

server {
 listen 80;
 server_name librenms.votre-domaine.tld;

 root /opt/librenms/html;
 index index.php index.html index.htm;

 access_log /var/log/librenms.access.log;
 error_log /var/log/librenms.error.log warn;

 client_max_body_size 15M;

 location / {
 try_files $uri $uri/ /index.php?q=$uri&$args;
 }

 location ~ \.php$ {
 try_files $uri =404;
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_read_timeout 60;
 include fastcgi_params;
 }

 location ~* \.(jpg|jpeg|png|gif|ico)$ {
 expires 365d;
 }
 location ~* \.(pdf|css|js|swf|woff|otf|ttf|svg)$ {
 expires 30d;
 }
}

 

Testez votre configuration et relancez NGinx

sudo nginx -t
sudo service nginx reload

 

Configuration de PHP

 

Cette étape est vitale, si vous ne configurez pas de fuseau horaire LibreNMS ne vous affichera aucun graphique

 

Si ce n’est pas déjà fait définissez votre fuseau horaire dans la configuration PHP : /etc/php/7.0/fpm/php.ini et /etc/php5/cli/php.ini . Recherchez la ligne

;date.timezone =

 

et modifiez la selon votre configuration, ici

date.timezone = Europe/Paris

 

Une fois ces modifications effectuées relancez php-fpm

systemctl restart php7.0-fpm.service

 

Configuration du cron

Créez le cron

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

 

 

Terminer l’installation

Connectez vous à l’adresse sur laquelle vous avez configuré votre vhost, et renseignez les informations demandées :

  • adresse de la base de donnée : localhost
  • nom de la base de données : librenms_db
  • mot de passe de la base de données : ce que vous avez choisi
  • login de la base de données : librenms_user

 

Mettre à jour LibreNMS

Pour mettre à jour LibreNMS rien à faire : des mises à jour sont effectuées tous les jours à 00h15 (heure de votre serveur)

 

Source