Habilita la rotación de registros para los componentes de Edge

La rotación de registros, es decir, el proceso de rotar varios archivos de registro para que entren y salgan de uso, simplifica la administración de los sistemas que generan grandes cantidades de archivos de registro. La rotación de registros habilita la rotación, la compresión, la eliminación y el envío por correo electrónico automáticos de los archivos de registro.

En Edge para nube privada, algunos de los archivos de registro principales de cada componente de apigee se configuran con un mecanismo de rotación predeterminado. Por ejemplo, en el componente Message Processor, los siguientes archivos se configuran con un mecanismo de rotación predeterminado con logback:

  • /opt/apigee/var/log/edge-message-processor/logs/system.log
  • /opt/apigee/var/log/edge-message-processor/logs/events.log
  • /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
  • /opt/apigee/var/log/edge-message-processor/logs/configurations.log
  • /opt/apigee/var/log/edge-message-processor/logs/transactions.log

Existen archivos similares para otros componentes de edge-* (cuyos nombres comienzan con edge-), como edge-management-server, edge-router, edge-postgres-server y edge-qpid-server.

Cada uno de estos componentes de edge-* también genera un archivo de registro adicional que es un resultado redireccionado de la consola del componente respectivo. En el caso del componente Message Processor, este archivo se llama /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Otros componentes de edge-* generan un archivo similar. La rotación de estos archivos no la realiza la biblioteca de logback, sino que se usan logrotate y crontab.

Antes de comenzar

Habilita las rotaciones de registros

A partir de la versión 4.52 de Edge para nube privada, cuando instalas un componente de edge-*, se crea automáticamente una entrada de crontab para rotar este registro en el crontab del usuario de apigee. Este trabajo cron se ejecuta cada hora de forma predeterminada y usa la utilidad logrotate para rotar los registros. Si se instalan varios componentes de edge-* en el mismo nodo (por ejemplo, en una instalación todo en uno o si el router y el Message Processor se instalan en un nodo), cada componente tendrá su propia entrada de cron para rotar sus registros respectivos.

Notas:

  • Si durante la instalación de un componente de edge-*, no deseas configurar automáticamente un cronjob de logrotate, establece la marca “ENABLE_LOGROTATE=n” en el archivo de configuración silenciosa que usas para la instalación. Si el trabajo cron no se configura durante la instalación, puedes configurarlo más tarde siguiendo los pasos para habilitar el cron logrotate de un componente.
  • Para el componente edge-router, también se configura un trabajo cron logrotate adicional de forma predeterminada. Este cron rota los registros de acceso y errores que genera Nginx.

En los siguientes ejemplos, se ilustran varias opciones de configuración y operaciones administrativas que puedes realizar.

Visualiza las entradas de cron en un nodo

sudo crontab -u apigee -l

Visualiza la entrada cron logrotate de un componente

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s

Por ejemplo, para ver el cron logrotate de edge-message-processor, ejecuta lo siguiente:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s

Visualiza la configuración de logrotate de un componente

La configuración de logrotate de un componente se puede encontrar en el archivo $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Por ejemplo, en el caso de edge-message-processor, la configuración logrotate del nodo se puede encontrar en $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Habilita el cron logrotate de un componente

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Por ejemplo, para habilitar el cron logrotate de edge-message-processor, ejecuta lo siguiente:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

Inhabilita el cron logrotate de un componente

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d

Por ejemplo, para inhabilitar el cron logrotate de edge-message-processor, ejecuta lo siguiente:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d

Cambia la programación cron de un comando logrotate específico

En el nodo en el que deseas cambiar la programación de cron de logrotate, abre el archivo de anulación de configuración del componente correspondiente. Los archivos de anulación de configuración del componente edge-* se enumeran en la siguiente tabla:

Componente Archivo de anulación de configuración
edge-message-processor $APIGEE_ROOT/customer/application/message-processor.properties
edge-management-server $APIGEE_ROOT/customer/application/management-server.properties
edge-router $APIGEE_ROOT/customer/application/router.properties
edge-postgres-server $APIGEE_ROOT/customer/application/postgres-server.properties
edge-qpid-server $APIGEE_ROOT/customer/application/qpid-serverproperties

Abre el archivo de anulación adecuado y establece la siguiente anulación de configuración. En el siguiente ejemplo, se anula el trabajo cron para que se ejecute en el minuto 0 de cada hora.

conf_logrotate_cron_duration=0 * * * *

Para establecer la anulación de la configuración, haz lo siguiente:

  1. Asegúrate de que el usuario apigee pueda leer el archivo.
  2. Aplica la programación cron más reciente al componente:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Por ejemplo, para aplicar una programación de cron más reciente al logrotate de edge-message-processor, ingresa lo siguiente:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

Para verificar que se hayan aplicado los cambios, revisa las entradas de cron o consulta la entrada de cron del componente logrotate.

Configuraciones adicionales de logrotate

De manera similar a los pasos que se indican en la sección anterior para modificar la programación de cron, también puedes modificar parámetros de configuración adicionales. En la siguiente tabla, se describen estos parámetros de configuración:

Configuración Descripción
conf_logrotate_bin_location Es la ubicación del objeto binario de logrotate. Valor predeterminado: /usr/sbin/logrotate
conf_logrotate_status_file Es el archivo de estado que captura el estado del entorno de ejecución de logrotate. Debe tener permisos de lectura y escritura para el usuario apigee. Predeterminada: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Qué registros rotar. Puede incluir comodines. Predeterminado: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Es la cantidad de rotaciones. Valor predeterminado: “5”
conf_logrotate_compress Indica si se deben comprimir los archivos rotados. Valor predeterminado: “compress”
conf_logrotate_compress_type Es el tipo de compresión. Valor predeterminado: “delaycompress”. Pospone la compresión del archivo rotado más reciente al siguiente ciclo de logrotate.
conf_logrotate_size Es el límite de tamaño del registro para la rotación. Valor predeterminado: “10M”

Usa tu propio mecanismo de rotación de registros y cron

Si las configuraciones que proporciona Apigee no cumplen con tus requisitos para rotar el archivo <component>.log, puedes usar tu propio mecanismo de rotación de registros con herramientas como logrotate u otras. Por ejemplo, los parámetros de configuración que proporciona Apigee te permiten rotar los registros por tamaño, pero deseas rotarlos según la fecha y hora, o bien otros factores. En esos casos, debes inhabilitar el cron logrotate que proporciona Apigee y configurar tus propios trabajos cron según sea necesario.

Si necesitas consultar la entrada cron de rotación de registros de Apigee, puedes encontrarla en el archivo $APIGEE_ROOT//logrotate/logrotate.cron. Por ejemplo, en el caso de edge-message-processor, este archivo se llama $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Este archivo incluye la entrada de cron y el comando que ejecuta Apigee para la rotación de registros. Si deseas usar logrotate, pero no quieres usar las configuraciones de Apigee, puedes crear tu propio archivo de configuración de logrotate y usar un comando logrotate similar para realizar la rotación de registros.