Loggar i Azure Database for PostgreSQL – enskild server

GÄLLER FÖR: Azure Database for PostgreSQL – enskild server

Viktigt!

Azure Database for PostgreSQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till Azure Database for PostgreSQL – flexibel server. Mer information om hur du migrerar till Azure Database for PostgreSQL – flexibel server finns i Vad händer med Azure Database for PostgreSQL – enskild server?.

Med Azure Database for PostgreSQL kan du konfigurera och komma åt Postgres standardloggar. Loggarna kan användas till att identifiera, felsöka och reparera konfigurationsfel och icke optimala prestanda. Loggningsinformation som du kan konfigurera och få åtkomst till omfattar fel, frågeinformation, autovacuum-poster, anslutningar och kontrollpunkter. (Åtkomst till transaktionsloggar är inte tillgänglig).

Granskningsloggning görs tillgänglig via ett PostgreSQL-tillägg, pgaudit. Mer information finns i artikeln om granskningsbegrepp .

Konfigurera loggning

Du kan konfigurera Postgres standardloggning på servern med hjälp av loggningsserverparametrarna. På varje Azure Database for PostgreSQL-server log_checkpoints och log_connections är aktiverat som standard. Det finns ytterligare parametrar som du kan justera efter dina loggningsbehov:

Azure Database for PostgreSQL – loggningsparametrar

Mer information om Postgres-loggparametrar finns i avsnitten När du loggar och Vad du ska logga i Postgres-dokumentationen. De flesta, men inte alla, Postgres-loggningsparametrar är tillgängliga för konfiguration i Azure Database for PostgreSQL.

Information om hur du konfigurerar parametrar i Azure Database for PostgreSQL finns i portaldokumentationen eller CLI-dokumentationen.

Kommentar

Om du konfigurerar en stor mängd loggar, till exempel instruktionsloggning, kan du lägga till betydande prestandakostnader.

Kom åt loggfiler.

Standardloggformatet i Azure Database for PostgreSQL är .log. En exempelrad från den här loggen ser ut så här:

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

Azure Database for PostgreSQL tillhandahåller en kortsiktig lagringsplats för .log-filerna. En ny fil börjar var 1 timme eller 100 MB, beroende på vilket som kommer först. Loggar läggs till i den aktuella filen när de skickas från Postgres.

Du kan ange kvarhållningsperioden för den här kortsiktiga logglagringen med hjälp av parametern log_retention_period . Standardvärdet är 3 dagar och maxvärdet är 7 dagar. Den kortsiktiga lagringsplatsen kan innehålla upp till 1 GB loggfiler. Efter 1 GB tas de äldsta filerna, oavsett kvarhållningsperiod, bort för att göra plats för nya loggar.

För långsiktig kvarhållning av loggar och logganalys kan du ladda ned .log filer och flytta dem till en tjänst från tredje part. Du kan ladda ned filerna med hjälp av Azure-portalen, Azure CLI. Du kan också konfigurera diagnostikinställningar för Azure Monitor som automatiskt genererar dina loggar (i JSON-format) till mer långsiktiga platser. Läs mer om det här alternativet i avsnittet nedan.

Du kan sluta generera .log filer genom att ställa in parametern logging_collector på OFF. Vi rekommenderar att du inaktiverar .log filgenerering om du använder diagnostikinställningar för Azure Monitor. Den här konfigurationen minskar prestandapåverkan för ytterligare loggning.

Kommentar

Starta om servern för att tillämpa ändringen.

Resursloggar

Azure Database for PostgreSQL är integrerat med Diagnostikinställningar för Azure Monitor. Med diagnostikinställningar kan du skicka dina Postgres-loggar i JSON-format till Azure Monitor-loggar för analys och aviseringar, Event Hubs för strömning och Azure Storage för arkivering.

Viktigt!

Den här diagnostikfunktionen för serverloggar är endast tillgänglig på prisnivåerna Generell användning och Minnesoptimerad.

Konfigurera diagnostikinställningar

Du kan aktivera diagnostikinställningar för Postgres-servern med hjälp av Azure-portalen, CLI, REST API och PowerShell. Loggkategorin som ska väljas är PostgreSQLLogs. (Det finns andra loggar som du kan konfigurera om du använder Query Store.)

Så här aktiverar du resursloggar med hjälp av Azure-portalen:

  1. I portalen går du till Diagnostik Inställningar i navigeringsmenyn på Postgres-servern.
  2. Välj Lägg till diagnostikinställning.
  3. Namnge den här inställningen.
  4. Välj önskad slutpunkt (lagringskonto, händelsehubb, log analytics).
  5. Välj loggtypen PostgreSQL-serverloggar.
  6. Spara inställningen.

Om du vill aktivera resursloggar med hjälp av PowerShell, CLI eller REST API går du till artikeln diagnostikinställningar .

Komma åt resursloggar

Hur du kommer åt loggarna beror på vilken slutpunkt du väljer. Information om Azure Storage finns i artikeln om logglagringskonto . Information om Event Hubs finns i artikeln strömma Azure-loggar .

För Azure Monitor-loggar skickas loggar till den arbetsyta som du har valt. Postgres-loggarna använder samlingsläget AzureDiagnostics , så att de kan frågas från tabellen AzureDiagnostics. Fälten i tabellen beskrivs nedan. Läs mer om frågor och aviseringar i översikten över Azure Monitor-loggar.

Följande är frågor som du kan försöka komma igång med. Du kan konfigurera aviseringar baserat på frågor.

Sök efter alla Postgres-loggar efter en viss server under den senaste dagen

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

Sök efter alla anslutningsförsök som inte är lokala värdar

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

Frågan ovan visar resultat under de senaste 6 timmarna för eventuell Postgres-serverloggning på den här arbetsytan.

Loggformat

I följande tabell beskrivs fälten för postgreSQLLogs-typen . Beroende på vilken slutpunkt du väljer kan de fält som ingår och i vilken ordning de visas variera.

Fält Beskrivning
TenantId Ditt klientorganisations-ID
SourceSystem Azure
TimeGenerated [UTC] Tidsstämpel när loggen registrerades i UTC
Typ Typ av logg. Alltid AzureDiagnostics
SubscriptionId GUID för den prenumeration som servern tillhör
ResourceGroup Namnet på resursgruppen som servern tillhör
ResourceProvider Namnet på resursprovidern. Alltid MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId Resurs-URI
Resurs Namnet på servern
Kategori PostgreSQLLogs
OperationName LogEvent
Errorlevel Loggningsnivå, exempel: LOG, ERROR, NOTICE
Meddelande Primärt loggmeddelande
Domain Serverversion, exempel: postgres-10
Detalj Sekundärt loggmeddelande (om tillämpligt)
ColumnName Namnet på kolumnen (om tillämpligt)
Schemanamn Namnet på schemat (om tillämpligt)
DatatypeName Namnet på datatypen (om tillämpligt)
LogicalServerName Namnet på servern
_ResourceId Resurs-URI
Prefix Loggradens prefix

Nästa steg