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, puissystemctl restart rsyslog:SIGHUPne relit plus la configuration, il ferme seulement les fichiers ouverts (ce qu'utilise logrotate). - Une action
omfwdsans file d'attente propre est en modeDirect: si elle bloque, elle peut bloquer tout rsyslog. Donnez-luiqueue.type="LinkedList", unqueue.filenameunique et unqueue.maxDiskSpace. - Exigez TLS avec authentification mutuelle (
StreamDriver.AuthMode="x509/name"etPermittedPeer) : le modeanondes 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 unrulesetdédié. - Sur Ubuntu, rsyslog tourne sous le compte
sysloget 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 dequeue.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.