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.
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
- Se você não conhece as configurações do
logrotate, leia o manual do logrotate. - Se você não conhece as configurações do
crontab, leia o manual do crontab.
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 dologrotate, 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 cronlogrotatede um componente. - Para o componente
edge-router, um cron joblogrotateextra 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:
- Verifique se o arquivo pode ser lido pelo usuário
apigee. - 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/. 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.