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.

Vous aimerez aussi...