--- categories: sysadmin title: Howto Rsyslog ... * Documentation : [Rsyslog](http://www.rsyslog.com/) est le démon **syslog** par défaut sous Debian. Le protocole _syslog_ permet de gérer la journalisation : les messages sont envoyés par diverses applications (messages kernel, user, daemon, mail, etc.) triés par une _facility_ (LOG_KERN, LOG_CRON, LOG_DAEMON, LOG_MAIL, LOG_AUTH, etc.) et un certain niveau de _severity_ (LOG_EMERG, LOG_ALERT, LOG_ERR, LOG_WARNING, etc.) ; ils sont reçus par un démon qui les répartit dans différents fichiers situés dans le répertoire `/var/log/` ou par d'autres façons (serveur syslog distant, terminal, etc.) ## Installation En général le paquet **rsyslog** est installé et le service tourne déjà : ~~~ # systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Main PID: 2815 (rsyslogd) Tasks: 4 Memory: 2.9M CPU: 1.604s CGroup: /system.slice/rsyslog.service └─2815 /usr/sbin/rsyslogd -n # rsyslogd -v rsyslogd 8.16.0, compiled with: PLATFORM: x86_64-pc-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes Number of Bits in RainerScript integers: 64 ~~~ ## Configuration Le fichier de configuration principal est `/etc/rsyslog.conf` : ~~~ module(load="imuxsock") module(load="imklog") $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $WorkDirectory /var/spool/rsyslog $IncludeConfig /etc/rsyslog.d/*.conf auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err *.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages *.emerg :omusrmsg:* ~~~ Journaux principaux : * auth.log : authentification système (login, su, getty) * daemon.log : relatif aux daemons * mail.* : relatifs aux mails * kern.log : générés par le noyau * user.log : générés par des programmes utilisateur * debug : messages de debug * messages : messages d'infos * syslog : tous les messages (sauf exceptions définies) Nous conseillons : * d'activer cron.log * de supprimer mail.info, mail.warn et mail.err * de réduire les infos en double envoyées à /var/log/syslog * de créer des entrées pour les services standard ~~~ *.*;auth,authpriv.none;cron,mail,local4,local5,local7.none -/var/log/syslog cron.* /var/log/cron.log #mail.info -/var/log/mail.info #mail.warn -/var/log/mail.warn #mail.err /var/log/mail.err local0.* /var/log/postgresql.log local1.* /var/log/sympa.log local4.* -/var/log/openldap.log local5.* -/var/log/haproxy.log local7.* -/var/log/dhcp.log ~~~ **Rsyslog** supporte une configuration plus avancée, notamment avec des notions d'input, filtre et output. Cela passe notamment par utiliser le nouveau format RainerScript pour la configuration. ## Administration ### Rotation dynamique des logs Cela permet d'écrire automatiquement dans un fichier dont le nom est fonction de la date par exemple. Du coup il n'est plus utile de gérer sa rotation (uniquement la compression). ~~~ $template DailyPerHostLogs,"/var/log/local2-%$YEAR%-%$MONTH%-%$DAY%.log" local2.* -?DailyPerHostLogs ~~~ ### Activation en réseau Pour que Rsyslog écoute en UDP sur réseau (port 514 par défaut) : ~~~ # provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 ~~~