Condividi tramite


Registrazione di controllo in Azure Cosmos DB for PostgreSQL

SI APPLICA A: Azure Cosmos DB for PostgreSQL (basato su estensione database Citus per PostgreSQL)

La registrazione di controllo delle attività del database in Azure Cosmos DB for PostgreSQL è disponibile tramite l'estensione pgAudit di PostgreSQL Audit. pgAudit fornisce la registrazione di controllo dettagliata per sessioni o oggetti.

Per i log a livello di risorsa di Azure per operazioni come il ridimensionamento delle risorse di calcolo e archiviazione, vedere Log attività di Azure.

Considerazioni sull'utilizzo

Per impostazione predefinita, le istruzioni di log di pgAudit vengono emesse insieme alle istruzioni di log regolari usando la funzionalità di registrazione standard di Postgres. In Azure Cosmos DB for PostgreSQL è possibile configurare tutti i log da inviare all'archivio log di Monitoraggio di Azure per analisi successive in Log Analytics.

Installazione di pgAudit

Per installare pgAudit, è necessario includerlo nelle librerie di precaricamento condivise del server. Per rendere effettiva una modifica al parametro shared_preload_libraries è necessario riavviare il cluster. Inoltre, le impostazioni di pgAudit vengono specificate per nodo in un cluster. Per abilitare il controllo in tutti i nodi, è necessario applicare le impostazioni di controllo alle impostazioni del coordinatore e dei nodi di lavoro.

Tramite il portale di Azure:

  1. Selezionare il cluster di Azure Cosmos DB for PostgreSQL.

  2. Nella barra laterale selezionare parametri coordinatore o (Nodo di lavoro).

  3. Cercare il shared_preload_libraries parametro.

  4. Selezionare pgaudit e salvare le modifiche. Il cluster Azure Cosmos DB for PostgreSQL verrà riavviato.

    Screenshot delle librerie di precaricamento condiviso in portale di Azure.

  5. È possibile verificare che pgaudit sia caricato in shared_preload_libraries eseguendo la query seguente in psql:

    show shared_preload_libraries;
    

    Nel risultato della query dovrebbe essere visualizzato pgaudit.

  6. Connettersi a psql e alla query seguente per le versioni citus uguali o successive a 11.0

    BEGIN; 
    SET LOCAL citus.enable_metadata_sync = false; 
    SELECT create_extension('pgaudit'); 
    COMMIT; 
    

    Per le versioni precedenti di citus 11.0:

    BEGIN; 
    SET LOCAL citus.enable_object_propagation= false; 
    SELECT create_extension('pgaudit'); 
    COMMIT; 
    

Impostazioni pgAudit

pgAudit consente di configurare la registrazione di controllo di sessione o oggetto. La registrazione del controllo sessione genera log dettagliati delle istruzioni eseguite. La registrazione del controllo oggetti ha come ambito il controllo relazioni specifiche. È possibile scegliere di configurare uno o entrambi i tipi di registrazione.

Dopo aver abilitato pgAudit, è possibile configurarne i parametri per avviare la registrazione. Per configurare pgAudit, è possibile seguire le istruzioni di seguito. Tramite il portale di Azure:

  1. Selezionare il cluster di Azure Cosmos DB for PostgreSQL.

  2. Nella barra laterale selezionare Parametri del server.

  3. Cercare i parametri pgaudit.

  4. Selezionare il parametro di impostazioni appropriato da modificare. Ad esempio, per avviare la registrazione impostare pgaudit.log su WRITEScreenshot dei parametri di controllo in portale di Azure.

  5. Selezionare il pulsante Salva per salvare le modifiche

La documentazione pgAudit fornisce la definizione di ogni parametro. Testare prima i parametri e verificare di ottenere il comportamento previsto.

Nota

Se si imposta pgaudit.log_client su ON, i log vengono reindirizzati a un processo client (quale psql), anziché essere scritti nel file. Questa impostazione viene in genere disabilitata.

pgaudit.log_level viene abilitato solo quando pgaudit.log_client è attivo.

Nota

In Azure Cosmos DB for PostgreSQL non è possibile impostare pgaudit.log usando un collegamento con segno - (meno), come descritto nella documentazione relativa a pgAudit. Tutte le classi di istruzioni obbligatorie (READ, WRITE e così via) devono essere specificate singolarmente.

Formato del log di controllo

Ogni voce di controllo è indicata da AUDIT: vicini l'inizio della riga di log. Il formato del resto della voce è dettagliato nella documentazione di pgAudit.

Visualizzazione dei log di controllo

Il modo in cui si accede ai log dipende dall'endpoint scelto. Per Archiviazione di Azure, vedere l'articolo sull'account di archiviazione dei log. Per Hub eventi, vedere l'articolo Trasmettere i log di Azure.

Per Log di Monitoraggio di Azure, i log vengono inviati all'area di lavoro selezionata. I log di Postgres usano la modalità di raccolta AzureDiagnostics, in modo che possano essere sottoposte a query dalla tabella AzureDiagnostics. I campi nella tabella sono descritti di seguito. Altre informazioni sull'esecuzione di query e avvisi sono disponibili nella panoramica query sui log di Monitoraggio di Azure.

Per iniziare, è possibile usare questa query. È possibile configurare gli avvisi in base alle query.

Cercare tutte le voci pgAudit nei log di Postgres per un determinato server nell'ultimo giorno

AzureDiagnostics
| where Resource == "myservername"
| where Category == "PostgreSQLlogs"
| where TimeGenerated > ago(1d) 
| where Message contains "AUDIT:"

Passaggi successivi