Estadísticas web · 6 min read · Nov 26, 2025

Generando estadísticas del sitio web con AWStats y JAWStats en Debian Lenny

Generando estadísticas del sitio web con AWStats y JAWStats en Debian Lenny

Versión 1.0
Autor: Falko Timme
Sígueme en Twitter

Este tutorial explica cómo puedes generar estadísticas para tu sitio web con AWStats y JAWStats en un servidor web Debian Lenny. AWStats es una herramienta gratuita, poderosa y rica en funciones que genera estadísticas avanzadas del servidor web. JAWStats funciona en conjunto con AWStats y produce gráficos, tablas y gráficos claros e informativos sobre los visitantes de tu sitio web. AWStats es capaz de crear páginas web gráficas para las estadísticas, pero JAWStats presenta estos datos de una manera mucho más agradable: está mucho mejor organizado y hace uso de Ajax y Flash.

¡No emito ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

En este tutorial tengo un sitio web www.example.com (con los alias example.com, www.example.net y example.net) con la raíz del documento /var/www/www.example.com/web.

2 Instalando y configurando AWStats

AWStats se puede instalar de la siguiente manera:

aptitude install awstats

Su configuración se encuentra en el directorio /etc/awstats/. Para cada host virtual necesitamos tener un archivo de configuración llamado awstats..conf en ese directorio (es decir, para nuestro sitio web www.example.com necesitamos el archivo de configuración awstats.www.example.com.conf). Podemos usar el archivo /etc/awstats/awstats.conf como plantilla:

cd /etc/awstats/
cp awstats.conf awstats.www.example.com.conf
vi awstats.www.example.com.conf

Modifica los siguientes ajustes:

| [...] LogFile="/var/log/apache2/access.log" [...] LogFormat=1 [...] SiteDomain="www.example.com" [...] HostAliases="example.com www.example.net example.net" [...] |

LogFile debe contener la ruta al registro de acceso de Apache de tu host virtual o el registro de acceso general de Apache (el de todos los sitios; AWStats es capaz de filtrar los registros que no pertenecen a tu sitio web). Si tienes un nombre de archivo dinámico (por ejemplo, porque contiene una fecha, por ejemplo, porque tu registro de acceso es creado por cronolog o vlogger), puedes usar marcadores de posición, por ejemplo, así:

LogFile="/var/log/httpd/access.log_%YYYY-0_%MM-0_%DD-0"

Esto se explica en los comentarios en el archivo de configuración de AWStats de la siguiente manera:

“LogFile” contiene el archivo de registro del servidor web, ftp o de correo a analizar.
Valores posibles: Una ruta completa, o una ruta relativa desde el directorio awstats.pl.
Ejemplo: “/var/log/apache/access.log”
Ejemplo: “../logs/mycombinedlog.log”
También puedes usar etiquetas en este nombre de archivo si necesitas un nombre de archivo dinámico dependiendo de la fecha o la hora (el reemplazo se realiza por AWStats al comienzo de su ejecución).
Estas son las etiquetas disponibles:
%YYYY-n se reemplaza con el año de 4 dígitos que teníamos hace n horas
%YY-n se reemplaza con el año de 2 dígitos que teníamos hace n horas
%MM-n se reemplaza con el mes de 2 dígitos que teníamos hace n horas
%MO-n se reemplaza con 3 letras del mes que teníamos hace n horas
%DD-n se reemplaza con el día que teníamos hace n horas
%HH-n se reemplaza con la hora que teníamos hace n horas
%NS-n se reemplaza con el número de segundos a las 00:00 desde 1970
%WM-n se reemplaza con el número de la semana en el mes (1-5)
%Wm-n se reemplaza con el número de la semana en el mes (0-4)
%WY-n se reemplaza con el número de la semana en el año (01-52)
%Wy-n se reemplaza con el número de la semana en el año (00-51)
%DW-n se reemplaza con el número del día en la semana (1-7, 1=domingo)
usa n=24 si lo necesitas (1-7, 1=lunes)
%Dw-n se reemplaza con el número del día en la semana (0-6, 0=domingo)
usa n=24 si lo necesitas (0-6, 0=lunes)
Usa 0 para n si necesitas el año, mes, día, hora actuales…
Ejemplo: “/var/log/access_log.%YYYY-0%MM-0%DD-0.log”
Ejemplo: “C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log”
También puedes usar un pipe si el archivo de registro proviene de un pipe:
Ejemplo: “gzip -d Si hay varios archivos de registro de servidores de balanceo de carga:
Ejemplo: “/pathtotools/logresolvemerge.pl *.log |”

