Rsyslog est un logiciel de journalisation gratuit et open source qui transmet tous les fichiers journaux au serveur de journalisation centralisé via le réseau IP. Il aide les administrateurs système à garder un œil sur tous les serveurs depuis le point central. Rsyslog fonctionne dans un modèle client/serveur, il reçoit les journaux du client distant sur le port 514 via le protocole TCP/UDP.
Dans cet article, nous allons vous montrer comment configurer le serveur Rsyslog sur Debian 11.
Prérequis
- Deux serveurs exécutant Debian 11.
- Un mot de passe root est configuré sur le serveur.
Installer Rsyslog
Tout d'abord, vous devrez installer le package serveur Rsyslog sur la machine serveur. Vous pouvez l'installer à l'aide de la commande suivante :
apt-get install rsyslog -y
Après l'installation, vérifiez l'état de Rsyslog à l'aide de la commande suivante :
systemctl status rsyslog
Vous devriez voir le résultat suivant :
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-10-03 13:35:32 UTC; 1h 44min ago TriggeredBy: ? syslog.socket Docs: man:rsyslogd(8) man:rsyslog.conf(5) https://www.rsyslog.com/doc/ Main PID: 283 (rsyslogd) Tasks: 4 (limit: 2341) Memory: 5.0M CPU: 90ms CGroup: /system.slice/rsyslog.service ??283 /usr/sbin/rsyslogd -n -iNONE Oct 03 13:35:32 debian11 systemd[1]: Starting System Logging Service... Oct 03 13:35:32 debian11 rsyslogd[283]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2102.0] Oct 03 13:35:32 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] start Oct 03 13:35:32 debian11 systemd[1]: Started System Logging Service. Oct 03 13:35:34 debian11 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 283 (rsyslogd) on client request. Oct 03 13:45:33 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] rsyslog>
Configurer Rsyslog
Ensuite, vous devrez configurer Rsyslog pour qu'il s'exécute en mode serveur. Vous pouvez le faire en éditant le fichier de configuration principal de Rsyslog :
nano /etc/rsyslog.conf
Décommentez les lignes suivantes :
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
Ensuite, ajoutez les lignes suivantes pour définir le modèle pour stocker le journal entrant des systèmes clients :
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Enregistrez et fermez le fichier puis redémarrez le service Rsyslog pour appliquer les modifications :
systemctl restart rsyslog
À ce stade, Rsyslog est démarré et écoute sur le port 514. Vous pouvez le vérifier à l'aide de la commande suivante :
ss -tunlp | grep 514
Vous devriez voir le résultat suivant :
udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=6)) udp UNCONN 0 0 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=7)) tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=8)) tcp LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=9))
Configurer le pare-feu pour Rsyslog
Ensuite, vous devrez autoriser le port 514 via le pare-feu UFW. Vous pouvez l'autoriser avec la commande suivante :
ufw allow 514/tcp
ufw allow 514/udp
Ensuite, rechargez le pare-feu pour appliquer les modifications :
ufw reload
Configurer le client Rsyslog
Ensuite, vous devrez configurer le client Rsyslog pour envoyer les fichiers journaux au serveur Rsyslog. Vous pouvez le faire en éditant le fichier de configuration principal de Rsyslog.
nano /etc/rsyslog.conf
Ajoutez les lignes suivantes à la fin du fichier :
#Enable sending system logs over UDP to rsyslog server *.* @rsyslog-server-ip:514 #Enable sending system logs over TCP to rsyslog server *.* @@rsyslog-server-ip:514
Ajoutez également les lignes suivantes pour définir la file d'attente du disque lorsque le serveur rsyslog sera en panne :
$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Enregistrez et fermez le fichier puis redémarrez le service Rsyslog pour appliquer les modifications :
systemctl restart rsyslog
Vérifier le fichier journal du client
Tous les fichiers journaux du client sont stockés dans le répertoire /var/log sur la machine serveur.
Vous pouvez le vérifier avec la commande suivante :
ls -l /var/log/
Vous devriez voir le fichier journal du client qui correspond au nom d'hôte du système client :
alternatives.log auth.log.2.gz daemon.log debian11 dpkg.log kern.log.1 messages.1 private syslog.3.gz clientpc auth.log.3.gz daemon.log.1 debug dpkg.log.1 kern.log.2.gz messages.2.gz runit syslog.4.gz apt btmp daemon.log.3.gz debug.2.gz icinga2 kern.log.4.gz messages.4.gz syslog auth.log.1 csm.log dbconfig-common debug.4.gz kern.log messages ntpstats syslog.2.gz
Comme vous pouvez le voir, clientpc est le répertoire des journaux du système du client.
Conclusion
Dans le guide ci-dessus, nous avons expliqué comment configurer le serveur et le client Rsyslog sur Debian 11. Vous pouvez désormais surveiller vos clients depuis l'emplacement central. N'hésitez pas à me demander si vous avez des questions.