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