Konfigurowanie dzienników i uzyskiwanie do nich dostępu

Dzienniki dla elastycznych serwerów usługi Azure Database for PostgreSQL są dostępne na każdym węźle serwera. Możesz wysłać te dzienniki do własnego obszaru roboczego Log Analytics. 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.

Kroki konfigurowania ustawień diagnostycznych

Korzystanie z portalu Azure:

  1. W menu zasobów w sekcji Monitorowanie wybierz pozycję Ustawienia diagnostyczne. Wybierz pozycję Dodaj ustawienia diagnostyczne.

    Zrzut ekranu przedstawiający stronę Ustawienia diagnostyczne bez wpisów.

  2. W polu Nazwa ustawienia diagnostycznego wpisz nazwę, z którą chcesz zidentyfikować to ustawienie.

    Zrzut ekranu przedstawiający stronę konfiguracji ustawień diagnostycznych z nazwą ustawienia.

  3. W obszarze Szczegóły miejsca docelowego wybierz pozycję Wyślij do obszaru roboczego usługi Log Analytics. W obszarze Subskrypcja wybierz subskrypcję, w której już istnieje obszar roboczy Log Analytics. W obszarze roboczym Log Analytics wybierz obszar roboczy, do którego chcesz przesyłać strumieniowo dzienniki lub metryki. Dla Tabela docelowa zaleca się wybranie opcji Specyficzne dla zasobu zamiast Diagnostyka platformy Azure. Aby dowiedzieć się więcej o różnicach między nimi, zapoznaj się z tematem Dzienniki zasobów w Azure Monitor. Jeśli chcesz wysłać wybrane kategorie do innego typu miejsca docelowego, zamiast lub dodatkowo, wybierz odpowiednie opcje w obszarze Szczegóły miejsca docelowego i odpowiednio je skonfiguruj.

    Zrzut ekranu przedstawiający stronę konfiguracji ustawień diagnostycznych z wybranym obszarem roboczym Log Analytics.

  4. Jeśli chcesz przesyłać strumieniowo jakiekolwiek dzienniki do wybranego obszaru roboczego, wybierz ich poszczególne kategorie (dzienniki serwera PostgreSQL, dane sesji PostgreSQL, dane środowiska uruchomieniowego Query Store PostgreSQL, statystyki oczekiwania Query Store PostgreSQL, statystyki autovacuum i schematu PostgreSQL, pozostałe transakcje PostgreSQL, dzienniki PgBouncer PostgreSQL lub tekst SQL Query Store PostgreSQL) albo zaznacz dowolne z dwóch pól wyboru w obszarze Grupy kategorii (audit lub allLogs). Wybranie jednej lub obu grup kategorii jest równoważne wybraniu wszystkich poszczególnych kategorii. Aby dowiedzieć się więcej na temat poszczególnych kategorii dzienników, zapoznaj się z tematem Dzienniki. Ponadto jeśli chcesz, aby metryki zostały przesyłane strumieniowo do wybranego obszaru roboczego, w obszarze Metryki wybierz pozycję Wszystkie metryki.

    Zrzut ekranu przedstawiający stronę konfiguracji ustawień diagnostycznych ze wszystkimi wybranymi kategoriami dzienników i metrykami.

  5. Wybierz Zapisz, aby zastosować zmiany. Po zapisaniu zmian zamknij stronę ze wszystkimi szczegółami konfiguracji, aby powrócić do strony Ustawienia diagnostyczne.

    Zrzut ekranu przedstawiający stronę Ustawienia diagnostyczne z jednym wpisem.

    Ważna

    Nie można wybrać jednej kategorii w więcej niż jednym ustawieniu diagnostycznym dla tego samego serwera elastycznego, jeśli lokalizacja docelowa jest taka sama dla obu tych opcji. Można jednak całkowicie wybrać tę samą kategorię w różnych ustawieniach diagnostycznych dla tego samego serwera elastycznego, o ile miejsca docelowe są różne.

  6. Dla dowolnego zasobu można utworzyć maksymalnie pięć ustawień diagnostycznych. Po osiągnięciu tego limitu opcja dodania ustawienia diagnostycznego zostanie zastąpiona komunikatem wskazującym osiągnięcie limitu.

    Zrzut ekranu przedstawiający stronę Ustawienia diagnostyczne z maksymalnymi dozwolonymi wpisami.

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 o koncie magazynu dzienników, zobacz artykuł dotyczący usługi Azure Storage. Aby dowiedzieć się więcej o strumieniowaniu dzienników Azure, zobacz artykuł o Event Hubs.

W przypadku obszarów roboczych usługi Log Analytics dzienniki są wysyłane do wybranego obszaru roboczego. Jeśli skonfigurujesz ustawienie diagnostyczne tak, aby używało tabel specyficznych dla zasobów, co jest zalecanym sposobem, zapoznaj się z [Azure Database for PostgreSQL dziennikami zasobów], aby wyświetlić mapowanie między nazwą kategorii dziennika i odpowiednią tabelą specyficzną dla zasobu. Jeśli natomiast skonfigurujesz ustawienia diagnostyczne tak, aby jako tabeli docelowej używać AzureDiagnostics, wszystkie zdarzenia ze wszystkich kategorii trafią do tej samej tabeli AzureDiagnostics.

