Export de journaux PostgreSQL vers Object Storage

Exportez les journaux PostgreSQL, y compris les journaux d'audit générés par l'extension pgaudit, vers un bucket Oracle Cloud Infrastructure Object Storage afin de pouvoir les archiver, les télécharger et y accéder directement à partir d'Object Storage pour des aspects d'accessibilité et de gestion des journaux améliorés.

Prérequis

Pour pouvoir configurer un système de base de données afin d'exporter les journaux PostgreSQL vers un bucket Object Storage, le bucket doit exister et vous devez accorder aux ressources OCI Database with PostgreSQL l'accès permettant de le télécharger vers le bucket. Si vous devez créer un bucket, reportez-vous à Création d'un bucket Object Storage. Pour créer des stratégies qui autorisent les ressources à accéder au bucket, reportez-vous à Stratégie IAM requise.

Stratégie IAM requise

OCI Database with PostgreSQL utilise des principaux de ressource pour authentifier et accéder à d'autres ressources Oracle Cloud Infrastructure, telles que des buckets Object Storage. Vous pouvez accorder à un système de base de données, à un ensemble spécifique de systèmes de base de données ou à tous les systèmes de base de données un accès au bucket Object Storage.

Pour accorder à un système de base de données spécifique l'accès à des buckets de lecture et à des objets d'écriture dans un bucket, utilisez les stratégies suivantes :

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>'}

Pour accorder à tous les systèmes de base de données l'accès à des buckets de lecture et à des objets d'écriture dans un bucket, utilisez les stratégies suivantes :

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>'}

Les groupes dynamiques vous permettent de regrouper OCI Database with PostgreSQL en tant qu'acteurs principaux, comme les groupes d'utilisateurs. Tout d'abord, les systèmes de base de données qui ont besoin d'accès doivent être placés dans un groupe dynamique, puis le groupe dynamique dispose d'un accès permettant de télécharger des objets vers le bucket.

L'appartenance au groupe dynamique dépend d'un ensemble de critères que vous définissez, appelés règles de rapprochement. L'exemple suivant illustre une règle de mise en correspondance incluant tous les systèmes de base de données d'un compartiment défini :

all { resource.type='postgresqldbsystem', resource.compartment.id = 'ocid1.compartment.oc1..exampleuniqueID'}

Vous pouvez également utiliser des balises définies lors de la création de groupes dynamiques pour un contrôle d'accès plus spécifique, par exemple :

all { resource.type = 'postgresqldbsystem', tag.<tagnamespace>.<tagkey>.value='<tagvalue>'}

Pour plus d'informations, reportez-vous à Gestion des groupes dynamiques et à Création d'un groupe dynamique.

Pour accorder à des groupes dynamiques l'accès à lire des buckets et à écrire des objets dans un bucket, utilisez une stratégie telle que :

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>'}

Configurer un système de base de données pour l'export des journaux

Après avoir configuré l'accès au principal de ressource, configurez le système de base de données OCI Database with PostgreSQL pour exporter les journaux vers Object Storage en définissant des paramètres de configuration personnalisés. Vous devrez peut-être créer ou copier une configuration pour spécifier les paramètres de configuration suivants :

  • oci.log_destination: oci_object_storage
  • oci.log_destination_os_namespace : espace de noms Object Storage pour la location
  • oci.log_destination_os_bucket_name : nom du bucket Object Storage vers lequel les journaux sont exportés

Une fois que vous avez défini une configuration avec des détails d'export de journal, appliquez-la au système de base de données. Pour plus d'informations, reportez-vous à Modification de la configuration appliquée à un système de base de données.

Détails d'objet

Les journaux sont téléchargés vers le bucket Object Storage indiqué selon la convention de dénomination suivante :

<DBSYSTEM_ID>/<DB_INSTANCEID>/postgresql-<DATE>_######.csv.gz

  • <DBSYSTEM_ID> : ID de la base de données OCI Database with PostgreSQL.
  • <DB_INSTANCEID> : ID d'instance de la base de données PostgreSQL.
  • <DATE> : date de génération des journaux, au format YYYY-MM-DD.
  • ###### : numéro de séquence.

Par exemple :

mydbsystem/instance123/postgresql-2025-01-27_000001.csv.gz