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