Los ficheros de registro del sistema, también conocidos como logs, son fundamentales para el mantenimiento de un equipo puesto que nos informan del funcionamiento del mismo. Muy diversas aplicaciones generan registros, que normalmente se manejan a través del demonio syslogd. El registro general del sistema es /var/log/syslog y es recomendable revisarlo de forma continua (a través del correo con logcheck por ejemplo).
Normalmente las aplicaciones que generan muchos registros como servidores web o de bases de datos, tienen sus propios ficheros de registros (p. ej. /var/log/apache/). Sin embargo, otros (como dhcp3-server) no vienen configurados por defecto así y tras instalarlos, se generan gran cantidad de nuevas entradas en syslog. En este artículo explicaremos brevemente como crear un fichero de registro propio para estas aplicaciones.
Formato del fichero /etc/syslog.conf
Cada línea de este fichero tiene dos campos: selector y action.
Selector
Selector tiene a su vez dos partes: facility y priority, la primera identifica el tipo de entrada del registro y la segunda su importancia. Existen las siguientes “facilities” en syslog:
- auth
- authpriv
- cron
- daemon
- ftp
- kern
- lpr
- mark
- news
- syslog
- user
- uucp
- local0-local7
Todas son bastante descriptivas y las local? están sin asociar, por lo que pueden utilizarse en cada equipo para lo que se desee (un servicio por ejemplo).
La escala de prioridad (de menor importancia a mayor) es:
- debug
- info
- notice
- warning (warn)
- error (err)
- crit
- alert
- panic (emerg)
Actions
Una vez que una entrada está definida por la “facility” y la prioridad, hay que detallar qué hacer con ella: guardarla en un fichero, enviarla por correo a un usuario, sacarla por pantalla, etc. El caso más sencillo, que es el que nos incumbe en este caso, es guardarla en un fichero y se configura simplemente poniendo el nombre del mismo. Quedaría por ejemplo la línea:
mail.err /var/log/mail.err
Los mensajes que lleguen etiquetados con la “facility” mail y con prioridad err, se mandan al fichero /var/log/mail.err
Creando registros propios para dhcp
Editamos /etc/dhcp3/dhcpd.conf, e incluimos la línea:
log-facility local7;
Modificamos /etc/syslog.conf, incluyendo una línea como:
local7.* /var/log/dhcp.log
para dirigir toda la salida de dhcp3-server a un fichero de registros propio.
Reiniciamos syslogd y dhcp3-server, y realizamos una prueba con logger:
logger -p local7.info "Mensaje de prueba de local7"
que debe generar un nuevo fichero /var/log/dhcp.log y almacenar allí las entradas de dhcp3-server.
En el caso de Debian Etch, esto no nos quita los registros de /var/log/syslog, ya que viene configurado por una línea del tipo:
*.*;auth,authpriv.none -/var/log/syslog
Que manda todo a syslog, salvo las “facilities” auth y authpriv, para que tampoco registre local7, deberemos cambiar la línea anterior por:
*.*;auth,authpriv,local7.none -/var/log/syslog
Con el que comprobamos que se ha creado el fichero /var/log/dhcpx.log, contiene la línea de registro y esta no aparece ya en syslog.
Creando registros propios para approx
Approx es un caché local de paquetes debian, que genera gran cantidad de entradas en syslog. Los pasos a seguir son muy similares al anterior, aunque en este caso utilizaremos la “facility” local6 (nota: es necesario approx >=2.9.0). Editamos el fichero /etc/approx/approx.conf y añadimos la línea:
syslog local6
(por defecto lo envía a la “facility” daemon).
Modificamos /etc/syslog.conf, incluyendo una línea como:
local6.* /var/log/approx.log
para dirigir toda la salida de approx a un fichero de registros propio.
Para que los registros no aparezcan en syslog, repetimos lo hecho para dhcp3-server.
Referencias
Algunas ideas las cogí de:
Lo hice y lo entendí

