9.5.1. Principio y mecanismo
Comenzando con Debian Bookworm , el paquetersyslog ya no se instala de forma predeterminada, que en el pasado proporcionaba la funcionalidad de registro predeterminada. En cambio, el registro lo proporciona journal de systemd
, al que se puede acceder mediante el comando journalctl(5).
Hay situaciones en las que es necesario o deseable instalar rsyslog, por ejemplo, para enviar todos los mensajes de registro a un servidor central. Después de la instalación, el demonio rsyslogd
es responsable de recopilar los mensajes de servicio provenientes de las aplicaciones y el kernel, y luego enviarlos a los archivos de registro (generalmente almacenados en el directorio /var/log/
). Obedece al /etc/rsyslog.conf
archivo de configuración.
Cada mensaje de registro es asociado con un subsistema de aplicaciones (llamados «facility» en la documentación):
auth
y authpriv
: para autenticación;
cron
: proviene servicios de programación de tareas, cron
y atd
;
daemon
: afecta un demonio sin clasificación especial (DNS, NTP, etc.);
ftp
: el servidor FTP;
kern
: mensaje que proviene del núcleo;
lpr
: proviene del subsistema de impresión;
mail
: proviene del subsistema de correo electrónico;
news
: mensaje del subsistema Usenet (especialmente de un servidor NNTP — protocolo de transferencia de noticias en red, «Network News Transfer Protocol» — que administra grupos de noticias);
syslog
: mensajes del servidor syslogd
en sí;
user
: mensajes de usuario (genéricos);
uucp
: mensajes del servidor UUCP (programa de copia Unix a Unix, «Unix to Unix Copy Program», un protocolo antiguo utilizado notablemente para distribuir correo electrónico);
local0
a local7
: reservados para uso local.
Cada mensaje tiene asociado también un nivel de prioridad. Aquí está la lista en orden decreciente:
emerg
: «¡Ayuda!» Hay una emergencia y el sistema probablemente está inutilizado.
alerta
: apúrese, cualquier demora puede ser peligrosa, debe reaccionar inmediatamente;
crit
: las condiciones son críticas;
err
: error;
warn
: advertencia (error potencial);
notice
: las condiciones son normales pero el mensaje es importante;
info
: mensaje informativo;
debug
: mensaje de depuración.
9.5.2. El archivo de configuración
La sintaxis del archivo /etc/rsyslog.conf
está detallada en la página del manual rsyslog.conf(5), pero también está disponible la documentación en HTML en el paquete rsyslog-doc (/usr/share/doc/rsyslog-doc/html/index.html
). El principio general es escribir pares de «selector» y «acción». El selector define los mensajes relevantes y la acción describe qué hacer con ellos.
9.5.2.1. Sintaxis del selector
El selector es una lista separada por punto y coma de pares subsistema.prioridad
(por ejemplo: auth.notice;mail.info
). Un asterisco puede representar todos los subsistemas o todas las prioridades (por ejemplo: *.alert
o mail.*
). Puede agrupar varios subsistemas separándolos con una coma (por ejemplo: auth,mail.info
). La prioridad indicada también incluye los mensajes de prioridad igual o mayor; por lo tanto, auth.alert
indica los mensajes del subsistema auth
de prioridad alert
o emerg
. Si se agrega un signo de exclamación (!) como prefijo, indica lo contrario; en otras palabras, prioridades estrictamente menores. Por lo tanto, auth.!notice
sólo incluye los mensajes del subsistema auth
con prioridades info
o debug
. Si se agrega un signo igual (=) como prefijo corresponde única y exactamente con la prioridad indicada (auth.=notice
sólo incluye los mensajes del subsistema auth
con prioridad notice
).
Cada elemento en la lista del selector reemplaza elementos anteriores. Así es posible restringir un conjunto o excluir ciertos elementos del mismo. Por ejemplo, kern.info;kern.!err
significa los mensajes del núcleo con prioridades entre info
y warn
. La prioridad none
indica el conjunto vacío (ninguna prioridad) y puede servir para excluir un subsistema de un conjunto de mensajes. Por lo tanto *.crit;kern.none
indica todos los mensajes con prioridad igual o mayor a crit
que no provengan del núcleo.
9.5.2.2. Sintaxis de las acciones
Las acciones posibles son:
agregar el mensaje a un archivo (ejemplo: /var/log/messages
);
enviar el mensaje a un servidor syslog
remoto (ejemplo: @log.falcot.com
);
enviar el mensaje a una tubería con nombre existente (ejemplo: |/dev/xconsole
);
enviar el mensaje a uno o más usuarios si tienen una sesión iniciada (ejemplo: root,rhertzog
);
enviar el mensaje a todos los usuarios con sesiones activas (ejemplo: *
);
escribir el mensaje en una consola de texto (ejemplo: /dev/tty8
).