Cómo arreglar un diario systemd lleno
11 min de lectura - 20 de mayo de 2026

Diagnostique y arregle un diario systemd lleno con comandos vacuum, límites de tamaño journald.conf, temporizadores de limpieza automatizados y reenvío de registros.
Cómo solucionar un diario de systemd lleno
El diario de systemd almacena todos los mensajes de registro que genera tu servidor y, en un VPS con una partición raíz pequeña, puede consumir silenciosamente todo tu espacio de disco disponible. Cuando eso ocurre, los servicios no se inician, las escrituras se bloquean y pierdes precisamente los datos de diagnóstico que necesitas para averiguar qué ha fallado. Esta guía explica cómo diagnosticar el problema, liberar espacio de inmediato y configurar journald para que no vuelva a ocurrir.
Diagnóstico del problema
Empiece por comprobar cuánto espacio está utilizando el diario:
journalctl --disk-usageEsto indica el tamaño combinado de todos los archivos de registro activos y archivados. Compáralo con el espacio disponible en disco df -h. En una partición raíz de 20 GB, incluso 2 GB de registros representan más del 10 % del disco total, lo cual es suficiente para causar problemas.
A continuación, averigüe qué servicios están generando más ruido. Esta línea de comando clasifica las 10 principales fuentes de registros de las últimas 24 horas:
journalctl --since "24 hours ago" | awk '{print $5}' | cut -d'[' -f1 | sort | uniq -c | sort -rn | head -10Filtra específicamente los errores con journalctl -p err -b para ver si un solo servicio está atascado en un bucle de fallos y saturando el diario. También puedes comprobar si journald está limitando la tasa de ningún servicio:
journalctl -u systemd-journald | grep -i "suppressed"Los mensajes de supresión indican que un servicio ha superado el umbral predeterminado de 10 000 entradas en 30 segundos. Ese es el culpable.
Hay algunas cosas que son especialmente comunes en las instancias VPS. Si Storage=auto está configurado y /var/log/journal/ existe, journald utiliza almacenamiento persistente con un límite predeterminado de aproximadamente 4 GB. En una partición raíz pequeña, eso se llena rápidamente. Los apagados incorrectos también pueden dejar archivos de diario dañados con el .journal~ . Estos archivos no se rotan normalmente y siguen consumiendo espacio.
Borrado seguro de los registros
Antes de eliminar nada, rote el archivo de registro activo para que se conserven los registros actuales:
journalctl --rotateA continuación, elimine los registros archivados. Puede filtrar por antigüedad, tamaño o número de archivos:
sudo journalctl --vacuum-time=1d
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-files=5La primera opción elimina los registros de más de 24 horas. La segunda reduce el tamaño total del diario a 100 MB. La tercera conserva solo los cinco archivos archivados más recientes. Elija la que mejor se adapte a su situación.
Si el disco está completamente lleno y los comandos journalctl no responden, es posible que tenga que eliminar los archivos de registro manualmente:
sudo rm -rf /var/log/journal/*
sudo systemd-tmpfiles --create --prefix /var/log/journalEsta es la última opción. Borra todos los registros almacenados y vuelve a crear el directorio con los permisos correctos. Tras cualquier limpieza, reinicia el daemon y comprueba:
sudo systemctl restart systemd-journald
journalctl --disk-usageConfiguración de los límites de tamaño de Journald
La configuración predeterminada de journald es generosa. En un VPS, resulta excesiva. Edita la configuración para establecer límites máximos estrictos en el almacenamiento de registros. Crea un archivo de anulación en lugar de editar la configuración principal directamente, para que tus cambios se mantengan tras las actualizaciones de paquetes:
sudo mkdir -p /etc/systemd/journald.conf.d/
sudo nano /etc/systemd/journald.conf.d/size-limits.confLas directivas clave:
| Parámetro | VPS (disco de 20-40 GB) | Servidor dedicado | Qué hace |
|---|---|---|---|
| SystemMaxUse | 500 MB a 1 GB | De 2 GB a 5 GB | Límite máximo del tamaño total del diario |
| SystemKeepFree | 1 GB | 10 % del disco | Espacio libre reservado para el sistema operativo |
| MaxRetentionSec | De 7 a 14 días | De 30 a 90 días | Elimina automáticamente los registros más antiguos que esto |
| Tamaño máximo de archivo del sistema | De 20 MB a 50 MB | 100 MB | Tamaño máximo por archivo de registro |
Configuración de ambos SystemMaxUse y SystemKeepFree te ofrece un enfoque de doble seguridad: los registros tienen un límite de tamaño fijo y el sistema siempre dispone de margen de maniobra, independientemente de lo que haya en el disco.
Almacenamiento persistente frente a volátil
La Storage= directiva controla dónde van los registros. Establezca Storage=persistent para escribir los registros en /var/log/journal/ en el disco. Esto es lo que se recomienda para servidores de producción, ya que los registros sobreviven a los reinicios y permite investigar los fallos a posteriori. Si el directorio no existe, créalo:
sudo mkdir -p /var/log/journalLa alternativa, Storage=volatile, es mantener los registros en la RAM en /run/log/journal/. Los registros desaparecen al reiniciar. Esto tiene sentido para contenedores efímeros o servidores que reenvían todos los registros a un sistema externo.
Desactivación de la compresión en servidores de alto tráfico
Journald comprime de forma predeterminada los objetos de datos de más de 512 bytes. En servidores que gestionan un gran volumen de registros, esto añade una carga adicional a la CPU. Establece Compress=no si reenvías los registros externamente y no necesitas minimizar el almacenamiento local. Configúralo también ForwardToConsole=no en producción. El reenvío de la consola es síncrono, y una consola serie virtual bloqueada puede bloquear por completo el demonio journald.
Después de cualquier cambio de configuración, reinicie el servicio:
sudo systemctl restart systemd-journaldAutomatización del mantenimiento de registros
La limpieza manual no es escalable. Crea un temporizador de systemd para limpiar los registros de forma programada. Configura una unidad de servicio en /etc/systemd/system/journal-vacuum.service:
[Unit]
Description=Vacuum old journal logs
[Service]
Type=oneshot
ExecStart=/usr/bin/journalctl --vacuum-time=7d --vacuum-size=500MA continuación, cree un temporizador correspondiente en /etc/systemd/system/journal-vacuum.timer:
[Unit]
Description=Weekly journal vacuum
[Timer]
OnCalendar=Sun 02:00
Persistent=true
[Install]
WantedBy=timers.targetActívelo con sudo systemctl enable --now journal-vacuum.timer. El temporizador se ejecuta todos los domingos a las 2 de la madrugada y aplica la retención basada tanto en el tiempo como en el tamaño en una sola pasada.
Hay algo que el temporizador no detectará: los archivos de diario dañados. Tras un apagado incorrecto, journald pone en cuarentena los archivos dañados añadiendo un ~ al nombre del archivo. Estos .journal~ archivos siguen contando para el uso del disco, pero no se limpiarán automáticamente. Comprueba y elimina periódicamente los antiguos:
find /var/log/journal/ -name "*.journal~" -mtime +30 -deleteReenvío de registros a un sistema externo
Para servidores en los que se necesita una retención a largo plazo sin aumentar el almacenamiento local, reenvíe los registros a un sistema centralizado. El método más sencillo es habilitar el reenvío de syslog en journald.conf:
ForwardToSyslog=yesPara registros estructurados con metadatos completos (PID, UID, nombres de unidades), utilice systemd-journal-remote para enviar entradas en formato JSON a una plataforma de gestión de registros. El almacenamiento externo de registros también protege su pista de auditoría si el disco local falla o el servidor se ve comprometido.
Conclusión
Un diario de systemd lleno es fácil de solucionar y de prevenir. Los pasos clave:
- Comprueba el uso con
journalctl --disk-usagee identifica los servicios que generan ruido. - Libera espacio inmediatamente con
journalctl --rotateseguido de--vacuum-sizeo--vacuum-time. - Establezca límites de tamaño explícitos en un archivo de anulación de journald.conf.
- Automatice la limpieza con un temporizador de systemd.
- Reenvíe los registros externamente para su conservación a largo plazo.
Los planes de servidores VPS y dedicados de FDC proporcionan la E/S de disco y el almacenamiento necesarios para las cargas de trabajo de registros de producción.

Procesos zombis en Linux: Encontrar, Eliminar, Prevenir
Aprenda a identificar, eliminar y prevenir procesos zombis en Linux. Comandos, correcciones de código y consejos de supervisión para administradores de servidores.
15 min de lectura - 19 de mayo de 2026
Lista de comprobación para el refuerzo de servidores Linux
15 min de lectura - 8 de mayo de 2026