Cómo usar el comando journalctl para ver los registros de Linux

El comando journalctl es una herramienta potente de Linux para ver, filtrar y administrar los registros del sistema que recopila systemd. Te permite inspeccionar registros de servicios, de usuarios o del kernel, solucionar errores de arranque y monitorear la actividad del sistema en tiempo real.

En esta guía, aprenderás a usar journalctl de forma eficaz, desde la sintaxis básica y las opciones de comando hasta las técnicas avanzadas de filtrado. Te explicaremos cómo filtrar los registros por tiempo u origen, personalizar los formatos de salida de los registros, seguirlos en tiempo real y administrar el almacenamiento con rotación de registros. También encontrarás ejemplos prácticos de comandos para ayudarte a analizar problemas y mantener el rendimiento del sistema directamente desde la línea de comandos.

¿Qué es el comando journalctl?

journalctl es una herramienta de línea de comandos de Linux que te permite ver y analizar los registros del sistema recopilados por systemd. Te sirve como la interfaz principal para consultar el journal de systemd, que almacena registros en un formato binario para acceso rápido y filtrado avanzado.

A diferencia de las herramientas tradicionales de registro que almacenan los registros en texto plano, el journal de systemd mantiene las entradas indexadas y estructuradas. Esto permite a quienes administran buscar en los registros por tiempo, servicio, prioridad o usuario de forma rápida y precisa. Como resultado, journalctl es ahora el método estándar para monitorear, solucionar problemas y auditar sistemas Linux que usan systemd.

Sintaxis del comando journalctl

La sintaxis básica del comando journalctl es:

journalctl [OPCIONES] [FILTROS]
  • [OPCIONES]: modifica cómo se comporta journalctl.
  • [FILTROS] te permite acotar tu búsqueda en los registros para obtener resultados específicos.

Para ver todos los registros, ejecuta:

journalctl

Este comando te muestra todo el registro del sistema desde la entrada más antigua hasta la más reciente:

De forma predeterminada, la paginación está habilitada. Puedes desplazarte por los registros con las teclas de flecha arriba y abajo. Para salir de la vista de registros, presiona q.

Para desactivar la paginación y mostrar toda la salida directamente en la terminal, agrega la opción –no-pager:

journalctl --no-pager

Esta opción te permite ver todos los registros a la vez. Ten en cuenta que si tu sistema tiene muchos registros, cargar todo puede tardar un poco.

📚 Lectura recomendada

journalctl es solo uno de los muchos comandos útiles de Linux. Consulta nuestra guía completa para aprender los comandos más esenciales, qué hacen y cómo usarlos.

Opciones de journalctl

Estas son las opciones de la línea de comandos más usadas, también llamadas banderas o parámetros, para journalctl:

  • -p: muestra registros del journal con un nivel de prioridad específico. Los niveles comunes incluyen: emerg, alert, crit, err, warning, notice, info y debug.
  • –directory=PATH: indica el directorio que contiene archivos del journal de systemd, como /var/log/journal/1234567890abcdef.
  • –file=PATH: abre un archivo de diario binario específico, como /var/log/journal/1234567890abcdef/system.journal, para ver sus registros.
  • –since=DATE: filtra los registros a partir de la fecha indicada. Puedes usar una fecha absoluta, como 2025-06-01, o un tiempo relativo, como “yesterday” o 1 “hour ago”.
  • –until=DATE: muestra los registros hasta la fecha o el tiempo relativo especificado.
  • –unit=UNIT: muestra los registros de una unidad de systemd específica, como nginx.service.
  • –grep=PATTERN: filtra los registros por un patrón de búsqueda. Por ejemplo, usa –grep= “error” para mostrar solo los mensajes de error.
  • –case-sensitive=BOOL: activa o desactiva la distinción entre mayúsculas y minúsculas para –grep. Usa true para activar o false para desactivar. Por ejemplo: –grep=”Error” –case-sensitive=true.
  • –output=STRING: establece el formato de salida de los registros. Los valores admitidos incluyen: short, short-precise, short-iso, short-iso-precise, short-full, short-monotonic, short-unix, verbose, export, json, json-pretty, json-sse, json-seq, cat y with-unit.
  • -n INT: muestra las últimas N entradas del registro si es un número positivo o las primeras N si es un número negativo, por ejemplo 50 o -100.
  • –reverse: invierte el orden de la salida para mostrar primero las entradas más recientes.
  • –show-cursor: muestra la posición del cursor dentro del flujo de registros.
  • –utc: muestra marcas de tiempo en Tiempo Universal Coordinado (UTC).
  • –no-pager: desactiva la paginación y muestra todos los registros a la vez.
  • –pager-end: inicia el paginador al final de los registros.
  • –interval=TIME: define el intervalo entre las consultas de registros. Algunos ejemplos son: 5s (cinco segundos), 6m (seis minutos) y 1h (una hora).
  • –disk-usage: muestra el espacio total en disco que usan los registros del journal.
  • –vacuum-size=BYTES: recorta el journal al tamaño especificado al borrar los registros más antiguos. Por ejemplo: 1G, 256M.
  • –vacuum-files=INT: limita la cantidad de archivos de registro que se conservan. Por ejemplo, 5 conserva los últimos cinco archivos.
  • –vacuum-time=TIME: elimina los registros más antiguos que el tiempo indicado, por ejemplo 1week, 4days o 7hours.

