Articles

Configuración de logrotate en Centos 7

Ayer, me encontré con el problema de la baja capacidad de la partición /var/log/. Algunos registros eran demasiado grandes y logrotate es la herramienta perfecta para manejar este problema. Es un software diseñado para reducir la cantidad de espacio para cada archivo de registro que tenemos. Y se puede hacer con algunas maneras.
Logrotate Descripción: logrotate está diseñado para facilitar la administración de los sistemas que generan un gran número de archivos de registro. Permite la rotación, compresión, eliminación y envío automático de los archivos de registro. Cada archivo de registro puede ser manejado diariamente, semanalmente, mensualmente, o cuando crezca demasiado.
Normalmente, logrotate se ejecuta como un trabajo cron diario. No modificará un registro varias veces en un día Así que en pocas palabras, logrotate está reduciendo el uso de espacio en el disco por los archivos de registro.

Configuración de logrotate

La configuración de logrotate se hace en un archivo principal: /etc/logrotate.conf y otros archivos de configuración específicos del servicio que se almacenan en /etc/logrotate.d/
Así que la configuración principal de ejemplo es:

# see "man logrotate" for details# rotate log files weekly specified in /etc/logrotate.d/weekly# keep 4 weeks of all log filesrotate 4# create new (empty) log files after rotating old onescreate# use date as a suffix of the rotated filedateext# uncomment this if you want your log files compressed by gzipcompress# RPM packages drop log rotation information into this directory#there are all other configurations of services and their logs to rotateinclude /etc/logrotate.d

Algunas configuraciones de archivos de registro reales y de ejemplo

Así, podemos añadir un nuevo archivo de registro en /var/log/ de esta manera:

echo "this is a sample log file" > /var/log/vasil.log#this create a log file vasil1.log of size 5MBdd if=/dev/zero of=/var/log/vasil1.log bs=1M count=5

A continuación, creamos unos nuevos archivos de configuración que se almacenan en el destino explicado anteriormente:

vim /etc/logrotate.d/vasil###/var/log/vasil.log { missingok notifempty compress minsize 1M daily create 0600 root root}
vim /etc/logrotate.d/vasil1###/var/log/vasil1.log { missingok notifempty compress minsize 1M daily create 0600 root root}

Y alguna explicación de variables:

  • missingok – no dar salida al error si falta el archivo de registro
  • notifempty – no rotar el archivo de registro si está vacío
  • compress – Las versiones antiguas de los archivos de registro se comprimen con gzip por defecto
  • minsize – El archivo de registro archivo se rota sólo si es mayor de 1M
  • daily – asegura la rotación diaria
  • create – crea un nuevo archivo de registro con permisos 600 donde el propietario y el grupo es el usuario root
  • Si quieres más opciones y su explicación, busca en el manual:

man logrotare

Mira la lista de /var/log para nuestros archivos de registro. Podemos ver, que tenemos un log vasil.log con un tamaño de 26b y vasil1.log con un tamaño de 5MB.

ls -lah /var/log/va*-rw-r--r--. 1 root root 5.0M Mar 3 13:21 /var/log/vasil1.log-rw-r--r--. 1 root root 26 Mar 3 13:21 /var/log/vasil.log

Ahora, podemos depurar nuestra configuración a través de este comando:

logrotate -d /etc/logrotate.d/vasil1orlogrotate -d /etc/logrotate.d/vasil

Así que, si queremos ejecutar logrotate manualmente y ver, lo que sucede, ejecuta el siguiente comando. Pero ten cuidado porque rota todos tus logs, definidos en /etc/logrotate.d/

logrotate -f /etc/logrotate.conf

Y podemos ver los dos archivos de registro comprimidos y dos nuevos archivos de registro vacíos creados:

 ls -lah /var/log/va*-rw-------. 1 root root 0 Mar 3 13:23 /var/log/vasil1.log-rw-r--r--. 1 root root 5.0K Mar 3 13:21 /var/log/vasil1.log-20170303.gz-rw-------. 1 root root 0 Mar 3 13:23 /var/log/vasil.log-rw-r--r--. 1 root root 44 Mar 3 13:21 /var/log/vasil.log-20170303.gz

Podemos ver nuestro archivo de registro comprimido mediante este comando:

zcat /var/log/vasil.log-20170303.gzthis is a sample log file

O podemos usar gunzip para descomprimirlos mediante el comando gzip.
Cuando usamos logrotate, a veces necesitamos reiniciar una aplicación o servicio. Logrotate puede hacer eso mediante un script llamado «postrotate». Este script puede ser utilizado en el archivo de configuración como httpd. Cuando el registro es rotado, el script recarga el servicio para usar el nuevo archivo de registro vacío.

cat /etc/logrotate.d/httpd/var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript}

Así que espero que esto ayude a alguien 🙂 Que se diviertan.

Total de visitas a la página: 5196 – Hoy visitas a la página: 3

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *