Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.
Bonjour à tous,
Aujourd’hui, on va voir comment installer LibreNMS sur Raspbian Jessie. On va juste reprendre une partie de l’installation de LibreNMS sur Debian 8 pour l’adaptée à Raspbian, ensuite il suffira de suivre l’autre article. 🙂
Attention, ça tourne pas trop mal sur un Raspberry Pi 2 pour quelques hôtes, mais vous aurez besoin d’une bonne carte SD (dans le sens rapide).
Ce n’est évidemment pas fait pour de la production vu qu’on utilise un Raspberry (je précise vu que je vois encore des gens utiliser des Rasp pour de la production dans des PME ou ME …), mais ça peut être sympa pour chez vous (ce que j’ai fait), une association ou une TPE qui n’aurait que très peu de matos et de moyens.
Voici ce que je surveille chez moi pour vous donner une idée :
Je n’utilise pas de services, pas d’unix-agent, rien et il faut quand même 30 secondes par machine pour faire le polling.
Installation des dépôts externes :
On va utiliser les dépôts de Mati75 pour installer PHP 7 sur notre Raspbian.
Ajoutez les avec la commande suivante :
echo " #PHP 7 deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free #deb-src http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free" >> /etc/apt/sources.list
Ensuite, ajoutez les clés de signature du dépôt :
gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851 gpg --armor --export CCD91D6111A06851 | apt-key add -
Lancez enfin un update des sources :
apt-get update
Installation de LibreNMS :
On va maintenant s’occuper d’installer LibreNMS avec toutes ses dépendances, on utilisera NGINX, MariaDB et PHP 7.
installez toutes les dépendances :
apt install nginx mariadb-server 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 snmp snmpd fping imagemagick whois mtr-tiny php-pear python-mysqldb php-net-ipv4 php-net-ipv6 curl lm-sensors snmp-mibs-downloader gnuplot -y
Supprimez la configuration par défaut de Nginx :
rm /etc/nginx/sites-available/default && rm /etc/nginx/sites-enabled/default
Créez le vhost pour LibreNMS :
nano /etc/nginx/sites-enabled/librenms
server { listen 80; root /opt/librenms/html; index index.php index.html index.htm; server_name librenms.1405.abyssproject.xyz; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location /.well-known/acme-challenge { root /var/www/letsencrypt; } 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; } }
Remplacez librenms.1405.abyssproject.xyz par votre domaine.
Lancez ces commandes pour définir votre timezone dans php7 :
echo "date.timezone = Europe/Paris" >> /etc/php/7.0/fpm/php.ini && echo "date.timezone = Europe/Paris" >> /etc/php/7.0/cli/php.ini
Créez l’utilisateur pour Librenms :
useradd librenms -d /opt/librenms -M -r usermod -a -G librenms www-data
Récupérez la dernière version de LibreNMS depuis le dépot GIT :
cd /opt/ && git clone https://github.com/librenms/librenms.git cd librenms mkdir rrd logs chown -R librenms:librenms /opt/librenms chmod 775 rrd
Créez les répertoires nécessaires pour Let’s Encrypt même si on s’en occupera un peu plus tard :
cd /var/www mkdir letsencrypt chown -R librenms:librenms letsencrypt/
Maintenant, redémarrez les services Nginx et Php 7 :
systemctl restart nginx.service && systemctl restart php7.0-fpm.service
Connectez-vous en root au serveur MariaDB :
mysql -u root -p
Créez maintenant la base de données pour Librenms :
CREATE DATABASE librenms;
Créez ensuite l’utilisateur LibreNMS en lui assignant tous les droits sur la base « librenms ». Remplacez mdp par le mot de passe voulu :
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost' IDENTIFIED BY 'mdp';
Appliquez les droits en live et quittez le cli de MariaDB :
FLUSH PRIVILEGES; exit
Maintenant, allez sur votre LibreNMS depuis l’interface web et vérifiez que tous les prérequis sont bien au vert :
Ensuite, indiquez les informations de connexion à MariaDB :
Laissez le script d’installation peupler la base,
Cette opération est très longue sur un Raspberry (ça m’a pris 15-30 minutes sur un Raspberry Py 2 !).
Nginx vous affichera une erreur, mais n’y prêtez pas attention, attendez 30 minutes et actualisez la page.
si vous ne voyez aucune erreur, continuez :
Créez l’utilisateur de l’interface web de LibreNMS :
Générez le fichier de configuration :
Si tout se passe bien, connectez-vous :
En cas de problème, lancez la commande suivante :
php /opt/librenms/validate.php
Si tout marche vous devriez avoir une sortie similaire :
root@librenms:/opt/librenms# ./validate.php Version info: Commit SHA: 847d639cbfb5f6a2897deacc12c34be23466a31b DB Schema: 107 PHP: 7.0.6-1~dotdeb+8.1 MySQL: 10.1.14-MariaDB-1~jessie RRDTool: 1.4.8 SNMP: NET-SNMP version: 5.7.2.1 [OK] Database connection successful root@librenms:/opt/librenms# /opt/librenms/validate.php ^C root@librenms:/opt/librenms# php /opt/librenms/validate.php Version info: Commit SHA: 847d639cbfb5f6a2897deacc12c34be23466a31b DB Schema: 107 PHP: 7.0.6-1~dotdeb+8.1 MySQL: 10.1.14-MariaDB-1~jessie RRDTool: 1.4.8 SNMP: NET-SNMP version: 5.7.2.1 [OK] Database connection successful
Copiez le fichier cron de librenms dans le crontab :
cp librenms.nonroot.cron /etc/cron.d/librenms
Suite de l’installation :
Suivez mon article précédent à partir de la rubrique « Configuration de HTTPS :« , rien ne change pour la suite 🙂
Ou …
Installation avec une IP Fixe :
Avec un Raspberry, il y’a de grandes chances pour que cela soit pour une utilisation uniquement local et donc vous n’avez peut-être pas de domaine ni besoin de Let’s Encrypt pour votre utilisation.
Pour que LibreNMS s’affiche correctement, vous aurez besoin de modifier son fichier de configuration et le vhost NGINX.
Éditez d’abord le vhost Nginx avec la commande suivante et remplissez-le avec ceci :
nano /etc/nginx/sites-enabled/librenms
server { listen 80; root /opt/librenms/html; index index.php index.html index.htm; 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; } }
Redémarrez NGINX avec la commande suivante :
service nginx restart
Maintenant, éditez le fichier de configuration de LibreNMS avec la commande suivante :
nano /opt/librenms/config.php
Et ajoutez la ligne suivante, remplacez IP par votre adresse IPV4/V6 :
$config['base_url'] = "http://IP/";
Et voilà 🙂
Do you check also sensors (temp,voltage…) on your device raspberry.home?