1. Syslog

Registros del sistema

Demonio: syslogd

Fichero de configuración: /etc/syslog.conf

Socket: /dev/log


 

Los programas aplicación necesitan mostrar información a los usuarios, una tarea completada, un error o un aviso necesitan ser reportados.
El kernel, el sistema operativo y los servicios de red, entre otros, corrien segundo plano, a diferencia de los programas con interfaz gráfica. Escribir mensajes a la consola del administrador del sistema no garantiza que este los lea, mucho menos en modo multiusuario, por lo que pueden ser fácilmente perdidos.

El demonio Syslog (syslogd) es la solución a este problema.
En vez de emitir el mensaje a la salida directamente, los mensajes del sistema con siginificado especial se emiten mediante la función syslog(). Estos mensajes son aceptados por syslogd en el socket /dev/syslog.

En realidad los mensajes del kernel son gestionados por klogd. Este programa preprocesa los mensajes y se los traslada a syslogd.

Syslogd es, como su nombre indica, un dominio. Normalmente es iniciado mediante un script en el arranque del sistema. Cuando recibe un mensaje, puede escribirlo en un fichero o bien enviarlo a través de la red a otra máquina que centralice los logs de varios equipos.

Las distribuciones más comunes (Debian, Ubuntu, Red Hat…) han estado utilizando durante bastante tiempo una implementación más avanzada llamada ‘rsyslog’, que permite más opciones de configuración.
Algunas distribuciones, como Novell/SUSE utilizan ‘syslog-NG’.

El fichero de configuración de syslog define dónde se guarda la información que recibe de cada uno de los servicios del sistema.
El fichero de configuración de rsyslog es compatible con la configuración de syslog, simplemente ignora las líneas que comienzan por $.

 

Estructura de ejemplo del fichero de configuración syslog.conf

*.=warn;*.=err -/var/log/warn
*.crit /var/log/warn
*.*;mail.none;news.none/td> -/var/log/messages

La primera columna define qué mensajes son seleccionados, la segunda a dónde deben ser enviados.

La primera columna se estructura de la siguiente forma:

aplicación.prioridad;aplicación.prioridad;etc.

· Si se define, por ejemplo, capturar los mensajes del servicio de correo con mail.warn, todos los warnings y mensajes con una prioridad inferior serán capturados y enviados a la salida.
· Si solamente se quiere capturar los warnings, la sintaxis es mail.=warn
· Para capturar todos los mensajes de un servicio, se puede definir con * o debug, mail.* o mail.debug
· Si se desea no capturar los mensajes, la negación se realiza con !, esto actúa para todos los mensajes con nivel inferior a error, mail.!err. Por este motivo, se suele utilizar con la sintaxis mail.*;!mail.err
· Se pueden combinar ! y =, mail.!=err deselecciona solamente los mensajes de error de mail

La segunda columna indica el fichero (en principio) donde se escribe el log, siempre utilizando rutas absolutas:

/var/log/mail

· Un guión (-) al principio hace que, a diferencia del funcionamiento normal de syslogd, los mensajes no sean escritos al momento al disco, lo cual se puede traducir en pérdida de datos en caso de fallo del sistema. (Utilizar para mensajes no relevantes), -/var/log/mail
· Se puede hacer referencia a un fichero de dispositivo /dev/tty10
· Se puede escribir a un fichero FIFO, se debe dar la ruta absoluta con | precediéndola, |/dev/xconsole
· Se puede enviar la información por la red a otro syslogd. Se realiza con @IP.de.destino.
Es la única forma de asegurarse que los logs no son modificados por un posible atacante.
El host de destino debe iniciarse con la opción -r (remote)
· Se pueden enviar los mensajes directamente a los usuarios, se deben separar con una coma. El mensaje se mostrará en terminal si están logueados, fran,root
· Se pueden enviar a todos los usuarios logueados especificando un * en vez del nombre de usuario

Para testear el funcionamiento de syslog, se puede utilizar el programa logger:

root@soporte:/home/fran# logger -p mail.err -t TEST "Hello World"
root@soporte:/home/fran# tail -1 /var/log/mail.err
 Jan 16 20:09:24 1and1soporte TEST: Hello World

 

Prioridad Siginificado
none No prioritario, excluír mensajes de cierta aplicación
0 – debug Estado interno de un programa, para depurar errores
1 – info Registro de operaciones normales del sistema
2 – notice Documentación notable durante operaciones normales del sistema
3 – warning o warn Errores no serios pero que tampoco pertenecen a las tareas normales
4 – err Mensajes de error de todo tipo
5 – crit Errores críticos (no está clara la división entre crit y err)
6 – alert Mensajes que requieren atención inmedata
7 – emerg Último mensaje antes de un fallo del sistema
Aplicación Significado
authpriv Mensajes de seguridad confidenciales del subsistema
cron Mensajes de cron y at
daemon Mensajes de programas demonio sin más especificación
ftp Mensajes de demonios ftp
kernel Mensajes del kernel
lpr Mensajes del susbsistema
mail Mensajes del subsistema de correo
news Mensajes del subsistema usenet
syslog Mensajes de syslogd
user Mensajes sobre usuarios
uucp Mensajes sobre el subsistema UUCP
localr ( 0 ≤ r ≤ 7) De libre uso para mensajes locales

 

Deja un comentario