Leyendo ficheros log mediante tail y multitail

Todos los que desarrollamos utilizamos habitualmente los ficheros log para registrar información sobre nuestras aplicaciones. Normalmente este tipo de ficheros no suelen tener ningún tipo de complicación, ya que lo único que almacenan son líneas de texto, con lo que para leerlos se suele utilizar cualquier editor de texto, por ejemplo, el bloc de notas, vim, gedit, etc… El problema con estos editores llega cuando queremos que se actualice automáticamente el contenido que estamos visualizando sin tener que refrescar el editor.

En Ubuntu tenemos para ello el comando unix tail, el cual sirve para mostrar el final del fichero:
tail nombre_del_ficheroSi lo que queremos es leer las últimas 50 lineas simplemente las especificamos con el parámetro -n:
tail -n 50 nombre_del_ficheroEl parámetro más interesante del comando tail es el -f que actualiza la visualización por pantalla en cuanto el fichero log se modifica:
tail -f -n 50 nombre_del_fichero

Además de tail que permite visualizar un fichero, existe la herramienta multitail, que ya lo dice su nombre, permite monitorizar múltiples ficheros logs. Para instalarla:

sudo apt-get install multitail

Multitail

Esta herramienta la podemos utilizar tanto para visualizar un fichero como varios:

multitail fichero otro_fichero

Quizás la opción más interesante, además de poder visualizar varios ficheros, es la posibilidad de elegir el esquema de colores para cada log, lo que facilita mucho la visualización del fichero. Los esquemas soportados son los siguientes:

  • Postfix, Apache, RSStail, Acctail, WTMPtail, Squid, Asterisk, Sendmail, Mailscanner, Samba, Exim, HTTPing, TCPdump, ISC-DHCPD, Bind, Smartmontools, Kerberos, NTPd, nagtail, WebSphere (SystemErr), NNTPcache, Veritas Netbackup procmail, Checkpoint Firewall-1, Netscape directory server (LDAP), log4j, ClamAV, p0f, sysstat, portsentry, pppd, strace, Linux firewall (netfilter) logging, Argus, Snort, Motion, IBM AIX errpt, MySQL error log, BOINC, netstat)
  • El resto de las características de multitail las podéis encontrar en este enlace.

    En esta entrada no me quiero olvidar de los usuarios de Windows, ya que gracias al trabajo de Paul Perkings existe una versión de tail para el sistema operativo de Microsoft, podéis encontrar más información en Tail for Win32. En cambio si trabajáis con Eclipse y buscáis un plugin que visualice y actualice ficheros logs, instalaros Logfile View Eclipse plugin.

    Hay 4 Comentarios en esta entrada

    1. Miguel
      6 de Junio del 2007 a las 11:23 am

      Doy fe de lo útil que es esta herramienta! ;)

    2. SaNaKe
      6 de Junio del 2007 a las 3:27 pm

      También puedes usar tail para varios ficheros, no es necesario multitail.

      tail -f nombre_fichero1 nombre_fichero2 nombre_fichero3 etc…

      Un saludo

    3. Enrique
      14 de Junio del 2007 a las 12:06 am

      Vaya!! parece que te estas aficionando a la consola… :)

      El tail esta muy bien, pero si quereis tratar logs de verdad el tail -f para mi tiene una deficiencia.
      A veces lo que quieres ver no es toooooda la linea de un log si no una parte en concreta y hacer un tail -f da un chorizo de linea hace que la cosa acabe siendo ilegible.

      Un ejemplo:
      Imaginaos que queremos sacar todas las horas en las que una ip accede a nuestro apache… si hacemos un:
      “tail -n 200 /var/log/apache2/access.log|grep 80.25.31.164″
      Tenemos un chorizo de lineas…. En ese caso yo recurro al AWK para recortar las lineas y quedarnos solo con el tiempo:
      “tail -n 200 /var/log/apache2/access.log|awk ‘ /80.25.31.164/ { print ($4)}’ ”

      Aqui lo tenemos…. peeeero nosotros queremos el til -f no el -n 200… es entonces cuando cojemos esa linea, la metemos en un script chorra y ejecutamos:

      “watch -n 1 scriptchorra”

      El watch lo unico que hace es ejecutar un comando cada n segundos….

      Ya tenemos todo :)

      Todo esto viene por una cosa… mark cojonuda la entrada del tail… pero para la proxima entrega de “aprendiendo a usar la consola” tengo una peticion…quiero una del awk que es una de las herramientas mas potentes que tiene la consola (y se que te va a gustar mirarlo ;) )

    4. markdbd
      14 de Junio del 2007 a las 5:14 pm

      jejeje, Enrique la miraré y la estudiaré :D Gracias por el comentario.

    Deja tu comentario