Aller au contenu

rsyslog

À quoi il sert

rsyslog reçoit des messages au format syslog, les trie selon leur catégorie (facility) et leur priorité, et les écrit dans des fichiers (/var/log/syslog, /var/log/auth.log) ou les envoie sur le réseau. Sur Debian et Ubuntu, journald lui recopie chaque message par une socket (ForwardToSyslog=yes), qu'il lit avec le module imuxsock. Ses modules couvrent l'envoi (omfwd, omrelp), la réception (imtcp, imudp, imrelp), le chiffrement TLS (pilotes gtls et ossl, paquets rsyslog-gnutls et rsyslog-openssl), et des files d'attente par action, en mémoire avec débordement sur disque, pour ne rien perdre quand le collecteur est injoignable.

Quand le choisir

Pour centraliser les journaux d'un petit parc vers un collecteur : syslog sur TCP et TLS (RFC 5425, port 6514) est compris par presque tout le monde, et rsyslog sait mettre les messages en attente pendant une panne. Il est installé par défaut sur Ubuntu Server, plus sur Debian depuis Debian 12, où seul le journal existe tant qu'on ne l'installe pas. À plus grande échelle, on le complète ou on le remplace par un agent (Fluent Bit, Grafana Alloy) qui alimente une plateforme indexée comme Loki ou OpenSearch.

Points d'attention

  • Validez toute modification avec rsyslogd -N1, puis systemctl restart rsyslog : SIGHUP ne relit plus la configuration, il ferme seulement les fichiers ouverts (ce qu'utilise logrotate).
  • Une action omfwd sans file d'attente propre est en mode Direct : si elle bloque, elle peut bloquer tout rsyslog. Donnez-lui queue.type="LinkedList", un queue.filename unique et un queue.maxDiskSpace.
  • Exigez TLS avec authentification mutuelle (StreamDriver.AuthMode="x509/name" et PermittedPeer) : le mode anon des tutoriels chiffre sans authentifier, et n'importe qui pourrait injecter des journaux.
  • Côté collecteur, rangez par %FROMHOST% (l'émetteur réel), jamais par %HOSTNAME% (le nom déclaré dans le message), et isolez les messages reçus dans un ruleset dédié.
  • Sur Ubuntu, rsyslog tourne sous le compte syslog et est confiné par un profil AppArmor : une clé déposée dans /etc/ssl/private/ est illisible pour lui.
  • Une action suspendue (action ... suspended) n'arrête pas les fichiers locaux : surveillez l'arrivée des journaux sur le collecteur, pas seulement l'état du service.
  • Les fichiers texte et la file dans /var/spool/rsyslog échappent aux plafonds de journald : ils ont besoin de logrotate et de queue.maxDiskSpace.

Par où commencer

La leçon Les journaux d'un parc de serveurs du cours Linux : administration système, qui envoie les journaux de sig-app-1 et sig-app-2 vers un collecteur rsyslog en TCP et TLS, avec file d'attente sur disque. Puis la documentation officielle, en particulier les modules omfwd et imtcp et le tutoriel Reliable Forwarding of syslog Messages.