Logrotation für Edge-Komponenten aktivieren

Die Logrotation, also das Rotieren mehrerer Logdateien, vereinfacht die Verwaltung von Systemen, die eine große Anzahl von Logdateien generieren. Die Logrotation ermöglicht die automatische Rotation, Komprimierung, Entfernung und den Versand von Logdateien.

In Edge for Private Cloud sind einige der Hauptprotokolldateien auf jeder apigee-Komponente mit einem Standardrotationsmechanismus konfiguriert. In der Message Processor-Komponente werden beispielsweise die folgenden Dateien mit einem Standardrotationsmechanismus mithilfe von Logback konfiguriert:

  • /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

Ähnliche Dateien gibt es für andere edge-*-Komponenten (deren Namen mit edge- beginnen), z. B. edge-management-server, edge-router, edge-postgres-server und edge-qpid-server.

Jede dieser edge-*-Komponenten generiert außerdem eine zusätzliche Logdatei, die eine umgeleitete Ausgabe der Konsole der jeweiligen Komponente ist. Im Fall der Message Processor-Komponente heißt diese Datei /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Andere edge-*-Komponenten generieren eine ähnliche Datei. Die Rotation dieser Dateien erfolgt nicht über die Logback-Bibliothek, sondern über logrotate und crontab.

Hinweis

  • Wenn Sie mit logrotate-Konfigurationen nicht vertraut sind, lesen Sie das logrotate-Handbuch.
  • Wenn Sie mit crontab-Konfigurationen nicht vertraut sind, lesen Sie das Crontab-Handbuch.

Logrotationen aktivieren

Ab Edge for Private Cloud Version 4.52 wird bei der Installation einer edge-*-Komponente automatisch ein crontab-Eintrag für die Rotation dieses Logs im crontab des apigee-Nutzers erstellt. Dieser Cronjob wird standardmäßig jede Stunde ausgeführt und verwendet das Dienstprogramm logrotate, um Logs zu rotieren. Wenn mehrere edge-*-Komponenten auf demselben Knoten installiert sind (z. B. in einer All-in-One-Installation oder wenn der Router und der Message Processor auf einem Knoten installiert sind), hat jede Komponente einen eigenen Cron-Eintrag für die Rotation der jeweiligen Logs.

Hinweise:

  • Wenn Sie während der Installation einer edge-*-Komponente nicht automatisch einen logrotate-Cronjob einrichten möchten, setzen Sie das Flag „ENABLE_LOGROTATE=n“ in der Konfigurationsdatei für die unbeaufsichtigte Installation, die Sie für die Installation verwenden. Wenn der Cronjob während der Installation nicht festgelegt wird, können Sie ihn später einrichten. Folgen Sie dazu der Anleitung zum Aktivieren des logrotate-Cronjobs einer Komponente.
  • Für die Komponente edge-router wird standardmäßig auch ein zusätzlicher logrotate-Cronjob konfiguriert. Dieser Cron rotiert die von Nginx generierten Zugriffs- und Fehlerlogs.

Die folgenden Beispiele veranschaulichen verschiedene Konfigurationen und administrative Vorgänge, die Sie ausführen können.

Cron-Einträge auf einem Knoten ansehen

sudo crontab -u apigee -l

logrotate-Cron-Eintrag einer Komponente ansehen

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

Wenn Sie beispielsweise den Cron-Job logrotate von edge-message-processor aufrufen möchten, führen Sie folgenden Befehl aus:

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

logrotate-Konfiguration einer Komponente ansehen

Die logrotate-Konfiguration einer Komponente finden Sie in der Datei $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Im Fall von Edge-Message-Processor befindet sich die logrotate-Konfiguration des Knotens beispielsweise in $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

logrotate-Cron einer Komponente aktivieren

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

Führen Sie beispielsweise Folgendes aus, um den Cron-Job logrotate von Edge-Message-Processor zu aktivieren:

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

logrotate-Cron einer Komponente deaktivieren

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

