Apache genera logs de accesos muy detallados que contienen mucha información sobre las visitas a nuestra web, siendo muy útil analizarlos cuidadosamente. Para ello utilizaremos un analizador de logs, programa que analiza el archivo /var/log/apache/access.log y genera una página HTML con estadísticas y gráficas sobre documentos más pedidos, procedencia de los visitantes, horas a las que entran, etc.
Existen numerosos analizadores de logs para analizar las estadísticas web, los cuales se diferencian en la información suministrada y en la velocidad con la que trabajan con los logs (que son archivos que pueden ocupar muchos gigabytes). Algunos de los analizadores de logs más utilizados son:
- AWStats.
- Webalizer.
- Analog.
Estadísticas web: AWStats
Aprovecharemos que nuestro Apache tiene soporte para CGIs para instalar AWStats (Advanced Web Statistics, awstats.sourceforge.net, paquete awstats), un analizador de logs muy rápido, configurable y sencillo de usar, escrito en Perl y con soporte para muchos idiomas, entre ellos el español.
Veamos cómo poner a trabajar AWStats suponiendo que tenemos hosts virtuales:
- Crearemos un archivo de configuración de AWStats para cada host virtual. Para ello, copiaremos el archivo /etc/awstats/awstats.conf con el nombre /etc/awstats/awstats.domain.conf
- editamos el archivo /etc/awstats/awstats.domain.conf, directivas:
LogFile="/var/log/apache/access.domain.log" LogFormat=1 SiteDomain="domain.com" Lang="es" DirIcons="/awstats-icon" DefaultFile="index.php"
- Comprobaremos que los logs de accesos de Apache están en formato
combined, directiva CustomLog en el archivo de configuración
de Apache /etc/apache/http.conf:
CustomLog /var/log/apache/access.domain.log combined
- Copiamos el contenido del directorio /usr/share/awstats/icon en el directorio /var/www/domain/awstats-icon.
- El comando para actualizar las estadísticas es el siguiente (la primera vez que lo
ejecutemos se crearán):
# /usr/lib/cgi-bin/awstats.pl -config=domain -update
Nos informará de cuántos registros tenía, cuántos ha añadido, cuántos ha descartado y cuántos son erróneos:
Update for config /etc/awstats/awstats.domain.conf With data in log file /var/log/apache/access.domain.log... Phase 1 : First bypass old records, searching new record... Searching new records from beginning of log file... Phase 2 : Now process new records (Flush history on disk after 20000 hosts)... Jumped lines in file: 0 Parsed lines in file: 179 Found 0 dropped records, Found 0 corrupted records, Found 0 old records, Found 179 new qualified records.
- Para ver las estadísticas generadas por AWStats entraremos en la dirección http://localhost/cgi-bin/awstats.pl?config=domain
- Podemos programar cron para hacer que las estadísticas se actualicen
periódicamente. Por ejemplo, para que las estadísticas se actualicen cada 10 minutos
crearemos el archivo /etc/cron.d/awstats con el siguiente contenido (el
comando es el que acabamos de ejecutar):
0,10,20,30,40,50 * * * * root /usr/lib/cgi-bin/awstats.pl -config=domain -update >/dev/null
Estadísticas web: Webalizer
Webalizer (mrunix.net/webalizer/, paquete webalizer) es un analizador de logs escrito en C, muy rápido y portable, con soporte para muchos idiomas, entre ellos el español.
Estadísticas web: Analog
Analog (analog.cx, paquete analog) es un analizador de logs que utiliza C y Perl, rápido y portable, que se integra con Report Magic (reportmagic.org, paquete rmagic) para generar informes más legibles y estéticos.