Imprimir

Estadísticas web en Apache bajo Linux

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 que 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). Los analizadores de logs más utilizados son:

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

    AWStats

  • 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

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.

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.

Deja un comentario