Rejestrowanie inspekcji w usłudze Azure Database for PostgreSQL — pojedynczy serwer

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

Ważne

Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.

Rejestrowanie inspekcji działań bazy danych w usłudze Azure Database for PostgreSQL — pojedynczy serwer jest dostępny za pośrednictwem rozszerzenia inspekcji PostgreSQL pgAudit. Rozszerzenie pgAudit udostępnia szczegółowe rejestrowanie sesji i inspekcji obiektów.

Uwaga

Rozszerzenie pgAudit jest dostępne w wersji zapoznawczej w usłudze Azure Database for PostgreSQL. Można ją włączyć tylko na serwerach ogólnego przeznaczenia i zoptymalizowanych pod kątem pamięci.

Jeśli chcesz, aby dzienniki na poziomie zasobów platformy Azure dla operacji, takich jak skalowanie zasobów obliczeniowych i magazynu, zobacz Omówienie dzienników platformy Azure.

Zagadnienia dotyczące użycia

Domyślnie instrukcje dziennika pgAudit są emitowane wraz ze zwykłymi instrukcjami dziennika przy użyciu standardowego obiektu rejestrowania postgres. W usłudze Azure Database for PostgreSQL te pliki .log można pobrać za pośrednictwem witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure. Maksymalny rozmiar magazynu dla kolekcji plików wynosi 1 GB. Każdy plik jest dostępny przez maksymalnie siedem dni. Wartość domyślna to trzy dni. Ta usługa jest opcją magazynu krótkoterminowego.

Alternatywnie można skonfigurować wszystkie dzienniki, które mają być wysyłane do magazynu dzienników usługi Azure Monitor na potrzeby późniejszej analizy w usłudze Log Analytics. Jeśli włączysz funkcję Monitorowanie rejestrowania zasobów, dzienniki są automatycznie wysyłane w formacie JSON do usługi Azure Storage, azure Event Hubs lub dzienników monitorowania, w zależności od wybranej opcji.

Włączenie rozszerzenia pgAudit generuje dużą ilość rejestrowania na serwerze, co wpływa na wydajność i magazyn dzienników. Zalecamy korzystanie z funkcji Monitorowanie dzienników, które oferują długoterminowe opcje magazynowania oraz funkcje analizy i alertów. Wyłącz rejestrowanie standardowe, aby zmniejszyć wpływ dodatkowego rejestrowania na wydajność:

  1. Ustaw parametr logging_collector na WYŁ.
  2. Uruchom ponownie serwer, aby zastosować tę zmianę.

Aby dowiedzieć się, jak skonfigurować rejestrowanie w usłudze Storage, Event Hubs lub Dzienniki monitorowania, zobacz sekcję dzienników zasobów w usłudze Azure Database for PostgreSQL — pojedynczy serwer.

Instalowanie narzędzia pgAudit

Aby zainstalować narzędzie pgAudit, należy dołączyć go do udostępnionych wstępnie załadowanych bibliotek serwera. Zmiana parametru Postgres shared_preload_libraries wymaga, aby ponowne uruchomienie serwera miało zastosowanie. Parametry można zmienić przy użyciu portalu, interfejsu wiersza polecenia lub interfejsu API REST.

Aby użyć portalu:

  1. Wybierz serwer usługi Azure Database for PostgreSQL.

  2. Po lewej stronie w obszarze Ustawienia wybierz pozycję Parametry serwera.

  3. Wyszukaj shared_preload_libraries.

  4. Wybierz pozycję PGAUDIT.

    Zrzut ekranu przedstawiający włączanie shared_preload_libraries usługi Azure Database for PostgreSQL dla narzędzia PGAUDIT.

  5. Uruchom ponownie serwer, aby zastosować zmianę.

  6. Połączenie na serwer przy użyciu klienta, takiego jak psql, i włącz rozszerzenie pgAudit:

    CREATE EXTENSION pgaudit;
    

Napiwek

Jeśli zostanie wyświetlony błąd, upewnij się, że serwer został uruchomiony ponownie po zapisaniu shared_preload_librariespolecenia .

Ustawienia pgAudit

Za pomocą narzędzia pgAudit można skonfigurować rejestrowanie inspekcji sesji lub obiektu. Rejestrowanie inspekcji sesji emituje szczegółowe dzienniki wykonanych instrukcji. Rejestrowanie inspekcji obiektów jest objęte inspekcją w zakresie określonych relacji. Możesz skonfigurować jeden lub oba typy rejestrowania.

