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.
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 einenlogrotate-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 deslogrotate-Cronjobs einer Komponente. - Für die Komponente
edge-routerwird standardmäßig auch ein zusätzlicherlogrotate-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:
- Achten Sie darauf, dass die Datei vom Nutzer
apigeegelesen werden kann. - 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/. 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.