Abilita la rotazione dei log per i componenti perimetrali

La rotazione dei log, ossia il processo di rotazione di più file di log dentro e fuori uso, semplifica l'amministrazione dei sistemi che generano un numero elevato di file di log. La rotazione dei log consente la rotazione, la compressione, la rimozione e l'invio automatici dei file di log.

In Edge per il cloud privato, alcuni dei file di log principali di ciascun componente apigee sono configurati con un meccanismo di rotazione predefinito. Ad esempio, nel componente Message Processor, i seguenti file sono configurati con un meccanismo di rotazione predefinito utilizzando 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

Esistono file simili per altri componenti edge-* (i cui nomi iniziano con edge-), come edge-management-server, edge-router, edge-postgres-server e edge-qpid-server.

Ciascuno di questi componenti edge-* genera anche un file di log aggiuntivo che è un output reindirizzato della rispettiva console del componente. Nel caso del componente Message Processor, questo file è chiamato /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Altri componenti edge-* generano un file simile. La rotazione di questi file non viene eseguita dalla libreria di logback, ma piuttosto dall'utilizzo di logrotate e crontab.

Prima di iniziare

Abilita rotazioni dei log

A partire da Edge per Cloud privato versione 4.52, quando installi un componente edge-*, viene creata automaticamente una voce crontab per la rotazione del log nella crontab dell'utente apigee. Questo cron job viene eseguito ogni ora per impostazione predefinita e utilizza l'utilità logrotate per ruotare i log. Se sullo stesso nodo sono installati più componenti edge-* (ad esempio, in un'installazione all-in-one o se il router e il processore di messaggi sono installati su un nodo), ogni componente avrà la propria voce cron per la rotazione dei rispettivi log.

Note

  • Se durante l'installazione di un componente edge-* non vuoi configurare automaticamente un cronjob logrotate, imposta il flag "ENABLE_LOGROTATE=n" nel file di configurazione invisibile che utilizzi per l'installazione. Se il cron job non viene configurato durante l'installazione, puoi farlo in un secondo momento seguendo i passaggi per abilitare il cron di logrotate di un componente.
  • Per il componente edge-router, per impostazione predefinita viene configurato anche un cron job logrotate aggiuntivo. Questo cron ruota i log degli accessi e degli errori generati da Nginx.

I seguenti esempi illustrano varie configurazioni e operazioni amministrative che puoi eseguire.

Visualizza le voci cron su un nodo

sudo crontab -u apigee -l

Visualizza la voce cron logrotate di un componente

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

Ad esempio, per visualizzare il cron di logrotate di edge-message-processor, esegui:

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

Visualizza la configurazione logrotate di un componente

La configurazione logrotate di un componente è disponibile nel file $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Ad esempio, nel caso del processore di messaggi periferico, la configurazione logrotate del nodo è disponibile in $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Attiva il cron logrotate di un componente

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

Ad esempio, per abilitare il cron logrotate di edge-message-processor, esegui:

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

Disabilita il cron logrotate di un componente

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

Ad esempio, per disabilitare il cron logrotate di edge-message-processor, esegui:

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

Modifica la pianificazione cron di un determinato comando logrotate

Sul nodo in cui vuoi modificare la pianificazione cron di logrotate, apri il relativo file di override della configurazione del componente. I file di override della configurazione del componente edge-* sono elencati nella tabella seguente:

Componente File di override della configurazione
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

Apri il file di override appropriato e imposta la seguente sostituzione di configurazione. L'esempio seguente esegue l'override del cron job in modo che venga eseguito al minuto 0 di ogni ora.

conf_logrotate_cron_duration=0 * * * *

Per impostare l'override della configurazione:

  1. Assicurati che il file sia leggibile dall'utente di apigee.
  2. Applica la pianificazione cron più recente al componente:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Ad esempio, per applicare la pianificazione cron più recente all'oggetto logrotate di edge-message-processor, inserisci:

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

Per verificare che le modifiche siano state applicate, controlla le voci cron o visualizza la voce cron logrotate del componente.

Altre configurazioni di logrotate

Analogamente ai passaggi per la modifica della pianificazione cron elencati nella sezione precedente, puoi anche modificare configurazioni aggiuntive. La tabella seguente descrive queste configurazioni:

Configurazione Descrizione
conf_logrotate_bin_location Posizione del programma binario logrotate. URL predefinito: /usr/sbin/logrotate
conf_logrotate_status_file File di stato che acquisisce lo stato di runtime di logrotate: il programma dispone delle autorizzazioni di lettura/scrittura per l'utente apigee. Valore predefinito: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Quali log ruotare. Possono includere caratteri jolly. Valore predefinito: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Conteggio rotazione. Valore predefinito: "5"
conf_logrotate_compress Indica se comprimere i file ruotati. Valore predefinito: "compress"
conf_logrotate_compress_type Tipo di compressione. Valore predefinito: "delaycompress". Rimanda la compressione dell'ultimo file ruotato al ciclo logrotate successivo.
conf_logrotate_size Limite di dimensione del log per la rotazione. Valore predefinito: "10 M"

Usa il tuo meccanismo di rotazione dei log e il tuo cron

Se i requisiti per la rotazione di <component>.log non sono soddisfatti dalle configurazioni fornite da Apigee, utilizzi il tuo meccanismo di rotazione dei log utilizzando strumenti come logrotate o altri. Ad esempio, le configurazioni fornite da Apigee ti consentono di ruotare i log in base alle dimensioni, ma vuoi farlo in base alla data/ora o ad altri fattori. In questi casi, devi disabilitare il cron di logrotate fornito da Apigee e configurare i tuoi cron job secondo necessità.

Se devi fare riferimento alla voce cron di rotazione dei log di Apigee, puoi trovarla nel file $APIGEE_ROOT//logrotate/logrotate.cron. Ad esempio, nel caso di edge-message-processor, questo file si chiama $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Questo file include sia la voce cron sia il comando eseguito da Apigee per la rotazione dei log. Se vuoi utilizzare logrotate ma non vuoi utilizzare le configurazioni di Apigee, puoi creare il tuo file di configurazione logrotate e utilizzare un comando logrotate simile per eseguire la rotazione dei log.