Algunas de estas opciones requieren argumentos adicionales para funcionar. Estos argumentos te permiten filtrar los resultados del registro o personalizar el formato de salida.

Para ver la lista completa de opciones disponibles, usa:

journalctl --help

También puedes combinar varias opciones para adaptar las consultas de registros a tus necesidades. Por ejemplo:

journalctl -u nginx.service -p err -n 50 --since=2025-06-01 --output=json-pretty

Este comando muestra los últimos 50 mensajes de error de la unidad nginx.service a partir del 1 de junio de 2025 en un formato JSON legible.

¿Cómo usar journalctl?

Puedes usar journalctl para filtrar registros por tiempo y origen, personalizar el formato de salida, seguir y monitorear registros en tiempo real y administrar los datos de registro de forma eficiente.

En las siguientes secciones, te mostraremos cómo usar el comando journalctl para cada una de estas tareas.

Filtrar registros por tiempo

Para filtrar los registros por fecha y hora, usa journalctl con las opciones -b –list-boots –since o –until. Así funciona cada uno:

Arranque actual

Puedes ver los registros del arranque actual al agregar la opción -b:

journalctl -b

Usa este comando para solucionar problemas que ocurren justo después de un inicio limpio o para seguir la actividad del sistema desde el último reinicio.

Botas anteriores

Para ver los registros de un arranque anterior, agrega la opción -b con un desplazamiento. Por ejemplo, usa -b -1 para ver los registros del arranque anterior.

journalctl -b -1

Este comando te ayuda a hacer seguimiento de errores y de actividad inusual que ocurrieron después del último reinicio.

Mientras tanto, para ver todas las sesiones de arranque anteriores, usa:

journalctl --list-boots

Muestra cada sesión de arranque junto con su fecha y hora, para que puedas elegir fácilmente cuál investigar.

Rangos de tiempo

Si quieres filtrar registros en un intervalo de tiempo específico, combina –since y –until en tu comando journalctl. Por ejemplo:

journalctl --since=2025-06-18 --until=2025-06-19

Este comando muestra los registros entre el 18 y el 19 de junio de 2025.

También puedes usar tiempo relativo, como:

journalctl --since="1 hour ago"

Usa estos filtros de tiempo para investigar problemas que ocurrieron durante un periodo específico, por ejemplo después de una actualización del sistema o durante una ventana de mantenimiento.

Filtrar registros por origen

journalctl puede filtrar los registros por servicios específicos, usuarios o el kernel. Para hacer esto, usa las opciones -u, _UID, _GID, _PID o -k.

Por servicio o unidad

Para ver los registros de una unidad específica de systemd, ejecuta journalctl con la opción -u. Aquí tienes un ejemplo de cómo filtrar registros del servicio NGINX:

journalctl -u nginx.service

Usa este comando para diagnosticar errores, problemas de rendimiento o comportamiento inesperado en un servicio específico.

💡 Consejo práctico

Si no sabes cómo se llama el servicio, puedes listar los servicios en Linux con el comando systemctl list-units --type=service.

Por ID de usuario, ID de grupo o PID

Para filtrar los registros por usuario, grupo o identificador de proceso (PID), usa las opciones _UID, _GID o _PID.

Por ejemplo, para ver los registros de un ID de usuario específico, ejecuta el siguiente comando journalctl:

journalctl _UID=0

Muestra registros relacionados con el ID de usuario 0.

Filtrar los registros por ID de usuario es clave para solucionar problemas relacionados con la actividad específica de un usuario o con los permisos.

Solo registros del kernel

Puedes usar journalctl para ver los registros relacionados con el kernel si agregas la opción -k:

journalctl -k

Este comando muestra los registros del kernel, incluidos los eventos de hardware, los mensajes de los controladores y los fallos críticos del kernel.

Úsalo cuando soluciones problemas del sistema de bajo nivel, como fallas de hardware o bloqueos del sistema.

Personalización de la salida de registros

journalctl ofrece varias opciones, como -o y –no-pager, para personalizar cómo muestra los registros. Así puedes modificar la salida de los registros para adaptarla a tus necesidades:

