Présentation du service Rsyslog
Syslog est un protocole définissant un service de journaux d’événements d’un système informatique. Syslog est basé sur le mode client-serveur. Le client émet les informations sur le réseau via le port UDP 514. Le serveur se charge de récupérer ces informations et de créer les journaux.
Rsyslog est une implémentation sous licence libre (GNU GPL v3) du protocole Syslog. Ce logiciel est reconnu pour ses performances élevées et ses nombreuses fonctionnalités.
Installation du service rsyslog
Le service rsyslog est installé par défaut sur Raspberry Pi OS, même dans sa version Lite. Cependant si vous devez l’installer, tapez les commandes suivantes :
sudo apt update
sudo apt upgrade
sudo apt install rsyslog
Configuration du service rsyslog
Il faut tout d’abord configurer le service rsyslog. Editez le fichier “/etc/rsyslog.conf” :
sudo vi /etc/rsyslog.conf
Il faut dé-commenter les lignes correspondant au protocole UDP en supprimant le “#” en début des lignes correspondant à la réception Syslog via UDP :
# provides UDP syslog reception
#module(load="imudp")
#input(type="imudp" port="514")
Ces lignes deviennent donc simplement :
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
Afin d’utiliser notre nouveau serveur rsyslog, nous devons configurer un modèle. Le modèle indique à rsyslog dans quel fichier placer les données de journalisation qu’il reçoit et dans quel format elles seront.
sudo vi /etc/rsyslog.d/MyRsyslog.conf
Il faut entrer la configuration suivante dans ce fichier (en remplaçant l’adresse IP 192.168.1.200 par celle de l’équipement qui vous transmet les logs) :
$template MyRsyslog, "/var/log/MyRsyslog.log"
if $fromhost-ip startswith "192.168.1.200" then -?MyRsyslog
& stop
Il suffit ensuite de redémarrer le service rsyslog en tapant la commande suivante :
sudo systemctl restart rsyslog
Exemple de configuration du client syslog dans un Edge Router X
Il suffit d’indiquer l’adresse IP du serveur syslog (celle du Raspberry Pi) dans le menu “System” du routeur et d’indiquer le niveau de logs que l’on désire.
Vous récupérez ensuite dans le serveur syslog (le Raspberry Pi) les logs envoyés par le Edge Router X directement dans le fichier /var/log/MyRsyslog.log
Configurez plusieurs sources syslog
Vous pouvez récupérer les informations de plusieurs clients et les journaliser dans des fichiers distincts.
En appliquant la configuration ci-dessous dans le fichier /etc/rsyslog.d/MyRsyslog.conf, les logs seront stockés dans des fichiers MyRsyslog.log situés dans des répertoires distincts pour chaque client.
$template MyRsyslog, "/var/log/clients/%fromhost%/MyRsyslog.log"
*.* ?MyRsyslog
En appliquant la configuration ci-dessous dans le fichier /etc/rsyslog.d/MyRsyslog.conf, les logs seront stockés dans des fichiers dans le même répertoire mais ayant un nom distincts pour chaque client.
$template MyRsyslog, "/var/log/clients/%fromhost%.log"
*.* ?MyRsyslog
Voilà, le serveur rsyslog est opérationnel dans votre Raspberry Pi !