Comment configurer le serveur Rsyslog sur Debian 11
Rsyslog est un logiciel de journalisation gratuit et open-source qui transmet tous les fichiers journaux au serveur de journaux centralisé via le réseau IP. Il aide les administrateurs système à garder un œil sur tous les serveurs depuis un point central. Rsyslog fonctionne selon un modèle client/serveur, il reçoit les journaux du client distant sur le port 514 via le protocole TCP/UDP.
Dans ce billet, nous allons te montrer comment configurer le serveur Rsyslog sur Debian 11.
Conditions préalables
- Deux serveurs fonctionnant sous Debian 11.
- Un mot de passe root est configuré sur le serveur.
Installer Rsyslog
Tout d’abord, tu dois installer le paquet du serveur Rsyslog sur la machine du serveur. Tu peux l’installer à l’aide de la commande suivante :
apt-get install rsyslog -y
Après l’installation, vérifie l’état de Rsyslog à l’aide de la commande suivante :
systemctl status rsyslog
Tu devrais voir la sortie suivante :
? 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, tu devras configurer Rsyslog pour qu’il fonctionne en mode serveur. Tu peux le faire en modifiant le fichier de configuration principal de Rsyslog :
nano /etc/rsyslog.conf
Décommente 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, ajoute les lignes suivantes pour définir le modèle de stockage des journaux entrants des systèmes clients :
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Enregistre et ferme le fichier puis redémarre le service Rsyslog pour appliquer les modifications :
systemctl restart rsyslog
À ce stade, Rsyslog est démarré et écoute sur le port 514. Tu peux le vérifier à l’aide de la commande suivante :
ss -tunlp | grep 514
Tu devrais voir la sortie suivante :
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, tu devras autoriser le port 514 à travers le pare-feu UFW. Tu peux l’autoriser à l’aide de la commande suivante :
ufw allow 514/tcp
ufw allow 514/udp
Ensuite, recharge le pare-feu pour appliquer les modifications :
ufw reload
Configurer le client Rsyslog
Ensuite, tu devras configurer le client Rsyslog pour envoyer les fichiers journaux au serveur Rsyslog. Tu peux le faire en modifiant le fichier de configuration principal de Rsyslog.
nano /etc/rsyslog.conf
Ajoute 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
Ajoute également les lignes suivantes pour définir la file d’attente du disque lorsque le serveur Rsyslog sera hors service :
$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Enregistre et ferme le fichier puis redémarre 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.
Tu peux le vérifier avec la commande suivante :
ls -l /var/log/
Tu devrais 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 tu peux le voir, clientpc est le répertoire de journal 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. Tu peux maintenant surveiller tes clients depuis un emplacement central. N’hésite pas à me demander si tu as des questions.