BookinglyTech News
Infraestructura

Config de journald en conf.d sobreescribe la retención de logs

Un usuario descubrió que su archivo de retención de 24 meses era ignorado por otro drop‑in, dejando solo 7 días de logs.

1 min de lecturar/selfhosted0 vistas

El administrador había configurado

Set MaxRetentionSec=24month

en

/etc/systemd/journald.conf.d/retention.conf

por meses y, al requerir logs de hace dos meses, se dio cuenta de que el más antiguo del sistema era solo de 7 días. La causa era otro archivo en la misma carpeta, size.conf, que contenía la directiva SystemMaxUse=100M. Systemd aplica los archivos de conf.d en orden alfabético y la última aparición de una opción prevalece. En este caso, size.conf sobreescribía la política de retención.

Para verificar la configuración real, dos comandos resultaron útiles:

  • systemd-analyze cat-config systemd/journald.conf - muestra la configuración final que se está usando.
  • journalctl -o short-iso | head -1 revela la entrada más antigua que realmente existe.

La solución fue eliminar los archivos redundantes y conservar un único archivo, por ejemplo zz-retention.conf, asegurando que no haya archivos posteriores que lo sobreescriban. Además, se añadió SystemKeepFree=2G para evitar que el journal ocupe todo el espacio disponible.

¿Alguien más ha comprobado la diferencia entre la retención declarada y la real?