CLI AI

Logs de journalctl para un servicio en la última hora

2026-06-20

El comando es journalctl -u nginx --since '1 hour ago': -u elige la unidad, --since define la ventana. Cuatro flags — -u, --since, -p y -f — cubren la mayor parte del triage de incidentes, y el orden de abajo es el que realmente usas: desde listar todo lo que registró el servicio hasta seguir el flujo de errores en tiempo real y exportar una copia a prueba de rotación para un compañero.

1. ¿Cómo veo los logs de un solo servicio?

clai
$ clai muéstrame los logs de nginx→ journalctl -u nginx

-u es unit. Sin él obtienes todo el journal del sistema, donde los mensajes de tu servicio se ahogan entre los del kernel y todo lo demás.

2. ¿Cómo reduzco la ventana a la última hora?

clai
$ clai muéstrame los logs de nginx de la última hora→ journalctl -u nginx --since '1 hour ago'

--since entiende expresiones humanas: today, yesterday, '1 hour ago', '2026-06-20 14:00'. Hay un --until equivalente para cortar la cola después del incidente.

3. ¿Cómo dejo solo los errores?

clai
$ clai muéstrame solo los errores de nginx de hoy→ journalctl -u nginx --since today -p err

-p es la prioridad de syslog. err muestra el nivel error y todo lo más grave — critical, alert, emergency. La escala completa: emerg, alert, crit, err, warning, notice, info, debug.

4. ¿Cómo sigo los logs en tiempo real?

clai
$ clai sigue los logs de nginx ahora mismo→ journalctl -u nginx -f

Es el equivalente de tail -f, pero journald conoce la rotación, así que este comando no puede quedarse en silencio. Esa es la ventaja real frente a leer el archivo directamente.

5. ¿Cómo veo qué pasó desde el último arranque?

clai
$ clai muéstrame los errores de este servicio desde el arranque anterior→ journalctl -u nginx -b -1 -p err

-b es boot. -b -1 es el arranque anterior, -b 0 o solo -b es el actual. Imprescindible cuando la máquina se reinició sin avisar y necesitas saber por qué.

6. ¿Cómo le paso el log a un compañero?

clai
$ clai exporta los logs de nginx de hoy a un archivo sin paginación→ journalctl -u nginx --since today --no-pager -o short-iso > nginx-today.log

--no-pager quita less, que si no colgaría el comando en un entorno no interactivo. -o short-iso da timestamps ISO-8601 que se ordenan bien y no dependen del locale.

Trampas

  • -u recibe el nombre de la unidad, no el del proceso. journalctl -u nginx funciona, journalctl -u /usr/sbin/nginx no. systemctl list-units --type=service lista los nombres de unidad.
  • El journal no siempre sobrevive a un reinicio. Si Storage=volatile está en /etc/systemd/journald.conf, el historial se pierde al reiniciar. Comprueba si existe /var/log/journal.
  • Las unidades de usuario y de sistema están separadas. Para servicios que corren bajo tu propio usuario necesitas journalctl --user -u nombre, o no encontrarás nada.

Preguntas relacionadas

¿Cómo veo solo las últimas N líneas? journalctl -u nginx -n 50. Por defecto journalctl muestra todo desde el inicio, incómodo en un journal grande.

¿Por qué journalctl es mejor que leer el archivo en /var/log? Conoce la rotación, filtra por unidad, prioridad y tiempo, y muestra logs de servicios que ni siquiera escriben a un archivo.

¿Cómo limito el tamaño del journal? SystemMaxUse=500M en /etc/systemd/journald.conf, luego systemctl restart systemd-journald. Limpieza puntual: journalctl --vacuum-size=200M.

Ver también

Deja de memorizar los flags de journalctl — describe el incidente y CliAI escribe el comando. Instálalo en una línea.