Loading...

Cómo hacer rotación de logs

2024-03-10
  • linux
  • logs
  • sistemas

El manejo de logs es una tarea fundamental para cualquier servidor, ya que los logs son la principal fuente de información para solucionar problemas en sistemas en producción. La rotación de logs es un proceso que se encarga de controlar y limitar el tamaño de los logs, y mantener un historial de los mismos para su posterior análisis.

En este artículo, se va a describir cómo configurar la rotación de logs en un servidor Linux utilizando la herramienta logrotate. Esta herramienta es muy útil para mantener los logs bajo control, y asegurarse de que no se sature el espacio en disco del servidor.

Instalación de logrotate

En primer lugar, es necesario instalar la herramienta logrotate. Para ello, se puede utilizar el gestor de paquetes de la distribución Linux que se esté utilizando. Por ejemplo, en Ubuntu se puede utilizar el siguiente comando:

$ sudo apt update
$ sudo apt install logrotate

Configuración de logrotate

La configuración de logrotate se encuentra en el directorio /etc/logrotate.d. En ese directorio, es necesario crear un fichero por cada proceso del que se quieran rotar los logs. Por ejemplo, si se quiere rotar los logs del proceso PM2, se puede crear un fichero llamado pm2 en el directorio /etc/logrotate.d.

Para crear el fichero de configuración, se puede utilizar el siguiente comando:

$ cd /etc/logrotate.d
$ touch pm2
$ nano pm2

En el fichero pm2, se puede pegar la siguiente configuración:

/home/ubuntu/.pm2/logs/*.log {
	size 10M
	rotate 60
	daily
	compress
	missingok
	copytruncate
	su root adm
}

En esta configuración, los logs se rotarán una vez al día, se comprimirán en formato gzip, y se conservarán los últimos 60 logs rotados. Además, se utilizará el usuario root y el grupo adm para ejecutar la rotación.

Los parámetros más importantes de la configuración son:

  • size: tamaño máximo que tendrá el fichero antes de que rote
  • rotate: número de logs rotados a conservar, el resto los borra
  • daily: frecuencia de rotación
  • compress: comprime los logs en formato gzip
  • missingok: si falta un log pasa a la siguiente rotación sin emitir errores
  • copytruncate: trunca el log original y mete el contenido previo en un fichero nuevo
  • su root adm: usuario y grupo que ejecutará la rotación

Configuración de CRON

Una vez que se ha configurado logrotate, es necesario hacer que el cron ejecute logrotate automáticamente. Para ello, es necesario editar el fichero /etc/crontab y añadir la siguiente línea:

0 0 * * * root /usr/sbin/logrotate /etc/logrotate.conf

Esta línea indica que logrotate se ejecutará todos los días a las 00:00.

Validación de la configuración

Para validar que la configuración de logrotate está funcionando correctamente, se puede utilizar el siguiente comando:

$ /usr/sbin/logrotate -d /etc/logrotate.d/pm2

Este comando ejecutará una simulación de la rotación de logs para el proceso PM2, y mostrará qué archivos serían rotados si se ejecutara la rotación de logs en ese momento.

En resumen, la rotación de logs es un proceso esencial para cualquier servidor en producción. La herramienta logrotate es muy útil para automatizar la rotación de logs, y asegurarse de que no se sature el espacio en disco del servidor.

Con la configuración adecuada, se pueden mantener los logs bajo control y disponer de la información necesaria para solucionar problemas en el sistema.