Mi Blog
▷ Cómo usar journalctl para visualizar los logs en GNU/Linux

Cómo usar journalctl para visualizar los logs en GNU/Linux

 

Aprender a utilizar journalctl en GNU/Linux resulta muy útil para consultar los registros del sistema de una forma rápida y sencilla. Gracias a esta herramienta podremos revisar errores, analizar servicios, investigar problemas de arranque o consultar eventos del sistema sin tener que buscar manualmente entre diferentes archivos de log. En este breve pero sencillo tutorial veremos cómo utilizar journalctl para visualizar y filtrar los registros más importantes.

Seguid leyendo y os mostraré cómo utilizar journalctl en GNU/Linux...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

Ver Amazon Prime Video

 

 

¿QUÉ ES JOURNALCTL?

journalctl es una utilidad incluida en systemd que permite consultar el journal, una base de datos donde se almacenan los registros del sistema y de los servicios.

A diferencia de los archivos de log tradicionales ubicados en /var/log, journalctl reúne toda la información en un único lugar, facilitando la búsqueda y el filtrado de eventos.

Con esta herramienta podremos:

  • Consultar los logs del sistema.
  • Ver los mensajes de un servicio concreto.
  • Analizar errores de arranque.
  • Filtrar registros por fecha y hora.
  • Seguir los logs en tiempo real.

 

 

Journalctl permite visualizar y gestionar los logs del sistema

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Equipo con GNU/Linux con systemd

 

 

2.- MOSTRAR TODOS LOS LOGS

Como consejo, os recomiendo utilizar siempre sudo para poder visualizar todos los logs, ya que algunos son solo accesibles por root o por un usuario con permisos de sudoer.

Para visualizar todos los registros almacenados en el journal, ejecutaremos el siguiente comando:

raul@debian:~$ sudo journalctl

 

 

Obtendremos una salida similar a la siguiente con todos los logs:

ago 12 15:02:16 debian systemd[767]: Queued start job for default target default.target.
ago 12 15:02:16 debian systemd[767]: Created slice app.slice - User Application Slice.
ago 12 15:02:16 debian systemd[767]: Created slice session.slice - User Core Session Slice.
ago 12 15:02:16 debian systemd[767]: Reached target paths.target - Paths.
ago 12 15:02:16 debian systemd[767]: Reached target timers.target - Timers.
ago 12 15:02:16 debian systemd[767]: Starting dbus.socket - D-Bus User Message Bus Socket...
ago 12 15:02:16 debian systemd[767]: Listening on dirmngr.socket - GnuPG network certificate management daemon.
ago 12 15:02:16 debian systemd[767]: Listening on gcr-ssh-agent.socket - GCR ssh-agent wrapper.
ago 12 15:02:16 debian systemd[767]: Listening on gnome-keyring-daemon.socket - GNOME Keyring daemon.
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent-browser.socket - GnuPG cryptographic agent and passphrase cache (access for web browsers).
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent-extra.socket - GnuPG cryptographic agent and passphrase cache (restricted).
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent-ssh.socket - GnuPG cryptographic agent (ssh-agent emulation).
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent.socket - GnuPG cryptographic agent and passphrase cache.
ago 12 15:02:16 debian systemd[767]: Listening on pulseaudio.socket - Sound System.
ago 12 15:02:16 debian systemd[767]: Listening on dbus.socket - D-Bus User Message Bus Socket.
ago 12 15:02:16 debian systemd[767]: Reached target sockets.target - Sockets.
ago 12 15:02:16 debian systemd[767]: Reached target basic.target - Basic System.
ago 12 15:02:16 debian systemd[767]: Starting pulseaudio.service - Sound Service...
ago 12 15:02:16 debian systemd[767]: Started gnome-keyring-daemon.service - GNOME Keyring daemon.
ago 12 15:02:16 debian systemd[767]: Starting dbus.service - D-Bus User Message Bus...
ago 12 15:02:16 debian systemd[767]: Started dbus.service - D-Bus User Message Bus.
ago 12 15:02:16 debian gnome-keyring-daemon[788]: GNOME_KEYRING_CONTROL=/run/user/1000/keyring
.
.
.

 

 

3.- VISUALIZAR LOS ÚLTIMOS REGISTROS

