Is it a fake website?

19 febrero 2007

LOGROTATE: domina tus archivos de log

Erik Troan, y Preston Brown son los autores de logrotate, una utilidad para administrar las políticas de los logs de tu equipo.
Logrotate es un estándar en sistemas RedHat y Debian. Con esta herramienta, podremos especificar todo tipo de parámetros a la hora de administrar nuestros logs.

Un archivo de configuración de logrotate, consiste en una serie de especificaciones para los grupos de archivos de log que vamos a administrar. Las opciones especificadas fuera de cada contexto de un log concreto, (errors, rotate, weekly...) se aplican a todos ellos, pero pueden ser reemplazadas con una especificación concreta para un log en particular.

Mejor veamos un ejemplo.

# Example log rotation policy
errors logadmin@logadmin.net
rotate 5
weekly

/var/log/messages {
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid`
endscript
}

/var/log/samba/*.log {
notifyempty
copytruncate
sharedscripts
postrotate
/bin/kill -HUP `/var/lock/samba/*.pid`
endscript
}

Esta configuración, rota el archivo /var/log/messages cada semana, mantiene 5 versiones del archivo y notifica al syslogd cada vez que el archivo es reseteado.
El archivo de log de samba tambien se rota semanalmente, pero en vez de guardarse y reiniciarlo, se copia y se trunca. Una vez que se ha rotado el log, se envía una señal HUP al demonio de samba.

Logrotate, normalmente se ejecuta en el cron diariamente.
[root@logadmin ~]# ll /etc/cron.daily/logrotate
Su archivo estándar de configuración es /etc/logrotate.conf, pero se pueden especificar múltiples archivos de configuración ( o directorios incluyendo archivos de configuración)
[root@logadmin ~]# ll /etc/logrotate.d/
total 72
-rw-r--r-- 1 root root 144 Aug 9 2004 acpid
-rw-r--r-- 1 root root 161 Apr 12 2006 cups
-rw-r--r-- 1 root root 571 Aug 20 2004 mgetty
-rw-r--r-- 1 root root 136 Nov 2 2004 ppp
-rw-r--r-- 1 root root 319 Jan 26 2006 psacct
-rw-r--r-- 1 root root 61 May 30 2006 rpm
-rw-r--r-- 1 root root 154 Apr 20 2006 snmpd
-rw-r--r-- 1 root root 262 Sep 5 12:23 syslog
-rw-r--r-- 1 root root 32 Jul 28 2006 up2date

Esta última característica, es lo que hace que en los sistemas RedHat y Debian el directorio /etc/logrotate.d sea un lugar estándar para los archivos de configuración de logrotate. Todos los paquetes software conscientes de logrotate (la gran mayoría) se integran con este sistema de administración de logs en la parte de su proceso de instalación, lo que simplifica ampliamente la administración.

NOTA para administradores: En muchos sistemas, a la hora de crear las particiones, como política de seguridad se crea la partición /tmp con el flag "noexec", lo que hace que en esa partición no se puedan ejecutar scripts ni programas.
Con esta medida, puede que muchos programas y scripts del sistema fallen y no sepamos cual es la causa. Esto es debido a que muchos, utilizan el directorio /tmp para dejar archivos temporales de cálculos intermedios.
Logrotate es uno de ellos, para evitar este pequeño imprevisto, podremos modificar el script de cron que viene

[root@logadmin ~]# cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

por este otro

[root@logadmin ~]# cat /etc/cron.daily/logrotate
#!/bin/sh

export TMPDIR=/var/tmp
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
similar solución podremos hacer para aplicaciones que fallen debido a esta restricción.

4 comentarios:

Anónimo dijo...

bueno el post ;)

es bastante util utilizar logrotate para muchas cosas, ahora lo estoy utilizando con syslog-ng

saludos

http://cayu.com.ar

paul dijo...

Muy bueno

La seguridad e integridad de estos logs es muy importante, puedes añadir a este blog como añadir chattr -a y chattr +a a los scripts.

Donde? Como?

No soy capaz de hacer que funcione.

Ver este articulo:
Apartado :Seguridad general de logs.

http://www.wikilearning.com/
tutorial/guia_de_seguridad_del_
administrador_de_linux-ficheros_
de_log_y_otros_metodos_de_mon
itorizacion/9634-50

Muchas gracias

Espero leerte pronto

Paul

Anónimo dijo...

Excelente artículo compañero.

Logrotate es tremendamente útil para poder mantener de forma optimizada nuestros ficheros logs durante un largo periodo de tiempo, ya que además de rotarlos podemos comprimirlos automáticamente si lo estimamos oportuno.

Logrotate es una herramienta imprescindible.

Un saludo,
Alejandro Arco

matugm dijo...

Interesante tema, llevo años usando Linux y nunca eh tenido que tocar la configuracion del logrotate pero siempre va bien refrescarse la memoria de como funcionan las cosas :)

http://blackbytes.wordpress.com/