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 Inspekcja bazy danych PostgreSQL: pgaudit
. pgaudit
Udostępnia 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 pgaudit
instrukcje dziennika i regularne instrukcje dziennika są emitowane przy użyciu standardowego obiektu rejestrowania 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 pgaudit
Przed zainstalowaniem pgaudit
rozszerzenia na serwerze elastycznym usługi Azure Database for PostgreSQL należy użyć rozszerzenia allowlist pgaudit
.
Korzystanie z witryny Azure Portal:
1. Wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.
1. Na pasku bocznym wybierz pozycję Parametry serwera.
1. Wyszukaj azure.extensions
parametr .
1. Wybierz pgaudit
jako rozszerzenie, które chcesz zezwolić na listę.
Korzystanie z interfejsu wiersza polecenia platformy Azure:
Rozszerzenia listy dozwolonych można uzyskać 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ć program 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:
Wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.
Na pasku bocznym wybierz pozycję Parametry serwera.
shared_preload_libraries
Wyszukaj parametr .Wybierz opcję
pgaudit
.Możesz sprawdzić, czy
pgaudit
plik został załadowany w shared_preload_libraries, wykonując następujące zapytanie w narzędziu psql:show shared_preload_libraries;
Powinien zostać wyświetlony
pgaudit
wynik zapytania, który zwróci shared_preload_libraries.Nawiąż połączenie z serwerem przy użyciu klienta (takiego jak psql) i włącz
pgaudit
rozszerzenie.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 usługipgaudit
pgaudit
umożliwia skonfigurowanie 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 pgaudit
programu można skonfigurować jego parametry w celu rozpoczęcia rejestrowania.
Aby skonfigurować pgaudit
, możesz wykonać poniższe instrukcje.
Korzystanie z witryny Azure Portal:
Wybierz serwer usługi Azure Database for the PostgreSQL.
Na pasku bocznym wybierz pozycję Parametry serwera.
pgaudit
Wyszukaj parametry.Wybierz parametr ustawień do edycji. Na przykład aby rozpocząć rejestrowanie ustawione
pgaudit.log
naWRITE
Wybierz przycisk Zapisz , aby zapisać zmiany
Dokumentacja pgaudit
zawiera definicję każdego parametru. Najpierw przetestuj parametry i upewnij się, że otrzymujesz oczekiwane zachowanie.
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.
Na serwerze pgaudit.log
elastycznym usługi Azure Database for PostgreSQL nie można ustawić skrótu do znaku (minus), zgodnie z opisem -
w pgaudit
dokumentacji. Wszystkie wymagane klasy instrukcji (READ, WRITE itp.) powinny być określone indywidualnie.
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ć pgaudit
rozszerzenia 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 dodać pgaudit.log ='ROLE'
je dodatkowo, co spowoduje zredagowanie hasła z dzienników podczas rejestrowania CREATE/ALTER ROLE
.
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 pgaudit
dokumentacji.
Wprowadzenie
Aby szybko rozpocząć, ustaw wartość pgaudit.log
WRITE
i 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. Zobacz artykuł dotyczący konta magazynu dzienników dla usługi Azure Storage. Zobacz artykuł dotyczący strumieniowego rejestrowania dzienników platformy Azure dla usługi Event Hubs.
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 pgaudit
wpisy w dziennikach bazy danych Postgres dla określonego serwera w ostatnim dniu
AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"