Logrotate: Administra los registros de tu sistema Linux
El mundo de los sistemas UNIX y GNU/Linux tiene un buen puñado de herramientas increibles, que facilitan el día a día de las personas administradoras de sistemas. Una de ellas es logrotate. Esta utilidad implementa una varidad de políticas de administración de registros y es estándar en todas las distribuciones GNU/Linux. También se puede instalar, si así se desea, en sistemas Solaris, HP-UX o AIX
Administra los registros de tu sistema con logrotate
Logrotate está diseñado para facilitar la administración de sistemas que generan una gran cantidad de archivos de registro. Permite auto rotación, compresión, borrado y envío de archivos de registro por correo. Además podemos manejar cada archivo de registro de manera diaria, semanal, mensual o cuando crece más de un tamaño dado.
Normalmente, logrotate se ejecuta como un trabajo cron diario. No modificará un registro más de una vez en un día, a menos que el criterio para ese registro se base en el tamaño del fichero de registro y logrotate este configurado para ejecutarse más de una vez al día.
Sobre los ficheros de configuración
Los ficheros de configuración están ubicados dentro de la ruta /etc/logrotate.d
y constan de una serie de especificaciones para los grupos de archivos de registros que se van a administrar. Existen muchos parámetros que se pueden utilizar, como errors
,rotate
o weekly
, pero hay muchos más. Aquí tenéis un ejemplo del aspecto de una configuración para el servicio samba:
/var/log/samba/*.log { notifyempty copytruncate sharedscripts postrotate /bin/kill -HUP `cat /var/lock/samba/*.pid` endscript }
Además, existe un fichero de configuración global, en la ruta /etc/logrotate.conf
. Modificando sus parámetros indicaremos a logrotate como ha de funcionar. Por norma general, en un sistema operativo Centos 7, tendremos la siguiente información:
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 } # system-specific logs may be also be configured here.
Veamos una lista de los parámetros que podemos utilizar, para así comprender que hace cada cosa:
- compress – Indica que comprimirá todas las versiones, menos la que está en funcionamiento.
- daily, weekly, monthly – Rotará los archivos de registro en la programación especificada.
- delaycompress – Comprímeme todas las versiones, menos la actual y la siguiente más reciente.
- endscript – Marca el final de un prerotate o postrotate script.
- errors «emailaddr» – Notifica por correo los errores a la dirección especificada.
- missingok – El sistema no se queja si el fichero no existe.
- notifyempty – No se procede al rotado si el fichero está vacío.
- olddir «dir» – Especifica la ubicación donde se guardarán las versiones antiguas de log.
- postrotate – Introduce a un script que se ejecutará después de que el log haya rotado.
- prerotate – Introduce a un script que se ejecutará antes de cualquier cambio haya ocurrido.
- rotate «n» – Número de versiones del log en el esquema de la rotación.
- sharedscripts – Ejecuta un script sólo una vez para todo el grupo de registro.
- size «logsize» – Se procede al rotado si el tamaño del fichero de log supera un tamaño. Por ejemplo size > tamaño (p.e. 100K, 4M)
Para el tema que envíe notificaciones por correo, en nuestro sistema debemos tener un servicio de envío de correo instalado, como por ejemplo Postfix.
Para ampliar información podéis consultar su página de man o bien consultar magníficos libros como «LINUX SYSTEM ADMINISTRATION HANDBOOK«, un manual muy completo, que además incluye ilustraciones muy divertidas.
Ya os hablé del mismo tema hace unos años en la web del proyecto Colaboratorio: Rotado de logs en GNU Linux con logrotate