Die folgenden Logdateien befinden sich im Verzeichnis /obs/diagnostic/:
postgresql.audit: In dieser Logdatei werden Audit-Logs für Sitzungen und Objektzugriffe 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 bereits eine Logdatei mit demselben Namen vorhanden ist, wird sie überschrieben.Der Inhalt der ursprünglichen rotierten Logdatei 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 eine Größen- oder Altersgrenze erreicht. Dann wird sie wieder rotiert. Logs werden rotiert, damit sie nicht zu groß werden.
Standardmäßig ist die Rotationseinstellung so festgelegt, dass jede Logdatei rotiert wird, wenn ihre Größe 200 MB erreicht. Die Standardrotation enthält keine Alterseinstellung.
Jede archivierte Datei wird einzeln im Gzip-Dateiformat (.gz) komprimiert.
Archivierte Dateien werden 7 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 die 7-Tage-Grenze vor der Rotation der aktuellen Datei. In diesem Fall wird diese 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 festgelegt 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 postgresql.audit
Datei erfasst werden können, müssen Sie den pgaudit
Datenbankparameter aktivieren. Fügen Sie dazu unter Secret im Abschnitt parameters der
v1_dbcluster_parameters.yaml
Datei die folgende Zeile hinzu, um pgaudit,
zu aktivieren:
alloydb.enable_pgaudit: "on"
Ein Beispiel dafür sieht so aus:
apiVersion: v1
kind: Secret
...
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
databaseVersion: "15.7.1"
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 keine Aktivierung von pgaudit.
Pfad der Audit-Logdatei ansehen
Mit der SQL-Funktion alloydb_audit_current_logfile können Sie den Pfad der Audit-Logdatei ansehen. Wenn die Audit-Funktion 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 Logrotationen wird auch als Alter des Logs bezeichnet. Wenn Sie beide Einstellungen verwenden, wird jedes Log rotiert, wenn einer der Grenzwerte erreicht wird.
Um die Logrotation zu konfigurieren, legen Sie im Abschnitt parameters des DBCluster-Manifests einen oder beide der folgenden Parameter 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 der Logrotation
Im folgenden Beispiel werden Logs rotiert, wenn ihre Dateigröße 400 MB erreicht oder wenn die Zeit zwischen den Logrotationen 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 maximale Loggröße der Logrotation
Im folgenden Beispiel werden Logs 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 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