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 :
Ensuite, indiquez les informations de connexion à MariaDB :
Laissez le script d’installation peupler la base, 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 :
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 :
Une fois le service installé, rendez vous dans le gestionnaire de services et éditez les propriétés du serveur SNMP :
Allez dans Agent, remplissez les informations demandées et cochez toutes les cases :
Maintenant, allez dans Interruptions, renseignez la communauté et ajoutez l’ip de votre serveur Observium dans les destinations des interruptions :
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 :
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 :
Remplissez ensuite le Hostname et Community, cliquez sur Add Device quand c’est fait :
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 :
Cliquez sur « Add a service », sélectionnez le type de check et remplissez les informations nécessaires, voici un exemple pour le ssh :
Ensuite, le service sera vérifié toutes les 5 minutes :
Dès que vous aurez beaucoup de services, ça pourra donner quelque chose dans le style :
En bonus, si vous souhaitez configurer le syslog : https://www.abyssproject.net/2016/07/collection-rsyslog-librenms/
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 »
Magnifique, mais une idée de comment le faire fonctionner en HTTPS?
merci
Oui, c’était expliqué dans l’article en lien en haut : https://www.abyssproject.net/2016/06/installer-librenms-debian-8-check-nagios/
oups… je vais m’y atteler alors, merci !