Si únicamente queremos consultar las últimas 20 líneas, ejecutaremos:

raul@debian:~$ sudo journalctl -n 20

 

 

Este comando mostrará los 20 registros más recientes.

ago 12 15:02:16 debian systemd[767]: Reached target paths.target - Paths.
ago 12 15:02:16 debian systemd[767]: Reached target timers.target - Timers.
ago 12 15:02:16 debian systemd[767]: Starting dbus.socket - D-Bus User Message Bus Socket...
ago 12 15:02:16 debian systemd[767]: Listening on dirmngr.socket - GnuPG network certificate management daemon.
ago 12 15:02:16 debian systemd[767]: Listening on gcr-ssh-agent.socket - GCR ssh-agent wrapper.
ago 12 15:02:16 debian systemd[767]: Listening on gnome-keyring-daemon.socket - GNOME Keyring daemon.
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent-browser.socket - GnuPG cryptographic agent and passphrase cache (access for web browsers).
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent-extra.socket - GnuPG cryptographic agent and passphrase cache (restricted).
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent-ssh.socket - GnuPG cryptographic agent (ssh-agent emulation).
ago 12 15:02:16 debian systemd[767]: Listening on gpg-agent.socket - GnuPG cryptographic agent and passphrase cache.
ago 12 15:02:16 debian systemd[767]: Listening on pulseaudio.socket - Sound System.
ago 12 15:02:16 debian systemd[767]: Listening on dbus.socket - D-Bus User Message Bus Socket.
ago 12 15:02:16 debian systemd[767]: Reached target sockets.target - Sockets.
ago 12 15:02:16 debian systemd[767]: Reached target basic.target - Basic System.
ago 12 15:02:16 debian systemd[767]: Starting pulseaudio.service - Sound Service...
ago 12 15:02:16 debian systemd[767]: Started gnome-keyring-daemon.service - GNOME Keyring daemon.
ago 12 15:02:16 debian systemd[767]: Starting dbus.service - D-Bus User Message Bus...
ago 12 15:02:16 debian systemd[767]: Started dbus.service - D-Bus User Message Bus.
ago 12 15:02:16 debian gnome-keyring-daemon[788]: GNOME_KEYRING_CONTROL=/run/user/1000/keyring.

 

 

 

 

4.- VISUALIZAR LOS LOGS EN TIEMPO REAL

Al igual que hacemos con el comando tail -f, podemos seguir los registros conforme se generan en tiempo real:

raul@debian:~$ sudo journalctl -f

 

 

Resulta muy útil mientras iniciamos un servicio ó investigamos un problema.

 

 

5.- CONSULTAR LOS LOGS DE UN SERVICIO

Una de las funciones más útiles consiste en consultar únicamente los registros de un servicio. Por ejemplo, para ver los logs del servidor NGINX:

raul@debian:~$ sudo journalctl -u nginx

 

 

La salida del comando mostrará solo logs referentes al servicio Nginx:

raul@debian:~$ sudo journalctl -u nginx
sep 06 21:39:38 debian systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
sep 06 21:39:38 debian systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.
sep 07 09:29:49 debian systemd[1]: Stopping nginx.service - A high performance web server and a reverse proxy server...
sep 07 09:29:49 debian systemd[1]: nginx.service: Deactivated successfully.
sep 07 09:29:49 debian systemd[1]: Stopped nginx.service - A high performance web server and a reverse proxy server.
-- Boot e366359096ac4d76b64701be55bd1ff2 --
oct 26 15:18:49 debian systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
oct 26 15:18:49 debian nginx[800]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
oct 26 15:18:49 debian nginx[800]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
oct 26 15:18:50 debian nginx[800]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
oct 26 15:18:50 debian nginx[800]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
oct 26 15:18:50 debian nginx[800]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
oct 26 15:18:50 debian nginx[800]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
oct 26 15:18:51 debian nginx[800]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
oct 26 15:18:51 debian nginx[800]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
oct 26 15:18:51 debian nginx[800]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
oct 26 15:18:51 debian nginx[800]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
oct 26 15:18:52 debian nginx[800]: nginx: [emerg] still could not bind()
oct 26 15:18:52 debian systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
oct 26 15:18:52 debian systemd[1]: nginx.service: Failed with result 'exit-code'.
oct 26 15:18:52 debian systemd[1]: Failed to start nginx.service - A high performance web server and a reverse proxy server.

 

 

