Linux

Liberar y limitar espacio de logs en journalctl (Systemd)

Guía paso a paso para limpiar journalctl manualmente y configurar límites de tamaño persistentes en Linux.

journalctllinuxsystemdcleanupsysadmin

Si los logs de journalctl están devorando el espacio en disco de tu servidor, tienes dos formas de actuar: una limpieza manual inmediata para liberar espacio ya mismo, y una configuración persistente que limite el uso de disco de forma automática y evite que el problema vuelva a aparecer.

1. Limpieza manual inmediata

Si tu disco ya está lleno y no quieres esperar a que el sistema haga la rotación automática, puedes forzar la limpieza directamente desde la terminal con journalctl:

  • Limpiar por tamaño (borra lo necesario hasta que los logs ocupen solo 200 MB):
sudo journalctl --vacuum-size=200M
  • Limpiar por tiempo (borra todos los logs con más de dos semanas de antigüedad):
sudo journalctl --vacuum-time=2weeks

2. Verificar cuánto ocupan ahora

Después de la limpieza, comprueba el uso actual de disco de tus logs:

journalctl --disk-usage

3. Configurar un límite persistente

Para que los logs no vuelvan a comerse el disco, edita el archivo de configuración del demonio systemd-journald (que es el servicio que está detrás de journalctl).

3.1. Editar el archivo de configuración

Abre /etc/systemd/journald.conf con tu editor favorito (necesitarás permisos de superusuario):

sudo nano /etc/systemd/journald.conf

3.2. Modificar los límites de espacio

Busca la sección [Journal]. Por defecto, la mayoría de las líneas están comentadas con un #. Borra el # de las variables que quieras modificar y ajusta sus valores.

Las directivas más importantes son:

  • SystemMaxUse=: define el espacio máximo absoluto que pueden ocupar los logs en el disco (por ejemplo, 500M o 2G).
  • SystemKeepFree=: espacio mínimo que el journal debe dejar libre en el disco para el resto del sistema. Si el disco se llena, el journal borrará logs viejos para mantener este espacio libre.

Ejemplo de configuración recomendada (límite de 500 MB para los logs y mantener siempre 10 GB libres en el disco):

[Journal]
SystemMaxUse=500M
SystemKeepFree=10G

3.3. Guardar y reiniciar el servicio

Si usaste nano, guarda los cambios con Ctrl + O, Enter, y sal con Ctrl + X.

Para aplicar los cambios de inmediato, reinicia el demonio:

sudo systemctl restart systemd-journald