Hosting

Guía para instalar AWstats en Ubuntu 16

06/08/2018

AWstats es un analizador de logs que muestra la actividad de un sitio web en forma de gráficos. Es ideal para llevar la cuenta de las visitas que tienes, de qué páginas son las más vistas, etc.
En este artículo vamos a enseñarte cómo instalar AWstats en Ubuntu 16.
Lo primero es acceder al servidor en el que vas a instalar AWstats.

1.- Intalación

Tras acceder al servidor (si lo vas a instalar en local omite el paso anterior), descarga los paquetes necesarios.

apt-get update
apt-get install awstats libgeo-ipfree-perl libnet-ip-perl -y

2.- Configuración de AWstats

Primero copia la plantilla cp /etc/awstats/awstats.conf /etc/awstats/$DOMINIO.conf
La variable $DOMINIO es el nombre de tu dominio junto a la extensión. En nuestro ejemplo hemos utilizado example.com, por lo que el fichero se llama awstats.example.com.conf.

Después edita el nuevo fichero para adaptarlo a la configuración de tu servidor.
Las directivas que debes editar son:

LogFile="$RUTA"
Ruta al log del que se van a sacar los datos. Se puede utilizar una wildcard para sacar los datos de varios logs ('*'). Por defecto es /var/log/apache2/access.log.
LogType=W
Leer el tipo de log. El tipo 'W' corresponde al log de una web.
LogFormat=1
Formato en el que se va a leer el log. El formato '1' es el que más datos y funcionalidades aporta.
SiteDomain="$DOMINIO"
Nombre del dominio.
HostAliases="localhost 127.0.0.1 $DOMINIO www.$DOMINIO"
Los distintos alias del dominio.
AllowFullYearView=3
Permite obtener un registro con los datos del último año.
LoadPlugin="tooltips"
LoadPlugin="graphgooglechartapi"
LoadPlugin="geoipfree"
Plugins necesarios para que AWstats funcione correctamente

Cuando hayas terminado, copia el nuevo fichero y genera otro fichero con 'www' antes del dominio: cp /etc/awstats/awstats.$DOMINIO.conf /etc/awstats/awstats.www.$DOMINIO.conf. Esto se debe a que AWstats distingue $DOMINIO de www.$DOMINIO.

3.- Programar cron

Si echas un vistazo al fichero /etc/cron.d/awstats verás que ya se ha creado un cron automáticamente. Como no te interesa que se creen bases de datos vacías, elimina la base de datos vacía.
Ejecuta los siguientes comandos para mover el fichero con el cron (comando 1), eliminar cualquier base de datos que se haya creado hasta el momento (2), ejecutar una actualización de la base de datos (3) y volver a poner el cron en su sitio (4).

mv /etc/cron.d/awstats /root
rm /var/lib/awstats/*
/usr/lib/cgi-bin/awstats.pl -config=www.$DOMINIO -update
mv /root/awstats /etc/cron.d

Al ejecutar el tercer comando, verás algo similar a esto:

Update AWstats database

Base de datos de AWstats actualizada.

Y ahora vamos a configurar el cron que actualizará la base de datos cada X tiempo. Nosotros recomendamos cada 10 minutos.
Para crear el cron, puedes ejecutar sudo -u root crontab -e o editar el fichero /var/spool/cron/crontabs/root.
Independientemente del método que utilices, introduce al principio del todo el código SHELL=/bin/bash, y después introduce el siguiente cron para actualizar la base de datos cada 10 minutos: */10 * * * * /usr/lib/cgi-bin/awstats.pl -config=www.$DOMINIO -update > /dev/null. Debes poner este cron por cada dominio en el que quieras instalar AWstats.

4.- Configuración de apache

Ahora procede a configurar apache para poder acceder a la página de AWstats.

Copia y pega este fragmento de código en el fichero /etc/apache2/apache2.conf:

Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /statistics/ /usr/lib/cgi-bin/
Redirect /awstats /statistics/awstats.pl
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Con el fragmento anterior, lo que conseguimos es que al poner en el navegador www.$DOMINIO/awstats se nos redirige a la página de AWstats de ese dominio.

Página de AWstats

Página de AWstats.

No olvides reiniciar apache tras los cambios.

5.- Proteger el acceso con usuario y contraseña

Si quieres evitar que cualquiera pueda acceder a tu AWstats, puedes proteger filtrando la IP (permitir a unos pocos o denegar a muchos) o protegiendo el acceso con un login.

Para filtrar por IP, puedes introducir el siguiente código en el fichero /etc/apache2/apache2.conf.

<Directory /usr/lib/cgi-bin/>
Order Deny,Allow
Deny from all
Allow from $IP
</Directory>

La variable $IP es la IP a la que quieres dar acceso. También puedes permitir (o denegar) un rango, haciendo que $IP sea algo como "89.185.41.0/16". Si has seguido este método, reinicia apache al hacer los cambios.

Ya explicamos en el artículo Protege el directorio wp-admin de tu web en WordPress, así que no vamos a entrar en demasiados detalles. En el fichero /etc/apache2/apache2.conf introduce el siguiente fragmento de código.

<FilesMatch awstats.pl>
AuthName "Enter Your User Name and Password"
AuthType Basic
AuthUserFile /etc/apache2/.awstats
Require valid-user
</FilesMatch>

Tras ésto, crea los usuarios (virtuales, no necesitan ser usuarios del sistema) con sus contraseñas. Para ello, introduce los siguientes comandos:

touch $RUTA
htpasswd -b $RUTA $USUARIO $CONTRASEÑA

Lo que hace este código es generar un fichero en el que se guardan los nombres de los usuarios virtuales junto a su contraseña cifrada.
La variable $RUTA es la ruta donde se guarda el fichero, $USUARIO y $CONTRASEÑA son el nombre del usuario y su contraseña, respectivamente. Puedes crear tantos usuarios como quieras.

Cuando termines, reinicia apache2 y trata de acceder a la página de AWstats. Te aparecerá un pop up solicitando que te autentiques para poder acceder a la página.

Autenticación requerida

Pop up requiere autenticación para acceder a AWstats.

Una vez introduzcas las credenciales, llegarás a la página de awstats.

Y con ésto ya tienes AWstats instalado en tu dominio. Si quieres instalar AWstats en otro dominio, deberás repetir el paso 2, y añadir un cron para el dominio, que puedes ver en el paso 3.

¿Nos ayudas a mejorar la calidad del blog?
Déjanos una valoración sobre este post para poder seguir mejorando
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


* Campo obligatorio.