Product SiteDocumentation Site

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

9.5.1. Principe et fonctionnement

Starting with Debian Bookworm, the rsyslog package is no longer installed by default, which in the past provided the default logging functionality. Instead, the log is provided by systemd's journal, which can be accessed by the journalctl(5) command.
There are situations, where it is necessary or desired to install rsyslog, though, e.g. to send all log messages to a central server. After installation, the rsyslogd daemon is responsible for collecting service messages coming from applications and the kernel, then dispatching them into log files (usually stored in the /var/log/ directory). It obeys the /etc/rsyslog.conf configuration file.
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).