Saltar al contenido principal

Cómo configurar logrotate para el archivado automático de registros y el ahorro de espacio en el servidor

· 2 min de lectura
Customer Care Engineer

La gestión de registros es una parte crucial del trabajo de cualquier administrador de servidores. Los registros que no se rotan pueden ocupar rápidamente todo el espacio disponible en el disco, ralentizar el servidor y causar errores impredecibles. En este artículo, explicaremos cómo configurar y usar logrotate para la limpieza y rotación automáticas de registros en un servidor.


¿Qué es logrotate y por qué es importante usarlo?

Logrotate es una herramienta diseñada para la gestión automática de registros. Ayuda a:

  • Limpiar registros antiguos — elimina o archiva automáticamente los archivos de registro antiguos.
  • Ahorrar espacio en disco — comprime y elimina registros innecesarios.

La rotación de registros evita que los registros se acumulen y causen desbordamiento del disco, lo que podría provocar fallos y pérdida de datos. Logrotate archiva automáticamente los registros antiguos y deja espacio para datos nuevos.


¿Cómo funciona logrotate?

Cuando logrotate está activo, realiza automáticamente los siguientes pasos:

  1. Rotación de registros — los registros antiguos se renombran y almacenan, mientras que se crean nuevos archivos en su lugar.
  2. Compresión — los registros antiguos se pueden comprimir en formato .gz para ahorrar espacio.
  3. Eliminación — los registros obsoletos se pueden eliminar si ya no son necesarios.

Ejemplo: Un archivo de registro llamado access.log puede transformarse en access.log.1, luego comprimirse en access.log.1.gz y, finalmente, eliminarse después de un período de retención especificado.

---

Cómo configurar logrotate

1. Instalación de logrotate

En la mayoría de los sistemas Linux, logrotate viene preinstalado. Para comprobar si logrotate está instalado, ejecute el comando:

sudo logrotate --version

Si logrotate no está instalado, se puede instalar a través de un gestor de paquetes.

  • Para Debian/Ubuntu:
sudo apt update && sudo apt install logrotate
  • Para CentOS/RockyLinux/AlmaLinux:
sudo yum install logrotate

2. Configuración de logrotate

La configuración de logrotate generalmente se almacena en /etc/logrotate.conf. Este archivo contiene parámetros generales para todos los registros en el servidor. Para configurar la rotación de registros individuales, puede crear archivos de configuración separados para diferentes servicios en el directorio /etc/logrotate.d/.

Ejemplo de una configuración estándar de Nginx:

/var/log/nginx/*.log {
daily # Los registros se rotan diariamente
missingok # No mostrar un error si el registro falta
rotate 7 # Mantener 7 archivos archivados
compress # Comprimir registros antiguos
delaycompress # Retrasar la compresión hasta la próxima rotación
notifempty # No rotar archivos vacíos
create 0640 www-data adm # Crear nuevos registros con permisos específicos
}

3. Parámetros clave de configuración

  • daily/weekly/monthly — define con qué frecuencia se rotará el archivo de registro (diariamente, semanalmente o mensualmente).
  • rotate [N] — especifica el número de registros archivados a conservar.
  • compress — habilita la compresión de archivos de registro (típicamente en .gz).
  • missingok — evita errores si falta un archivo de registro.
  • notifempty — omite la rotación de archivos vacíos.
  • create — crea nuevos registros con permisos especificados.

4. Ejecución de logrotate

Logrotate generalmente se ejecuta automáticamente a través de cron. Sin embargo, puede ejecutarlo manualmente si necesita comprobar la configuración o realizar una rotación inmediatamente:

sudo logrotate -f /etc/logrotate.conf

5. Verificación del funcionamiento de logrotate

Para asegurarse de que logrotate está funcionando correctamente, puede comprobar las últimas entradas en su registro de servicio:

sudo journalctl -u logrotate -n 10