Condividi tramite


Registrazione di controllo in Azure Cosmos DB for PostgreSQL

Importante

Azure Cosmos DB per PostgreSQL non è più supportato per i nuovi progetti. Non usare questo servizio per i nuovi progetti. Usare invece uno dei due servizi seguenti:

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 dettagliata del controllo delle sessioni o degli 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.

Utilizzo del portale di Azure:

  1. Seleziona 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 condivise nel 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 l'audit log per sessioni e oggetti. La registrazione di controllo della sessione emette log dettagliati delle istruzioni eseguite. La registrazione di controllo degli oggetti ha come ambito il controllo delle 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. Utilizzo del portale di Azure:

  1. Seleziona 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 nel 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 per PostgreSQL non è possibile impostare pgaudit.log usando una scorciatoia con segno - (meno), come descritto nella documentazione di 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: vicino all'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