lunes, 26 de mayo de 2014

Ver logs en tiempo real (espiar nuestras huellas)

Buenos días.

Hoy me encontraba realizando pruebas a un sistema donde casualmente por interfaz todo funcionaba muy bonito pero por debajo (log) mostraba diferentes errores.

La tarea a auditar estos aplicativos cuando no se tiene un patrón de reproducción se vuelve tediosa pues en este caso se tendría que realizar diferentes movimientos en el aplicativo e ir comparando contra el log. Cabe anotar que esto sucede muchas veces cuando el desarrollo es poco específico a la hora de escribir logs.

Partiendo de este punto tenemos dos problemas a atacar:

1. Tratar de reproducir el error a ciegas.
2. Comparar contra el log a ver cuando se reproduce.

Como sabemos ir mirando el log contra cualquier acción del sistema se vuelve una tarea laboriosa y quizás imposible pues un software normalmente esta compuesto de muchos módulos, así que vamos a ver una solución a este problema.

Que es un log?

Un fichero de log o registro es un archivo en el que se van anotando todos los sucesos que ocurren en determinado sistema, sirve como guía a la hora de fallar servicios o programas en un sistema.

Mostrar en pantalla los cambios de un fichero

Parar monitorear los logs en tiempo real recurrimos a una consola y un simple comando en nuestro sistema linux:
tail -f RUTA-AL-FICHERO
Ejemplo:
tail -f /var/www/apache2/logs/error_log
Con esto estaríamos verificando cada escritura de error en el log. 

Hasta aquí hemos ganado buen camino de la verificación pero dado que el aplicativo escriba mucha información esto hará mas difícil encontrar en que momento falla.

Para esta situación vamos a  usar la siguiente línea de comando:

tail -f RUTA-AL-FICHERO | grep "palabra clave a buscar el error"
Ejemplo:
tail -f /var/www/apache2/logs/error_log | Error
Con esto solo mostrara el momento en el que ha fallado y podremos disminuir el tiempo de estar mirando que esta escribiendo cuando pulsamos determinada acción.


Como lo hago en windows?

La opción mas rápida sería usar la versión tail para windows y también existe la versión grep pero existe una limitación y es que  no están en modo consola  haciendo mas difícil el uso integrado de dichas herramientas.

Para solucionar esto existe cygwin64 , y es exactamente igual la linea de comandos. Solo existe otra limitación donde se deben pegar los logs en un directorio con acceso a este.

Fuente:
http://andalinux.wordpress.com/2009/03/10/espiar-cambios-en-un-fichero-de-log/

Saludos jadcodianos.

No hay comentarios:

Publicar un comentario