Oct 102012
 
Artículo Apache

AWStats es una aplicación escrita en Perl que proporciona una valiosa información acerca del tráfico que recibe un servidor web. En este artículo veremos cómo instalar y configurar AWStats, y las posibilidades que ofrece.

Instalación de AWStats

Comenzamos por descargar el fichero awstats-7.0.zip desde la página oficial de AWStats en sourceforge.

Descomprimimos el fichero bajo /usr/local. Despues, debemos renombrar como ‘awstats’ el directorio ‘awstats-7.0’ creado . A continuación, ejecutamos el script de instalación ‘awstats_configure.pl’ que se encuentra en el subdirectorio ‘tools’ bajo dicho directorio:

El log completo de la instalación es como sigue:

1. El script solicita la ubicación del fichero de configuración del servidor web:

2. El script modifica el fichero de configuración añadiendo las directrices de acceso al frontend de AWStats:

3. El script crea un fichero de configuración para nuestro web site. Como veremos más adelante, será necesario editar este script para adaptarlo a nuestra instalación

4. El script nos indica que será necesario automatizar la ejecución del proceso de actualización, pero que deberemos hacerlo manualmente, como veremos más adelante.

Una vez finalizada la configuración inicial, debemos crear el directorio en donde se guardará la base de datos:

Y ya podemos acceder a la url ‘http://localhost/awstats/awstats.pl?config=www.openalfa.com’ con nuestro navegador para dar un primer vistazo al frontend de AWStats:

Naturalmente, todos los datos están a cero en esta primera pantalla, porque todavía no hemos procesado ningún fichero de log. Pero ya podemos ver la variedad de informes que AWStats va a poner a nuestra disposición con un solo click desde esta página.

 

Proceso de los ficheros de log

Como hemos visto durante el proceso de configuración más arriba, el proceso de un fichero de log de accesos se realiza ejecutando el comando “/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.openalfa.com”, pero primero debemos editar el fichero de configuración para indicar la ubicación y el formato de los nombres de fichero de log que utiliza nuestro servidor.

En nuestro servidor los ficheros se crean con nombres de la forma ‘access_log.YYYY-MM-DD-00_00_00’, bajo el directorio ‘/var/log/apache2/openalfa’. Por ejemplo:

Por lo tanto, debemos editar el fichero de configuración ‘/etc/awstats/awstats.www.openalfa.com.conf’, para sustituir la línea “LogFile=”/var/log/httpd/mylog.log”” por:

De esta manera aseguramos que cada vez que se ejecute la actualización, se va a procesar el fichero de log correspondiente al día anterior al momento en que se ejecuta el script.

Una vez editado el fichero de configuración, ejecutamos el script:

y volviendo al navegador, refrescamos la página de awstats y vemos que ya aparecen en ella los primeros datos:

 

Por último, sólo tenemos que automatizar la ejecución diaria del proceso, añadiendo una entrada en cron para que se ejecute todos los días, por ejemplo a las 03:05

 

Proceso de ficheros de log antiguos

Presumiblemente, cuando realizamos la instalación de AWStats en nuestro servidor, ya existen una serie de ficheros de log de accesos correspondientes a los días, meses e incluso años anteriores. Si queremos procesar este historial de accesos, debemos:

1. Eliminar la base de datos que se ha creado en la primera actualización:

2. editar el fichero de configuración  ‘/etc/awstats/awstats.www.openalfa.com.conf’ para especificar el fichero de log a procesar de la forma:

Es decir, que el script de proceso va a leer la salida generada por el script ‘logresolvemerge.pl’ que viene incluido en la instalación de AWStats.

Este script va a leer todos los fichero de log que se le indiquen (en nuestro caso, todos los ficheros ‘access_*’ bajo el directorio ‘/var/log/apache2/openalfa’), y se los va a entregar, ordenados por la fecha de los registros que contiene, al script de actualización.

3. Ejecutar el proceso de actualización

4. Volver a editar el fichero de configuración, para volver a asignar a LogFile su valor anterior:

 

Cómo configurar en AWStats más de un sitio web

Puede ocurrir que nuestro servidor web tenga configurados varios sitios web (por ejemplo, mediante directrices “VirtualHost”). En el caso de openalfa, los tres dominios www.openalfa.com, blog.openalfa.com y blog-en.openalfa.com son servidos por el mismo servidor web.

Para configurar el proceso en AWStats de varios sitios web, basta con crear bajo el directorio ‘/etc/awstats’ un fichero de configuración para cada uno de ellos, editandolo para especificar en el parámetro “LogFile” la ubicación y formato de sus ficheros de log.

Por otra parte, en lugar de crear una entrada en cron para cada uno de ellos, podemos crear una única entrada para procesarlos todos, de la forma:

Para cada uno de los nuevos sitios web que configuremos, si queremos procesar ficheros de log anteriores a la instalación de AWStats, se aplican las mismas consideraciones expuestas en el apartado anterior.

 Publicado por en 4:07 pm

  2 Respuestas a “Cómo analizar los logs de acceso de un servidor web con AWStats”

  1. Hola, quería saber si es posible insertar el número total de visitas unicas en la pagina principal de una web (por ejemplo a pie de pagina) sin necesidad de entrar en awstast ( a modo de contador de visitas simple pero que sean del awstats) y al darle click al número que entre en las estadisticas.

    Un saludo Paco

    • Hola Paco,
      Para implementar el contador de visitas, hay que escribir un código que extraiga el total de visitas de la base de datos de awstats, y lo incorpore a un enlace a “/awstats/awstats.pl” en la página principal.

      La base de datos es un fichero de texto bajo el directorio “/var/lib/awstats”. En este directorio hay un fichero por cada mes, con el nombre “awstatsMMYYYY.SITIO.txt” (por ejemplo, awstats122012.blog.openalfa.com.txt)

      En su interior, hay una línea “TotalVisits” con el total de visitas recibidas desde el comienzo del mes. Por ejemplo:

      TotalVisits 76611

      El código para implementar el enlace deberá estar escrito en lenguaje PHP, Perl, Java u otro, dependiendo de como esté hecha la página principal en el sitio en el que se incorpore.

 Deja un comentario

(requerido)

(requerido)