Dowiedz się więcej o zapytaniach i alertach w artykule Omówienie usługi Log Analytics w Azure Monitor.

Poniżej znajduje się kilka przykładowych zapytań, które możesz wypróbować na początek. Możesz również skonfigurować alerty na podstawie zapytań.

Wszystkie zdarzenia w dzienniku serwera jednego serwera w ciągu ostatniego dnia

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego przesyłasz strumieniowo kategorię PostgreSQLLogs, są tabele specyficzne dla zasobów, użyj następującego zapytania:

PGSQLServerLogs
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(1d)

Jeśli chodzi o diagnostykę Azure, użyj następującego zapytania:

AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)

Wszystkie próby połączenia zdalnego w ciągu ostatnich 6 godzin z dowolnym serwerem przesyłającym dzienniki do tego obszaru roboczego

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego przesyłasz strumieniowo kategorię PostgreSQLLogs, są tabele specyficzne dla zasobów, użyj następującego zapytania:

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

Jeśli chodzi o diagnostykę platformy Azure, użyj następującego zapytania:

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

Sesje zebrane z widoku systemu pg_stat_activity dla jednego serwera w ciągu ostatnich 30 minut

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego przesyłasz strumieniowo kategorię PostgreSQLFlexSessions, są tabele specyficzne dla zasobu, użyj następującego zapytania:

PGSQLPgStatActivitySessions
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(30m)

Jeśli chodzi o diagnostykę platformy Azure, użyj następującego zapytania:

AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexSessions'
| where TimeGenerated > ago(30m)

Statystyki czasu wykonywania w Query Store dla jednego serwera z ostatnich 2 dni

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego strumieniowo przesyłasz kategorię PostgreSQLFlexQueryStoreRuntime, są tabele specyficzne dla zasobu, użyj następującego zapytania:

PGSQLQueryStoreRuntime
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(2d)

Jeśli chodzi o diagnostykę platformy Azure, użyj następującego zapytania:

AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexQueryStoreRuntime'
| where TimeGenerated > ago(2d)

Statystyki oczekiwań Query Store dla jednego serwera z ostatnich 3 dni

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego przesyłasz strumieniowo kategorię PostgreSQLFlexQueryStoreWaitStats, są tabele specyficzne dla zasobu, użyj następującego zapytania:

PGSQLQueryStoreWaits
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(3d)

If it's Azure diagnostics, use the following query:

```kusto
AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexQueryStoreWaitStats'
| where TimeGenerated > ago(3d)

Treść zapytania z magazynu zapytań dla jednego serwera z ostatnich 3 dni

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego przesyłasz strumieniowo kategorię PostgreSQLQueryStoreSqlText, są tabele specyficzne dla zasobu, użyj następującego zapytania:

PGSQLQueryStoreQueryText
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(3d)

Ważna

Z wielu powodów zdecydowanie odradza się używanie tabeli docelowej diagnostyki platformy Azure dla żadnej z dostępnych kategorii. Jest to jednak szczególnie ważne dla kategorii PostgreSQLQueryStoreSqlText. Aby dowiedzieć się, dlaczego tabele specyficzne dla zasobu są znacznie lepsze niż Azure Diagnostics, zapoznaj się z trybami zbierania w obszarach roboczych usługi Log Analytics.

Autovacuum i statystyki schematu dla jednego serwera z ostatnich 5 godzin

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego przesyłasz strumieniowo kategorię PostgreSQLFlexTableStats, są tabele specyficzne dla zasobów, użyj następującego zapytania:

PGSQLAutovacuumStats
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(5h)

Jeśli to diagnostyka Azure, użyj następującego zapytania:

AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexTableStats'
| where TimeGenerated > ago(1d)

Pozostałe transakcje do momentu automatycznego czyszczenia awaryjnego lub opakowania ochrony dla każdej bazy danych na jednym serwerze w ciągu ostatniego dnia

Jeśli miejscem docelowym ustawienia diagnostycznego, z którego przesyłasz strumieniowo kategorię PostgreSQLFlexDatabaseXacts, są tabele specyficzne dla zasobu, użyj następującego zapytania:

PGSQLDbTransactionsStats
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(1d)

Jeśli chodzi o diagnostykę platformy Azure, użyj następującego zapytania:

AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexDatabaseXacts'
| where TimeGenerated > ago(1d)

Aby uzyskać bardziej zaawansowane przykłady zapytań, odwiedź centrum zapytań w obszarze roboczym Log Analytics i przefiltruj według wartości Typ zasobu równej Azure Database for PostgreSQL — Serwery elastyczne.

Zrzut ekranu przedstawiający centrum zapytań przefiltrowane tak, aby wyświetlało zapytania dotyczące serwera elastycznego Azure Database for PostgreSQL w obszarze roboczym Log Analytics.