Installer LibreNMS sous Debian 10 avec checks nagios

1/52/53/54/55/5 (4 votes, moyenne: 2,75 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,

Mise à jour de l’article sous Debian 8 : https://www.abyssproject.net/2016/06/installer-librenms-debian-8-check-nagios/

En plus d’installer LibreNMS, je vais vous montrer comment

  • Configurer le SNMP sur vos serveurs Linux et Windows
  • Configurer les checks avec les nagios-plugins

 

Installer LibreNMS :

Dans un premier temps, on va mettre à jour le serveur :

apt-get update && apt-get dist-upgrade -y

 

Une fois que c’est fait, installez toutes les dépendances :

apt install -y curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php7.3-snmp php7.3-xml php7.3-zip python-memcache python-mysqldb rrdtool snmp snmpd whois

 

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;

    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.3-fpm.sock;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_read_timeout 60;
       include fastcgi_params;
    }

}

Lancez ces commandes pour définir votre timezone dans php7 :

echo "date.timezone = Europe/Paris" >> /etc/php/7.3/fpm/php.ini && echo "date.timezone = Europe/Paris" >> /etc/php/7.3/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 -p rrd logs
chown -R librenms:librenms /opt/librenms
chmod 775 rrd
./scripts/composer_wrapper.php install --no-dev

 

Maintenant, redémarrez les services Nginx et Php 7 :

systemctl restart nginx.service && systemctl restart php7.3-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;
ALTER DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;

 

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

 

Appliquez les bons droits sur le répertoire de LibreNMS :

chown -R librenms:librenms /opt/librenms
chmod -R ug=rwX /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

 

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, 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
Copiez le fichier cron de librenms dans le crontab :

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

 

Configurer le SNMP sur vos serveurs Linux et Windows :

LibreNMS utilise le protocole SNMP pour récupérer des informations sur vos serveurs.

Configuration d’un serveur SNMP sur Debian / Ubuntu

Installez d’abord le serveur SNMP :

apt-get install snmpd

 

Ensuite, supprimez le fichier de configuration par défaut et créez en un nouveau :

rm /etc/snmp/snmpd.conf
nano /etc/snmp/snmpd.conf

 

Remplissez le ensuite avec ceci, changez simplement les champs COMMUNITY, LOCATION et CONTACT :

com2sec readonly  default        COMMUNITY 
group MyROGroup v1         readonly
group MyROGroup v2c        readonly
group MyROGroup usm        readonly
view all    included  .1                               80
access MyROGroup ""      any       noauth    exact  all    none   none
syslocation LOCATION
syscontact CONTACT
#This line allows Observium to detect the host OS if the distro script is installed
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro

 

Souvenez vous bien de ce que vous marquez dans COMMUNITY, c’est l’élément clé du serveur SNMP.

Maintenant, téléchargez le script d’Observium qui identifie votre distribution Linux et redémarrez le service SNMP :

wget https://raw.githubusercontent.com/tomzx/observium/svn-trunk/scripts/distro
mv distro /usr/bin/distro
chmod 755 /usr/bin/distro
service snmpd restart

 

Configuration d’un serveur SNMP sur CentOS / Red Hat / Fedora

Installez d’abord Net-SNMP :

yum install net-snmp nano
chkconfig --level 3 snmpd on

 

Ensuite, supprimez le fichier de configuration par défaut et créez en un nouveau :

rm /etc/snmp/snmpd.conf
nano /etc/snmp/snmpd.conf

 

Remplissez le ensuite avec ceci, changez simplement les champs COMMUNITY, LOCATION et CONTACT :

com2sec readonly  default        COMMUNITY 
group MyROGroup v1         readonly
group MyROGroup v2c        readonly
group MyROGroup usm        readonly
view all    included  .1                               80
access MyROGroup ""      any       noauth    exact  all    none   none
syslocation LOCATION
syscontact CONTACT
#This line allows Observium to detect the host OS if the distro script is installed
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro

Souvenez vous bien de ce que vous marquez dans COMMUNITY, c’est l’élément clé du serveur SNMP.

Maintenant, téléchargez le script d’Observium qui identifie votre distribution Linux et redémarrez le service SNMP :

wget https://raw.githubusercontent.com/tomzx/observium/svn-trunk/scripts/distro
mv distro /usr/bin/distro
chmod 755 /usr/bin/distro
service snmpd restart

 

Configuration d’un serveur SNMP sur FreeBSD

Installez Net-SNMP avec les commandes suivantes :

cd /usr/ports/net-mgmt/net-snmp
make install clean

 

Ouvrez le fichier /etc/rc.conf et insérez ces deux lignes :

snmpd_enable="YES"
snmpd_conffile="/usr/local/etc/snmpd.conf"

 

