LINUX

Cómo instalar Logrotate y configurar la rotación de registros de Nginx

nginx log rotarLogrotate es una utilidad diseñada para facilitar la administración de sistemas que generan una gran cantidad de archivos de registro. Se encarga de la rotación, compresión, eliminación y envío automático de archivos de registro. Todos los servicios o aplicaciones implementados en el servidor generan registros en un archivo para cada acción que un usuario realiza en el sistema / aplicación /. Durante un período de tiempo, se convierte en una tarea tediosa administrar dichos archivos de registro. Estos archivos de registro crecerán en tamaños grandes y el rendimiento de la aplicación se deteriorará periódicamente. A largo plazo, contribuirá al riesgo potencial de hacer que un sistema no responda debido a la falta de espacio en el disco.

Para mitigar estos problemas y mantener los archivos de registro, utilizamos «logrotate». Esta herramienta está diseñada para simplificar la administración de archivos de registro en sistemas que generan muchos archivos de registro grandes.

En este artículo, hablaremos más sobre la utilidad logrotate y cómo configurar la rotación de registros de Nginx.

Instalación

En la mayoría de las distribuciones, está instalado y configurado de forma predeterminada. Para instalar el paquete, verifique si el paquete está instalado, de lo contrario instale el paquete como se describe.

# rpm -qa | grep logrotate
 logrotate-3.8.6-12.el7.x86_64

Aquí, parece estar instalado de forma predeterminada. Si esta consulta no informa ninguno, entonces puede instalarlo en un servidor CentOS 7 con el siguiente comando:

#yum install logrotate -y

Ejecutando logrotate

Logrotate ayuda a los administradores del sistema a rotar y archivar sistemáticamente cualquier archivo de registro producido por el sistema y, por lo tanto, reduce el requisito de espacio en disco del sistema operativo. Normalmente, logrotate se ejecuta como un trabajo cron diario. No modificará un registro varias veces al día.

# cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi

Comprensión de los archivos de configuración

De forma predeterminada, cuando se instala logrotate, puede ubicar su archivo de configuración principal aquí: /etc/logrotate.conf

Logrotate incluye el directorio /etc/logrotate.d/ donde configura los diferentes registros (demonios y servicios en los que desea rotar los registros). Todos los archivos de configuración específicos del servicio se almacenan en /etc/logrotate.d/.

El archivo de configuración principal /etc/logrotate.conf contiene una configuración genérica. Por favor, eche un vistazo a mi archivo de configuración de logrotate predeterminado:

Línea 3 – weekly: Esta opción de configuración asegura una rotación semanal de todos los archivos de registro definidos en el archivo de configuración principal y en el directorio /etc/logrotate.d/.
Línea 6 – rotate 4: Garantiza que logrotate mantenga una copia de seguridad de 4 semanas de todos los archivos de registro.
Línea 9 – create: esta opción indica a logrotate que cree nuevos archivos de registro vacíos después de cada rotación
Línea 12 – dateext: Esto agrega una extensión a todos los archivos de registro rotados en forma de fecha en la que logrotate procesó cada archivo de registro en particular.
Línea 15 – compress: Esto comprime el archivo de registro girado.
Línea 18 – include /etc/logrotate.d: Esto incluye todas las demás configuraciones del directorio /etc/logrotate.d.
La línea 21 – 33 contiene una configuración de rotación de registro de servicio específico

Configuración de la rotación de registros de Nginx

Para la mayoría de los servicios, se creará automáticamente un archivo de configuración de rotación de registro de servicio predeterminado en el /etc/logrotate.d/ carpeta. Todos los paquetes suelen incluir una configuración de rotación de registros, incluso si logrotate no está instalado en el sistema. Sin embargo, si hemos compilado Nginx a partir de fuentes, será necesario definir nuestra propia configuración de rotación de registros manualmente dentro del /etc/logrotate.d/ carpeta con la ubicación del archivo de registro mencionado en el archivo de configuración de Nginx.

Consulte la configuración predeterminada de rotación de registros de Nginx creada en mi servidor por la instalación.

