9.5.1. Principis i mecanisme
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.
Cada missatge de registre s'associa amb un subsistema d'aplicació (anomenat «facility» a la documentació):
auth
i authpriv
: per a autenticació;
cron
: prové dels serveis de programació de tasques, cron
i atd
;
daemon
: afecta un dimoni sense classificació especial (DNS, NTP, etc.);
ftp
: referent al servidor FTP;
kern
: missatge originat al nucli;
lpr
:prové del subsistema d'impressió;
mail
: ve del subsistema de correu electrònic;
news
: missatge del subsistema Usenet (especialment d'un servidor NNTP — Network News Transfer Protocol — servidor que gestiona grups de notícies);
syslog
: missatges del propi servidor syslogd
;
user
: missatges d'usuari (genèrics);
uucp
: missatges del servidor UUCP (Unix to Unix Copy Program, un antic protocol utilitzat per distribuir missatges de correu electrònic);
local0
a local7
: reservats per a ús local.
Cada missatge també està associat amb un nivell de prioritat. Aquesta és la llista en ordre decreixent:
emerg
: “Ajuda!” Hi ha una emergència, el sistema probablement és inusable.
alerta
: afanyeu-vos, qualsevol retard pot ser perillós, s'han d'adoptar mesures immediatament;
crit
: les condicions són crítiques;
err
: error;
warn
: advertència (error potencial);
notice
: les condicions són normals, però el missatge és important;
info
: missatge informatiu;
debug
: missatge de depuració.
9.5.2. El fitxer de configuració
La sintaxi del fitxer /etc/rsyslog.conf
es detalla a la plana del manual rsyslog.conf(5), però també hi ha documentació HTML disponible al paquet rsyslog-doc (/usr/share/doc/rsyslog-doc/html/index.html
). El principi general és escriure parelles de “selector” i “acció”. El selector defineix tots els missatges rellevants, i l'acció descriu com tractar-los.
9.5.2.1. Sintaxi del selector
El selector és una llista separada per punts i coma de parells subsistema.prioritat
(exemple: auth.notice;mail.info
). Un asterisc pot representar tots els subsistemes o totes les prioritats (exemples: *.alert
o mail.*
). Es poden agrupar diversos subsistemes, separant-los amb una coma (exemple: auth,mail.info
). La prioritat indicada també cobreix els missatges de prioritat igual o superior; per tant auth.alert
indica el subsistema missatges auth
de prioritat alert
o emerg
. Si va prefixat amb un símbol d'exclamació (!) indica el contrari o, en altres paraules, les prioritats estrictament inferiors; auth.!notice
, per tant, indica els missatges emesos des d'auth
, amb prioritats info
o debug
. Si va prefixat amb un signe d'igual (=), correspon exactament i només a la prioritat indicada (auth.=notice
només es refereix als missatges d'auth
amb prioritat notice
).
Cada element de la llista del selector substitueix els elements anteriors. Per tant, és possible restringir un conjunt o excloure determinats elements d'aquest. Per exemple, kern.info;kern.!err
significa missatges del nucli amb prioritat entre info
i warn
. La prioritat none
indica el conjunt buit (sense prioritats), i pot servir per excloure un subsistema d'un conjunt de missatges. Així, *.crit;kern.none
indica tots els missatges de prioritat igual o superior a crit
no provinents del nucli.
9.5.2.2. Sintaxi de les accions
Les diferents accions possibles són:
afegir el missatge a un fitxer (exemple: /var/log/messages
);
enviar el missatge a un servidor syslog
remot (exemple: @log.falcot.com
);
enviar el missatge a una canonada amb nom ja existent (exemple: |/dev/xconsole
);
enviar el missatge a un o més usuaris, si estan connectats (exemple: root,rhertzog
);
enviar el missatge a tots els usuaris connectats (exemple: *
);
escriure el missatge en una consola de text (exemple: /dev/tty8
).