Ativar a rotação de registros para componentes do Edge

A rotação de registros, o processo de alternar o uso de vários arquivos de registro, simplifica a administração de sistemas que geram um grande número de arquivos de registro. A rotação de registros permite a rotação, compactação, remoção e envio automáticos de arquivos de registro.

No Edge para nuvem privada, alguns dos principais arquivos de registro em cada componente apigee são configurados com um mecanismo de rotação padrão. Por exemplo, no componente do processador de mensagens, os arquivos a seguir são configurados com um mecanismo de rotação padrão usando o 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

Existem arquivos semelhantes para outros componentes do edge-* (com nomes que começam com edge-), como edge-management-server, edge-router, edge-postgres-server e edge-qpid-server.

Cada um desses componentes do edge-* também gera um arquivo de registro adicional, que é uma saída redirecionada do console do respectivo componente. No caso do componente do processador de mensagens, esse arquivo é chamado de /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Outros componentes do edge-* geram um arquivo semelhante. A rotação desses arquivos não é feita pela biblioteca logback, mas sim usando logrotate e crontab.

Antes de começar

Ativar rotações de registros

A partir da versão 4.52 do Edge para nuvem privada, quando você instala um componente edge-*, uma entrada crontab para alternar esse registro é criada automaticamente no crontab do usuário apigee. Esse cron job é executado a cada hora por padrão e usa o utilitário logrotate para alternar os registros. Se vários componentes edge-* estiverem instalados no mesmo nó (por exemplo, em uma instalação completa ou se o roteador e o processador de mensagens estiverem instalados em um nó), cada componente terá a própria entrada cron para alternar os respectivos registros.

Observações:

  • Se, durante a instalação de um componente do edge-*, você não quiser configurar automaticamente um cronjob do logrotate, defina a flag "ENABLE_LOGROTATE=n" no arquivo de configuração silenciosa usado para a instalação. Se o cron job não for definido durante a instalação, configure-o mais tarde seguindo as etapas para ativar o cron logrotate de um componente.
  • Para o componente edge-router, um cron job logrotate extra também é configurado por padrão. Esse cron alterna os registros de acesso e de erro gerados pelo Nginx.

Os exemplos a seguir ilustram várias configurações e operações administrativas que podem ser realizadas.

Ver entradas cron em um nó

sudo crontab -u apigee -l

Ver a entrada cron logrotate de um componente

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

Por exemplo, para ver o cron logrotate do edge-message-processor, execute:

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

Ver a configuração logrotate de um componente

A configuração logrotate de um componente pode ser encontrada no arquivo $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Por exemplo, no caso de edge-message-processor, a configuração logrotate do nó pode ser encontrada em $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Ativar o cron logrotate de um componente

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

Por exemplo, para ativar o cron logrotate do edge-message-processor, execute:

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

Desativar o cron logrotate de um componente

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

Por exemplo, para desativar o cron logrotate do edge-message-processor, execute:

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

Mudar a programação cron de um comando logrotate específico

No nó em que você quer mudar a programação cron de logrotate, abra o arquivo de substituição de configuração do respectivo componente. Os arquivos de substituição de configuração do componente edge-* estão listados na tabela abaixo:

Componente Arquivo de substituição de configuração
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

Abra o arquivo de substituição apropriado e defina a seguinte substituição de configuração. O exemplo abaixo substitui o cron job para ser executado no minuto 0 de cada hora.

conf_logrotate_cron_duration=0 * * * *

Para definir a substituição de configuração:

  1. Verifique se o arquivo pode ser lido pelo usuário apigee.
  2. Aplique a programação cron mais recente ao componente:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Por exemplo, para aplicar uma programação cron mais recente ao logrotate do edge-message-processor, digite:

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

Para verificar se as alterações foram aplicadas, verifique as entradas cron ou veja a entrada cron logrotate do componente.

Outras configurações do logrotate

Assim como as etapas listadas na seção acima para modificar a programação do cron, também é possível modificar outras configurações. A tabela abaixo descreve essas configurações:

Configuração Descrição
conf_logrotate_bin_location Local do binário logrotate. Padrão: /usr/sbin/logrotate
conf_logrotate_status_file Arquivo de status que captura o status de execução do logrotate: mostra que tem permissões de leitura/gravação para o usuário apigee. Padrão: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Quais registros serão rotacionados. Pode incluir caracteres curinga. Padrão: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Contagem de rotações. Padrão: "5"
conf_logrotate_compress Se os arquivos rotacionados devem ser compactados. Padrão: "compress"
conf_logrotate_compress_type Tipo de compactação. Padrão: "delaycompress". Adia a compactação do arquivo rotacionado mais recente para o próximo ciclo do logrotate.
conf_logrotate_size Limite de tamanho do registro para rotação. Padrão: "10M"

Usar seu próprio mecanismo de rotação de registros e cron

Se os requisitos para alternar o <component>.log não forem atendidos pelas configurações fornecidas pela Apigee, use seu próprio mecanismo de rotação de registros usando ferramentas como logrotate ou outras. Por exemplo, as configurações fornecidas pela Apigee permitem alternar registros por tamanho, mas você quer alternar registros com base na data/hora ou em outros fatores. Nesses casos, desative o cron logrotate fornecido pela Apigee e configure seus próprios cron jobs conforme necessário.

Se você precisar consultar a entrada cron de rotação de registros da Apigee, ela estará no arquivo $APIGEE_ROOT//logrotate/logrotate.cron. Por exemplo, no caso de edge-message-processor, esse arquivo é chamado de $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Esse arquivo inclui a entrada cron e o comando executado pela Apigee para rotação de registros. Se você quiser usar logrotate, mas não quiser usar as configurações da Apigee, crie seu próprio arquivo de configuração logrotate e use um comando logrotate semelhante para realizar a rotação de registros.