Installation de LibreNMS sur Raspbian Jessie

1/52/53/54/55/5 (2 votes, moyenne: 2,50 sur 5)
Loading...
I

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 :

LibreNMS-Raspbian

 

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 :

installation-librenms-01

 

Ensuite, indiquez les informations de connexion à MariaDB :

installation-librenms-02

 

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 :

installation-librenms-03

 

Créez l’utilisateur de l’interface web de LibreNMS :

installation-librenms-04

 

Générez le fichier de configuration :installation-librenms-05

 

Si tout se passe bien, connectez-vous :

installation-librenms-06

 

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à 🙂

 

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

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

1 Commentaire
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
miro
miro
7 années plus tôt

Do you check also sensors (temp,voltage…) on your device raspberry.home?