Analizador de logs de Apache

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

    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

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.

AWStats

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.

AWStats

Artículos en la categoría "Servidores (software)"

  1. Monitorizar servidores con Nagios
  2. Monitorizar routers SNMP con MRTG
  3. Administración de máquinas Linux con Webmin
  4. Shell remoto con Telnet
  5. Servidor DNS Bind
  6. Servidor de IPs dinámicas DHCP
  7. Servidor de hora NTP
  8. Servidor proxy Squid
  9. Servidor de correo electrónico
  10. Servidor de terminales LTSP
  11. Servidor web Apache
  12. Soporte para PHP en Apache
  13. Soporte para CGI en Apache
  14. Analizador de logs de Apache
  15. Servidor de base de datos MySQL
  16. Servidor web Lighttpd
  17. Whois: Quién es el propietario de un dominio
  18. Servidor de archivos FTP
  19. Compartir archivos en Linux: NFS
  20. Compartir archivos en Windows: Samba
  21. Control de versiones: CVS y Subversion
  22. Servidor de streaming por Internet
  23. Servidor de streaming en red local