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.
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:
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!