9.5.1. Principe et fonctionnement
Le démon rsyslogd
a pour charge de collecter les messages de service provenant des applications et du noyau puis de les répartir dans des fichiers de logs (habituellement stockés dans le répertoire /var/log/
). Il obéit au fichier de configuration /etc/rsyslog.conf
.
Chaque message de log est associé à un sous-système applicatif (nommé facility dans la documentation) :
auth
et authpriv
: concernent l'authentification ;
cron
: provient des services de planification de tâches, cron
et atd
;
daemon
: concerne un démon sans classification particulière (serveur DNS, NTP, etc.) ;
ftp
: concerne le serveur FTP ;
kern
: message provenant du noyau ;
lpr
: provient du sous-système d'impression ;
mail
: provient de la messagerie électronique ;
news
: message du sous-système Usenet (notamment du serveur NNTP — Network News Transfer Protocol, ou protocole de transfert des nouvelles sur le réseau — gérant les forums de discussion) ;
syslog
: message du serveur syslogd
lui-même ;
user
: messages utilisateur (générique) ;
uucp
: messages du sous-système UUCP (Unix to Unix Copy Program, ou programme de copie d'Unix à Unix, un vieux protocole employé pour faire circuler entre autres des messages électroniques) ;
local0
à local7
: réservés pour les utilisations locales.
À chaque message est également associé un niveau de priorité. En voici la liste par ordre décroissant :
emerg
: « Au secours ! » le système est probablement inutilisable .
alert
: vite, il y a péril en la demeure, des actions doivent être entreprises immédiatement ;
crit
: les conditions sont critiques ;
err
: erreur ;
warn
: avertissement (erreur potentielle) ;
notice
: condition normale mais message significatif ;
info
: message informatif ;
debug
: message de débogage.
9.5.2. Le fichier de configuration
The syntax of the /etc/rsyslog.conf
file is detailed in the rsyslog.conf(5) manual page, but there is also HTML documentation available in the rsyslog-doc package (/usr/share/doc/rsyslog-doc/html/index.html
). The overall principle is to write “selector” and “action” pairs. The selector defines all relevant messages, and the action describes how to deal with them.
9.5.2.1. Syntaxe du sélecteur
Le sélecteur est une liste (ayant pour séparateur le point-virgule) de couples sous-système
.priorité
(exemple : auth.notice;mail.info
). L'astérisque peut y représenter tous les sous-systèmes ou toutes les priorités (exemples : *.alert
ou mail.*
). On peut regrouper plusieurs sous-systèmes en les séparant par une virgule (exemple : auth,mail.info
). La priorité indiquée recouvre aussi les messages de priorité supérieure ou égale : auth.alert
désigne donc les messages du sous-système auth
de priorités alert
ou emerg
. Préfixée par un point d'exclamation, elle désignera au contraire les priorités strictement inférieures : auth.!notice
désignera donc les messages issus de auth
et de priorité info
ou debug
. Préfixée par un signe égal, elle correspondra exactement à la seule priorité indiquée (auth.=notice
ne concernera donc que les messages de auth
de priorité notice
).
Au sein du sélecteur, chaque élément de la liste surcharge les éléments précédents. Il est donc possible de restreindre un ensemble ou d'en exclure certains éléments. À titre d'exemple, kern.info;kern.!err
définit les messages du noyau de priorité comprise entre info
et warn
. La priorité none
désigne l'ensemble vide (aucune des priorités) et peut servir pour exclure un sous-système d'un ensemble de messages. Ainsi, *.crit;kern.none
désigne tous les messages de priorité supérieure ou égale à crit
ne provenant pas du noyau.
9.5.2.2. Syntaxe des actions
Les différentes actions possibles sont :
ajouter le message à un fichier (exemple : /var/log/messages
) ;
envoyer le message à un serveur syslog
distant (exemple : @log.falcot.com
) ;
envoyer le message dans un tube nommé préexistant (exemple : |/dev/xconsole
) ;
envoyer le message à un ou plusieurs utilisateurs s'ils sont connectés (exemple : root,rhertzog
) ;
envoyer le message à tous les utilisateurs connectés (exemple : *
) ;
écrire le message sur une console texte (exemple : /dev/tty8
).