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 pgaudit
rozszerzenia. 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 dzienników i zwykłe instrukcje dziennika są emitowane przy użyciu standardowego obiektu 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 rozszerzenia
Aby móc używać pgaudit
rozszerzenia, musisz zezwolić na listę, załadować i utworzyć rozszerzenie w bazie danych, na której ma być używany.
Konfigurowanie ustawień rozszerzenia
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
funkcji można skonfigurować jego parametry w celu rozpoczęcia rejestrowania.
Aby skonfigurować pgaudit
usługę , możesz wykonać następujące instrukcje:
Korzystanie z witryny Azure Portal:
Wybierz wystąpienie usługi Azure Database for the PostgreSQL — serwer elastyczny.
W menu zasobów w obszarze Ustawienia wybierz pozycję Parametry serwera.
pgaudit
Wyszukaj parametry.Wybierz odpowiedni parametr do edycji. Aby na przykład rozpocząć rejestrowanie
INSERT
, ,UPDATE
,DELETE
TRUNCATE
iCOPY
instrukcje , ustaw wartośćpgaudit.log
WRITE
.Wybierz przycisk Zapisz , aby zapisać zmiany.
Oficjalna dokumentacja zawiera pgaudit
definicję każdego parametru. Najpierw przetestuj parametry i upewnij się, że otrzymujesz oczekiwane zachowanie.
Na przykład ustawienie pgaudit.log_client
WŁĄCZONE nie tylko zapisuje zdarzenia inspekcji w dzienniku serwera, ale także wysyła je do procesów klienta (takich jak psql). 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 log_statement
parametr 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 postgreSQL, w którym 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
na DDL
wartość , która nie rejestruje żadnej CREATE/ALTER ROLE
instrukcji w dzienniku serwera Postgres, w przeciwieństwie do tego, gdy ustawiono wartość log_statement
DDL
. Jeśli musisz zarejestrować te instrukcje, możesz również ustawić wartość pgaudit.log
ROLE
, która redaguje hasło z dzienników podczas rejestrowania CREATE/ALTER ROLE
.
Format dziennika inspekcji
Każdy wpis inspekcji rozpoczyna się od AUDIT:
. Format pozostałej części wpisu został szczegółowo opisany w dokumentacji .pgaudit
Wprowadzenie
Aby szybko rozpocząć, ustaw wartość pgaudit.log
ALL
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. 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 =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"