Uwaga

Ustawienia pgAudit są określane globalnie i nie można ich określić na poziomie bazy danych ani roli.

Po zainstalowaniu narzędzia pgAudit można skonfigurować jego parametry w celu rozpoczęcia rejestrowania.

Aby skonfigurować narzędzie pgAudit, w portalu:

  1. Wybierz serwer usługi Azure Database for PostgreSQL.

  2. Po lewej stronie w obszarze Ustawienia wybierz pozycję Parametry serwera.

  3. Wyszukaj parametry pgaudit.

  4. Wybierz odpowiednie parametry ustawień, aby edytować. Aby na przykład rozpocząć rejestrowanie, ustaw pgaudit.log na WARTOŚĆ WRITE.

    Zrzut ekranu przedstawiający konfigurowanie rejestrowania za pomocą narzędzia pgAudit w usłudze Azure Database for PostgreSQL.

  5. Wybierz Zapisz, aby zapisać zmiany.

Dokumentacja narzędzia pgAudit zawiera definicję każdego parametru. Najpierw przetestuj parametry i upewnij się, że otrzymujesz oczekiwane zachowanie. Na przykład:

  • Gdy ustawienie pgaudit.log_client jest włączone, przekierowuje dzienniki do procesu klienta, takiego jak psql, zamiast zapisywać w pliku. Ogólnie rzecz biorąc, pozostaw to ustawienie wyłączone.
  • Parametr pgaudit.log_level jest włączony tylko wtedy, gdy pgaudit.log_client jest włączony.

Uwaga

W usłudze Azure Database for PostgreSQL nie można ustawić pgaudit.log przy użyciu skrótu minus-sign (-) zgodnie z opisem w dokumentacji narzędzia pgAudit. Wszystkie wymagane klasy instrukcji, takie jak READ i WRITE, powinny być określone indywidualnie.

Format dziennika inspekcji

Każdy wpis inspekcji jest wskazywany przez AUDIT: blisko początku wiersza dziennika. Format pozostałej części wpisu został szczegółowo opisany w dokumentacji narzędzia pgAudit.

Jeśli potrzebujesz innych pól, aby spełnić wymagania dotyczące inspekcji, użyj parametru log_line_prefixPostgres . Ciąg log_line_prefix jest wynikiem na początku każdego wiersza dziennika Postgres. Na przykład następujące log_line_prefix ustawienie zawiera znacznik czasu, nazwę użytkownika, nazwę bazy danych i identyfikator procesu:

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

Aby dowiedzieć się więcej na temat log_line_prefixusługi , zobacz dokumentację bazy danych PostgreSQL.

Rozpocznij

Aby szybko rozpocząć pracę, ustaw pgaudit.log na WRITE. Następnie otwórz dzienniki, aby przejrzeć dane wyjściowe.

Wyświetlanie dzienników inspekcji

Jeśli używasz plików .log, dzienniki inspekcji znajdują się w tym samym pliku co dzienniki błędów bazy danych PostgreSQL. Pliki dziennika można pobrać z portalu lub interfejsu wiersza polecenia.

Jeśli używasz rejestrowania zasobów platformy Azure, sposób uzyskiwania dostępu do dzienników zależy od wybranego punktu końcowego. Aby uzyskać informacje o usłudze Storage, zobacz Dzienniki zasobów platformy Azure. W przypadku usługi Event Hubs zobacz również dzienniki zasobów platformy Azure.

W przypadku dzienników monitorowania dzienniki są wysyłane do wybranego obszaru roboczego. Dzienniki bazy danych Postgres używają trybu zbierania AzureDiagnostics , aby można było wykonywać zapytania z AzureDiagnostics tabeli, jak pokazano poniżej. Aby dowiedzieć się więcej na temat wykonywania zapytań i alertów, zobacz Rejestrowanie zapytań w usłudze Azure Monitor.

Użyj tego zapytania, aby rozpocząć pracę. Alerty można skonfigurować na podstawie zapytań.

Wyszukaj wszystkie dzienniki bazy danych Postgres dla określonego serwera w ciągu ostatniego dnia:

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

Następne kroki