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 configurer Rsyslog avec LibreNMS pour récupérer et stocker automatiquement tous les logs de tous vos serveurs.
- An English translation is available here
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.
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 :
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 :
[…] En bonus, si vous souhaitez configurer le syslog : https://www.abyssproject.net/2016/07/collection-rsyslog-librenms/ […]
i have followed the tutoriel but i didn’t get the same result in the end when i write this command tcpdump -i eth0 udp port 514 i coul not see any packets same thing on librenms