PostgreSQL-Logs in Object Storage exportieren
Exportieren Sie PostgreSQL-Logs, einschließlich von der Erweiterung pgaudit
generierter Auditlogs, in einen Oracle Cloud Infrastructure Object Storage-Bucket, damit Sie sie direkt aus Object Storage archivieren, herunterladen und aufrufen können, um die Zugänglichkeit und die Logverwaltung zu verbessern.
Voraussetzungen
Bevor Sie ein Datenbanksystem so konfigurieren können, dass PostgreSQL-Logs in einen Object Storage-Bucket exportiert werden, muss der Bucket vorhanden sein, und Sie müssen OCI Database with PostgreSQL-Ressourcen Zugriff erteilen, um sie in den Bucket hochzuladen. Wenn Sie einen neuen Bucket erstellen müssen, lesen Sie Objektspeicher-Bucket erstellen. Informationen zum Erstellen von Policys, die Ressourcen den Zugriff auf den Bucket ermöglichen, finden Sie unter Erforderliche IAM-Policy.
Erforderliche IAM-Policy
OCI Database with PostgreSQL verwendet Resource Principals, um andere Oracle Cloud Infrastructure-Ressourcen wie Object Storage-Buckets zu authentifizieren und darauf zuzugreifen. Sie können einem Datenbanksystem, einem bestimmten Set von Datenbanksystemen oder allen Datenbanksystemen Zugriff auf den Object Storage-Bucket erteilen.
Um einem spezifischen Datenbanksystem Zugriff auf Lese-Buckets zu erteilen und Objekte in einen Bucket zu schreiben, verwenden Sie die folgenden Policys:
allow any-user to read buckets in compartment <compartment-name> where ALL {request.principal.id = '<dbsystem_OCID>', target.bucket.name = '<bucket_name>'}
allow any-user to manage objects in compartment <compartment-name> where ALL {request.principal.id = '<dbsystem_OCID>', target.bucket.name = '<bucket_name>'}
Um alle Datenbanksysteme Zugriff auf Lese-Buckets zu erteilen und Objekte in einen Bucket zu schreiben, verwenden Sie die folgenden Policys:
allow any-user to read buckets in compartment <compartment-name> where ALL {request.resource.type = 'postgresqldbsystem', target.bucket.name = '<bucket name>'}
allow any-user to manage objects in compartment <compartment-name> where ALL {request.resource.type = 'postgresqldbsystem', target.bucket.name = '<bucket name>'}
Mit dynamischen Gruppen können Sie OCI Database with PostgreSQL-Datenbanksystemen als Hauptakteure gruppieren, ähnlich wie Benutzergruppen. Zunächst müssen die Datenbanksysteme, die Zugriff benötigen, in eine dynamische Gruppe aufgenommen werden. Anschließend erhält die dynamische Gruppe Zugriff zum Hochladen von Objekten in den Bucket.
Die Mitgliedschaft in der dynamischen Gruppe hängt von einer Gruppe von Kriterien ab, die Sie definieren (sogenannte Übereinstimmungsregeln). Das folgende Beispiel zeigt eine Vergleichsregel, die alle Datenbanksysteme in einem definierten Compartment enthält:
all { resource.type='postgresqldbsystem', resource.compartment.id = 'ocid1.compartment.oc1..exampleuniqueID'}
Sie können auch definierte Tags verwenden, wenn Sie dynamische Gruppen für eine spezifischere Zugriffskontrolle erstellen. Beispiel:
all { resource.type = 'postgresqldbsystem', tag.<tagnamespace>.<tagkey>.value='<tagvalue>'}
Weitere Informationen finden Sie unter Dynamische Gruppen verwalten und Dynamische Gruppen erstellen.
Um dynamischen Gruppen Zugriff auf Lese-Buckets zu erteilen und Objekte in einen Bucket zu schreiben, verwenden Sie eine Policy wie die folgende:
Allow dynamic-group <PSQL_DynamicGroup> to read buckets in compartment <compartment-name> where ALL {target.bucket.name = '<bucket name>'}
Allow dynamic-group <PSQL_DynamicGroup> to manage objects in compartment <compartment-name> where ALL {target.bucket.name = '<bucket name>'}
Datenbanksystem für Logexport konfigurieren
Nachdem Sie den Zugriff auf den Resource Principal eingerichtet haben, konfigurieren Sie das OCI Database with PostgreSQL-Datenbanksystem, um Logs in Object Storage zu exportieren, indem Sie benutzerdefinierte Konfigurationsparameter definieren. Möglicherweise müssen Sie eine Konfiguration erstellen oder kopieren, um die folgenden Konfigurationsparameter anzugeben:
oci.log_destination
:oci_object_storage
oci.log_destination_os_namespace
: Der Object Storage-Namespace für den Mandantenoci.log_destination_os_bucket_name
: Der Objektspeicher-Bucketname, in den die Logs exportiert werden
Nachdem Sie eine Konfiguration mit Logexportdetails angegeben haben, wenden Sie diese Konfiguration auf das Datenbanksystem an. Weitere Informationen finden Sie unter Auf ein Datenbanksystem angewendete Konfiguration ändern.
Details Objekt
Logs werden mit der folgenden Benennungskonvention in den angegebenen Object Storage-Bucket hochgeladen:
<DBSYSTEM_ID>/<DB_INSTANCEID>/postgresql-<DATE>_######.csv.gz
<DBSYSTEM_ID>
: Die ID des OCI Database with PostgreSQL-Datenbanksystems.<DB_INSTANCEID>
: Die Instanz-ID der PostgreSQL-Datenbank.<DATE>
: Das Datum, an dem die Logs generiert wurden, im FormatYYYY-MM-DD
.######
: Die Folgenummer.
Beispiel:
mydbsystem/instance123/postgresql-2025-01-27_000001.csv.gz