Sabes cómo ver archivos en Linux. Usas el comando cat o probablemente menos comando para este propósito.
Eso es bueno para los archivos que tienen contenido estático. Pero los archivos de registro son dinámicos y su contenido cambia con el tiempo. Para monitorear los registros, debe observar el archivo de registro a medida que cambia su contenido.
¿Cómo ve el contenido de los archivos de registro en tiempo real? Tail es el comando más popular para este propósito, pero también hay otras herramientas. Te los mostraré en este tutorial.
Método 1:Ver archivos de registro con el comando tail
El comando tail es tan popular para ver archivos de registro en la vida real que los administradores de sistemas usan el término 'tail the log file'.
El comando tail se usa esencialmente para mostrar las líneas de un archivo desde el final y, por lo tanto, el término 'tail'.
Puedes usar el -f
opción para seguir la cola de un archivo, lo que significa que seguirá mostrando las nuevas líneas agregadas al archivo continuamente.
tail -f location_of_log_file
Para detener el seguimiento del archivo de registro, use Ctrl+C atajo de terminal.
Cola y grep
¡Bien! Entonces, el comando tail resuelve un problema al mostrar los cambios del archivo en la vida real. Pero ver el archivo de registro continuamente cuando hay tantos cambios rápidos en tiempo real no es muy útil.
A menudo buscará un término en particular al monitorear el archivo de registro. Encontrar eso en la avalancha de nuevas líneas entrantes es casi imposible.
Para facilitar las cosas, combine el comando tail y grep de esta manera:
tail -f log_file | grep search_term
Esto es bueno, ¿verdad? Hagámoslo un poco mejor.
A menudo me he dado cuenta de que solo las líneas con los términos buscados no revelan los detalles necesarios. Es por eso que uso el comando grep para mostrar algunas líneas antes y después del término buscado con la opción -C
.
tail -f log_file | grep -C 3 search_term
Ahora, verá las líneas que coinciden con el término de búsqueda junto con 3 líneas antes y después. Esto le dará una mejor perspectiva de lo que está sucediendo.
¿Quieres hacerlo aún mejor? Puede hacer grep en varios términos de búsqueda e incluso convertirlo en una búsqueda que no distinga entre mayúsculas y minúsculas:
tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'
Seguir el archivo con rotación de registro
Si está trabajando en un servidor empresarial, es probable que los registros estén rotados. Esto significa que después de que el archivo de registro actual alcanza un cierto tamaño, se le cambia el nombre y se comprime.
Eso crea un problema si está rastreando un archivo de registro en tiempo real. De forma predeterminada, el comando tail funciona en el descriptor de archivo. Si se rota el archivo de registro actual, el comando de cola apuntará ahora a un archivo de registro archivado que no registrará ningún cambio ahora.
La solución es seguir un archivo de registro por su nombre. De esta manera, incluso cuando se lleve a cabo la rotación del registro, la cola apuntará al archivo de registro actual (porque su nombre nunca cambia).
tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'
Esto es mucho mejor ahora. La próxima vez que siga un archivo de registro, utilícelo de esta manera para monitorearlo de manera más efectiva.
Tail es bueno para monitorear un archivo de registro en tiempo real, pero ¿qué sucede si tiene que analizar más de un archivo de registro al mismo tiempo? La respuesta se encuentra en la siguiente sección.
Observar múltiples archivos de registro con cola
Esto debería funcionar en sistemas Linux. Puede monitorear varios archivos de registro al mismo tiempo con el comando tail. Simplemente proporcione la ruta del archivo de esta manera:
tail -f log_file_1 -f log_file_2
Verá que comienza a mostrar los cambios en tiempo real junto con el nombre del archivo anterior para que pueda distinguir entre las diferentes fuentes de registro.
Hay una forma un poco mejor de ver varios archivos de registro a la vez usando una utilidad llamada multitail.
Método 2:Supervise varios archivos de registro a la vez con multitail
Multitail, como sugiere el nombre, se utiliza para mostrar varios archivos a la vez.
¿Cual es el problema? El comando de cola también puede hacer lo mismo, ¿verdad?
Pero Multitail tiene alguna ventaja sobre el comando de cola convencional. Muestra los archivos en vistas divididas e incluso puede mostrar diferentes archivos en diferentes filas y columnas.
Recuerde, la cola muestra todo en la misma vista y eso se vuelve difícil de seguir. Multitail supera esta dificultad al proporcionar una vista dividida como el comando de pantalla.
Multitail no es un comando esencial como tail y es posible que deba instalarlo antes de usarlo.Puede proporcionarle varios archivos, pero creo que sería difícil seguir más de 3 archivos a la vez.
multitail log_file_1 log_file_2
Por defecto, multitail funciona igual que tail -f
. Muestra las últimas 100 líneas y luego pasa a la vista en tiempo real. Por defecto, divide la vista en filas.
Puede presionar b para abrir una ventana de selección y seleccionar el archivo de registro de su elección para verlo y desplazarse por él para un análisis más profundo.
Presiona q para salir desde todo tipo de vistas en multitail.
Puede dividir las vistas en columnas como esta:
multitail -s 2 log_file_1 log_file_2
Hay un espacio obligatorio entre -s
y el número de columnas.
Multitail es capaz de hacer otras cosas, pero no entraré en esos detalles en este tutorial.
Hasta ahora, ha visto dos formas de monitorear archivos de registro. Hay otra forma menos convencional de ver los cambios de archivos en la vida real y es usando el comando less
Método 3:Ver cambios en el archivo de registro en tiempo real con menos comando
El comando menos es más para leer archivos de texto sin saturar la pantalla. También se puede usar para leer archivos con cambios en tiempo real.
La opción +F
permite a less seguir los cambios realizados en un archivo de texto.
less +F log_file
Abre los archivos de registro y los cambios que se escriben se muestran en tiempo real.
Presione Ctrl+c para interrumpir y q para salir de la vista.
Este método le permite tener una vista rápida de los cambios de registro sin saturar la pantalla, a diferencia del comando tail.
Conclusión
Este método de monitoreo de archivos de registro en Linux funciona para los archivos de registro tradicionales basados en texto. Para los registros del sistema, los syslogs todavía están allí, pero muchas distribuciones de Linux han cambiado a registros diarios y para ver y analizar los registros diarios, debe usar los comandos journalctl.
Aparte de eso, existen otras herramientas sofisticadas como Graylog para el análisis de registros en un nivel más profundo con paneles y gráficos. Más sobre eso en algún otro artículo.
Espero que haya aprendido un par de cosas nuevas de este tema aparentemente fácil sobre el monitoreo de registros en tiempo real en Linux. Tus comentarios son bienvenidos.