Log 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?.

Database di Azure per PostgreSQL consente di configurare e accedere ai log standard di Postgres. I log possono essere usati per individuare e risolvere i problemi e correggere errori di configurazione e prestazioni non ottimali. Le informazioni di registrazione che è possibile configurare e accedere includono errori, informazioni sulle query, record autovacuum, connessioni e checkpoint. L'accesso ai log delle transazioni non è disponibile.

La registrazione di controllo viene resa disponibile tramite un'estensione PostgreSQL, pgaudit. Per altre informazioni, vedere l'articolo concetti relativi al controllo.

Configurare la registrazione

È possibile configurare la registrazione standard postgres nel server usando i parametri del server di registrazione. In ogni server log_checkpoints Database di Azure per PostgreSQL e log_connections sono attivati per impostazione predefinita. Esistono anche parametri aggiuntivi che è possibile modificare in base alle esigenze di registrazione:

Database di Azure per PostgreSQL - Parametri di registrazione

Per altre informazioni sui parametri di log di Postgres, vedere le sezioni When To Log e What To Log della documentazione di Postgres. La maggior parte, ma non tutte, i parametri di registrazione di Postgres sono disponibili per la configurazione in Database di Azure per PostgreSQL.

Per informazioni su come configurare i parametri in Database di Azure per PostgreSQL, vedere la documentazione del portale o la documentazione dell'interfaccia della riga di comando.

Nota

La configurazione di un volume elevato di log, ad esempio la registrazione delle istruzioni, può comportare un sovraccarico significativo delle prestazioni.

Accedei ai file di log.

Il formato di log predefinito in Database di Azure per PostgreSQL è .log. Una riga di esempio di questo log è simile alla seguente:

2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216

Database di Azure per PostgreSQL fornisce un percorso di archiviazione a breve termine per i file di .log. Un nuovo file inizia ogni 1 ora o 100 MB, a ogni volta che viene prima. I log vengono aggiunti al file corrente man mano che vengono generati da Postgres.

È possibile impostare il periodo di conservazione per questa risorsa di archiviazione dei log a breve termine usando il log_retention_period parametro . Il valore predefinito è 3 giorni e il valore massimo è 7 giorni. Il percorso di archiviazione a breve termine può contenere fino a 1 GB di file di log. Dopo 1 GB, i file meno recenti, indipendentemente dal periodo di conservazione, verranno eliminati per liberare spazio per i nuovi log.

Per la conservazione a lungo termine dei log e dell'analisi dei log, è possibile scaricare i file .log e spostarli in un servizio di terze parti. È possibile scaricare i file usando l'interfaccia della riga di comando di Azure portale di Azure. In alternativa, è possibile configurare le impostazioni di diagnostica di Monitoraggio di Azure che generano automaticamente i log (in formato JSON) in posizioni a lungo termine. Altre informazioni su questa opzione sono disponibili nella sezione seguente.

È possibile interrompere la generazione di .log file impostando il parametro logging_collector su OFF. Se si usano le impostazioni di diagnostica di Monitoraggio di Azure, è consigliabile disattivare .log generazione di file. Questa configurazione ridurrà l'impatto sulle prestazioni della registrazione aggiuntiva.

Nota

Riavviare il server per applicare la modifica.

Log risorse

Database di Azure per PostgreSQL è integrato con le impostazioni di diagnostica di Monitoraggio di Azure. Le impostazioni di diagnostica consentono di inviare i log Postgres in formato JSON ai log di Monitoraggio di Azure per l'analisi e gli avvisi, hub eventi per lo streaming e Archiviazione di Azure per l'archiviazione.

Importante

Questa funzionalità di diagnostica per i log del server è disponibile solo nei piani tariffari Per utilizzo generico e Ottimizzato per la memoria.

Configurare le impostazioni di diagnostica

È possibile abilitare le impostazioni di diagnostica per il server Postgres usando il portale di Azure, l'interfaccia della riga di comando, l'API REST e PowerShell. La categoria di log da selezionare è PostgreSQLLogs. Sono disponibili altri log che è possibile configurare se si usa Query Store.

Per abilitare i log delle risorse usando il portale di Azure:

  1. Nel portale passare a Diagnostica Impostazioni nel menu di spostamento del server Postgres.
  2. Selezionare Aggiungi impostazione di diagnostica.
  3. Denominare questa impostazione.
  4. Selezionare l'endpoint preferito (account di archiviazione, hub eventi, Log Analytics).
  5. Selezionare il tipo di log Log del server PostgreSQL.
  6. Salvare l’impostazione.

Per abilitare i log delle risorse usando PowerShell, l'interfaccia della riga di comando o l'API REST, vedere l'articolo sulle impostazioni di diagnostica.

Accedere ai log delle risorse

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.

Di seguito sono riportate le query che è possibile provare a 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 Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

Cercare tutti i tentativi di connessione non localhost

AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)

La query precedente mostrerà i risultati nelle ultime 6 ore per qualsiasi registrazione del server Postgres in questa area di lavoro.

Formato log

La tabella seguente descrive i campi per il tipo PostgreSQLLogs . A seconda dell'endpoint di output scelto è possibile che i campi inclusi e il relativo ordine di visualizzazione siano differenti.

Campo Descrizione
TenantId ID del tenant.
SourceSystem Azure
TimeGenerated [UTC] Timestamp in cui il log è stato registrato in formato UTC.
Type Tipo di log. Sempre AzureDiagnostics
SubscriptionId GUID per la sottoscrizione a cui appartiene il server.
ResourceGroup Nome del gruppo di risorse a cui appartiene il server.
ResourceProvider Nome del provider di risorse. Sempre MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId URI risorsa
Conto risorse Nome del server
Categoria PostgreSQLLogs
OperationName LogEvent
errorLevel Livello di registrazione, ad esempio: LOG, ERROR, NOTICE
Messaggio Messaggio di log primario
Domain Versione del server, ad esempio: postgres-10
Dettagli Messaggio di log secondario (se applicabile)
ColumnName Nome della colonna (se applicabile)
SchemaName Nome dello schema (se applicabile)
DatatypeName Nome del tipo di dati (se applicabile)
LogicalServerName Nome del server
_ResourceId URI risorsa
Prefisso Prefisso della riga di log

Passaggi successivi