Rsyslog
| Fiche express | |
|---|---|
| Type | Démon de journalisation syslog (implémentation) |
| Statut | Démon syslog par défaut sur la plupart des distributions Linux actuelles |
| Concurrent | Syslog-ng |
| Fichier de configuration | /etc/rsyslog.conf, /etc/rsyslog.d/*.conf
|
| Voir aussi | Syslog · Syslog-ng |
Rsyslog est une implémentation moderne du démon syslog, successeur du sysklogd
historique. Il a remplacé syslogd/klogd comme démon de journalisation
par défaut sur la plupart des distributions Linux actuelles (Debian, Ubuntu, RHEL/CentOS...).
Il supporte la réception en UDP et TCP, le chiffrement TLS, la mise en file d'attente sur disque
en cas d'indisponibilité du destinataire, et l'écriture vers des bases de données ou des index
externes en plus des fichiers plats.
Installation
# systemctl stop syslog # yum remove sysklogd # yum install rsyslog
Sur les distributions récentes, le paquet rsyslog est déjà installé et activé par
défaut ; ces étapes ne concernent que la migration d'un système utilisant encore l'ancien
syslogd/sysklogd (à vérifier selon la distribution et sa version).
Configuration côté serveur (collecteur centralisé)
Exemple de /etc/rsyslog.conf activant la réception UDP/TCP et la ventilation des
messages reçus dans un répertoire par hôte source :
#### MODULES #### $ModLoad imuxsock # journalisation locale (via la commande logger) $ModLoad imklog # journalisation noyau $ModLoad imudp $ModLoad imtcp #### GLOBAL DIRECTIVES #### $IncludeConfig /etc/rsyslog.d/*.conf # un répertoire de log par hôte source $template RemoteHost,"/var/log/remote/%HOSTNAME%/%$YEAR%_%$MONTH%_%$DAY%_rsyslog.log" #### RULES (réception locale) #### $RuleSet local kern.* /var/log/messages *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg * $DefaultRuleset local #### RULES (réception distante) #### $RuleSet remote *.* ?RemoteHost *.* @@192.0.2.10:514 $InputTCPServerBindRuleset remote $InputTCPServerRun 10514 $InputUDPServerBindRuleset remote $UDPServerRun 514
Cette syntaxe (directives préfixées par $) est celle de rsyslog 5/6 ; depuis
rsyslog 7, la syntaxe moderne à base de blocs module()/input()/
action() est recommandée pour les nouvelles configurations (à vérifier selon la
version packagée par la distribution cible).
Configuration côté client
Pour envoyer une facility donnée vers un collecteur distant, ajouter dans
/etc/rsyslog.conf :
local4.* @192.0.2.10:514
(@ pour UDP, @@ pour TCP.)
Distinction avec syslog-ng
Rsyslog et Syslog-ng répondent au même besoin (démon syslog) mais ne sont pas interchangeables au niveau configuration : chacun a sa propre syntaxe et son propre écosystème de modules. Le choix se fait en général selon la distribution (Rsyslog est le choix par défaut de la majorité des distributions Linux actuelles) ou selon des besoins de filtrage avancé (historiquement un point fort de syslog-ng).