Rotar logs

Rotación automática de logs en linux con la aplicación logrotate

En linux existe una herramienta para rotar los logs del sistema, de modo que no se generen archivos de tamaño desorbitado y nos llene todo el espacio del disco.

La herramienta se llama logrotate y es muy sencilla de utilizar. La configuración general de logrotate se puede encontrar en /etc/logrotate.conf

Para configurar logrotate para unos logs en concreto, podemos crear un archivo en /etc/logrotate.d/

Podemos crear un archivo en esa carpeta para definir los logs que rotarán. Pueden haber varios definiciones en un mismo archivo. Un ejemplo de rotación podría ser:

/var/www/vhosts/miweb.com/log/production.log {
daily
missingok
rotate 30
compress
delaycompress
sharedscripts
postrotate
touch /var/www/vhosts/miweb.com/tmp/restart.txt
endscript
}

En nuestro ejemplo tras hacer la rotación se ejecuta el reinicio de una aplicación en Ruby on Rails en la etiqueta "postrotate", pero en otros casos puede cambiar según lo que se quiera, por ejemplo en un servidor apache se podría recargar la configuración del servidor con

postrotate
/etc/init.d/apache2 reload
endscript

O simplemente no hacer nada.

Testear la configuración de logrotate

logrotate permite debuguear los scripts de configuración para ver si funcionan como esperamos, podemos ejecutar el comando con el parámetro -d

logrotate -d /etc/logrotate.d/nombredelarchivodeconfiguracion