Conclusión: limita journald antes de que llene un disco de sistema CasaOS pequeño
El sistema CasaOS original tenía más de 5 GB en /var/log/journal. La solución duradera no consiste en eliminar manualmente los archivos del journal. Establece un límite de tamaño, conserva opcionalmente una cantidad mínima de espacio libre y limpia una vez los registros archivados antiguos. Después, journald aplicará la política automáticamente.
Mide el journal antes de cambiar nada
journalctl --disk-usage
du -sh /var/log/journal 2>/dev/null
df -h /var
Si los registros están consumiendo varios gigabytes en un disco de arranque pequeño, decide cuánta información reciente necesitas realmente. En un servidor doméstico, un límite fijo suele ser más predecible que dejar que la configuración predeterminada consuma un porcentaje del sistema de archivos.
Establece límites de tamaño y retención en journald.conf
[Journal]
SystemMaxUse=1G
SystemKeepFree=1G
MaxRetentionSec=14day
SystemMaxUse limita el almacenamiento persistente del journal, mientras que SystemKeepFree conserva espacio libre para el resto del sistema operativo. MaxRetentionSec es opcional si también quieres establecer un límite basado en el tiempo. Los límites de tamaño de journald definen cómo interactúan estos límites.
Limpia los registros antiguos una vez después de establecer la política
sudo journalctl --rotate
sudo journalctl --vacuum-size=1G
La limpieza elimina los archivos de journal archivados; no reemplaza la configuración. Si solo haces una limpieza y nunca estableces un límite, el directorio puede volver a crecer. Los controles de limpieza de journalctl incluyen los comandos de limpieza compatibles.
No detengas journald solo para reemplazar el archivo de configuración
La publicación de 2024 detenía el servicio, eliminaba la configuración y copiaba un archivo de reemplazo. Funcionaba, pero era más disruptivo de lo necesario. Edita el archivo de forma segura, conserva una copia de seguridad y luego reinicia el servicio:
sudo cp /etc/systemd/journald.conf /etc/systemd/journald.conf.bak
sudo nano /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
¿Puede journald almacenar registros en otro disco?
No mediante una ruta arbitraria simple en journald.conf. Storage=persistente tiene como destino /var/log/journal; Storage=volátil utiliza /run/log/journal. Si necesitas una retención más prolongada en otro lugar, reenvía los registros a otro host syslog/journal en lugar de montar rutas críticas del sistema de forma arbitraria.
Encuentra el servicio que está creando registros excesivos
journalctl -p warning..alert --since "24 hours ago"
journalctl --since "24 hours ago" | tail -200
systemctl --failed
Un límite de disco protege el sistema operativo, pero no soluciona un servicio que registra el mismo error miles de veces. Corrige el servicio ruidoso cuando el sistema tenga margen de espacio.
Si estás pensando en pasar de una instalación antigua de CasaOS a un servidor con un enfoque más similar a un dispositivo, la plataforma ZimaBoard 2 y la copia de seguridad de ZimaOS ofrecen un contexto de migración más seguro.
Evita que un servicio inunde el diario
Si un contenedor o demonio emite continuamente la misma advertencia, los límites de almacenamiento globales solo contienen el daño. Comprueba las unidades más ruidosas y luego corrige el origen:
journalctl --since "1 hour ago" -o short-unix | tail -500
journalctl -u SERVICE_NAME --since "1 hour ago"
En los servicios administrados por systemd, los controles de tasa de registros por unidad pueden reducir los picos sin descartar todos los demás registros del sistema. Usa la limitación de tasa solo después de entender qué se está suprimiendo; los errores repetidos de almacenamiento, sistema de archivos o red pueden ser la evidencia que necesitas para resolver el problema subyacente.
Preguntas frecuentes
¿Qué tamaño debería tener SystemMaxUse?
No existe un valor universal. En un disco pequeño para el sistema operativo, entre 500 MB y 2 GB es un rango inicial práctico si rara vez necesitas un historial de registros prolongado. Deja suficiente espacio libre para las actualizaciones y los metadatos de las aplicaciones.
¿Eliminará journalctl --vacuum-size los registros actuales?
Elimina los archivos de diario archivados hasta aproximarse al tamaño objetivo. Rota primero si quieres que el diario activo pase al conjunto archivado.
¿Debería usar logrotate para /var/log/journal?
No. Los archivos de diario binarios los administra el propio systemd-journald. Usa la configuración de tamaño y retención de journald, junto con las operaciones de vaciado de journalctl.
¿Puedo guardar los registros en otro disco duro?
Sí, mediante el reenvío de registros o un punto de montaje diseñado específicamente para ello, pero journald no ofrece una configuración de ruta personalizada arbitraria. El registro remoto suele ser más seguro que mover un directorio central del sistema operativo.
¿Por qué el diario alcanzó varios gigabytes?
La política predeterminada puede permitir un almacenamiento considerable, y un servicio ruidoso puede generar entradas rápidamente. Comprueba tanto el límite configurado como el servicio que produce ese volumen.
