Die folgenden Protokolldateien befinden sich im Verzeichnis /obs/diagnostic/
:
postgresql.audit
: In dieser Logdatei werden Audit-Logs für Sitzungs- und Objektzugriff erfasst. Damit Audit-Logs erfasst werden können, müssen Sie Audit-Logs aktivieren.postgresql.log
: In dieser Logdatei werden PostgreSQL-Serverlogs erfasst. Diese Logs werden immer erfasst und müssen nicht aktiviert werden.
Wenn eine Logdatei rotiert wird, geschieht Folgendes:
Die Logdatei wird in das Verzeichnis
/obs/diagnostic/archive/
kopiert. Wenn in diesem Verzeichnis eine Logdatei mit demselben Namen vorhanden ist, wird sie überschrieben.Der Inhalt der ursprünglichen rotierten Protokolldatei wird gelöscht, sodass die Datei leer ist.
Loginformationen werden sofort in die leere rotierte Logdatei geschrieben. Loginformationen werden in die Logdatei geschrieben, bis die Datei einen Größen- oder Altersgrenzwert erreicht. Dann wird sie wieder rotiert. Logs 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 Altersangabe.
Jede archivierte Datei wird einzeln mit dem Gzip-Dateiformat (.gz
) komprimiert.
Archivierte Dateien werden 7 Tage lang aufbewahrt. Archivierte Dateien, die älter als 7 Tage sind, werden automatisch entfernt. Das gilt jedoch nicht für die Datei, die während der vorherigen Rotation archiviert wurde. Wenn log_rotation_age
beispielsweise älter als 7 Tage ist, wird der Grenzwert von 7 Tagen für die archivierte Datei vor der Rotation der aktuellen Datei erreicht. In diesem Fall wird die archivierte Datei erst entfernt, wenn bei der nächsten Rotation eine neue archivierte Datei generiert wird.
Jeder archivierte Logdateiname hat folgendes Format: postgresql-%Y-%m-%d_%H%M%S.log.gz
.
Der Zeitstempel wird zum Zeitpunkt der Logrotation ermittelt und in koordinierter Weltzeit (UTC) angegeben. Wenn das Log beispielsweise am 20.12.2024 um 13:01:02 Uhr UTC rotiert wird, lautet der archivierte Dateiname 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 Sitzungs- und Objektzugriffsprotokolle in der Datei postgresql.audit
erfasst werden, müssen Sie den Datenbankparameter pgaudit
aktivieren. Fügen Sie die folgende Zeile in den Abschnitt parameters
der Datei v1_dbcluster_parameters.yaml
unter Secret
ein, um pgaudit
zu aktivieren:
alloydb.enable_pgaudit: "on"
Das folgende Beispiel zeigt, wie dies aussehen könnte:
apiVersion: v1
kind: Secret
...
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
databaseVersion: "15.12.0"
primarySpec:
...
parameters:
...
alloydb.enable_pgaudit: "on"
Weitere Informationen finden Sie unter pgaudit
in Unterstützte Datenbankerweiterungen und PostgreSQL Auditing Extension.
PostgreSQL-Serverlogs werden immer in der Datei postgresql.log
erfasst und erfordern nicht die Aktivierung von pgaudit
.
Pfad der Audit-Logdatei ansehen
Mit der SQL-Funktion alloydb_audit_current_logfile
können Sie den Pfad der Audit-Log-Datei aufrufen. Wenn die Prüfung deaktiviert ist, ist das Ergebnis NULL
.
SELECT alloydb_audit_current_logfile();
alloydb_audit_current_logfile
----------------------------------------------------
/var/log/pglogs/postgresql-2025-03-28_042024.audit
Logrotation konfigurieren
Wenn Sie mehr Kontrolle darüber haben möchten, wann Logs rotiert werden, können Sie eine maximale Dateigröße, eine Dauer zwischen Logrotationen oder beides konfigurieren. Die Dauer zwischen Log-Rotationen wird auch als Alter des Logs bezeichnet. Wenn Sie beide Einstellungen verwenden, wird jedes Log rotiert, wenn es einen der Grenzwerte erreicht.
Um die Logrotation zu konfigurieren, legen Sie einen oder beide der folgenden Parameter im Abschnitt parameters
des DBCluster
-Manifests fest:
log_rotation_size
: „SIZE_IN_KB“log_rotation_age
: „AGE_IN_MINUTES“
Wenn Sie eine der Einstellungen für die Logrotation deaktivieren möchten, setzen Sie sie auf null ("0"
). Wenn Sie die Standardeinstellung beibehalten möchten, bei der Logs rotiert werden, wenn ihre Dateigröße 200 MB erreicht, legen Sie keinen der beiden Parameter fest.
Beispiel für maximale Loggröße und ‑dauer bei der Logrotation
Im folgenden Beispiel werden Logs so festgelegt, dass sie rotiert werden, wenn ihre Dateigröße 400 MB erreicht oder wenn zwischen den Logrotationen ein Tag vergeht, 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 Loggröße bei der Logrotation
Im folgenden Beispiel wird festgelegt, dass Logs rotiert werden, 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 Logrotation
Im folgenden Beispiel werden Logs 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
- Informationen zur automatischen Speicherverwaltung