Vous êtes sur la page 1sur 2

058-059_Logs

06.02.2006

15:02

Uhr

Pgina

58

ADMINISTRACIN Logs

ROTANDO LOS REGISTROS


Cada sistema Linux produce gran cantidad de datos en los registros. Para impedir que el disco duro se llene existe una aplicacin que ayuda a rotar los ficheros de registros y se deshace de los datos obsoletos. POR MARC ANDR SELIG
ienes que ser un tipo de persona muy especial si disfrutas analizando los ficheros de registros. Pero debe admitirse que los ficheros de registros de /var/log proporcionan a los administradores el tipo de informacin que necesitan para descubrir el origen de los errores misteriosos del sistema. Tambin proporcionan informacin si los servicios en el sistema estn funcionando. Si tiene cualquier problema instalando un servicio o ejecutando un script, los registros pueden indicarle lo que va mal. Los administradores paranoicos (y deberan serlo todos) comprueban sus sistemas en busca de accesos no autorizados y bloquean cualquier traza que encuentran. Los registros de informacin tambin pueden usarse para controlar el comportamiento del equipo. Por ejemplo, un servidor SMTP podra ver una direccin IP como autorizada para enviar correo si el

Trucos: Logrotate

fichero de registro tiene una entrada de login correcta para el buzn. O un cortafuegos podra desplegar un filtro de paquetes para bloquear automticamente una direccin IP siguiendo un ataque obvio. Si no se leen los ficheros de registros, an se les puede echar un vistazo. stos consumen ms y ms espacio en el disco duro o en la particin /var. El consumo gradual de espacio de disco, tarde o temprano har que el equipo caiga. El manejo de los ficheros de registro (evaluacin, archivado, eliminacin) es una tarea administrativa tradicional. Pero ahora que Linux ha empezado a conquistar los escritorios, es absurdo esperar que los usuarios manejen la administracin de los archivos de registro. Hace aos que se presentaron algunas herramientas totalmente automatizadas para ayudar con la tarea de manejar los ficheros de registros.

fichero de registro se ha cambiado. El proceso de escritura necesita cerrar cualquier fichero de registro que se est usando y reabrir estos ficheros, as se reciben las versiones actualizadas (en blanco) que pueden actualizarlos. Cuando la herramienta de gestin del fichero de registro central necesita encontrar qu procesos escribir en qu ficheros de registro. El hecho de que muchos servicios utilicen syslog hace que esto sea ms fcil de manejar, pero an hay paquetes (como Apache) que insisten en utilizar sus propios ficheros de registro por rendimiento u otras razones.

Configuracin Modular
Para establecer este mecanismo en un sistema Linux libremente configurable y extensible, muchos desarrolladores utilizan el paquete Logrotate. ste utiliza una configuracin modular como muchos otros

No Borre, Rote!
Un sistema Linux no borra los ficheros de registros, los rota. Primero renombra un fichero como XXX.log a XXX.log.0 (o algo parecido). Este paso es importante, ya que el programa de limpieza automtico no tiene forma de conocer si el proceso est actualmente accediendo al fichero de registro. Si un proceso tiene abierto el fichero de registro, posee un manejador de ficheros exactamente para ese fichero, y escribir al archivo independientemente de si otro proceso lo ha renombrado o lo ha suprimido. Tras renombrar el fichero, el protocolo de limpieza necesita volver a crear los ficheros de registros nuevos (en blanco) e indicarle al proceso correspondiente que el

Listado 1: Fichero Ejemplo de logrotate.conf


01 02 03 04 05 06 07 08 09 10 11 12 13 14 weekly rotate 4 create compress delaycompress /var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 } include /etc/logrotate.d

Listado 2: /etc/logrotate.d/ apache2


01 02 03 04 05 06 07 08 09 10 11 12 /var/log/apache2/*.log { missingok rotate 52 notifempty create 640 root adm sharedscripts postrotate if [ -f /var/run/apache2.pid ]; then /etc/init.d/apache2 restart >/dev/null fi endscript }

58

Nmero 15

WWW.LINUX-MAGAZINE.ES

058-059_Logs

06.02.2006

15:02

Uhr

Pgina

59

Logs ADMINISTRACIN

paquetes centralizados. Las variables del ncleo se establecen mediante un fichero de configuracin central. El fichero realiza una anotacin de la frecuencia en la que Logrotate debe rotar el fichero de registro, qu tamao deben tener los registros antiguos, si se comprimen estos ficheros y as continuamente. El fichero de configuracin central se llama /etc/logrotate.conf. Adems, cada paquete software puede aadir una entrada al fichero de configuracin de Logrotate durante la instalacin. Por supuesto, no se debera escribir en el fichero de configuracin central. Esto podra conducir a inconsistencias; en vez de esto, Logrotate utiliza un directorio de configuracin denominado /etc/logrotate.d. Los paquetes pueden almacenar sus propios mini ficheros de configuracin Logrotate bajo su nombre de paquete. Estos ficheros indican lo que hay hacer con el fichero de registro rotado. La entrada de configuracin para un servidor proxy puede ser, por ejemplo, /etc/logrotate.d/ squid.

Un Ejemplo
El Listado 1 proporciona un ejemplo de un /etc/logrotate.conf mnimo. Basndose en esta configuracin, Logrotate rotara los ficheros de registros semanalmente y proporcionara un total de cuatro versiones previas. Tras cada rotacin, la herramienta crear un nuevo fichero de registro y comprimir las versiones previas semanales. El Listado 1 especifica el fichero de registro de Logrotate a manejar, /var/log/ wtmp. La aplicacin tan slo crea este fichero una vez al mes, manejando los permisos para el fichero de root y el grupo utmp. La palabra reservada rotate 1 en la lnea 11 le indica a Logrotate que guarde tan slo la versin anterior. logrotate.conf no especifica como manejar los otros ficheros; en cambio estos se manejan por trocitos de configuracin del /etc/logrotate.d, que tienen la directiva habilitada en la lnea 14. Ignora cualquier fichero creado mediante editores, ficheros de versiones de sistemas de control, trozos dejados por gestores de paquetes (por ejemplo, *.rpmsave o *.dpkg-old) y ficheros con extensin .disabled.

los ficheros de registro. Apache viene configurado para guardar los ficheros de registro bajo /var/log/apache2. La configuracin por defecto del Listado 1, se aplica a todos los ficheros en /var/log/ apache2; primero: Logrotate rota los ficheros semanalmente, comprime los ficheros de la semana y crea un fichero nuevo por cada fichero que rota. La lnea 5 del Listado 2 asigna privilegios de acceso especficos a los registros nuevos y vacos para impedir que los usuarios normales los visualicen. Una suposicin que hace el ejemplo es que los registros del servidor web son ms importantes para las operaciones del sistema y para la facturacin. Se necesita que el sistema mantenga los registros de un ao completo, creando 52 generaciones, a una tasa de una generacin por semana. Si Apache falla al ejecutarse por alguna razn desconocida, lo que conducira a un registro perdido, el programa no lo rotar como se estipula con la palabra reservada notifempty. El Listado 2 tambin contiene instrucciones sobre cmo hacer que Apache conozca el momento en el que se van a rotar los ficheros. El mensaje se enva despus de cada evento, como se indica con la palabra reservada postrotate (la palabra reservada para un mensaje anterior a la rotacin es prerotate). Dicha palabra va seguida de unas cuantas lneas del script, que se cierra con la palabra reservada endscript. Las lneas de la 8 a la 10 dicen: si Apache se est ejecutando (es decir, si el fichero PID existe) la correspondencia en el script Init se encargar de relanzarlo. La palabra reservada sharedscript de la lnea 6 le indica a Logrotate que llame a este script de informacin una nica vez, incluso cuando se rotan mltiples ficheros de registro. Ejecuta una rotacin una vez que se ha completado para todos los ficheros de registro.

cin relevante y crtica, escribindola en el fichero ipfilter-high.log. El Listado 3 tiene que tratar estos dos ficheros de forma bastante diferente. Rota ipfilter-bulk.log si el fichero llega a un tamao de 20 Mbytes, pero normalmente no ms de una vez al da. Logrotate comprime los ficheros de registros antiguos usando bzip2. El siguiente paso es notificar al servicio de los cambios del fichero; para ello se usa la directiva postrotate en el script Init apropiado, como en el ejemplo anterior de Apache. ipfilter-high.log requiere un tipo de tratamiento diferente. Como podra contener informacin crtica en el tiempo, logrotate rota este fichero una vez cada da y, adems, enva un correo al administrador. Le proporciona bastantes avisos y tiempo suficiente para hacerse cargo de los registros. logrotate normalmente atiende a los ficheros de registros ms antiguos, pero la directiva mailfirst le indica que enve el fichero actual tan pronto como termine la rotacin. Los datos crticos simplemente no se descartan tras unas cuantas semanas, sino que se mantienen por razones forenses, en nuestro caso, 730 das, o dos aos. Para impedir que los ficheros de registros antiguos se acumulen en el directorio /var/ log, logrotate los mueve a un directorio I separado en /var/log/ipfilter-old.d.

Listado 3: Dos Registros Distintos en un Filtrado de Paquetes


01 02 03 04 05 06 07 08 /var/log/ipfilter-bulk.log { size 20M rotate 10 compress compresscmd bzip2 compressext bz2 postrotate /etc/init.d/sysklogd reload >/dev/null 09 endscript 10 } 11 12 /var/log/ipfilter-high.log { 13 daily 14 rotate 730 15 olddir /var/log/ipfilter-old.d 16 nocompress 17 mail <I>ich<I>@<I>meine.domain.de<I > 18 mailfirst 19 }

Sofisticado
La configuracin en los Listados 1 y 3 proporciona ejemplos de cmo configurar los servicios estndar en las distribuciones ms comunes de Linux. Pero logrotate dispone de ms trucos: el Listado 3 configura un filtro de paquetes, por ejemplo. Esta configuracin supone que los registros del filtro de paquetes se almacenarn en ipfilterbulk.log. Los ficheros podran ser enormes en un servidor tpico y su tamao impedira una evaluacin manual. Un script (que no se muestra aqu por razones de espacio) analizar el fichero en busca de informa-

Tratamiento Especial para Apache


Los ficheros /etc/logrotate.d incluyen el fichero apache2, con un ejemplo para Apache (Listado 2) que contiene opciones especiales para rotar los registros de Apache. Este listado comienza con la ruta a

WWW.LINUX-MAGAZINE.ES

Nmero 15

59

Vous aimerez peut-être aussi