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

La rotación de registros, el proceso de rotar varios archivos de registro hacia adentro y fuera de su uso, simplifica la administración de sistemas que generan una gran cantidad de archivos de registro. La rotación de registros permite la rotación, compresión, eliminación y envío automáticos de los archivos de registro.

En Edge para nube privada, algunos de los archivos de registro principales en cada componente apigee se configuran con un mecanismo de rotación predeterminado. Por ejemplo, en el componente de Message Processor, los siguientes archivos se configuran con un mecanismo de rotación predeterminado que usa 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 correspondiente. En el caso del componente de 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 biblioteca de Logback no realiza la rotación de estos archivos, sino mediante logrotate y crontab.

Antes de comenzar

Habilitar rotaciones de registros

A partir de la versión 4.52 de Edge para nube privada, cuando instalas un componente edge-*, se crea de forma automática una entrada crontab para rotar este registro en el crontab del usuario 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 edge-* en el mismo nodo (por ejemplo, en una instalación todo en uno, o si el router y el procesador de mensajes están instalados en un nodo), cada componente tendrá su propia entrada cron para rotar sus registros respectivos.

Notas:

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

En los siguientes ejemplos, se ilustran varias configuraciones y operaciones administrativas que puedes realizar.

Visualiza las entradas 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 de logrotate de Edge-message-processor, ejecuta el siguiente comando:

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

Ver la configuración de logrotate de un componente

La configuración 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.

Habilitar el cron de logrotate de un componente

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

Por ejemplo, para habilitar el cron de logrotate de Edge-message-processor, ejecuta el siguiente comando:

$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 de logrotate de Edge-message-processor, ejecuta el siguiente comando:

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

Cambia el programa cron de un comando logrotate específico

En el nodo en el que deseas cambiar el programa cron 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 la 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, sigue estos pasos:

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

Por ejemplo, para aplicar la programación 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 aplicaron los cambios, revisa las entradas cron o consulta la entrada cron logrotate del componente.

Parámetros de configuración adicionales de logrotate

Al igual que los pasos que se mencionan en la sección anterior para modificar el programa cron, también puedes modificar configuraciones adicionales. En la siguiente tabla, se describen estas configuraciones:

Configuración Descripción
conf_logrotate_bin_location Ubicación del objeto binario logrotate. Valor predeterminado: /usr/sbin/logrotate
conf_logrotate_status_file Archivo de estado que captura el estado del entorno de ejecución de logrotate: muestra 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. Configuración predeterminada: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Cantidad de rotaciones. Configuración predeterminada: “5”.
conf_logrotate_compress Indica si se deben comprimir los archivos rotados. Configuración predeterminada: “compress”
conf_logrotate_compress_type Tipo de compresión Valor predeterminado: “delaycompress”. Pospón la compresión del último archivo rotado al siguiente ciclo de logrotate.
conf_logrotate_size 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 la configuración proporcionada por Apigee no cumple tus requisitos para rotar el <component>.log, debes usar tu propio mecanismo de rotación de registros con herramientas como logrotate y otras. Por ejemplo, las opciones de configuración que proporciona Apigee te permiten rotar los registros por tamaño, pero deseas hacerlo en función de la fecha, la hora y 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. En este archivo, se incluye la entrada cron y el comando que ejecuta Apigee para la rotación de registros. Si deseas usar logrotate, pero no los archivos de configuración de Apigee, puedes crear tu propio archivo de configuración logrotate y usar un comando logrotate similar para realizar la rotación del registro.