Product SiteDocumentation Site

9.5. Les événements système de syslog

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

La syntaxe complexe du fichier /etc/rsyslog.conf est détaillée dans la page de manuel rsyslog.conf(5) mais aussi dans la documentation HTML disponible dans le paquet rsyslog-doc (/usr/share/doc/rsyslog-doc/html/index.html). Le principe global est d'écrire des paires « sélecteur » et « action ». Le sélecteur définit l'ensemble des messages concernés et l'action décrit comment le traiter.

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).