Ensuite, supprimez le fichier de configuration par défaut et créez en un nouveau :

rm /usr/local/etc/snmp/snmpd.conf
nano /usr/local/etc/snmp/snmpd.conf

 

Remplissez le ensuite avec ceci, changez simplement les champs COMMUNITY, LOCATION et CONTACT :

com2sec readonly  default        COMMUNITY 
group MyROGroup v1         readonly
group MyROGroup v2c        readonly
group MyROGroup usm        readonly
view all    included  .1                               80
access MyROGroup ""      any       noauth    exact  all    none   none
syslocation LOCATION
syscontact CONTACT
#This line allows Observium to detect the host OS if the distro script is installed
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro

Souvenez vous bien de ce que vous marquez dans COMMUNITY, c’est l’élément clé du serveur SNMP.

Maintenant, téléchargez le script d’Observium qui identifie votre distribution Linux et démarrez le service SNMP :

wget https://raw.githubusercontent.com/tomzx/observium/svn-trunk/scripts/distro
mv distro /usr/bin/distro
chmod 755 /usr/bin/distro
/usr/local/etc/rc.d/snmpd start

Configuration d’un serveur SNMP sur Windows Serveur 2012 R2

Allez dans l’ajout de fonctionnalités et installez le Service SNMP :

observium-debian-7-wheezy-01

 

 

Une fois le service installé, rendez vous dans le gestionnaire de services et éditez les propriétés du serveur SNMP :

observium-debian-7-wheezy-02

 

 

Allez dans Agent, remplissez les informations demandées et cochez toutes les cases :

observium-debian-7-wheezy-03

 

 

Maintenant, allez dans Interruptions, renseignez la communauté et ajoutez l’ip de votre serveur Observium dans les destinations des interruptions :

observium-debian-7-wheezy-04

 

 

Ensuite, allez dans Sécurité, cochez la première case, ajoutez votre communauté en lecture seule et en dessous autorisez uniquement les requêtes SNMP venant de votre serveur Observium :

observium-debian-7-wheezy-05

 

Redémarrez le service SNMP maintenant.

 

Ajouter une machine sur LibreNMS

Une fois les serveurs configurés, allez dans l’interface web de LibreNMS et cliquez sur Devices -> Add Device :

installation-librenms-15

 

Remplissez ensuite le Hostname et Community, cliquez sur Add Device quand c’est fait :

installation-librenms-16

 

Une fois toutes vos machines ajoutées, lancez les commandes suivantes pour lancer une découverte instantanée :

cd /opt/librenms
./discovery.php -h all
./poller.php -h all

Vous verrez ensuite vos machines dans l’interface.

 

Configurer les checks avec les nagios-plugins :

Installez le package Nagios plugins avec la commande suivante :

apt-get install nagios-plugins -y

 

Ensuite, rajoutez les lignes suivantes dans /opt/librenms/config.php :

$config['show_services'] = 1;
$config['nagios_plugins'] = "/usr/lib/nagios/plugins";

 

Et lancez la commande suivante pour que les services soit vérifiés toutes les 5 minutes :

echo "*/5 * * * * librenms /opt/librenms/check-services.php >> /dev/null 2>&1" >> /etc/cron.d/librenms

 

Rafraîchissez LibreNMS dans votre navigateur, le menu services devrait apparaître :

installation-librenms-08

 

Cliquez sur « Add a service », sélectionnez le type de check et remplissez les informations nécessaires, voici un exemple pour le ssh :

installation-librenms-09

 

Ensuite, le service sera vérifié toutes les 5 minutes :

installation-librenms-10

Dès que vous aurez beaucoup de services, ça pourra donner quelque chose dans le style :

installation-librenms-11

 

 

En bonus, si vous souhaitez configurer le syslog : https://www.abyssproject.net/2016/07/collection-rsyslog-librenms/

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.

4 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
florian
florian
3 années plus tôt

Bonjour, Merci pour votre tuto au top. Par contre j’ai cette erreur alors que j’ai bien créer le fichier config.php dans /opt/librenms/config.php et mis les droits de la manière suivante : chown librenms:librenms /opt/librenms/config.php Et voici mon message d’erreur : Welcome to the LibreNMS install Stage 5 of 6 complete 83.333333333333% Complete We couldn’t create the config.php file, please create this manually before continuing by copying the below into a config.php in the root directory of your install (typically /opt/librenms/) Welcome to the LibreNMS install Stage 5 of 6 complete 83.333333333333% Complete We couldn’t create the config.php file, please create… Voir plus »

made
made
4 années plus tôt

Magnifique, mais une idée de comment le faire fonctionner en HTTPS?
merci

made
made
Reply to  Nicolas Simond
4 années plus tôt

oups… je vais m’y atteler alors, merci !