Journalctl es una herramienta que se encarga de recopilar y administrar los registros del sistema de SystemD, lo que permite al usuario acceder y gestionar los datos, así como iniciar la resolución de los fallos.
Esta herramienta equivale al antiguo comando «cat /var/log/messages»
y permite que el usuario pueda acceder a todos los logs sin filtrar .
¿Qué es Journalctl?
journalctl
es una herramienta de línea de comandos que forma parte de systemd, el sistema de inicialización más común en muchas distribuciones modernas de Linux. Su función principal es permitirte consultar y filtrar los registros del journal, el sistema de logging de systemd
. A diferencia de los métodos tradicionales basados en archivos planos como /var/log/syslog
, journalctl
almacena los logs en un formato binario, lo que permite búsquedas más rápidas, estructuradas y eficientes.
Con esta herramienta de línea de comandos, puedes acceder a los mensajes del sistema, del kernel, de servicios específicos, de sesiones de usuario y más, todo desde una única herramienta centralizada. Esta utilidad resulta fundamental para tareas de administración del sistema, ya que facilita la supervisión del comportamiento de los servicios, la depuración de errores y la auditoría del sistema.
Además esta herramienta de línea de comandos permite realizar búsquedas avanzadas por fecha, nivel de severidad, unidad de servicio, identificadores de procesos y mucho más. Gracias a esta flexibilidad, es ampliamente utilizada por administradores de sistemas y profesionales de DevOps para mantener el control de lo que sucede en sus entornos Linux.
¿Cómo usarlo?
Usar esta herramienta de línea de comandos es bastante sencillo una vez que te familiarizas con su sintaxis básica. Al ejecutarlo sin argumentos muestra todos los logs del sistema en orden cronológico. Para mejorar la lectura, puedes añadir la opción -r
para invertir el orden y ver primero los registros más recientes.
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaTambién puedes filtrar los resultados por unidad de servicio con el parámetro -u
, por ejemplo: journalctl -u nginx
para ver solo los registros del servicio de Nginx. Si necesitas acotar por fecha, puedes usar opciones como --since "2025-06-01"
y --until "2025-06-05"
. Para ver solo los logs del arranque actual, puedes usar journalctl -b
.
La herramienta ofrece muchas combinaciones útiles, como:
journalctl -p err
para mostrar solo errores.journalctl -f
para seguir los logs en tiempo real (similar atail -f
).journalctl _PID=1234
para ver los registros de un proceso específico.
Ventajas de usar herramienta de línea de comandos
Una de las principales ventajas de esta herramienta de línea de comandos es su integración nativa con systemd
, lo que permite centralizar el acceso a todos los registros del sistema sin depender de múltiples archivos de log. Esto simplifica la supervisión y el análisis.
Otra gran ventaja es la capacidad de búsqueda avanzada. Puedes filtrar por unidad, proceso, fecha, nivel de prioridad, sesión de usuario, e incluso combinar varios filtros en una sola consulta, lo que lo hace mucho más poderoso que herramientas tradicionales como grep
sobre archivos de texto plano.
Además, los logs están estructurados en un formato binario optimizado, lo que mejora el rendimiento en sistemas con gran volumen de registros. También se pueden proteger con firmas criptográficas para asegurar su integridad, algo especialmente útil en entornos donde la trazabilidad y la auditoría son críticas.
En resumen, journalctl
no solo facilita la administración de logs, sino que también mejora la seguridad, la eficiencia y la capacidad de diagnóstico del sistema.
Variantes de Journalctl
Esta herramienta admite el uso de ciertos elementos con el objetivo de administrar un sistema, como, por ejemplo:
1. Journalctl -r
Esta herramienta muestra la salida del comando de forma invertida, es decir, los últimos se colocarán encima, mientras que los primeros estarán debajo.
2. Journalctl -f
El también llamado parámetro -f o «follow» tiene como función el seguimiento de los mensajes o ver la agenda del ordenador en tiempo real. De la misma manera, emula el antiguo parámetro «tail -f /var/log/syslog»
3. Journalctl -n
El comando -n facilita la filtración por número de entradas en el registro de logs. Además, esta opción permite que el usuario pueda limitar la salida solamente a las últimas 10 líneas. Se debe destacar que la cantidad total de las líneas dependerá de las necesidades específicas de cada usuario. Asimismo, el número puede cambiarse, simplemente, agregándolo al final del parámetro, por ejemplo: journalctl -12
4. Journalctl -b
Este parámetro facilita que el usuario solo vea los logs del boot actual. Puedes utilizar una cuenta regresiva con el comando journalctl -b -1 seguido de journalctl -b -2, y así consecutivamente. También puedes utilizar la ID del boot derivado del proceso de listar el arranque con la opción «journal –list-boots».
5. Journalctl -k
Este comando permite ver los mensajes del kernel o núcleo del sistema y puede combinarse con otras opciones para hacer la búsqueda más específica. De modo que, si quieres mezclar las funciones del comando -b con -k, obtendrías la opción journalctl -k-b para observar los mensajes del kernel durante el journalctl boot actual.
6. Journalctl -u
Cumple la función de filtrar por servicio o unidad. Tras el comando -u debes añadir el servicio específico que quieres filtrar. Al igual que el anterior formato, esta opción puede combinarse con otros formatos para especificar el filtrado.
7. Journalctl -p
También se conoce como filtrado por prioridad y muestra los mensajes que corresponden a una o más prioridades, siendo estas:
- 0: emerg
- 1: alert
- 2: crit
- 3: err
- 4: warning
- 5: notice
- 6: info
- 7: debug
De manera que, si quieres observar las prioridades del nivel 4, debes ejecutar el comando journalctl -p 4 o bien journalctl -p warning.
Otros comandos
Además de los parámetros anteriores, esta herramienta permite el uso de otros comandos, como por ejemplo:
- journalctl > mensajes.log: cumple la función de redirigir la salida hacia un documento de texto.
- journalctl –list-boots: esta opción sirve para ver la lista de todos los boots que existen en el sistema.
- systemctl list-units -t service –all: permite ver los servicios que son dependientes del systemD.
- journalctl /dev/sda: permite ver los mensajes y encontrar problemas en el funcionamiento del disco duro.
- journalctl –disk-usage: posibilita que el usuario pueda ver el espacio que está siendo ocupado por los diferentes logs. Puede limitarse si el valor resulta excesivo a través del parámetro /etc/systemd/journald.conf.
- timedatectl list-timezones: es una herramienta de systemD que permite determinar las zonas horarias disponibles en el sistema. Además, se puede verificar su configuración actual a través del uso del parámetro timedatectl status.
- id nombre_del_usuario: permite especificar la salida de usuarios. Debe reemplazarse por el nombre de usuario correspondiente y continuar con el número que sea necesario (ya sea 1000, 1001,1002, etc.)
Filtrar por fecha
Para limitar la salida por tiempo y ver los mensajes del log durante una fecha determinada debes tener en cuenta que el formato de fecha y hora es «YYYY-MM-DD HH:MM:SS», (Y de year o año, M de month o mes, D de day o día, H de hour o hora, M de minutes o minutos y S se de seconds o segundos).
Además incluye las opciones journalctl since, que indica desde, y «until« que significa hasta.
De esta manera, si quieres ver los registros producidos el día 22 de marzo del 2022, deberás ejecutar el comando journalctl --since "2022-03-22"
; incluso puedes hacer la búsqueda más detallada si le añades la hora.
¿Cuál es el siguiente paso?
Ahora que ya sabes qué es esta herramienta de línea de comandos, cuáles son sus principales variantes, comandos y cómo utilizarlo en tu sistema, no dudes en seguir formándote gracias a nuestro DevOps & Cloud Computing Full Stack Bootcamp, donde en menos de 6 aprenderás todo lo que necesitas para ser un experto en systemD y muchos otros temas relacionados con el desarrollo tecnológico.