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









