Como cortar el Log en Apache2 con vlogger en Debian etch

junio 12, 2008

Antes de todo, presentamos a Vlogger, un pedazo de código creado con la finalidad de poder manejar grandes cantidades de información que generan los logs de los hosts virtuales. Malas noticias, por si no sabías, Apache no puede hacer esto por si solo. Vlogger toma las entradas de Apache, y las separa clasificándolas por el primer campo. Usa un archivo para el manejo del cache, por lo que no puede correr fuera del descriptor de archivos. Cada noche comienza un nuevo archivo log, a medianoche, y mantiene un symlink a los archivos más recientes. Para mayor seguridad puede manejar los privilegios, y hacer chroot a los directorios que alojan los logs.

Instalar vlooger en Debian etch

Primero nos aseguramos de tener funcionando el servidos apache, por ejemplo, accediendo a http://localhost en nuestro navegador de preferencia (Iceweasel, por ejemplo). Verificado esto, </ironia>adoptamos una aptitud de complejidad y nerviosismo</ironia> y hacemos (como superusario, root):

aptitude install vlogger

Lo que es suficiente para completar la instalación.

Configurar vlogger

Lo primero es modificar la línea LogFormat en /etc/apache2/apache2.conf, aunque hay múltiples líneas LogFormat en este archivo, basta con cambiar aquella que termina “combined”, agregando el caracter %v al inicio de ella, osea:

#nano /etc/apache2/apache2.conf

para encender el editor de textos con el texto que queremos modificar. buscamos la línea LogFormat que aparece como:

LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”" combined

para agregarle %v, y que quede como:

LogFormat “%v %h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”" combined

Hecho esto, guardamos y luego agregamos una línea adicional, que puede quedar muy bien inmediatamente bajo las líneas de LogFormat:

CustomLog “| /usr/sbin/vlogger -s access.log /var/log/apache2″ combined

Ahora podemos guardar, cerrar y olvidarnos.

NOTA: Esta es la único línea de CustomLog que necesitamos corriendo en nuestro Apache de aquí en adelante, por lo que hay que descartar (deshabilitando mediante # al inicio de la línea), cualquier otra línea que ose envíar una directiva CustomLog, sobretodo en el archivo de configuración del VirtualHost.

Ahora podemos reiniciar Apache mediante:

# /etc/init.d/apache2 restart

Vlogger va a crear un subdirectorio en /var/log/apache2, por cada virtual host, y va a crear log de acceso (access logs) que llevan como nombre la fecha del día de hoy (genéricamente hablando). También crea un Symlink, llamado access.log, apuntando hacia los archivos actuales de logs.

Vamos a asumir que tenemos dos sitios virtuales: dev.sitio1.cl, y dev.sitio2.cl Esta debiera ser la manera que nuestro /var/log/apache2 se presenta:

dev.sitio1.cl/
06092008-access.log
06102008-access.log
06112008-access.log
access.log -> 06112008-access.log

dev.sitio2.cl/
06092008-access.log
06102008-access.log
06112008-access.log
access.log -> 06112008-access.log

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: