De estadísticas a estadísticas…

vicm3@hotmail.com (Víctor Martinez)
Sun, 23 Nov 2008 22:17:01 -0600

Y bueno, los hits a nuestro sitio los había estado llevando con webalizer, debido a que es increíblemente fácil de configurar y a que en realidad es lo que he usado por años, sin embargo, tiene varias limitaciones, la mas grande es que no es un programa soportado o más bien, no es un programa que se siga desarrollando, por lo tanto cosas como obtener más palabras claves que usan los visitantes del sitio siempre nos regresaba únicamente las 10 más usadas, no lleva histórico más allá de un año, por lo mismo cada año, más o menos tenia que copiar las grafiquitas de un directorio a otro y así un montón de cosas como esas, en dreamhost donde corro varias cosas utilizan analog y realmente nunca me ha gustado.

Por lo mismo recorde que alguna vez en una maquina de Gunnar vi awstats, en aquel momento se me hizo una payasada todos los datos que aventaba la cosa esa y peor aun que corriera como un CGI se me hizo un riesgo de seguridad (y lo es), por lo mismo había que tener usuario y contraseña para ver las estadísticas del sitio, cosa que no me agrado en su momento.

Hace algunos días pensando en urchin, ahora analytics de google que me proporciona un montón de datos sobre este sitio, me quede pensando ¿y no son todos esos datos más o menos los mismos que proporciona awstats? Y pues a visitar el sitio, y si, en realidad son más datos de los que me proporcionaba webalizer, menos de los que proporciona analytics, pero lo mejor de todo yo puedo decidir, qué, cómo, cuando y a donde… así que he dedicado buena parte de la tarde de hoy a entender como usar la opción de usar awstats como un trabajo de cron y no como un CGI,

Actualizando: _at_9pm, Como bien menciona Gunnar el usar urchin, ahora analytics es un riesgo de seguridad, al confiarle a terceros el control de javascript, no leo frecuentemente the register, pero de vez en vez tienen un buen articulo. Por otro lado lo que me encontre al instalar awstats, es que no viene un buen ejemplo de como correrlo desde cron y no como CGI, va el mio.

Primero, puesto que uso lighttpd y no apache, en el tipo de log, el que originalmente viene en el awstats.conf es el # 4 - Apache or Squid native common log format (NCSA common/CLF log format), pero este no es el combined de apache, el que nos da referers, crawlers y demas cosas interesantes... por falta de atención al leer estuve creando una regla para parsearlo... hasta que note # 1 - Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format), así que quedo en 1.

En el Readme.Debian que viene en la documentación hay un ejemplo bastante bueno de como hacer para los iconos en apache y nada mas... no me encontre una buena manera de hacerlo en lighttpd y lo resolvi creando una liga simbolica en /var/www/icons a /usr/share/awstats/icon/

Pero lo realmente interesante fue el lograr crear mis paginas estaticas en la documentación en línea viene como crear las páginas usando directamente perl awstats.pl -config=mysite -output -staticlinks > awstats.mysite.html

Ahora el detalle es que en Debian no estan las cosas donde por defecto awstats las coloca, así que seguir el instructivo o el script de configuración nos puede causar un buen dolor de cabeza.

Como dice en la misma documentación existe un script "awstats_buildstaticpages" que hace el truco.

Pues bueno a prueba y error di con el como usarlo:

su www-data -c "perl awstats_buildstaticpages.pl -config=blografia -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/var/www/blog/stats"

Creanlo o no ese -config no me creaba correctamente las ligas entre las diferentes páginas, pero va el encantamiento explicado. su www-data -c es necesario por que en la documentación de awstats dice que de hecho cuando corre como CGI corre como el usuario www-data, de hecho en una instalación de apache tradicional, de slackware o redhat imagino, habria que cambiar los permisos de los logs para que funcionace la cosa y modificar logrotate.conf, sin embargo en el caso de lighttpd los logs ya son propiedad del usuario www-data, así que nos conviene el script sea ejecutado por el usuario www-data (como nota aún cuando pude crear directamente un crontab para el usuario www-data, acostumbro correr muchos de mis scripts desde root y pasarles el usuario), despues el -c significa que va a ejecutar lo siguiente, por eso las comillas, dentro llamamos a perl, el script awstats_buidlstaticpages.pl, la configuracion, despues la acción -update (actualizar).

Y aqui viene la parte interesante, hay que decirle al script donde esta awstats.pl, y finalmente a donde va a escupir todas las páginas... claro que todo ese choro lo meti en un script de bash y eso lo estoy llamando via cron con la opción _at_daily (o lo que seria lo mismo 00 00 * * * *, una bonita modificación de Debian).