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

DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny

Rejestrowanie inspekcji działań bazy danych na serwerze elastycznym usługi Azure Database for PostgreSQL jest dostępne za pośrednictwem rozszerzenia inspekcji postgreSQL: pgAudit. Rozszerzenie pgAudit zapewnia szczegółowe rejestrowanie inspekcji sesji i/lub obiektów.

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

Zagadnienia dotyczące użycia

Domyślnie instrukcje rejestrowania rozszerzenia pgAudit są emitowane wraz z normalnymi instrukcjami rejestrowania przy użyciu standardowej funkcji rejestrowania bazy danych Postgres. Na serwerze elastycznym usługi Azure Database for PostgreSQL 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 rejestrowanie zasobów usługi Azure Monitor, dzienniki zostaną automatycznie wysłane (w formacie JSON) do dzienników usługi Azure Storage, usługi Event Hubs i/lub usługi Azure Monitor, w zależności od wybranej opcji.

Aby dowiedzieć się, jak skonfigurować rejestrowanie w dziennikach usługi Azure Storage, usługi Event Hubs lub usługi Azure Monitor, odwiedź sekcję dzienników zasobów w artykule dotyczącym dzienników serwera.

Instalowanie narzędzia pgAudit

Przed zainstalowaniem rozszerzenia pgAudit na serwerze elastycznym usługi Azure Database for PostgreSQL należy użyć rozszerzenia pgAudit listy dozwolonych.

Korzystanie z witryny Azure Portal:

  1. Wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.
  2. Na pasku bocznym wybierz pozycję Parametry serwera.
  3. azure.extensions Wyszukaj parametr .
  4. Wybierz pozycję pgAudit jako rozszerzenie, które chcesz zezwolić na listę. Screenshot showing Azure Database for PostgreSQL - allow-listing extensions for installation.

Korzystanie z interfejsu wiersza polecenia platformy Azure:

Rozszerzenia listy dozwolonych można zezwolić za pomocą polecenia zestawu parametrów interfejsu wiersza polecenia.

az postgres flexible-server parameter set --resource-group <your resource group>  --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value pgAudit

Aby zainstalować narzędzie pgAudit, należy uwzględnić go w udostępnionych bibliotekach wstępnego ładowania serwera. Zmiana parametru shared_preload_libraries bazy danych Postgres wymaga, aby ponowne uruchomienie serwera miało zastosowanie. Parametry można zmienić przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST.

Korzystanie z witryny Azure Portal:

  1. Wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.

  2. Na pasku bocznym wybierz pozycję Parametry serwera.

  3. shared_preload_libraries Wyszukaj parametr .

  4. Wybierz pozycję pgaudit. Screenshot showing Azure Database for PostgreSQL flexible server enabling shared_preload_libraries for pgaudit.

  5. Możesz sprawdzić, czy narzędzie pgaudit jest ładowane w shared_preload_libraries, wykonując następujące zapytanie w narzędziu psql:

    show shared_preload_libraries;
    

    W wyniku zapytania powinien zostać wyświetlony element pgaudit , który zwróci shared_preload_libraries.

  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 pliku shared_preload_libraries.

Ustawienia pgAudit

Narzędzie pgAudit umożliwia konfigurowanie rejestrowania 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.

Po włączeniu rozszerzenia pgAudit możesz skonfigurować jego parametry, aby rozpocząć rejestrowanie. Aby skonfigurować narzędzie pgAudit, możesz wykonać poniższe instrukcje. Korzystanie z witryny Azure Portal:

  1. Wybierz serwer usługi Azure Database for PostgreSQL.
  2. Na pasku bocznym wybierz pozycję Parametry serwera.
  3. pgaudit Wyszukaj parametry.
  4. Wybierz odpowiedni parametr ustawień do edycji. Na przykład aby rozpocząć rejestrowanie ustawione pgaudit.log na WRITEScreenshot showing Azure Database for PostgreSQL - configuring logging with pgaudit
  5. Kliknij przycisk Zapisz , aby zapisać zmiany

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

Uwaga

Ustawienie pgaudit.log_client włączone spowoduje przekierowanie dzienników do procesu klienta (na przykład psql) zamiast zapisywania w pliku. To ustawienie powinno być zwykle wyłączone.

Parametr pgaudit.log_level jest włączony tylko wtedy, gdy parametr pgaudit.log_client jest ustawiony jako włączony.

Uwaga

Na serwerze pgaudit.log elastycznym usługi Azure Database for PostgreSQL nie można ustawić skrótu do znaku (minus), zgodnie z opisem - w dokumentacji narzędzia pgAudit. Wszystkie wymagane klasy instrukcji (READ, WRITE itp.) powinny być określone indywidualnie.

Uwaga

Jeśli ustawisz parametr log_statement na DDL lub ALL i uruchomisz CREATE ROLE/USER ... WITH PASSWORD ... ; polecenie lub ALTER ROLE/USER ... WITH PASSWORD ... ;, usługa PostgreSQL utworzy wpis w dziennikach bazy danych PostgreSQL, gdzie hasło jest rejestrowane w postaci zwykłego tekstu, co może spowodować potencjalne zagrożenie bezpieczeństwa. Jest to oczekiwane zachowanie zgodnie z projektem aparatu PostgreSQL. Można jednak użyć rozszerzenia PGAudit i ustawić pgaudit.log='DDL' parametr na stronie parametrów serwera, która nie rejestruje żadnej CREATE/ALTER ROLE instrukcji w dzienniku Postgres, w przeciwieństwie do ustawienia Postgres log_statement='DDL' . Jeśli musisz zarejestrować te instrukcje, możesz pgaudit.log ='ROLE' dodać je dodatkowo, co podczas rejestrowania 'CREATE/ALTER ROLE' spowoduje zredagowanie hasła z dzienników.

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.

Wprowadzenie

Aby szybko rozpocząć, ustaw wartość pgaudit.logWRITEi otwórz dzienniki serwera, aby przejrzeć dane wyjściowe.

Wyświetlanie dzienników inspekcji

Sposób uzyskiwania dostępu do dzienników zależy od wybranego punktu końcowego. Aby uzyskać informacje na temat usługi Azure Storage, zobacz artykuł dotyczący konta magazynu dzienników. Aby zapoznać się z usługą Event Hubs, zobacz artykuł dotyczący strumienia dzienników platformy Azure.

W przypadku dzienników usługi Azure Monitor dzienniki są wysyłane do wybranego obszaru roboczego. Dzienniki bazy danych Postgres używają trybu kolekcji AzureDiagnostics , aby można było wykonywać zapytania z tabeli AzureDiagnostics. Pola w tabeli zostały opisane poniżej. Dowiedz się więcej na temat wykonywania zapytań i alertów w temacie Omówienie zapytań dzienników usługi Azure Monitor.

Możesz użyć tego zapytania, aby rozpocząć pracę. Alerty można skonfigurować na podstawie zapytań.

Wyszukaj wszystkie wpisy pgAudit w dziennikach bazy danych Postgres dla określonego serwera w ciągu ostatniego dnia

AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

Następne kroki