# cat -n /etc/logrotate.d/nginx
1 /var/log/nginx/*log {
2 create 0644 nginx nginx
3 daily
4 rotate 10
5 missingok
6 notifempty
7 compress
8 sharedscripts
9 postrotate
10 /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
11 endscript
12 }
13

Línea 1 – /var/log/nginx/*log: Esto define todos los archivos de registro de Nginx ubicados en / var / log / nginx /. SUGERENCIA: Si desea incluir varios archivos de registro en un solo archivo de configuración, utilice un comodín, como este «/ var / log / nginx / * log». Para un solo archivo de registro, puede mencionar ese archivo de registro como «/var/log/nginx/error.log».
Línea 2 – create: Esto crea un nuevo archivo de registro y establece el permiso 644 con la propiedad nginx.
Línea 3 – daily: asegura la rotación diaria
Línea 4 – rotate 10: Guarde 10 copias del archivo de registro.
Línea 5 – missingok: No genere un error si falta el archivo de registro.
Línea 6 – notifempty: No gire el archivo de registro si está vacío.
Línea 7 – compress: Comprima las copias antiguas de los archivos de registro con gzip (1) de forma predeterminada
Línea 8 – sharedscripts: Esto hace que los scripts se ejecuten una vez, sin importar cuántos registros coincidan con el patrón con comodines, y se les pasa el patrón completo.
Línea 9 a 11 – postrotate/endscript: Las líneas entre postrotate y endcript (las cuales deben aparecer en líneas por sí mismas) se ejecutan después de que se gira el archivo de registro. Estas directivas solo pueden aparecer dentro de una definición de archivo de registro.

Esta utilidad logrotate tiene muchas más opciones de configuración. Puede obtener una lista completa de esas opciones en su página de manual simplemente ejecutando esto:

#man logrotate

Comprobación del estado de la logrotación

El archivo «/var/lib/logrotate.status» contiene toda la información sobre el estado de rotación del registro. Por lo tanto, para validar el estado de ejecución de logrotate para cada archivo de configuración agregado y verificar el estado de cada uno de ellos, podemos ejecutar el siguiente comando; Enumerará el tiempo de ejecución de cada configuración.
expediente.

# cat /var/lib/logrotate.status
logrotate state -- version 2
"/var/log/nginx/error.log" 2017-8-14-7:45:47
"/var/log/yum.log" 2017-8-14-7:45:47
"/var/log/chrony/*.log" 2017-8-14-7:0:0
"/var/log/wtmp" 2017-8-14-7:45:47
"/var/log/spooler" 2017-8-14-7:0:0
"/var/log/btmp" 2017-8-14-7:45:47
"/var/log/maillog" 2017-8-14-7:45:47
"/var/log/wpa_supplicant.log" 2017-8-14-7:0:0
"/var/log/secure" 2017-8-14-7:45:47
"/var/log/nginx/access.log" 2017-8-14-7:45:47
"/var/log/ppp/connect-errors" 2017-8-14-7:0:0
"/var/log/messages" 2017-8-14-7:45:47
"/var/log/cron" 2017-8-14-7:45:47

Esto le proporcionará el último estado de logrotate.

Podemos ejecutar un archivo logrotate específico de forma manual o forzada mediante el siguiente comando.

logrotate -f /etc/logrotate.d/nginx

O incluso podemos rotar todos los registros en modo detallado con el siguiente comando:

logrotate -f -v /etc/logrotate.conf

Logrotate le ayuda a administrar sus archivos de registro de manera eficiente y a ahorrar algo de espacio en disco comprimiendo / eliminando sus archivos de registro. También puede ayudarlo a archivar sus archivos de registro para una referencia futura creando una copia adicional o enviándole por correo electrónico los archivos de registro recién rotados. Incluso podemos ajustar la configuración para manejar cada archivo de registro diariamente, semanalmente, mensualmente o cuando crezca demasiado. Recomendaría usar la utilidad logrotate para una fácil administración de sus archivos de registro.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar