Introducción
Cualquiera que trabaje como desarrollador o administrador de sistemas sabe lo importante que es utilizar archivos de registro para identificar y resolver errores en sistemas Linux y Unix. A menudo se utilizan herramientas como grep, tail, cat o journalctl para ver estos archivos, pero a medida que aumenta la cantidad de registros, administrarlos puede volverse complicado. Ahí es donde entra en juego lnav, un visor de archivos de registro avanzado que va más allá de la funcionalidad básica. Esta herramienta no solo reconoce registros sino que también identifica marcas de tiempo, niveles de registro y otros detalles cruciales. También le permite ejecutar consultas SQL en archivos de registro estándar y crear informes personalizados. Veamos cómo instalar y usar lnav.
Características distintivas de lnav.
- Descompresión de archivos de registro en tiempo real, similar a las utilidades z* en Linux y Unix.
- Reconocimiento del formato del archivo de registro.
- Fusionar archivos de registro en una única vista ordenada por tiempo.
- Soporte de color en el terminal para resaltar errores y advertencias.
- Compatibilidad con SSH (SFTP) para ver archivos de registro en máquinas remotas Linux y Unix.
- Siga los archivos a medida que cambian de nombre y encuentre nuevos archivos en directorios específicos.
- Creación de un índice de errores y avisos.
- Impresión en formato JSON.
- Navegación rápida entre errores y advertencias.
- Buscar con expresiones regulares.
- Resaltar y filtrar mensajes usando expresiones regulares o SQLite.
- Vea un histograma de mensajes a lo largo del tiempo.
- Consultar mensajes usando SQLite.
Instalación
A continuación se explica cómo instalar lnav en diferentes distribuciones de Linux y Unix:
Debian/UbuntuLinux:
sudo apt install lnav
CentOS/RHEL/Fedora/Rocky/Alma/Oracle Linux Primero, habilite el repositorio EPEL, luego:
sudo dnf install lnav
Arco Linux:
sudo pacman -S lnav
Linux alpino:
apk add lnav
OpenSUSE/SUSELinux
sudo zypper install lnav
macOS Primero, habilite e instale Homebrew, luego:
brew install lnav
O usar:
sudo port install lnav
FreeBSD Unix:
pkg install lnav
Usando lnav
La sintaxis para usar lnav es simple:
# File di log
lnav /percorso/del/file.log
lnav /percorso/del/file1.log /percorso/del/file2.log
# Directory
lnav /percorso/della/app/log/dir1/lnav /percorso/della/app/log/dir1//var/log/# Wildcard
lnav /var/log/nginx/app_*_error*log
lnav /var/log/nginx/app_*_error*log /var/log/*.err
Usar SSH para hosts remotos
lnav utente@nome-server:/var/log/file.log
lnav utente@server1:/var/log/lnav utente@server1:/var/log/*.err
Usar con systemd-journald en sistemas Linux
journalctl | lnav
journalctl -f | lnav
journalctl -u ssh.service | lnav
Para buscar errores, presione e
para ir al siguiente error o Shift+E
para volver al anterior. Utilice w
y Shift+W
para pasar a la alerta anterior o siguiente. Presione q
o CTRL+c
para salir. Para buscar texto en archivos, presione /
para abrir el mensaje de búsqueda y TAB
para completar automáticamente la cadena de búsqueda.
Ver registros de contenedores de Docker
docker logs container-id | lnav
docker logs -f container-id | lnav
Si el ID del contenedor es 611ac85cc97d
o se llama "aplicación":
docker logs 611ac85cc97d | lnav
docker logs -f app | lnav
También puedes usar:
lnav docker://{container_id_or_name}/path/to/log/file
lnav docker://{container_id_or_name}/var/dir1
lnav docker://app/var/log/lnav docker://app/var/log/nginx/nginx.app.log
Monitorear la salida de cualquier comando
Muchos comandos generan resultados y registros durante la ejecución. Por ejemplo, para monitorear la salida del comando make
durante la compilación:
lnav -e 'make -j8'
interfaz SQLite
lnav le permite realizar análisis de registros a través de SQLite, una característica muy poderosa. Se puede acceder a cada formato de registro a través de tablas virtuales, lo que le permite ejecutar consultas SQL en los registros. Por ejemplo:
lnav /var/log/nginx/www.example.com_https_access.log
Puede activar el indicador SQL presionando ;
y escriba una consulta simple como:
SELECT * FROM logline LIMIT 10;
Obtendrás los resultados directamente en la terminal.
Conclusión
lnav es una herramienta avanzada para ver archivos de registro, con funciones que le permiten ejecutar consultas SQL, crear informes y mucho más. Ofrece una interfaz de usuario sencilla e intuitiva y admite numerosos formatos de registro, contenedores de Linux y visualización remota a través de SSH. Esta herramienta es altamente recomendada para administradores de sistemas y desarrolladores de Linux/Unix. Puede comenzar a usar lnav con estos simples comandos o visitar la página del proyecto para obtener más información.