So deaktivieren Sie beispielsweise den Cron-Job logrotate von edge-message-processor:

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

Cron-Zeitplan eines bestimmten logrotate-Befehls ändern

Öffnen Sie auf dem Knoten, auf dem Sie den Cron-Zeitplan für logrotate ändern möchten, die Konfigurationsüberschreibungsdatei der entsprechenden Komponente. Die Konfigurationsüberschreibungsdateien der edge-*-Komponente sind in der folgenden Tabelle aufgeführt:

Komponente Datei zum Überschreiben der Konfiguration
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

Öffnen Sie die entsprechende Überschreibungsdatei und legen Sie die folgende Konfigurationsüberschreibung fest. Im folgenden Beispiel wird der Cronjob so überschrieben, dass er zur 0. Minute jeder Stunde ausgeführt wird.

conf_logrotate_cron_duration=0 * * * *

So legen Sie die Konfigurationsüberschreibung fest:

  1. Achten Sie darauf, dass die Datei vom Nutzer apigee gelesen werden kann.
  2. Wenden Sie den neueren Cron-Zeitplan auf die Komponente an:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Wenn Sie beispielsweise einen neueren Cron-Zeitplan auf logrotate von edge-message-processor anwenden möchten, geben Sie Folgendes ein:

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

Prüfen Sie, ob die Änderungen übernommen wurden. Dazu können Sie entweder die Cron-Einträge oder den Cron-Eintrag der Komponente logrotate aufrufen.

Zusätzliche logrotate-Konfigurationen

Ähnlich wie bei den Schritten im obigen Abschnitt zum Ändern des Cron-Zeitplans können Sie auch zusätzliche Konfigurationen ändern. In der folgenden Tabelle werden diese Konfigurationen beschrieben:

Konfiguration Beschreibung
conf_logrotate_bin_location Speicherort der logrotate-Binärdatei. Standardwert: /usr/sbin/logrotate
conf_logrotate_status_file Statusdatei, die den Laufzeitstatus von logrotate erfasst – muss Lese-/Schreibberechtigungen für den Nutzer apigee haben. Standard: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Welche Logs rotiert werden sollen. Kann Platzhalter enthalten. Standard: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Anzahl der Rotationen. Standard: „5“
conf_logrotate_compress Gibt an, ob rotierte Dateien komprimiert werden sollen. Standard: „compress“
conf_logrotate_compress_type Komprimierungstyp. Standard: „delaycompress“. Verschiebt die Komprimierung der zuletzt rotierten Datei auf den nächsten logrotate-Zyklus.
conf_logrotate_size Größenlimit für die Rotation von Logs. Standard: „10M“

Eigenen Logrotationsmechanismus und Cron verwenden

Wenn Ihre Anforderungen für die Rotation der Datei <component>.log nicht durch die von Apigee bereitgestellten Konfigurationen erfüllt werden, können Sie Ihren eigenen Mechanismus für die Logrotation mit Tools wie logrotate oder anderen verwenden. Mit den von Apigee bereitgestellten Konfigurationen können Sie beispielsweise Logs nach Größe rotieren, Sie möchten Logs aber nach Datum/Uhrzeit oder anderen Faktoren rotieren. In solchen Fällen sollten Sie den von Apigee bereitgestellten Cronjob logrotate deaktivieren und nach Bedarf eigene Cronjobs einrichten.

Wenn Sie auf den Cron-Eintrag für die Logrotation von Apigee verweisen müssen, finden Sie ihn in der Datei $APIGEE_ROOT//logrotate/logrotate.cron. Im Fall von edge-message-processor heißt diese Datei beispielsweise $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Diese Datei enthält sowohl den Cron-Eintrag als auch den Befehl, der von Apigee für die Logrotation ausgeführt wird. Wenn Sie logrotate verwenden möchten, aber nicht die Konfigurationen von Apigee, können Sie eine eigene logrotate-Konfigurationsdatei erstellen und einen ähnlichen logrotate-Befehl verwenden, um die Logrotation durchzuführen.