En Linux, la gestión de registros (logs) es fundamental para diagnosticar problemas, supervisar servicios y garantizar la estabilidad del sistema. Una de las herramientas más potentes para esta tarea es journalctl, parte de systemd. Con ella puedes consultar, filtrar y analizar los registros generados por el sistema y sus servicios. Dominar journalctl no solo te permitirá resolver incidencias más rápido, sino también anticiparte a posibles fallos antes de que impacten en tu infraestructura.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis
Características de journalctl
- Centralización de logs:
- Combina los registros del kernel, los servicios del sistema y las aplicaciones en un único lugar.
- Estructura avanzada:
- Los registros están estructurados y enriquecidos con metadatos, como el ID de proceso (PID), el usuario (UID) y el servicio asociado.
- Filtrado poderoso:
- Permite filtrar por tiempo, servicio, prioridad, PID y otros parámetros.
- Logs persistentes (opcional):
- Puede almacenar registros en el disco para que sean accesibles incluso después de reiniciar el sistema.
Uso básico de journalctl
1. Mostrar todos los registros
#Muestra todos los registros disponibles desde el inicio del sistema.
journalctl2. Mostrar registros del arranque actual
#Filtra los registros del arranque actual.
journalctl -b
#Ver registros de arranques anteriores
journalctl -b -1
#-b -2 para el segundo arranque anterior, y así sucesivamente3. Seguir registros en tiempo real
#Funciona como tail -f, mostrando los registros a medida que se generan.
journalctl -f4. Filtrar por tiempo
#Desde una hora específica
journalctl --since "2024-11-27 14:00:00"
#Hasta una hora específica
journalctl --until "2024-11-27 18:00:00"
#Entre dos momentos
journalctl --since "2024-11-27 14:00:00" --until "2024-11-27 18:00:00"Filtrando registros de journalctl
1. Por prioridad
Los mensajes tienen diferentes prioridades según su gravedad:
| Prioridad | Código | Descripción |
|---|---|---|
| 0 | emerg | Emergencia |
| 1 | alert | Alerta |
| 2 | crit | Crítico |
| 3 | err | Error |
| 4 | warning | Advertencia |
| 5 | notice | Aviso |
| 6 | info | Informativo |
| 7 | debug | Depuración |
#Mostrar mensajes de prioridad "error" o más graves
journalctl -p err
#Mostrar mensajes de prioridad "advertencia" o más graves
journalctl -p warning2. Por servicio
#Filtrar por un servicio específico
journalctl -u sshd.service
#Filtrar registros de un servicio para el arranque actual
journalctl -u nombre_del_servicio.service -b3. Por PID
#Filtrar por el ID de un proceso específico:
journalctl _PID=12344. Por usuario
#Filtrar registros generados por un usuario específico:
journalctl _UID=1000Personalizar la salida
1. Cambiar el formato de salida
#Formato detallado
journalctl -o verbose
#Formato JSON
journalctl -o json
#Formato compacto
journalctl -o short2. Mostrar un número limitado de registros
#Últimas 100 entradas:
journalctl -n 100
#Mostrar los registros en orden inverso
journalctl -rLogs persistentes
Por defecto, los registros de journald se almacenan en memoria y se borran al reiniciar el sistema. Para habilitar logs persistentes:
#1) Crear un directorio para los logs
sudo mkdir -p /var/log/journal
#2)Configurar permisos
sudo systemd-tmpfiles --create --prefix /var/log/journal
#3)Editar el archivo de configuración:
#Abre /etc/systemd/journald.conf y ajusta la línea:
Storage=persistent
#4)Reiniciar el servicio de journald:
sudo systemctl restart systemd-journaldEl comando journalctl se ha convertido en un aliado indispensable para cualquier administrador de sistemas en Linux. Gracias a sus opciones de filtrado, consulta en tiempo real y compatibilidad con systemd, facilita enormemente el análisis de logs. Aprender a usarlo correctamente es una inversión que te ahorrará tiempo, mejorará tu capacidad de resolución de problemas y reforzará tu perfil como sysadmin o DevOps.

