Cómo usar Journalctl para leer los registros del sistema Linux

Durante muchos años, los registros del sistema y del kernel fueron manejados por una utilidad llamada syslogd. La mayoría de los sistemas operativos basados en Linux han migrado a systemd, que viene con un demonio de registro diferente, journald. Para interactuar con estos registros, utilizas la utilidad journalctl.

Dar permiso al usuario para leer los registros del sistema

Sólo los usuarios que pertenecen a los grupos “adm” o “systemd-journal” pueden leer los registros de systemd. Distribuciones como Ubuntu ya te añaden como usuario al grupo adm.

Abre un emulador de terminal y escribe el siguiente comando:

groups

journalctl-groups

Si ves “adm” o “systemd-journal” en la salida, puedes saltarte el resto de los pasos de esta sección. Si no, añádete al grupo “adm”.

sudo adduser $USER adm

Tendrás que reiniciar tu sesión de inicio para que este cambio tenga efecto (cierra sesión y vuelve a iniciar). Si no puedes hacerlo por diversas razones, utiliza este comando para iniciar sesión en el nuevo grupo sin reiniciar la sesión gráfica.

newgrp adm

No cierres la ventana del terminal. Ahora eres parte del grupo adm – en la sesión del terminal, pero no en tu sesión gráfica. Si abres un nuevo terminal en este momento, tu usuario no estará iniciado en el grupo adm.

Verificar si el diario es persistente

Los registros de systemd pueden ser persistentes o volátiles. En Ubuntu y otras distribuciones, son persistentes por defecto. En Debian 9, son volátiles, lo que significa que se mantienen solo en la memoria (no en el disco) y desaparecen al apagar o reiniciar. Ingresa el siguiente comando.

journalctl --list-boots

journalctl-list-boots

Si hay múltiples entradas aquí, no tienes que hacer nada más. Significa que los diarios se mantienen en el disco (persistente). Si solo obtienes una entrada, entonces el diario es volátil. Cambia a persistente.

sudosed-i'/Storage/ c\Storage=persistent'/etc/systemd/journald.conf

Seleccionar qué entrada de arranque del diario ver

Por lo general, querrás ver el registro del arranque actual. En raras ocasiones querrás ver el arranque anterior, cuando algo salió mal, por ejemplo, después de un fallo del sistema.

Para ver el registro del arranque actual:

journalctl -b0

journalctl-view-current-boot

Para el arranque anterior, usa “-1” en lugar de “0”, y para hace dos arranques, “-2” y así sucesivamente.

journalctl -b-1

Navegar y buscar a través del diario del sistema

Después de que abras el registro con journalctl, puedes navegar por el texto con las teclas de flecha y las teclas PAGE UP o PAGE DOWN. Otras teclas útiles son:

  • para ir al final de la salida.

  • < para ir al principio de la salida.
  • / para buscar una cadena de texto. Después de presionar la tecla de barra, ingresa la cadena que deseas encontrar, seguida de Enter. La cadena es sensible a mayúsculas, por lo que “network” no encontrará cadenas “Network”. La búsqueda comienza desde tu posición de vista actual, hacia abajo. Para buscar hacia arriba, usa ?.
  • n para encontrar la siguiente coincidencia en una búsqueda actual. N encuentra la anterior.
  • q para salir de la utilidad journalctl.

journalctl-searching

Filtrar entradas de registro por prioridad

A veces, solo deseas buscar errores, ignorando notificaciones y mensajes de estado. Cada entrada en un registro tiene una prioridad: emergencia, alerta, crítica, error, advertencia, notificación, info. Estos se listan en orden de importancia, siendo emergencia reservada para los peores escenarios (sistema inutilizable). Los mensajes de info son solo texto informativo, reportando el estado de programas que funcionan normalmente.

Para mostrar solo mensajes de error del arranque actual, ingresa:

journalctl -b0-p err

journalctl-filter-errors

Si quieres ver errores de todos los arranques, simplemente elimina el parámetro “-b”:

journalctl -p err

Estos son los códigos que puedes pasar al parámetro “-p”:

  • alert
  • crit
  • debug
  • emerg
  • err
  • info
  • notice
  • warning

Filtrar entradas de registro por ruta al archivo ejecutable del proceso o unidad systemd

Algunos procesos son iniciados y gestionados por las llamadas unidades de systemd. Para ver todos los registros relacionados con la unidad del servicio cron, ingresa:

journalctl -u cron.service

Puedes ver qué unidades tienes disponibles con:

systemctl list-dependencies

journalctl-list-dependencies

Puedes navegar la lista con las teclas de flecha arriba y abajo. Presiona q para salir.

Si prefieres usar la ruta al archivo ejecutable del programa (binario), simplemente pasa su ruta completa como argumento.

journalctl /usr/sbin/cron

No olvides que también puedes filtrar por la entrada de arranque actual para deshacerte de mensajes innecesarios.

journalctl -b0/usr/sbin/cron

Conclusión

Journalctl tiene como objetivo facilitar la búsqueda de lo que estás buscando. Si deseas aprender sobre más parámetros avanzados que puedes utilizar, consulta la página del manual del comando journalctl.