Cómo configurar Awstats en un servidor Debian con Nginx

Awstats analiza los archivos del log del servidor y produce informes HTML que veremos a través del navegador.

Consigue gratis tu cuenta

Curso de Vagrant

En este curso aprenderás a utilizar Vagrant para poder crear tus propias máquinas virtuales con diferentes sistemas operativos en cuestión de minutos. Con Vagrant mejorarás tu productividad y tendrás tu entorno de desarrollo configurado rápidamente. ¿Quieres saber más? ¡Apúntate!

Comenzar ahora

como instalar awstats en un servidor linux con debien y nginx

Las estadísticas de una página Web son muy importantes. Puedes ver lo que hace la gente cuando entra, desde dónde entra, qué es lo que más se visita, dónde se hace click o el ancho de banda que se consume. Conocer el comportamiento de tus lectores es de mucha ayuda para saber lo que quieren leer, por ejemplo. Si tenemos una tienda online, podemos ver cuál es el artículo más visitado. Las estadísticas son útiles para cualquier servicio que prestes.

Existen muchas herramientas para llevar esto a cabo: Google Analytics (la más famosa y utilizada), Piwik, Woopra, etc. En Geeky Theory estamos utilizando Google Analytics, pero no muestra información real, ya que si un usuario no quiere ser rastreado, no va a aparecer su visita y para mi es como si nunca hubiera pasado por Geeky Theory. Sin embargo, existe un método mucho más fiable y con datos reales, que consiste en usar la información que da el propio servidor sobre las peticiones que recibe. Por ejemplo, yo me meto en Geeky Theory y hago una petición al servidor, la cual es almacenada en un archivo de log. Luego hago otra petición, por ejemplo a este tutorial. El servidor va a guardar la información de la página que quieres ver, el ancho de banda que ocupa la petición, etc. Da igual que desactives Analytics, esto es información totalmente real, ya que viene del propio servidor.

La herramienta con la que vamos a hacer esto se llama Awstats. Analiza los archivos del log del servidor y produce informes HTML que veremos a través del navegador. Es open source, publicado con licencia GPL y puede ser ejecutado en la mayoría de sistemas operativos, aunque en este caso va a ser Debian.

Para realizar esto voy a basarme en los tutoriales de configuración de un servidor VPS, ya que tanto Geeky Theory como Geeky Juegos están configurados siguiendo esos artículos. Usamos Nginx en un servidor Debian.

PASO 1: CREAR UN SUBDOMINIO

Ya vimos cómo crear subdominios en la serie de tutoriales sobre cómo configurar un servidor VPS. En nuestro panel de control, vamos a añadir un nuevo CNAME:

como configurar awstats en un servidor debian con nginx

PASO 2: INSTALAR AWSTATS

Introducimos el siguiente comando:

apt-get install awstats

PASO 3: CREAR FICHERO DE CONFIGURACIÓN

Awstats trae un fichero de configuración por defecto en el que nos vamos a basar para crear el nuestro. Vamos a crear una copia con este comando:

cp /etc/awstats/awstats.conf /etc/awstats/awstats.midominio.com.conf

 A continuación, vamos a configurar Nginx para que guarde un log de accesos en la ruta /var/log/nginx/access.geekytheory.log.

Abrimos al fichero de configuración en /etc/nginx/sites-enabled/midominio.com y justo debajo de listen 80; introducimos lo siguiente:

access_log /var/log/nginx/access.midominio.log;

Una vez hemos asignado la ruta para el access_log, configuramos el fichero de Awstats, pero no sin antes reiniciar Nginx:

service nginx restart

Modificaremos los siguientes parámetros:

LogFile="/var/log/nginx/access.midominio.log"
LogFormat=1
SiteDomain="midominio.com"
DNSLookup=0
DirData="/var/lib/awstats/midominio.com/"
HostAliases="midominio.com"

Si os fijáis, el directorio DirData todavía no está creado, así que vamos a ello:

mkdir /var/lib/awstats/midominio.com/

En este directorio se almacenarán todos los datos de estadísticas del servidor.

Paso 4: EJECUCIÓN

Awstats es un programa que se ejecuta desde la línea de comandos. Esto quiere decir que tendremos que introducir una instrucción en la terminal para que se ejecute. Vamos a suponer que queremos guardar el archivo HTML en la carpeta /var/www/estadisticas/, pero no lo tenemos creado:

mkdir /var/www/estadisticas

Para ejecutar el programa, necesitamos hacer lo siguiente:

/usr/lib/cgi-bin/awstats.pl -config=/etc/awstats/awstats.midominio.com.conf -update -output > /var/www/stats/estadisticas.html

 Si miráis dentro de la carpeta, se habrá generado el archivo llamado estadísticas.html. Pero, ¿cómo accedemos a él? Tenemos que crear un nuevo site en Nginx dentro de la carpeta /etc/nginx/sites-enabled. Vamos a llamarlo estadisticas.midominio.com y va a tener el siguiente contenido:

server {
    listen 80;
    server_name  estadisticas.midominio.com;

    location / {
        root   /var/www/estadisticas;
        index  estadisticas.html;
    }

    location  /awstats-icon/ {
        alias  /usr/share/awstats/icon/;
    }

    auth_basic            "Restricted";
    auth_basic_user_file  /etc/awstats/estadisticas.midominio.com.htpasswd;

    access_log /var/log/nginx/access.estadisticas.midominio.com.log;
    error_log /var/log/nginx/error.estadisticas.midominio.com.log;
}

Ahora reiniciaremos Nginx de nuevo:

service nginx restart

Paso 5: Seguridad

Lo más común es que no queramos que otros vean nuestras estadísticas. Para ello vamos a protegerlas con contraseña. Necesitaremos el programa htpasswd:

apt-get install apache2-utils

 Necesitaremos un usuario y una contraseña. Introducimos el siguiente comando:

htpasswd -c /etc/awstats/estadisticas.midominio.com.htpasswd username

Una vez hecho esto, y si se han propagado los DNS del subdominio, ya podremos acceder a la página de estadisticas.midominio.com para verlas. Os recomiendo que introduzcáis la instrucción que actualiza las estadísticas en una tarea cron para que sea algo automático. Para ello, podéis utilizar este tutorial.

Esto es todo por este artículo. Espero que os haya servido y sea de utilidad para conocer mejor a vuestros usuarios.

¡Un saludo!

 


¿Quieres seguir aprendiendo?