Abilita la rotazione dei log per i componenti perimetrali

La rotazione dei log, ovvero il processo di rotazione di più file di log in entrata e in uscita, 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 for Private Cloud, alcuni dei file di log principali di ogni componente apigee sono configurati con un meccanismo di rotazione predefinito. Ad esempio, sul componente processore di messaggi, i seguenti file sono configurati con un meccanismo di rotazione predefinito che utilizza 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.

Ognuno di questi componenti edge-* genera anche un file di log aggiuntivo che è un output reindirizzato della console del rispettivo componente. Nel caso del componente processore di messaggi, questo file è denominato /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 logback, ma utilizzando logrotate e crontab.

Prima di iniziare

Abilita rotazioni dei log

A partire dalla versione 4.52 di Edge for Private Cloud, quando installi un componente edge-*, viene creata automaticamente una voce crontab per la rotazione di questo log nel crontab dell'utente apigee. Questo cron job viene eseguito ogni ora per impostazione predefinita e utilizza l'utilità logrotate per ruotare i log. Se più componenti edge-* sono installati sullo stesso nodo (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 cron job logrotate, imposta il flag "ENABLE_LOGROTATE=n" nel file di configurazione silenziosa che utilizzi per l'installazione. Se il cron job non viene impostato durante l'installazione, puoi configurarlo in un secondo momento seguendo i passaggi per attivare il cron 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 di accesso e di errore 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 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 si trova nel file $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Ad esempio, nel caso di edge-message-processor, la configurazione logrotate del nodo si trova in $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Abilita il cron logrotate di un componente

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

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

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

Disattiva il cron logrotate di un componente

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

Ad esempio, per disattivare 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 comando logrotate specifico

Sul nodo in cui vuoi modificare la pianificazione cron di logrotate, apri il file di override della configurazione del componente corrispondente. 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 il seguente override della 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 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 una pianificazione cron più recente a 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 del componente logrotate.

Configurazioni logrotate aggiuntive

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

Configurazione Descrizione
conf_logrotate_bin_location Posizione del file binario logrotate. Valore predefinito: /usr/sbin/logrotate
conf_logrotate_status_file File di stato che acquisisce lo stato di runtime di logrotate: mostra le autorizzazioni di lettura/scrittura per l'utente apigee. Valore predefinito: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Quali log ruotare. Può includere caratteri jolly. Valore predefinito: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Numero di rotazioni. 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". Posticipa la compressione dell'ultimo file ruotato al ciclo di rotazione dei log successivo.
conf_logrotate_size Limite delle dimensioni dei log per la rotazione. Valore predefinito: "10M"

Utilizza il tuo meccanismo di rotazione dei log e cron

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

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 è denominato $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.