log

En algún momento van a necesitar aprender, como administrador de GNU/Linux, como visualizar los archivos de registro, más conocidos como logs. Después de todo, están ahí por una razón muy importante, para ayudarnos a solucionar problemas. De hecho, cada administrador te dirá inmediatamente que lo primero que se debe hacer, cuando surge un problema, es ver los logs.

Y hay muchos logs que se pueden encontrar por ejemplo:

– Para el sistema.
– Para el kernel.
– Para administradores de paquetes.
. Para Xorg.
– Para el proceso de arranque (boot)
– Para Apache, MySQL.

La mayoría de éstos archivos de registro se pueden encontrar en el directorio que por  lógica sería el siguiente:

/var/log

Éstos son todos los registros que tenemos de nuestro sistema y dónde buscaremos cuando exista algún inconveniente. Para problemas específicos de aplicaciones de escritorio, los logs se escriben en diferentes ubicaciones, por ejemplo Thunderbird informes de fallos en:

~/.thunderbrid/Crash Reports

Dependiendo de la aplicación y del desarrollador, cada una creará éstos en las ubicaciones que sean necesarias y hasta en algunos casos también dependerá si la aplicación permite la configuración de logs o no.

Ahora vamos a centrarnos en los logs del sistema, ya que ahí radica la mayoría de las soluciones de los problemas de GNU/Linux. Y el problema clave aquí es, ¿cómo visualizo esos archivos?

Afortunadamente, hay numerosas formas en que podemos verlos, como por ejemplo usando el comando ls, con el cual se pueden ver los logs que tengo actualmente:

$ ls /var/log

Visualizando los log con la órden less

Uno de los registros más importante es que tenemos en /var/log es syslog. Éste archivo en particular registra todo excepto los mensajes relacionados con autenticación. Supongamos que queremos ver el contenido de ése log en particular rápidamente, entonces hacemos así:

$ less /var/log/syslog

Éste comando abrirá el archivo y podremos visualizarlo utilizando las fechas abajo/arriba para desplazarnos línea por línea. Si usamos la barra espaciadora, bajaremos por página. Bastante útil.

Ahora el único problema con éste método es que syslog puede tener un tamaño bastante grande; y, considerando que lo que se está buscando probablemente estará en o cerca de la parte inferior, es posible que no queramos pasar desplazándonos línea por línea o página por página hasta llegar al lugar que deseamos.

También podemos presionar la tecla shift+g para ir inmediatamente al final del archivo. Éste se denotará con la palabra END.

Visualizando los logs con el comando dmesg

El comando dmesg imprime el buffer de nuestro kernel por defecto. Nos vamos a una terminal y escribimos:

$ dmesg

Afortunadamente, hay un mecanismo de control que nos permite mostrar sólo cierta información.

Digamos que queremos ver las entradas del registro para la instalación del usuario. Para hacer ésto, ejecutamos lo siguiente:

$ dmesg –facility=user

Si se registró algo en ésa instalación, se imprimirá inmediatamente. A diferencia del comando less, el uso de dmesg mostrará el contenido completo del registro y nos envía directamente al final del archivo.

Siempre podemos usar la rueda de desplazamiento para navegar a través del buffer de nuestra terminal. Pero también podemos canalizar la salida de dmesg de la siguiente manera:

$ dmesg | less

La línea anterior imprimirá el contenido de dmesg y tendremos las mismas opciones de desplazamiento como lo detalle anteriormente.

Visualizando los logs con tail

El comando tail es probablemente una de las herramientas más útiles que tenemos a disposición para visualizar éstos tipos de archivos. Lo que hace tail es mostrar la última parte de los archivos. Entonces ejecutamos lo siguiente:

$ tail /var/log/syslog

Mostrará sólo las últimas 10 líneas del archivo syslog. Pero esperen, todavía no termina. El comando tail tiene un “truco” muy importante, por medio de la opción -f. Cuando ejecutamos ésto:

$ tail -f /var/log/syslog

Tail continuará mirando el archivo y mostrará las últimas 10 líneas, para cancelar ésta orden presonamos ctrl+x.

También podemos indicarle a tail que sólo siga una cantidad específica de líneas. Supongamos que sólo queremos ver las últimas cinco líneas escritas en syslog; para éso escribimos así:

$ tail -f -n 5 /var/log/syslog

La línea anterior mostrará lo antes mencionado, pero tan pronto como se escriba una nueva línea en syslog, se eliminará la más antigua de la parte superior. Ésta es una gran manera de hacer que el proceso de seguir un log sea un poco más fácil.

Lo que si recomiendo es no usar éste método para ver menos de cuatro o cinco líneas, ya que terminarán cortando la entrada y no tendrán todos los detalles necesarios.

Herramientas extras

Ya finalizando, también pueden encontrar muchos otros comandos (e incluso algunas herramientas bastante decentes en GUI) para poder visualizar de manera cómoda los logs. Les recomiendo investigar los comandos grep, head, cat, multitail (sobre ésta última y tails recuerdo haber dado algunos ejemplo más detallados aquí) y sobre todo System Log Viewer para tener una ayuda extra a la hora de tener que solucionar algún inconveniente a través de los logs.

Bueno espero que les haya servido y recuerden compartir para que siga creciendo

Un abrazo!

Anuncios