6.- FILTRAR LOS LOGS POR FECHA

También podemos filtrar por fecha o día. Por ejemplo, el siguiente comando sirve para mostrar los logs del sistema desde el comienzo del día de hoy:

raul@debian:~$ sudo journalctl --since today

 

 

También podemos especificar una fecha y hora concretas para consultar los registros. Por ejemplo, el siguiente comando muestra los logs del sistema desde el 19 de julio de 2026 a las 08:00 horas

raul@debian:~$ sudo journalctl --since "2026-07-19 08:00:00"

 

 

También podemos consultar los registros correspondientes a un periodo de tiempo relativo. Por ejemplo, el siguiente comando permite mostrar los logs desde el día de ayer hasta el comienzo del día de hoy:

raul@debian:~$ sudo journalctl --since yesterday --until today

 

 

7.- MOSTRAR LOS ERRORES DE LOS LOGS

También podemos filtrar los logs según su nivel de prioridad. Por ejemplo, el siguiente comando muestra únicamente los mensajes de error registrados en el sistema:

raul@debian:~$ sudo journalctl -p err

 

 

Si queremos obtener información más amplia, podemos mostrar los mensajes que tengan una prioridad de warning (advertencia) o superior:

raul@debian:~$ sudo journalctl -p warning

 

 

De esta forma, podemos centrarnos rápidamente en los mensajes que pueden indicar errores, advertencias o posibles problemas en el sistema, sin tener que revisar todos los registros disponibles.

 

 

8.- MOSTRAR LOS LOGS DEL ÚLTIMO ARRANQUE

También podemos consultar los registros asociados a un arranque concreto del sistema mediante la opción '-b'. Por ejemplo, el siguiente comando muestra los logs correspondientes al arranque actual:

raul@debian:~$ sudo journalctl -b

 

 

Si queremos consultar los registros del arranque anterior, podemos utilizar '-1' junto con '-b':

raul@debian:~$ sudo journalctl -b -1

 

 

De esta forma, podemos comparar los registros del arranque actual con los de arranques anteriores, algo especialmente útil para diagnosticar problemas que aparecen durante el inicio del sistema.

 

 

9.- MOSTRAR LOS LOGS DEL KERNEL

También podemos consultar específicamente los mensajes generados por el kernel de Linux utilizando la opción '-k'.

raul@debian:~$ journalctl -k

 

 

Esta opción resulta especialmente útil para diagnosticar problemas relacionados con el hardware, controladores (drivers) o dispositivos detectados por el sistema.

 

 

10.- MOSTRAR LOS LOGS COMO TEXTO PLANO

También podemos evitar que journalctl utilice el paginador para mostrar los resultados directamente en la terminal. Para ello, utilizamos la opción --no-pager:

raul@debian:~$ journalctl --no-pager

 

 

11.- BORRAR LOGS ANTIGUOS

También podemos liberar espacio ocupado por los registros almacenados por 'systemd-journald' utilizando la opción '--vacuum'. Por ejemplo, el siguiente comando elimina los archivos de logs que tengan más de 7 días de antigüedad:

raul@debian:~$ sudo journalctl --vacuum-time=7d

 

 

Otra posibilidad es establecer un límite máximo de espacio en disco para los logs. El siguiente comando elimina archivos antiguos hasta conseguir que el espacio utilizado por los registros archivados quede por debajo de 500 MB

raul@debian:~$ sudo journalctl --vacuum-size=500M

 

 

Estas opciones son útiles para gestionar el espacio en disco ocupado por los registros y evitar que los logs antiguos consuman una cantidad excesiva de almacenamiento.

 

 

12.- LOS COMANDOS MÁS UTILIZADOS

A continuación, os hago un resumen de los comandos más utilizados en la gestión de logs, con journalctl:

journalctl # Mostrar todos los logs
journalctl -f # Seguir los logs en tiempo real
journalctl -n 50 # Últimos 50 registros
journalctl -u <servicio> # Logs de un servicio
journalctl -b # Último arranque
journalctl -b -1 # Arranque anterior
journalctl -k # Logs del kernel
journalctl -p err # Solo errores
journalctl --since today # Registros de hoy

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!