Probablemente estés usando el formato de registro combinado de Apache, así que deberías usar LogFormat=1 (nuevamente, echa un vistazo a los comentarios en el archivo para encontrar el formato correcto, pero en la mayoría de los casos estás usando el formato de registro combinado de Apache).

SiteDomain: Especifica el dominio principal de tu sitio web (www.example.com en este caso).

HostAliases: Especifica todos los demás dominios/subdominios utilizados para acceder a tu sitio web (example.com, www.example.net, example.net en este ejemplo).

A continuación, creamos un trabajo cron para ejecutar AWStats cada nueve minutos:

crontab -e  

| 9,19,29,39,49,59 * * * * /usr/lib/cgi-bin/awstats.pl -config=www.example.com -update >/dev/null |

(Si tienes un registro de acceso dinámico, como el creado por cronolog o vlogger, es una buena idea incluir el minuto 59 en el trabajo cron para que AWStats pueda procesar el registro de acceso actual a las 23:59h antes de que se cree un nuevo registro de acceso a las 0:00h; de esa manera, solo perderás el minuto entre las 23:59h y las 0:00h en tus estadísticas.)

3 Instalando y configurando JAWStats

Ve a http://www.jawstats.com/download, descarga la última versión de JAWStats, descomprímela en tu PC y súbela a un directorio dentro de tu sitio web www.example.com, por ejemplo, con FTP. En este tutorial la subo al directorio /var/www/www.example.com/web/jawstats.

Después, debemos renombrar config.dist.php a config.php y modificarlo:

mv /var/www/www.example.com/web/jawstats/config.dist.php /var/www/www.example.com/web/jawstats/config.php
vi /var/www/www.example.com/web/jawstats/config.php

| "/var/lib/awstats/", "updatepath" => "/usr/lib/cgi-bin/", "siteurl" => "http://www.example.com", "sitename" => "Mi sitio web Example.com", "theme" => "default", "fadespeed" => 250, "password" => "secreto", "includes" => "", "language" => "es-es" ); ?> |

Si deseas eliminar el enlace “cambiar sitio”, cambia $bConfigChangeSites a false.

Si no deseas que tus usuarios puedan actualizar las estadísticas ellos mismos, establece $bConfigUpdateSites a false.

Después de eso, tenemos el array $aConfig[“site1”] - renómbralo para que lleve el nombre de tu sitio ($aConfig[“www.example.com”]). Establece statspath a /var/lib/awstats/ (¡no olvides la barra inclinada al final!), updatepath a /usr/lib/cgi-bin/, siteurl a http://www.example.com, y especifica el nombre de tu sitio web bajo sitename. Se necesita una contraseña solo si has establecido $bConfigUpdateSites a true (si permites que tus usuarios actualicen estadísticas a través del navegador, tendrán que escribir esta contraseña).

Eso es todo, después de que el trabajo cron de AWStats se haya ejecutado por primera vez (lo que puede tardar mucho tiempo para sitios web con mucho tráfico, así que ten paciencia), puedes acceder a tus estadísticas en http://www.example.com/jawstats.

Aquí hay algunas capturas de pantalla de cómo puede verse:

4 Proteger con contraseña el directorio de salida de JAWStats (Opcional)

Ahora es una buena idea proteger con contraseña el directorio /var/www/www.example.com/web/jawstats a menos que desees que todos puedan acceder a las estadísticas de tu sitio web.

Para hacer esto, creamos un archivo .htaccess en /var/www/www.example.com/web/jawstats:

vi /var/www/www.example.com/web/jawstats/.htaccess

| AuthType Basic AuthName "Solo para miembros" AuthUserFile /var/www/www.example.com/.htpasswd require valid-user |

Luego debemos crear el archivo de contraseña /var/www/www.example.com/.htpasswd. Queremos iniciar sesión con el nombre de usuario admin, así que hacemos esto:

htpasswd -c /var/www/www.example.com/.htpasswd admin

Ingresa una contraseña para admin, ¡y listo!

5 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.