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:
- Ställ in parametern
logging_collector
på AV. - 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.
Välj din Azure Database for PostgreSQL-server.
Välj Serverparametrar under Inställningar till vänster.
Sök efter shared_preload_libraries.
Välj PGAUDIT.
Starta om servern för att tillämpa ändringen.
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:
Välj din Azure Database for PostgreSQL-server.
Välj Serverparametrar under Inställningar till vänster.
Sök efter pgauditparametrarna .
Välj lämpliga inställningar som ska redigeras. Om du till exempel vill starta loggningen anger du pgaudit.log till SKRIV.
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_prefix
Postgres . 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_prefix
finns i PostgreSQL-dokumentationen.
Kom igång
För att snabbt komma igång ställer du in pgaudit.log på WRITE. Ö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
- Läs mer om loggning i Azure Database for PostgreSQL.
- Lär dig hur du anger parametrar med hjälp av Azure-portalen, Azure CLI eller REST-API:et.