Cómo configurar y administrar la rotación del registro usando Logrotate en Linux

Cómo configurar y administrar la rotación del registro usando Logrotate en Linux

Uno de los directorios más interesantes (y quizás uno de los más importantes) en un sistema de Linux es /var/log. De acuerdo con el estándar de jerarquía del sistema de archivos, la actividad de la mayoría de los servicios que se ejecutan en el sistema se escriben en un archivo dentro de este directorio o uno de sus subdirectorios.

Dichos archivos se conocen como registro y son la clave para examinar cómo está funcionando el sistema (y cómo se ha comportado en el pasado). Registro también son la primera fuente de información en la que los administradores e ingenieros.

Si miramos el contenido de /var/log en un Centos/Rhel/Fedora y Debian/Ubuntu (para variedad) veremos los siguientes archivos de registro y subdirectorios.

Tenga en cuenta que el resultado puede ser algo diferente en su caso, dependiendo de los servicios que se ejecutan en su (s) sistema (s) y el tiempo que se han estado ejecutando.

En Rhel/Centos y Fedora

# ls /var /log 
Archivos de registro y directorios bajo el centavo 7

En Debian y Ubuntu

# ls /var /log 
Archivos de registro y directorios en Debian 8

En ambos casos, podemos observar que algunos de los nombres de registros terminan como se esperaba en "registro", Mientras que otros pasan a llamarse usando una fecha (por ejemplo, MAILLOG-20160822 en Cento) o comprimido (considere auténtico.registro.2.GZ y mysql.registro.1.GZ en Debian).

Este no es un comportamiento predeterminado basado en la distribución elegida, pero se puede cambiar a voluntad utilizando directivas en los archivos de configuración, como veremos en este artículo.

Si los registros se mantuvieran para siempre, eventualmente terminarían llenando el sistema de archivos donde /var/log residencia. Para evitar eso, el administrador del sistema puede usar una buena utilidad llamada logrotato para limpiar los registros periódicos.

En pocas palabras, logrotato cambiará el nombre o comprimirá el registro principal cuando se cumpla una condición (más sobre eso en un minuto) para que el próximo evento se registre en un archivo vacío.

Además, eliminará "viejo" registro de archivos y mantendrá los más recientes. Por supuesto, podemos decidir qué "viejo" medios y con qué frecuencia queremos que el logrotate limpie los registros para nosotros.

Instalación de Logrotate en Linux

Instalar logrotato, Solo use su administrador de paquetes:

---------- En Debian y Ubuntu ---------- # Aptitude Update && Aptitude install logrotate ---------- En Centos, Rhel y Fedora ---------- # yum Update && yum instalación de instalación 

Vale la pena y bien en cuenta que el archivo de configuración (/etc/logrotate.confusión) pueden indicar que se pueden colocar otras configuraciones más específicas para individuos .confusión Archivos en el interior /etc/logrotate.d.

Leído sugerido: Administrar registros del sistema (configure, gire e importe a la base de datos) utilizando Logrotate

Este será el caso si y solo si la siguiente línea existe y no se comenta:

incluir /etc /logrotate.d 

Nos quedaremos con este enfoque, ya que nos ayudará a mantener las cosas en orden y usar el De Debian caja para los siguientes ejemplos.

Configurar logrotate en Linux

Al ser una herramienta muy versátil, Logrotate proporciona muchas directivas para ayudarnos a configurar cuándo y cómo se girarán los registros, y lo que debería suceder después.

Insertemos los siguientes contenidos en /etc/logrotate.d/apache2.confusión (Tenga en cuenta que lo más probable es que tenga que crear ese archivo) y examinar cada línea para indicar su propósito:

