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 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 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 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 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 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 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
-urecibe el nombre de la unidad, no el del proceso.journalctl -u nginxfunciona,journalctl -u /usr/sbin/nginxno.systemctl list-units --type=servicelista los nombres de unidad.- El journal no siempre sobrevive a un reinicio. Si
Storage=volatileestá 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
- Ver varios archivos de log a la vez
- El proceso que no quiere morir
- Limpia logs y backups viejos con una frase
Deja de memorizar los flags de journalctl — describe el incidente y CliAI escribe el comando. Instálalo en una línea.