9.5.1. Principis i mecanisme
A partir de Debian Bookworm, el paquet rsyslog ja no s'instal·la per defecte, i que en el passat oferia la funcionalitat predeterminada de registre. En lloc d'això, el registre és proveït pel «journal» del systemd
, i que pot ser accedit amb l'ordre journalctl(5).
Amb tot, hi ha situacions on és necessari o desitjable instal·lar l'rsyslogd, per exemple per a enviar tots els missatges de registre a un servidor central. Després de la instal·lació, el dimoni rsyslogd
és responsable de la recollida de missatges de servei procedents de les aplicacions i del nucli, i després distribuir-los en arxius de registre (normalment ubicats al directori /var/log/
). Obeeix al fitxer de configuració /etc/rsyslog.conf
.
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
).