apache2.confusión
/var/log/apache2/* rotar semanal 3 tamaño 10 m compress demandarCompress 

La primera línea indica que las directivas dentro del bloque se aplican a todos los registros dentro de /var/log/apache2:

  • semanalmente significa que la herramienta intentará rotar los registros semanalmente. Otros valores posibles son diarios y mensuales.
  • girar 3 indica que solo se deben mantener 3 registros rotados. Por lo tanto, el archivo más antiguo se eliminará en la cuarta ejecución posterior.
  • tamaño = 10m Establece el tamaño mínimo para la rotación que tendrá lugar a 10 m. En otras palabras, cada registro no se girará hasta que alcance los 10 MB.
  • comprimir y retrasar compress se utilizan para decir que todos los registros rotados, con la excepción del más reciente, deben comprimirse.

Ejecutemos una carrera en seco para ver qué haría Logrotate si realmente se ejecutara ahora. Utilizar el -d opción seguida del archivo de configuración (en realidad puede ejecutar logrotate omitiendo esta opción):

# logrotate -d /etc /logrotate.d/apache2.confusión 

Los resultados se muestran a continuación:

Gire los registros de Apache con logrotado

En lugar de comprimir los registros, podríamos cambiar el nombre de los fecha Cuando fueron rotados. Para hacer eso, usaremos el text directiva. Si nuestro formato de fecha es otro yyyymmdd, Podemos especificarlo usando formato de fecha.

Leído sugerido: Instale 'además' para monitorear la actividad de registro de los procesos del sistema Linux

Tenga en cuenta que incluso podemos evitar que la rotación suceda si el registro está vacío con notorgoso. Además, digamos a Logrotate que envíe el registro rotado al administrador del sistema ([correo electrónico protegido] En este caso) para su referencia (esto requerirá que se configure un servidor de correo, que está fuera del alcance de este artículo).

Si desea recibir correos electrónicos sobre Logrotate, puede configurar el servidor de correo Postfix como se muestra aquí: Instale el servidor de correo Postfix

Esta vez usaremos /etc/logrotate.D/calamar.confusión solo rotar /var/log/squid/access.registro:

calamar.confusión
/var/log/squid/access.log Monthly Create 0644 Root Root Rotate 5 size = 1m dateext dateFormat -%d%m%y Notifempty Mail [correo electrónico protegido] 

Como podemos ver en la imagen a continuación, este registro no necesitaba ser rotado. Sin embargo, cuando se cumple la condición de tamaño (tamaño = 1m), se cambiará el nombre del registro girado acceso.log-25082020 (Si el registro se giró en 25 de agosto de 2020) y el registro principal (acceso.registro) se recreará con permisos de acceso establecidos en 0644 y con raíz Como propietario y propietario del grupo.

Finalmente, cuando el número de registros finalmente llega 6, el registro más antiguo se enviará por correo a [correo electrónico protegido].

Gire los registros de calamares con logrotate

Ahora supongamos que desea ejecutar un comando personalizado cuando se realice la rotación. Para hacer eso, coloque la línea con dicho comando entre las directivas Postrotate y Endscript.

Por ejemplo, supongamos que queremos enviar un correo electrónico a Root cuando cualquiera de los registros dentro /var/log/myService se gira. Agreguemos las líneas en rojo a /etc/logrotate.D/calamar.confusión:

calamar.confusión
/var/log/myService/* Monthly Create 0644 Root Root Rotate 5 Size = 1M postrotate echo "Una rotación se llevó a cabo."| Correo de raíz endscript  

Por último, pero no menos importante, es importante tener en cuenta que las opciones presentes en /etc/logrotate.d/*.confusión anular aquellos en el archivo de configuración principal en caso de conflictos.

Logrotate y Cron

Por defecto, la instalación de Logrotate crea un archivo CRONTAB dentro /etc/cron.a diario llamado logrotato. Como es el caso con los otros archivos de Crontab dentro de este directorio, se ejecutará diariamente a partir de 6:25 am Si Anacron no está instalado.

Leído sugerido: 11 ejemplos de tareas de programación cron en Linux

De lo contrario, la ejecución comenzará 7:35 am. Para verificar, observe la línea que contiene cron.a diario en cualquiera /etc/crontab o /etc/anacrontab.

Resumen

En un sistema que genera varios registros, la administración de dichos archivos puede simplificarse enormemente utilizando Logrotate. Como hemos explicado en este artículo, girará automáticamente, comprimirá, eliminará y los registros de correo electrónico o cuando el archivo alcanza un tamaño dado.

Solo asegúrese de que esté listo para ejecutarse como un trabajo cron y que Logrotate facilitará las cosas. Para más detalles, consulte la página del hombre.

¿Tiene alguna pregunta o sugerencia sobre este artículo?? No dude en informarnos usando el formulario de comentarios a continuación.