Formatos de salida comunes

Usa la opción -o para elegir entre diferentes formatos de salida. Aquí tienes algunas de las más utilizadas:

  • short: el formato predeterminado que muestra entradas de registro concisas y legibles.
  • verbose: muestra entradas de registro detalladas con contexto adicional como marcas de tiempo, nombres de unidades y metadatos.
  • json: genera registros en formato JSON y es ideal para la automatización o el análisis de registros.
  • cat imprime mensajes de registro sin formato, similar al comando cat.
  • export: guarda los registros en un formato binario para que puedas transferirlos entre sistemas o volver a importarlos para analizarlos.

Imprimir mensajes completos

Para mostrar entradas de registro completas, sin truncar, ejecuta:

journalctl -o verbose

Este comando te muestra el contenido completo del mensaje, lo que puede ser útil al solucionar problemas, ya que la vista predeterminada omite detalles importantes.

Desactivar la paginación

Como mencionamos antes, puedes desactivar la paginación con la opción –no-pager:

journalctl --no-pager

Esta opción es útil cuando procesas registros con otras herramientas o rediriges la salida a un archivo, porque garantiza un flujo de datos fluido y sin interrupciones.

Por ejemplo, para redirigir la salida a un archivo, usa el operador >:

journalctl --no-pager > output.log

Este comando de journalctl guarda toda la salida en un archivo llamado output.log.

Personaliza la salida para automatización

Personalizar el formato de salida es especialmente útil cuando integras journalctl en scripts o herramientas de automatización.

Por ejemplo, puedes formatear los registros en JSON y canalizarlos al comando grep para extraer entradas específicas:

journalctl -o json | grep "error"

Este comando genera registros en formato JSON y luego filtra las entradas que contienen la palabra “error”.

Seguir y monitorear registros en tiempo real

Puedes usar journalctl para seguir y monitorear los registros en tiempo real. Esto es especialmente útil cuando necesitas monitorear un servicio o seguir la actividad del sistema en tiempo real.

A continuación, algunas acciones comunes:

Seguir el registro

Para ver las entradas de registro más recientes, usa la opción -n seguida del número de líneas que quieres mostrar. Por ejemplo:

journalctl -n 50

Este comando muestra las últimas 50 entradas del registro. Te sirve para ver rápidamente la actividad reciente del sistema sin esperar nuevas entradas.

Sigue las entradas del registro

Si quieres que journalctl muestre de forma continua las nuevas entradas de registro a medida que aparecen, usa la opción -f:

journalctl -f

Para hacer que journalctl deje de mostrar nuevas entradas, presiona Ctrl + C.

Funciona como el comando tail -f y muestra registros en tiempo real a medida que el sistema o los servicios los generan.

Monitoreo en tiempo real de servicios específicos

Puedes combinar -f con filtros para monitorear servicios específicos. Por ejemplo, para seguir en tiempo real los registros del servicio NGINX, ejecuta:

journalctl -u nginx.service -f

Usa este comando para monitorear servicios como NGINX o SSH y seguir el rendimiento en tiempo real, los mensajes de error u otros eventos importantes a medida que ocurren.

Administra los registros de journalctl

journalctl ofrece varias formas de gestionar el almacenamiento de registros, rotar los registros y controlar cuánto tiempo se conservan.

Estas prácticas ayudan a reducir el uso de espacio en disco y a mantener tu sistema eficiente, sobre todo porque los registros pueden consumir mucho espacio con rapidez.

Rotación de registros y control de espacio

journalctl gestiona automáticamente la rotación de registros, pero puedes configurar manualmente límites para controlar el uso de almacenamiento y la cantidad de archivos de registro que se conservan.

Para hacerlo, abre el archivo journald.conf con el editor de texto nano:

sudo nano /etc/systemd/journald.conf

Usa parámetros como SystemMaxUse, RuntimeMaxUse y MaxFileSec para establecer límites al tamaño de los archivos de registro y al tiempo de retención. Por ejemplo, para limitar los registros a un gigabyte, descomenta la línea y agrega un valor como:

SystemMaxUse=1G

Después de editar el archivo, guarda y sal presionando Ctrl + XYEnter.

Registros persistentes

De forma predeterminada, journalctl guarda los registros de manera persistente, así que se conservan tras reiniciar el sistema. Para confirmar o cambiar este comportamiento, abre el mismo archivo journald.conf.

Luego, busca la opción de Almacenamiento. Si está configurado en auto, systemd escribe los registros en el disco si existe el directorio de almacenamiento persistente (/var/log/journal/).

Para forzar el registro persistente, descomenta la línea y establece el valor en:

Storage=persistent

Si quieres guardar los registros solo en memoria durante el inicio actual del sistema, usa:

Storage=volatile

Elimina manualmente los registros

Si los registros superan los límites que configuraste o quieres liberar espacio manualmente, usa las opciones –vacuum:

  • Vacía por tamaño: elimina registros hasta que el uso total del disco quede por debajo del límite especificado:
journalctl --vacuum-size=1G
  • Purgar por tiempo: elimina los registros anteriores a un periodo específico:
journalctl --vacuum-time=1week
  • Limpieza por cantidad de archivos: mantén solo los archivos de registro más recientes.
journalctl --vacuum-files=5

Además, para verificar cuánto espacio están usando actualmente los registros del journal, ejecuta:

journalctl --disk-usage

Ejemplos de journalctl

A continuación encontrarás algunos ejemplos reales de comandos journalctl para ayudarte a solucionar problemas comunes del sistema y entender mejor cómo aplicar diferentes filtros y opciones.

Soluciona una falla del servicio

  • Tarea: investiga por qué el servicio de NGINX no se inició después de un reinicio.
journalctl -u nginx.service --since="2025-06-01 01:00:00" --until="2025-06-01 02:00:00"

Este comando filtra los registros de la unidad nginx.service el 1 de junio de 2025 entre la 1:00 a.m. y las 2:00 a.m. Úsalo para identificar cuándo y por qué ocurrió el problema.

Monitoreo en tiempo real de registros ante ataques de fuerza bruta contra SSH

  • Tarea: Supervisa el servicio SSH en busca de indicios de un ataque de fuerza bruta, como repetidos intentos fallidos de inicio de sesión.
journalctl -u ssh.service -f | grep "Failed password"

Combina journalctl -f con grep para monitorear en tiempo real los registros de SSH y filtrar las entradas que contienen “Failed password“.

Revisa los registros después de un fallo del sistema para detectar problemas de hardware.

  • Tarea: revisar los registros del kernel después de un fallo del sistema para identificar posibles causas.
journalctl -k --since=2025-06-01 --until=2025-06-02

Este comando muestra los registros del kernel entre el 1 y el 2 de junio de 2025. Úsalo para buscar fallas de hardware o pánicos del kernel alrededor del momento del bloqueo.

Exporta registros para análisis forense

  • Tarea: exporta los registros del sistema a un archivo para revisarlos después de una posible brecha de seguridad.
journalctl --since=2025-06-01 --until=2025-06-10 > system_logs_2025-06-01_to_06-10.log

Exporta los registros del 1 al 10 de junio de 2025 en un archivo llamado system_logs_2025-06-01_to_06-10.log para que luego puedas analizarlos o auditarlos.

Lleva un registro de los errores del sistema durante un proceso de actualización

  • Tarea: investigar el comportamiento inesperado después de una actualización del sistema revisando los registros de errores durante la ventana de actualización.
journalctl --since="2025-06-01 01:00:00" --until="2025-06-01 03:00:00" -p err

Este comando filtra los registros entre la 1:00 a. m. y las 3:00 a. m. del 1 de junio de 2025 y muestra solo las entradas de nivel de error (-p err) para ayudarte a diagnosticar qué salió mal.

Puntos clave para usar journalctl

journalctl es una herramienta de línea de comandos fundamental para gestionar los registros del sistema en Linux, con filtrado detallado, monitoreo en tiempo real y formatos de salida personalizables. Ya sea que estés diagnosticando un servicio que falló o rastreando eventos a nivel de kernel, saber usar sus opciones de forma eficaz te ayuda a actuar más rápido y con mayor precisión.

Para quienes usan un VPS, dominar journalctl te da información directa sobre el comportamiento de tu servidor y facilita resolver problemas, optimizar el rendimiento y mantener la disponibilidad. Como próximo paso, explora herramientas relacionadas como systemctl para administrar servicios o revisa nuestros tutoriales sobre rotación de registros y buenas prácticas de seguridad en Linux para ampliar tus conocimientos.

Todo el contenido de los tutoriales en este sitio web está sujeto a los rigurosos estándares y valores editoriales de Hostinger.

Author
El autor

Faradilla Ayunindya

Faradilla, más conocida como Ninda, cuenta con 10 años de experiencia como lingüista y 5 años como especialista en marketing de contenidos en Hostinger. Le gusta mantenerse al día con las tendencias tecnológicas y ayudar a las personas a resolver sus problemas. En su tiempo libre, Ninda disfruta aprender sobre idiomas y ciencias de la vida, así como ver videos de animales. Puedes conocer mejor a Ninda en LinkedIn.

Lo que dicen nuestros clientes

Deja una respuesta

Por favor, rellena los campos obligatorios.Por favor, acepta la casilla de verificación Privacidad.Llena los campos requeridos y acepta la casilla de verificación de privacidad, por favor.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.