GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar Logrotate para administrar archivos de registro

Logrotate es un software preinstalado en la mayoría de las distribuciones de Linux, que le permite administrar el guardado y la organización a largo plazo de los archivos de registro.

Las aplicaciones del sistema a menudo registran un registro de las operaciones o problemas del disco. Si no se eliminan periódicamente, estos archivos pueden aumentar de tamaño, llenar el disco y provocar errores de funcionamiento.

Logrotate es la solución más común para comprobar periódicamente los archivos de registro y gestionar automáticamente su rotación, compresión y eliminación cuando se supera un determinado tamaño y/o antigüedad.

Configuraciones básicas

Logrotate permite definir algunos parámetros básicos que serán utilizados por todas las configuraciones posteriores del archivo en la ruta /etc/logrotate.conf:

# Set a weekly rotation

weekly


# Set the number of rotations to save

rotate 4
              

# make new log file

create
              

# Include all configurations files

include /etc/logrotate.d

En este extracto de logrotate.conf, además de aplicar todos los parámetros descritos anteriormente, también se recomienda leer todas las configuraciones presentes en el directorio /etc/logrotate.d. Al hacerlo, puede dividir cada configuración por aplicación y/o contexto.

Las configuraciones de Logrotate definen un conjunto de reglas para 1 o más archivos:

[FILE] [FILE?] [FILE?] {

    [SETTINGS]

}

Un ejemplo clásico es el de la configuración de /var/log/messages:

/var/log/messages {
                 

    # Save 5 rotations

    rotate 5
                 

    # Rotating files every week 

    weekly 
                 

    postrotate 

        /usr/bin/killall -HUP syslogd

    endscript

}

En el ejemplo anterior, solo se tiene en cuenta el archivo de mensajes. . y su rotación se establece cada semana, p a un máximo de 5. Por lo tanto, al final de la quinta rotación, los archivos de registro:

-rw-r----- 1 root  adm 1215 Jul 29 06:47 messages

-rw-r----- 1 root  adm 3895 Jul 28 06:49 messages.1

-rw-r----- 1 root  adm 454 Jul 21 06:37 messages.2.gz

-rw-r----- 1 root  adm 506 Jul 15 06:40 messages.3.gz

-rw-r----- 1 root  adm 456 Jul 7 06:41 messages.4.gz

Algunas de las configuraciones más importantes son:

  • diario, mensual, semanal, anual:indica con qué frecuencia rotar el archivo de registro

  • comprimir, nocomprimir:comprimir o no rotaciones de archivos antiguos

  • maxage:Después de cuántos días se eliminan las rotaciones antiguas

  • tamaño:establece la rotación solo si los archivos indicados son más grandes que el tamaño especificado. Se pueden usar sufijos para indicar el formato del tamaño (por ejemplo, "k" para kilobytes, "M" para megabytes)

  • rotate:número de registros rotados que deben guardarse antes de eliminarse de forma permanente. Si se establece en 0, los archivos de registro se borrarán sin rotarlos.

En caso de que desee establecer las mismas reglas para varios archivos, puede agregar varias rutas, separándolas con una coma. Por ejemplo:

/var/log/custom_log, /var/log/alternative_log_file, /var/log/another_log {
                 

      …
                 

}

Esta configuración se usará para el archivo de registro personalizado, el archivo de registro alternativo y otro_registro.

Alternativamente, puede usar máscaras de archivo como:

/var/custom/logs/*, /var/log/custom_log {
                 

      # This configuration will rotate all the files in the directory. 

      # /var/custom/logs/* e il file /var/log/custom_log
                 

      ...

}

Uso de la configuración de fecha y texto

La configuración dateext le permite agregar la fecha de rotación al nombre del archivo, para que los datos de los registros se puedan reconocer fácilmente.

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

La configuración indicada arriba archivará el archivo custom.log tan pronto como alcance los 100M, hasta un máximo de 3 veces o después de 100 días. A través de la opción de compresión, el archivo archivado también se comprimirá en formato gzip.

Una vez rotados, los nombres de archivo tendrán la fecha de rotación como se muestra a continuación:

# ls /var/log

-rw-r--r--  1 user user 8980 2019-06-09 22:10 custom.log-20180609.gz

-rwxrwxrwx 1 user user    0 2019-06-09 22:11 custom.log

Registros de correo electrónico

Logrotate le permite ejecutar secuencias de comandos personalizadas cuando ocurren ciertos eventos, como después de cada rotación de registro, utilizando las palabras clave postrotate / endscript.

Un posible uso podría ser enviar los registros por correo electrónico al completar la rotación. Para continuar, primero, cree un script para enviar los archivos a su dirección de correo electrónico:

#!/bin/bash
                 

# Get all logs

tar -cvf /tmp/logpack.tar /var/log/messages*
                 

# Send logs as attachment 

echo "Log" | mail -s "log" [email protected] -A /tmp/logpack.tar

Guarde el archivo anterior en su directorio de inicio, por ejemplo /home/map.com username_s//endend.sh y asegúrese de habilitar los permisos necesarios a través de:

# sudo chmod u+x /home/user/sendlog.sh

Ahora, edite el archivo de configuración logrotate de la siguiente manera:

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

Guarde la configuración para aplicar los cambios.

Una vez completado, recibirá un correo electrónico con el archivo de registro descrito anteriormente en cada rotación de registro.


Linux
  1. Cómo instalar y usar logrotate para administrar archivos de registro en Ubuntu 18.04 LTS

  2. Cómo administrar las capacidades de archivos de Linux

  3. Cómo usar rsyslog para crear un servidor de agregación de registros de Linux

  4. Cómo vaciar un archivo de registro en Linux

  5. Cómo usar Logrotate para administrar registros en Ubuntu

Cómo instalar Logrotate en Ubuntu 16.04 LTS

¿Cómo usar el Administrador de archivos de cPanel?

¿Cómo usar gzip en Linux?

Cómo usar Linux para recuperar archivos borrados

Consejos de Ubuntu:cómo ver los archivos de registro del sistema en la GUI

Cómo comprimir un archivo en Linux