In diesem Dokument wird beschrieben, wie Sie die Rotation von AlloyDB Omni-Diagnoseprotokollen konfigurieren, wenn Sie den AlloyDB Omni Kubernetes-Operator verwenden.
Die folgenden Protokolldateien befinden sich im Verzeichnis /obs/diagnostic/
:
postgresql.audit
: In dieser Protokolldatei werden Audit-Logs für Sitzungen und Objektzugriff erfasst. Wenn Sie Audit-Logs erfassen möchten, müssen Sie Audit-Logs aktivieren.postgresql.log
: In dieser Protokolldatei werden PostgreSQL-Serverprotokolle erfasst. Diese Protokolle werden immer erfasst und müssen nicht aktiviert werden.
Wenn eine Protokolldatei rotiert, geschieht Folgendes:
Die Logdatei wird in das Verzeichnis
/obs/diagnostic/archive/
kopiert. Wenn in diesem Verzeichnis bereits eine Protokolldatei mit demselben Namen vorhanden ist, wird sie überschrieben.Der Inhalt der ursprünglichen rotierten Protokolldatei wird gelöscht, sodass die Datei leer ist.
Die Protokollinformationen werden sofort in die leere Protokolldatei geschrieben. Loginformationen werden in die Logdatei geschrieben, bis die Datei einen Grenzwert für Größe oder Alter erreicht. Dann wird sie wieder rotiert. Protokolle werden rotiert, damit sie nicht zu groß werden.
Standardmäßig wird jede Logdatei rotiert, wenn ihre Größe 200 MB erreicht. Die Standardrotation enthält keine Alterseinstellung.
Jede archivierte Datei wird einzeln mit dem Gzip-Dateiformat (.gz
) komprimiert.
Archivierte Dateien werden sieben Tage lang aufbewahrt. Archivierte Dateien, die älter als 7 Tage sind, werden automatisch entfernt, mit Ausnahme der Datei, die bei der vorherigen Rotation archiviert wurde. Wenn log_rotation_age
beispielsweise älter als 7 Tage ist, erreicht die archivierte Datei den Grenzwert von 7 Tagen, bevor die aktuelle Datei rotiert wird. In diesem Fall wird diese archivierte Datei erst entfernt, wenn bei der nächsten Rotation eine neue archivierte Datei generiert wird.
Jeder archivierte Logdateiname folgt diesem Format: postgresql-%Y-%m-%d_%H%M%S.log.gz
.
Der Zeitstempel wird zum Zeitpunkt der Protokollauslagerung ermittelt und in der koordinierten Weltzeit (UTC) ausgedrückt. Wenn das Protokoll beispielsweise am 20. Dezember 2024 um 13:01:02 Uhr (UTC) rotiert wird, lautet der Name der archivierten Datei postgresql-2024-12-20_130102.log.gz
.
Wenn Sie eine archivierte Datei dauerhaft speichern möchten, können Sie sie mit kubectl cp
aus dem Datenbankcontainer in Ihr lokales Verzeichnis kopieren.
Audit-Logs aktivieren
Damit Protokolle zu Sitzungen und Objektzugriffen in der Datei postgresql.audit
erfasst werden, müssen Sie den Datenbankparameter pgaudit
aktivieren. Wenn Sie pgaudit
aktivieren möchten, fügen Sie der Datei v1_dbcluster_parameters.yaml
unter Secret
im Abschnitt parameters
die folgende Zeile hinzu:
alloydb.enable_pgaudit: "on"
Das könnte beispielsweise so aussehen:
apiVersion: v1
kind: Secret
...
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
databaseVersion: "15.7.0"
primarySpec:
...
parameters:
...
alloydb.enable_pgaudit: "on"
Weitere Informationen finden Sie unter pgaudit
in den unterstützten Datenbankerweiterungen und in der PostgreSQL-Auditerweiterung.
PostgreSQL-Serverprotokolle werden immer in der postgresql.log
-Datei erfasst und pgaudit
muss nicht aktiviert werden.
Logrotation konfigurieren
Wenn Sie mehr Kontrolle darüber haben möchten, wann Protokolle rotiert werden, können Sie eine maximale Dateigröße, eine Dauer zwischen den Protokollrotationen oder beides konfigurieren. Die Dauer zwischen den Protokollrotationen wird auch als Alter des Protokolls bezeichnet. Wenn Sie beide Einstellungen verwenden, wird jedes Protokoll rotiert, wenn es einen der Grenzwerte erreicht.
Um die Protokollauslagerung zu konfigurieren, legen Sie einen oder beide der folgenden Parameter im Abschnitt parameters
des Manifests DBCluster
fest:
log_rotation_size
: „SIZE_IN_KB“log_rotation_age
: „AGE_IN_MINUTES“
Wenn Sie eine der Einstellungen für die Protokollauslagerung deaktivieren möchten, setzen Sie sie auf null ("0"
). Wenn Sie die Standardeinstellung beibehalten möchten, bei der Protokolle ausgelagert werden, wenn ihre Dateigröße 200 MB erreicht, setzen Sie keinen der Parameter.
Beispiel für maximale Protokollgröße und Dauer der Protokollauslagerung
Im folgenden Beispiel werden Protokolle rotiert, wenn ihre Dateigröße 400 MB erreicht oder die Zeit zwischen den Protokollrotationen einen Tag erreicht, je nachdem, was zuerst eintritt:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
...
primarySpec:
...
parameters:
log_rotation_size: "400000" # 400 MB
log_rotation_age: "1440" # 24 hours * 60 minutes = 1 day
Beispiel für die maximale Größe von Protokollen bei der Protokollrotation
Im folgenden Beispiel werden Protokolle rotiert, wenn ihre Dateigröße 400 MB erreicht:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
...
primarySpec:
...
parameters:
log_rotation_size: "400000" # 400 MB
log_rotation_age: "0" # Set to 0 to disable
Beispiel für die Dauer der Protokollauslagerung
Im folgenden Beispiel werden Protokolle alle 24 Stunden rotiert:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
...
primarySpec:
...
parameters:
log_rotation_size: "0" # Set to 0 to disable
log_rotation_age: "1440" # 24 hours * 60 minutes = 1 day
Nächste Schritte
- AlloyDB Omni verwalten und überwachen
- AlloyDB Omni-Dumpdateien generieren und analysieren
- Weitere Informationen zur automatischen Arbeitsspeicherverwaltung