Logrotation für Edge-Komponenten aktivieren

Die Log-Rotation – der Vorgang des Rotierens mehrerer Logdateien im Einsatz oder nicht – vereinfacht die Verwaltung von Systemen, die eine große Anzahl von Logdateien generieren. Die Log-Rotation ermöglicht die automatische Rotation, Komprimierung, Entfernung und Zustellung von Protokolldateien.

In Edge for Private Cloud sind einige der Hauptlogdateien auf jeder apigee-Komponente mit einem Standardrotationsmechanismus konfiguriert. Auf der Message Processor-Komponente sind beispielsweise die folgenden Dateien mit einem Standardrotationsmechanismus unter Verwendung 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

Für andere edge-*-Komponenten, deren Namen mit edge- beginnen, gibt es ähnliche Dateien, 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 weitergeleitete 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 von der Logback-Bibliothek, sondern mithilfe von 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.

Log-Rotationen aktivieren

Ab Edge für Private Cloud Version 4.52 wird beim Installieren einer edge-*-Komponente automatisch ein crontab-Eintrag zum Rotieren dieses Logs im crontab des apigee-Nutzers erstellt. Dieser Cronjob wird standardmäßig jede Stunde ausgeführt und verwendet das Dienstprogramm logrotate zum Rotieren von Logs. Wenn mehrere edge-*-Komponenten auf demselben Knoten installiert sind (z. B. in einer All-in-one-Installation oder wenn der Router und der Nachrichtenprozessor auf einem Knoten installiert sind), hat jede Komponente einen eigenen Cron-Eintrag zum Rotieren der entsprechenden Logs.

Hinweise:

  • Wenn Sie während der Installation einer edge-*-Komponente nicht automatisch einen logrotate-Cronjob einrichten möchten, legen Sie das Flag „ENABLE_LOGROTATE=n“ in der unbeaufsichtigten Konfigurationsdatei fest, die Sie für die Installation verwenden. Wenn der Cronjob während der Installation nicht festgelegt ist, können Sie ihn später einrichten. Dazu führen Sie die Schritte zum Aktivieren des logrotate-Crons einer Komponente aus.
  • 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 Fehlerprotokolle.

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

Cron-Einträge auf einem Knoten ansehen

sudo crontab -u apigee -l

Cron-Eintrag logrotate einer Komponente ansehen

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

Wenn Sie beispielsweise das Cron-Element logrotate des Edge-Nachrichtenprozessors ansehen 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 befindet sich in der Datei $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Bei einem Edge-Nachrichtenprozessor kann die logrotate-Konfiguration des Knotens beispielsweise in $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf gefunden werden.

Cron einer Komponente aktivieren logrotate

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

Führen Sie beispielsweise folgenden Befehl aus, um das Cron-Element logrotate des Edge-Nachrichtenprozessors zu aktivieren:

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

Das Cron-Element logrotate einer Komponente deaktivieren

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

Führen Sie beispielsweise folgenden Befehl aus, um das Cron-Element logrotate des Edge-Nachrichtenprozessors zu deaktivieren:

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

Cronjob-Zeitplan eines bestimmten logrotate-Befehls ändern

Öffnen Sie auf dem Knoten, auf dem Sie den Cron-Zeitplan logrotate ändern möchten, die Konfigurationsüberschreibungsdatei der entsprechenden Komponente. Die Konfigurationsüberschreibungsdateien der Komponente edge-* 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 überschrieben, der zur 0. Minute jeder Stunde ausgeführt werden soll.

conf_logrotate_cron_duration=0 * * * *

So legen Sie die Konfigurationsüberschreibung fest:

  1. Sorgen Sie dafür, dass die Datei für den apigee-Nutzer lesbar ist.
  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 den neueren Cron-Zeitplan auf die logrotate des Edge-Nachrichtenprozessors anwenden möchten, geben Sie Folgendes ein:

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

Prüfen Sie entweder die Cron-Einträge oder rufen Sie den Cron-Eintrag logrotate der Komponente auf, um zu prüfen, ob die Änderungen angewendet wurden.

Zusätzliche logrotate-Konfigurationen

Ähnlich wie 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 des logrotate-Binärprogramms. Standardwert: /usr/sbin/logrotate
conf_logrotate_status_file Statusdatei zur Erfassung des Laufzeitstatus von logrotate – zeigen Lese-/Schreibberechtigungen für Nutzer apigee. Standard: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Welche Logs zu rotieren sind Kann Platzhalter enthalten. Standardeinstellung: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Anzahl der Rotationen. Standardeinstellung: „5“
conf_logrotate_compress Gibt an, ob rotierte Dateien komprimiert werden sollen. Standardeinstellung: „komprimieren“
conf_logrotate_compress_type Art der Komprimierung. Standardeinstellung: „delaycompress“. Verschiebt die Komprimierung der neuesten rotierten Datei auf den nächsten Logrotate-Zyklus.
conf_logrotate_size Limit der Loggröße für die Rotation. Standardeinstellung: „10M“

Eigenen Protokollrotationsmechanismus und Cron verwenden

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

Wenn Sie auf den Cron-Eintrag der Log-Rotation von Apigee verweisen möchten, 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 zur Log-Rotation ausgeführt wird. Wenn Sie logrotate, aber nicht die Konfigurationen von Apigee nutzen möchten, können Sie eine eigene logrotate-Konfigurationsdatei erstellen und einen ähnlichen logrotate-Befehl zur Log-Rotation verwenden.