Parcheando Webalizer para mejorarlo

Autor: Armonth | El sábado 24 de junio del 2006 @ 14:10.

Actualización: Macklus me envía por email un script de su propia cosecha llamado webalizer expert que realiza todos los pasos necesarios de forma automatizada, solamente hace falta descomprimirlo, darle permisos de ejecución y ejecutarlo. Vamos, nada que no sepa cualquier usuario de GNU/Linux:

wget http://www.sigt.net/http://static.sigt.net/media/2006/webalizer-expert-1-0.tar.gz
tar -xvf webalizer-expert.tar.gz
chmod u+x webalizer && ./webalizer

Webalizer es un programa que crea estadísticas de tu sitio usando para ello los registros (logs) que genera el servidor. Existen algunas "pegas" que no se han corregido principalmente por una razón: El programa ha sido "descontinuado" y la última actualización fue en el 2004. Aún con un desarrollo actual prácticamente nulo tiene indudables ventajas:

  • Ofrece unas estadísticas suficientes para la gran mayoría de usuarios (Visitas, páginas vistas, que webs generan más tráfico entrante, por donde entran, por donde salen, códigos de respuesta del servidor, referidos, desde que búsquedas llega la gente, etcétera).

  • Es muy muy rápido en generarlas, (según su autor, en un ordenador con una CPU de 200MHZ puede con 10.000 registros en 1 segundo) cuando tienes que preocuparte del gasto de CPU de un servidor esto se agradece sobremanera. Yo ejecuto un cron varias veces al día para la web y el planet (los cuales no tienen pocas visitas para lo jóvenes que son) y no llega al segundo de CPU consumida.

Pero existen algunas limitaciones como por ejemplo que no muestra más de 12 meses por lo que si tu web tiene más empezarás a perder las estadísticas antigüas (las cuales pueden ser muy interesantes). La solución pasa por aplicar (bajo tu propia responsabilidad) una serie de parches publicados en la página del proyecto en Freshmeat. Vamos a explicarlo paso a paso y para ello recomiendo utilizar un GNU/Linux ya que vamos a necesitar aplicar parches y compilar. Otra opción es si vuestro hosting os lo permite tener un cliente SSH, conectar con vuestro servidor, aplicar los parches y compilar todo ahí.

Actualización: Parece ser que el Webalizer-2.01-10-src ya no existe y en su lugar está uno más nuevo, en teoría no hace falta aplicar parches, así que comento sistema nuevo y viejo:

# Lo preparamos todo, bajamos el código fuente y lo descomprimimos
mkdir webalizer && cd webalizer
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.20-01-src.tgz
tar -xvzf webalizer-2.20-01-src.tgz

# Toca compilar... después de cada comando debe salir "PERFECTO" en pantalla
./configure --with-language=spanish && echo PERFECTO
make && echo PERFECTO

Lo de usar && echo PERFECTO es para que muestre por pantalla "PERFECTO" si no saca ningún error, es una buena práctica al compilar sobretodo si no sabes distinguir los distintos mensajes de advertencia/información/error-que-te-cagas que salen.

El sistema viejo, bajando la versión 2.01-10 y parcheando, en principio innecesario, y además dicha versión ya no está disponible (el wget dará error) era:

# Lo preparamos todo y bajamos los 3 parches también
mkdir webalizer && cd webalizer
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz
wget http://www.isthe.com/chongo/src/webalizer-patch/0.basic.patch
wget http://www.isthe.com/chongo/src/webalizer-patch/1.64bit.patch
wget http://www.isthe.com/chongo/src/webalizer-patch/2.hist.patch
tar -xvzf webalizer-2.20-01-src.tgz

# Aplicamos parche 1, nos aseguramos que no de errores
cd webalizer-2.01-10/ && patch -p1 < ../0.basic.patch

# Aplicamos parche 2, revisar, lo mismo, etcétera...
patch -p1 < ../1.64bit.patch

# Aplicamos parche 3, revisar, lo mismo, blablabla...
patch -p1 < ../2.hist.patch

# Compilar... igual que el punto anterior nuevo...
./configure --with-language=spanish && echo PERFECTO
make && echo PERFECTO

Los parches añaden muchas novedades, la más importante para mi es que todas las estadísticas anteriores a un año se guardan en un directorio "history" pero hay más:

  • Permiten a webalizer en sistemas -- como GNU/Linux -- procesar registros muy grandes (de más de 2GB).

  • Modifica la lista de países basándose en los de .arpa ya que de la lista original no todos son países. También incluyen varios TLD's que faltaban.

  • Mejoras en el cache de DNS, cuando ejecutamos el script a diario debería notarse una menor carga.

  • Quita los atributos <a href="" de el "Top N referrers" es decir quita los enlaces de la sección de referidos dejándolos como texto plano para evitar que spammers y otros tipos de formas inferiores (tal cual lo pone en los comentarios) no se aprovechen de tus estadísticas para intentar escalar puestos en los buscadores.

  • Medidas contra urls o búsquedas demasiado largas (+256 caracteres).

  • Los "counters" (¿contadores? ¿es una T. literal?) son de 32 bits, para sitios con mucha carga o un sitio que no se ha actualizado en MUCHO tiempo puede provocar desbordamientos (overflows) por ello se utilizan 64 bits.

  • La ya anunciada novedad de poder conservar las estadísticas mensuales anteriores a un año.

Comentarios