Bonjour à tous,

Aujourd’hui, on va voir comment configurer Rsyslog avec LibreNMS pour récupérer et stocker automatiquement tous les logs de tous vos serveurs.

 

 

Il est important d’avoir une bonne gestion des logs pour pouvoir les consulter facilement en cas de problème sur un serveur.

LibreNMS fournit un module permettant de récupérer, de stocker et d’analyser les logs.

On va voir comment le configurer et l’installer sur Debian 8. Voici un article si souhaitez installer LibreNMS sur Debian 8.

 

J’ai mis tous les fichiers de configurations et les sources associés sur mon Github, lisez-les pour plus d’informations.

 

Installation de Rsyslog sur le serveur LibreNMS :

Installez Rsyslog avec la commande suivante :

apt-get install rsyslog -y

 

Appliquez la configuration nécessaire avec la commande suivante :

cd /etc
wget https://raw.githubusercontent.com/stylersnico/rsyslog/master/etc/rsyslog-server.conf
rm rsyslog.conf && mv rsyslog-server.conf rsyslog.conf

 

Ça, c’est juste la configuration système de base, maintenant, on va appliquer la configuration spécifique à LibreNMS :

cd /etc/rsyslog.d/
wget https://raw.githubusercontent.com/stylersnico/rsyslog/master/etc/rsyslog.d/30-librenms.conf
systemctl restart rsyslog

 

Maintenant, on va activer le support des syslog dans LibreNMS avec les commandes suivantes :

cd /opt/librenms
wget https://raw.githubusercontent.com/stylersnico/rsyslog/master/opt/librenms/config-add.php
cat config-add.php >> config.php
rm config-add.php

 

Vos DNS doivent représenter exactement le DNS présent dans LibreNMS et non pas un autre reverse IP, sinon il n’arrivera pas à faire le lien.

Vous pouvez forcer les noms corrects dans le fichier /etc/hosts.

Installation de Rsyslog sur les clients :

Installez Rsyslog avec la commande suivante :

apt-get install rsyslog -y

Appliquez la configuration nécessaire avec la commande suivante :

cd /etc
wget https://raw.githubusercontent.com/stylersnico/rsyslog/master/etc/rsyslog-client.conf
rm rsyslog.conf && mv rsyslog-client.conf rsyslog.conf

 

Vous pouvez ajouter le support des logs NGINX, PHP 7 et PHP 5 avec la commande suivante :

cd /etc/rsyslog.d/
wget https://raw.githubusercontent.com/stylersnico/rsyslog/master/etc/rsyslog.d/lemp.conf

 

Commentez la section PHP 5 ou PHP 7 selon les versions disponibles sur votre serveur.

 

Éditez ensuite le fichier de configuration de Rsyslog avec la commande suivante :

nano /etc/rsyslog.conf

 

Et remplacez syslog_server_ip par l’adresse IP de votre LibreNMS ou son nom de domaine.

#Remote server
*.* @syslog_server_ip:514

 

Faites la même chose dans le fichier /etc/rsyslog.d/lemp.conf.

 

Redémarrez ensuite le service Rsyslog avec la commande suivante :

systemctl restart rsyslog

 

Test de Rsyslog sur le serveur LibreNMS :

Lancez la commande suivante pour écouter le trafic qui passe sur le port de Rsyslog :

tcpdump -i eth0 udp port 514

 

Vous devriez avoir un résultat semblable :

root@monitoring:~# tcpdump -i eth0 udp port 514
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
 11:49:28.793109 IP webhost.ragondin.com.45155 > monitoring.ragondin.com.syslog: SYSLOG syslog.info, length: 153
 11:49:28.829808 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG syslog.info, length: 137
 11:49:28.829896 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG syslog.info, length: 71
 11:49:32.558670 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG daemon.error, length: 813
 11:49:33.470379 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG kernel.warning, length: 267
 11:49:36.478635 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG kernel.warning, length: 267
 11:49:38.768606 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG daemon.debug, length: 86
 11:49:38.769138 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG daemon.debug, length: 86
 11:49:42.490359 IP webhost.ragondin.com.45397 > monitoring.ragondin.com.syslog: SYSLOG kernel.warning, length: 267
 ^C
 9 packets captured
 9 packets received by filter
 0 packets dropped by kernel

 

Ensuite, si vous avez tout bien suivi, le module syslog de LibreNMS commencera à se remplir :

rsyslog-librenms-01

 

Vous pourrez ensuite naviguer dans les syslogs d’un serveur précis et rechercher des messages précis, ici les connexions effectuées en HTTP/2 :

rsyslog-librenms-02