header






Configuración de AWStats para apache

Autor: Besökare Publicación en: 2016-12-23 00:00:00 Ultima actualización con fecha: 2017-05-18 14:44:08

Cómo obtener estadísticas web sin javascript

Un método sencillo para obtener algunas estadísticas sobre los clientes que acceden a nuestras webs es utilizar AWStats. Este programa se encarga de leer los logs que crea el servidor (en este caso un servidor web: apache; pero también ftp o de correo), recopilar los datos interesantes y generar estadísticas y gráficas que podremos exportar a un archivo html o incluso pdf. Aunque AWStats permite el acceso a las estadísticas del servidor en remoto, nosotros crearemos y accederemos a ellas desde el propio servidor. AWStats es software libre y se distribuye con una licencia GNU GPL.

0. Requisitos

En este caso tenemos una máquina Linux Mint pero cualquiera derivada de Ubuntu debería seguir los mismos pasos. En otros Debian y no Debian puede que los archivos de configuración se encuentren en lugares diferentes. También tenemos funcionando un servidor web apache que sirve varias páginas en modo de VirtualHost.

1. Instalación

Abrimos una terminal e instalamos AWStats: sudo apt-get install awstats

2. Configuración

Nos movemos a /etc/awstats cd /etc/awstats . Allí encontraremos un par de archivos, awstats.conf y awstats.conf.local, pero de momento no vamos a modificar ninguno de ellos. Más bien copiaremos awstats.conf tantas veces como servidores virtuales tengamos y así modificaremos las copias, ya que cada uno de nuestros servidores virtuales necesita su propio archivo de configuración. Los siguientes pasos habrán de repetirse para cada una de las webs que tengamos.

sudo cp awstast.conf awstats.miweb.conf

Es importante respetar el formato de nombre awstats.XXXXXX.conf ya que AWStats trabaja conforme a ello. Abrimos la copia con nuestro editor de texto favorito sudo vim awstats.miweb.conf y modificamos los valores de las siguientes opciones:

  • LogFile="/ruta/al/archivo/miweb/access.log"
  • LogType=W
  • LogFormat=1 #Es un uno, no una ele
  • SiteDomain="miweb.com"
  • HostAliases="www.miweb.com" #Solamente rellenamos esta opción si tenemos otros dominios o subdominios para miweb.com

La opción más importante es la que indica la localización del archivo de log del servidor. Si no sabemos dónde está, tendremos que buscarla en el archivo de configuración de los Virtual Host de apache. Éste normalmente se encuentra en /etc/apache2/sites-available/miweb.conf o algo por el estilo. Leemos tal archivo cat /etc/apache2/sites-available/miweb.conf y buscamos la línea CustomLog que probablemente diga algo como CustomLog /var/www/miweb/logs/access.log . Esa ruta es la que necesitamos establecer en la opción LogFile del archivo awstats.miweb.conf.

3. Ejecución

Crear las estadísticas requiere de dos pasos: Hacer que AWStats recopile la información de los logs y hacer que AWStats muestre los resultados en forma de html. Lo primero lo conseguimos con:

sudo perl /usr/lib/cgi-bin/awstats.pl -config="miweb" -update

Este comando llevará unos segundos o minutos dependiendo del tamaño de los logs que tenga que procesar. Para generar un primer informe de las estadísticas ejecutamos:

mkdir ~/miweb.stats/
sudo perl /usr/lib/cgi-bin/awstats.pl -config="miweb" -output -staticlinks > ~/miweb.stats/awstats.miweb.html

Para generar un montón de otros informes útiles, accesibles desde el anterior awstats.miweb.html, ejecutamos:

 

for stat in 'alldomains' 'allhosts' 'lasthosts' 'unkownip' 'alllogins' 'lastlogins' 'allrobots' 'lastrobots' 'urldetail' 'urlentry' 'urlexit' 'browserdetail' 'osdetail' 'unknownbrowser' 'unknownos' 'refererpages' 'keyphrases' 'keywords' 'errors404'; do
    perl /usr/lib/cgi-bin/awstats.pl -config="miweb" -output=${stat} -staticlinks > ~/miweb.stats/awstats.miweb.${stat}.html
done

 

Si abrimos el archivo awstats.miweb.html con un navegador web deberíamos ver las estadísticas generadas. Yo tuve que ejecutar awstats.pl como root, si no se quejaba.

4. Automatización

Ejecutar esos tres comandos (-update, -output y -output=${stat}) cada vez que queramos consultar las estadísticas es poco práctico, menos aún si tenemos varias webs que mantener. Así que lo mejor es dejar que cron o anacron se encarguen de actualizar las estadísticas una vez al día. Lo primero será crear un pequeño script para bash que haga todo el trabajo. Para mi configuración particular tengo el siguiente script, que habría que modificar según los nombres y las rutas de cada servidor o archivo de configuración:

 

#!/bin/bash

sites=('miweb1' 'miweb2' 'miweb3')
statTypes=('alldomains' 'allhosts' 'lasthosts' 'unkownip' 'alllogins' 'lastlogins' 'allrobots' 'lastrobots' 'urldetail' 'urlentry' 'urlexit' 'browserdetail' 'osdetail' 'unknownbrowser' 'unknownos' 'refererpages' 'keyphrases' 'keywords' 'errors404')
for s in "${sites[@]}"; do
        echo "Updating stats for ${s}"
        perl /usr/lib/cgi-bin/awstats.pl -config=${s} -update
        perl /usr/lib/cgi-bin/awstats.pl -config=${s} -output -staticlinks > /var/www/${s}/stats/awstats.${s}.html
        for t in "${statTypes[@]}"; do
                perl /usr/lib/cgi-bin/awstats.pl -config=${s} -output=${t} -staticlinks > /var/www/${s}/stats/awstats.${s}.${t}.html
        done
done

 

Este script se puede guardar en /var/www/awstats.sh por ejemplo, y enlazarlo en /etc/cron.daily/awstats sudo ln -s -T /var/www/awstats.sh /etc/cron.daily/awstats . Ojo, el enlace en cron.daily no tiene que tener puntos. Si hay un punto, probablemente no se ejecutará. Su casa, sus reglas. Si anacron está bien configurado, el script se ejecutará cada día y en ~/stats/ aparecerán las estadísticas de nuestros sitios web.

5. Configuración extra

Si las gráficas de nuestro archivo awstats.miweb.html no se ven correctamente, puede ser por algún error en la localización de los iconos que usa el html. Puede que haya que modificar la opción DirIcons del archivo awstats.miweb.conf a algo como: DirIcons="/usr/share/awstats/icon"

El archivo /etc/awstats/awstats.conf.local dice ser capaz de aunar varias opciones idénticas en un mismo archivo, lo que puede ser útil si no queremos repetir la misma opción en todos los archivos awstats.*.conf , pero yo no lo he probado.

cat /etc/awstats/awstats.conf.local


2016-12-23 00:00:00

0No hay comentarios

Parece que nadie ha comentado aún esta entrada.

Publicar comentario:

Complete el formulario para publicar su comentario.

Nombre de usuario:
Correo electrónico: *

* El correo electrónico se usará para enviarle un enlace de confirmación antes de publicar el comentario. Si introduce una dirección equivocada o a la que no tenga acceso, no podrá seguir el enlace y por tanto, no verá su comentario publicado. Los comentarios sin confirmación se eliminarán pasadas 4 horas.

Mensaje: