Dzienniki 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?.

Usługa Azure Database for PostgreSQL umożliwia konfigurowanie standardowych dzienników bazy danych Postgres i uzyskiwanie do ich dostępu. Dzienniki mogą służyć do identyfikowania i rozwiązywania problemów oraz usuwania błędów związanych z konfiguracją oraz wydajnością mniejszą od optymalnej. Rejestrowanie informacji, które można skonfigurować i uzyskać dostęp, obejmuje błędy, informacje o zapytaniach, rekordy automatycznego czyszczenia, połączenia i punkty kontrolne. (Dostęp do dzienników transakcji jest niedostępny).

Rejestrowanie inspekcji jest udostępniane za pośrednictwem rozszerzenia PostgreSQL pgaudit. Aby dowiedzieć się więcej, zapoznaj się z artykułem dotyczącym pojęć dotyczących inspekcji .

Konfigurowanie rejestrowania

Możesz skonfigurować standardowe rejestrowanie postgres na serwerze przy użyciu parametrów serwera rejestrowania. Na każdym serwerze log_checkpoints usługi Azure Database for PostgreSQL i log_connections są domyślnie włączone. Istnieją dodatkowe parametry, które można dostosować zgodnie z potrzebami rejestrowania:

Azure Database for PostgreSQL — parametry rejestrowania

Aby dowiedzieć się więcej na temat parametrów dziennika Postgres, odwiedź sekcje When To Log i What To Log w dokumentacji bazy danych Postgres. Większość, ale nie wszystkie, parametry rejestrowania postgres są dostępne do skonfigurowania w usłudze Azure Database for PostgreSQL.

Aby dowiedzieć się, jak skonfigurować parametry w usłudze Azure Database for PostgreSQL, zobacz dokumentację portalu lub dokumentację interfejsu wiersza polecenia.

Uwaga

Skonfigurowanie dużej liczby dzienników, na przykład rejestrowanie instrukcji, może zwiększyć obciążenie związane z wydajnością.

Dostęp do plików dziennika.

Domyślny format dziennika w usłudze Azure Database for PostgreSQL to .log. Przykładowy wiersz z tego dziennika wygląda następująco:

2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216

Usługa Azure Database for PostgreSQL udostępnia krótkoterminową lokalizację przechowywania plików .log. Nowy plik rozpoczyna się co 1 godzinę lub 100 MB, w zależności od tego, co nastąpi wcześniej. Dzienniki są dołączane do bieżącego pliku, ponieważ są emitowane z bazy danych Postgres.

Okres przechowywania dla tego krótkoterminowego magazynu dzienników można ustawić przy użyciu parametru log_retention_period . Wartość domyślna to 3 dni, a maksymalna to 7 dni. Krótkoterminowa lokalizacja przechowywania może zawierać maksymalnie 1 GB plików dziennika. Po 1 GB najstarsze pliki, niezależnie od okresu przechowywania, zostaną usunięte, aby zapewnić miejsce na nowe dzienniki.

W celu długoterminowego przechowywania dzienników i analizy dzienników można pobrać pliki .log i przenieść je do usługi innej firmy. Pliki można pobrać przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure. Alternatywnie można skonfigurować ustawienia diagnostyczne usługi Azure Monitor, które automatycznie emitują dzienniki (w formacie JSON) do długoterminowych lokalizacji. Dowiedz się więcej o tej opcji w poniższej sekcji.

Możesz przestać generować pliki .log, ustawiając parametr logging_collector na WYŁ. Wyłączenie .log generowania plików jest zalecane, jeśli używasz ustawień diagnostycznych usługi Azure Monitor. Ta konfiguracja zmniejszy wpływ dodatkowego rejestrowania na wydajność.

Uwaga

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

Dzienniki zasobów

Usługa Azure Database for PostgreSQL jest zintegrowana z ustawieniami diagnostycznymi usługi Azure Monitor. Ustawienia diagnostyczne umożliwiają wysyłanie dzienników Postgres w formacie JSON do dzienników usługi Azure Monitor na potrzeby analizy i alertów, usługi Event Hubs do przesyłania strumieniowego i usługi Azure Storage na potrzeby archiwizowania.

Ważne

Ta funkcja diagnostyczna dzienników serwera jest dostępna tylko w warstwach cenowych Ogólnego przeznaczenia i Zoptymalizowane pod kątem pamięci.

Konfigurowanie ustawień diagnostycznych

Ustawienia diagnostyczne serwera Postgres można włączyć przy użyciu witryny Azure Portal, interfejsu wiersza polecenia, interfejsu API REST i programu PowerShell. Wybrana kategoria dziennika to PostgreSQLLogs. (Istnieją inne dzienniki, które można skonfigurować, jeśli używasz Magazyn zapytań).

Aby włączyć dzienniki zasobów przy użyciu witryny Azure Portal:

  1. W portalu przejdź do pozycji Diagnostyka Ustawienia w menu nawigacji serwera Postgres.
  2. Wybierz pozycję Dodaj ustawienie diagnostyczne.
  3. Nadaj temu ustawieniu nazwę.
  4. Wybierz preferowany punkt końcowy (konto magazynu, centrum zdarzeń, analiza dzienników).
  5. Wybierz typ dziennika Dzienniki serwera PostgreSQL.
  6. Zapisz ustawienie.

Aby włączyć dzienniki zasobów przy użyciu programu PowerShell, interfejsu wiersza polecenia lub interfejsu API REST, odwiedź artykuł ustawień diagnostycznych.

Uzyskiwanie dostępu do dzienników zasobów

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.

Poniżej przedstawiono zapytania, które można spróbować rozpocząć. 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 Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

Wyszukaj wszystkie próby połączenia innego niż localhost

AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)

Powyższe zapytanie spowoduje wyświetlenie wyników w ciągu ostatnich 6 godzin dla dowolnego rejestrowania serwera Postgres w tym obszarze roboczym.

Format dziennika

W poniższej tabeli opisano pola typu PostgreSQLLogs . W zależności od wybranego punktu końcowego danych wyjściowych pola uwzględnione i kolejność ich wyświetlania mogą się różnić.

Pole Opis
TenantId Identyfikator dzierżawy
SourceSystem Azure
TimeGenerated [UTC] Sygnatura czasowa zarejestrowania dziennika w formacie UTC
Typ Typ dziennika. Zawsze AzureDiagnostics
SubscriptionId Identyfikator GUID subskrypcji, do którego należy serwer
ResourceGroup Nazwa grupy zasobów, do którego należy serwer
ResourceProvider Nazwa dostawcy zasobów. Zawsze MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId Adres URI zasobu
Zasób Nazwa serwera
Kategoria PostgreSQLLogs
OperationName LogEvent
Errorlevel Poziom rejestrowania, przykład: DZIENNIK, BŁĄD, POWIADOMIENIE
Komunikat Podstawowy komunikat dziennika
Domain Wersja serwera, przykład: postgres-10
Szczegóły Komunikat dziennika pomocniczego (jeśli dotyczy)
ColumnName Nazwa kolumny (jeśli dotyczy)
Nazwa schematu Nazwa schematu (jeśli dotyczy)
DatatypeName Nazwa typu danych (jeśli dotyczy)
Nazwa serwera logicznego Nazwa serwera
_ResourceId Adres URI zasobu
Prefiks Prefiks wiersza dziennika

Następne kroki