Dela via


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

Granskningsloggning av databasaktiviteter i Azure Database for PostgreSQL – enskild server är tillgänglig via PostgreSQL-granskningstillägget , pgAudit. PgAudit-tillägget innehåller detaljerad loggning av sessions- och objektgranskning.

Kommentar

PgAudit-tillägget finns i förhandsversionen av Azure Database for PostgreSQL. Den kan endast aktiveras för generell användning och minnesoptimerade servrar.

Om du vill ha Azure-resursnivåloggar för åtgärder som beräkning och lagringsskalning kan du läsa Översikt över Azure-plattformsloggar.

Användningsöverväganden

Som standard genereras pgAudit-logginstruktioner tillsammans med dina vanliga logginstruktioner med hjälp av Postgres standardloggningsfunktion. I Azure Database for PostgreSQL kan dessa .log filer laddas ned via Azure-portalen eller Azure CLI. Det maximala lagringsutrymmet för insamling av filer är 1 GB. Varje fil är tillgänglig i högst sju dagar. Standardvärdet är tre dagar. Den här tjänsten är ett kortsiktigt lagringsalternativ.

Du kan också konfigurera att alla loggar skickas till Azure Monitor Logs Store för senare analys i Log Analytics. Om du aktiverar Övervaka resursloggning skickas loggarna automatiskt i JSON-format till Azure Storage, Azure Event Hubs eller Övervaka loggar, beroende på ditt val.

Aktivering av pgAudit genererar en stor mängd loggning på en server, vilket påverkar prestanda och logglagring. Vi rekommenderar att du använder Övervakningsloggar, som erbjuder mer långsiktiga lagringsalternativ och analys- och aviseringsfunktioner. Inaktivera standardloggning för att minska prestandapåverkan vid ytterligare loggning:

  1. Ställ in parametern logging_collectorAV.
  2. Starta om servern för att tillämpa ändringen.

Information om hur du konfigurerar loggning till lagring, händelsehubbar eller övervakningsloggar finns i avsnittet resursloggar i Loggar i Azure Database for PostgreSQL – enskild server.

Installera pgAudit

Om du vill installera pgAudit måste du inkludera det i serverns delade förinstallerade bibliotek. En ändring av Postgres-parametern shared_preload_libraries kräver att en omstart av servern börjar gälla. Du kan ändra parametrar med hjälp av portalen, CLI eller REST-API:et.

Så här använder du portalen:

  1. Välj din Azure Database for PostgreSQL-server.

  2. Till vänster under Inställningar väljer du Serverparametrar.

  3. Sök efter shared_preload_libraries.

  4. Välj PGAUDIT.

    Skärmbild som visar hur Azure Database for PostgreSQL aktiverar shared_preload_libraries för PGAUDIT.

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

  6. Anslut till servern med hjälp av en klient som psql och aktivera pgAudit-tillägget:

    CREATE EXTENSION pgaudit;
    

Dricks

Om du ser ett fel kontrollerar du att du har startat om servern efter att du har sparat shared_preload_libraries.

pgAudit-inställningar

Med hjälp av pgAudit kan du konfigurera loggning av sessions- eller objektgranskning. Sessionsgranskningsloggning genererar detaljerade loggar med körda instruktioner. Loggning av objektgranskning är granskningsomfång för specifika relationer. Du kan välja att konfigurera en eller båda typerna av loggning.

Kommentar

PgAudit-inställningarna anges globalt och kan inte anges på databas- eller rollnivå.

När du har installerat pgAudit kan du konfigurera dess parametrar för att börja logga.

Så här konfigurerar du pgAudit i portalen:

  1. Välj din Azure Database for PostgreSQL-server.

  2. Till vänster under Inställningar väljer du Serverparametrar.

  3. Sök efter pgauditparametrarna .

  4. Välj lämpliga inställningar som ska redigeras. Om du till exempel vill starta loggningen anger du pgaudit.log till SKRIV.

    Skärmbild som visar hur Azure Database for PostgreSQL konfigurerar loggning med pgAudit.

  5. Välj Spara för att spara dina ändringar.

PgAudit-dokumentationen innehåller definitionen av varje parameter. Testa parametrarna först och bekräfta att du får det förväntade beteendet. Till exempel:

  • När inställningen pgaudit.log_client är aktiverad omdirigeras loggar till en klientprocess som psql i stället för att skrivas till en fil. I allmänhet lämnar du den här inställningen inaktiverad.
  • Parametern pgaudit.log_level aktiveras bara när pgaudit.log_client är på.

Kommentar

I Azure Database for PostgreSQL kan pgaudit.log inte anges med hjälp av en genväg med minustecken (-) enligt beskrivningen i pgAudit-dokumentationen. Alla obligatoriska instruktionsklasser, till exempel READ och WRITE, bör anges individuellt.

Format för granskningsloggar

Varje granskningspost anges i AUDIT: början av loggraden. Formatet för resten av posten beskrivs i pgAudit-dokumentationen.

Om du behöver andra fält för att uppfylla dina granskningskrav använder du parametern log_line_prefixPostgres . Strängen log_line_prefix matas ut i början av varje Postgres-loggrad. Följande log_line_prefix inställning innehåller till exempel tidsstämpel, användarnamn, databasnamn och process-ID:

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

Mer information om log_line_prefixfinns i PostgreSQL-dokumentationen.

Kom igång

För att snabbt komma igång ställer du in pgaudit.logWRITE. Öppna sedan loggarna för att granska utdata.

Visa granskningsloggar

Om du använder .log filer inkluderas granskningsloggarna i samma fil som postgreSQL-felloggarna. Du kan ladda ned loggfiler från portalen eller CLI.

Om du använder Azure-resursloggning beror hur du kommer åt loggarna på vilken slutpunkt du väljer. Information om Lagring finns i Azure-resursloggar. För Event Hubs, se även Azure-resursloggar.

För Övervaka loggar skickas loggarna till den arbetsyta som du har valt. Postgres-loggarna använder AzureDiagnostics samlingsläget, så att de kan frågas från AzureDiagnostics tabellen, som det visas. Mer information om frågor och aviseringar finns i Loggfrågor i Azure Monitor.

Använd den här frågan för att komma igång. 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 TimeGenerated > ago(1d) 
| where Message contains "AUDIT:"

Nästa steg