Registrazione di controllo in Database di Azure per PostgreSQL - Server singolo

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Registrazione di controllo delle attività del database in Database di Azure per PostgreSQL : server singolo è disponibile tramite l'estensione PostgreSQL Audit, pgAudit. L'estensione pgAudit fornisce la registrazione dettagliata della sessione e del controllo degli oggetti.

Nota

L'estensione pgAudit è disponibile in anteprima Database di Azure per PostgreSQL. Può essere abilitata solo nei server per utilizzo generico e ottimizzati per la memoria.

Per i log a livello di risorsa di Azure per operazioni come il ridimensionamento delle risorse di calcolo e archiviazione, vedere Panoramica dei log della piattaforma Azure.

Considerazioni sull'utilizzo

Per impostazione predefinita, le istruzioni di log pgAudit vengono generate insieme alle normali istruzioni di log usando la funzionalità di registrazione standard postgres. In Database di Azure per PostgreSQL questi file di .log possono essere scaricati tramite il portale di Azure o l'interfaccia della riga di comando di Azure. Lo spazio di archiviazione massimo per la raccolta di file è 1 GB. Ogni file è disponibile per un massimo di sette giorni. Il valore predefinito è tre giorni. Questo servizio è un'opzione di archiviazione a breve termine.

In alternativa, è possibile configurare tutti i log da inviare all'archivio dei log di Monitoraggio di Azure per analisi successive in Log Analytics. Se si abilita Monitoraggio registrazione risorse, i log vengono inviati automaticamente in formato JSON a Archiviazione di Azure, Hub eventi di Azure o Monitor Logs, a seconda della scelta.

L'abilitazione di pgAudit genera un volume elevato di registrazione in un server, che influisce sulle prestazioni e sull'archiviazione dei log. È consigliabile usare i log di monitoraggio, che offre opzioni di archiviazione a lungo termine e funzionalità di analisi e avvisi. Disattivare la registrazione standard per ridurre l'impatto sulle prestazioni di registrazione aggiuntiva:

  1. Impostare il parametro logging_collector su OFF.
  2. Riavviare il server per applicare la modifica.

Per informazioni su come configurare la registrazione per Archiviazione, Hub eventi o Monitorare i log, vedere la sezione Log delle risorse in Database di Azure per PostgreSQL - Server singolo.

Installare pgAudit

Per installare pgAudit, è necessario includerlo nelle librerie precaricata condivise del server. Per rendere effettiva una modifica al parametro Postgres shared_preload_libraries è necessario riavviare il server. È possibile modificare i parametri usando il portale, l'interfaccia della riga di comando o l'API REST.

Per usare il portale:

  1. Selezionare il server di Database di Azure per PostgreSQL.

  2. A sinistra, in Impostazioni selezionare Parametri del server.

  3. Cercare shared_preload_libraries.

  4. Selezionare PGAUDIT.

    Screenshot che mostra Database di Azure per PostgreSQL l'abilitazione di shared_preload_libraries per PGAUDIT.

  5. Riavviare il server per applicare la modifica.

  6. Connessione al server usando un client come psql e abilitare l'estensione pgAudit:

    CREATE EXTENSION pgaudit;
    

Suggerimento

Se viene visualizzato un errore, verificare di aver riavviato il server dopo aver salvato shared_preload_libraries.

Impostazioni pgAudit

Usando pgAudit, è possibile configurare la registrazione di controllo delle sessioni o degli oggetti. 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.

Nota

Le impostazioni pgAudit vengono specificate a livello globale e non possono essere specificate a livello di database o ruolo.

Dopo aver installato pgAudit, è possibile configurarne i parametri per avviare la registrazione.

Per configurare pgAudit, nel portale:

  1. Selezionare il server di Database di Azure per PostgreSQL.

  2. A sinistra, in Impostazioni selezionare Parametri del server.

  3. Cercare i parametri pgaudit .

  4. Selezionare i parametri di impostazioni appropriati da modificare. Ad esempio, per avviare la registrazione, impostare pgaudit.log su WRITE.

    Screenshot che mostra Database di Azure per PostgreSQL configurazione della registrazione con pgAudit.

  5. Seleziona 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. Ad esempio:

  • Quando l'impostazione pgaudit.log_client è attivata, reindirizza i log a un processo client come psql anziché essere scritto in un file. In generale, lasciare disabilitata questa impostazione.
  • Il parametro pgaudit.log_level è abilitato solo quando pgaudit.log_client è attivo.

Nota

In Database di Azure per PostgreSQL non è possibile impostare pgaudit.log usando un collegamento con segno meno (-) come descritto nella documentazione di pgAudit. Tutte le classi di istruzioni obbligatorie, ad esempio READ e WRITE, 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.

Se sono necessari altri campi per soddisfare i requisiti di controllo, usare il parametro log_line_prefixPostgres . La stringa log_line_prefix viene restituita all'inizio di ogni riga di log postgres. Ad esempio, l'impostazione seguente log_line_prefix fornisce timestamp, nome utente, nome del database e ID processo:

t=%m u=%u db=%d pid=[%p]:

Per altre informazioni su log_line_prefix, vedere la documentazione di PostgreSQL.

Operazioni preliminari

Per iniziare rapidamente, impostare pgaudit.log su WRITE. Aprire quindi i log per esaminare l'output.

Visualizzare i log di controllo

Se si usano .log file, i log di controllo vengono inclusi nello stesso file dei log degli errori di PostgreSQL. È possibile scaricare i file di log dal portale o dall'interfaccia della riga di comando.

Se si usa la registrazione delle risorse di Azure, il modo in cui si accede ai log dipende dall'endpoint scelto. Per Archiviazione, vedere Log delle risorse di Azure. Per Hub eventi, vedere anche Log delle risorse di Azure.

Per i log di monitoraggio, i log vengono inviati all'area di lavoro selezionata. I log postgres usano la AzureDiagnostics modalità raccolta, in modo che possano essere sottoposte a query dalla AzureDiagnostics tabella, come illustrato. Per altre informazioni sull'esecuzione di query e avvisi, vedere Query di log in Monitoraggio di Azure.

Usare questa query per iniziare. È possibile configurare gli avvisi in base alle query.

Cercare tutti i log postgres per un determinato server nell'ultimo giorno:

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

Passaggi successivi