Protokoly na jednoúčelovém serveru Azure Database for PostgreSQL

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

Azure Database for PostgreSQL umožňuje konfigurovat a přistupovat ke standardním protokolům Postgres. Pomocí protokolů je možné identifikovat a opravovat chyby konfigurace a neoptimální výkon a řešit související potíže. Protokolování informací, které můžete nakonfigurovat a získat přístup, zahrnují chyby, informace o dotazech, záznamy automatického úklidu, připojení a kontrolní body. (Přístup k transakčním protokolům není k dispozici).

Protokolování auditu je dostupné prostřednictvím rozšíření PostgreSQL pgaudit. Další informace najdete v článku o konceptech auditování .

Konfigurace protokolování

Standardní protokolování Postgres na serveru můžete nakonfigurovat pomocí parametrů serveru protokolování. Na každém serveru log_checkpoints Azure Database for PostgreSQL a log_connections jsou ve výchozím nastavení zapnuté. Existují další parametry, které můžete upravit tak, aby vyhovovaly vašim potřebám protokolování:

Azure Database for PostgreSQL – Parametry protokolování

Další informace o parametrech protokolu Postgres najdete v částech Kdy protokolovat a Co protokolovat v dokumentaci Postgres. Většina, ale ne všechny parametry protokolování Postgres jsou k dispozici ke konfiguraci ve službě Azure Database for PostgreSQL.

Informace o konfiguraci parametrů ve službě Azure Database for PostgreSQL najdete v dokumentaci k portálu nebo dokumentaci k rozhraní příkazového řádku.

Poznámka:

Konfigurace velkého objemu protokolů, například protokolování příkazů, může zvýšit významnou režii na výkon.

Přístup k souborům protokolu.

Výchozí formát protokolu ve službě Azure Database for PostgreSQL je .log. Ukázkový řádek z tohoto protokolu vypadá takto:

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

Azure Database for PostgreSQL poskytuje krátkodobé umístění úložiště pro soubory .log. Nový soubor začíná každých 1 hodinu nebo 100 MB podle toho, co nastane dříve. Protokoly se připojují k aktuálnímu souboru, protože se vygenerují z Postgresu.

Dobu uchovávání tohoto krátkodobého úložiště protokolů můžete nastavit pomocí parametru log_retention_period . Výchozí hodnota je 3 dny a maximální hodnota je 7 dnů. Krátkodobé umístění úložiště může obsahovat až 1 GB souborů protokolu. Po 1 GB se nejstarší soubory bez ohledu na dobu uchovávání odstraní, aby se uvolnilo místo pro nové protokoly.

V případě dlouhodobého uchovávání protokolů a analýzy protokolů si můžete stáhnout .log soubory a přesunout je do služby třetí strany. Soubory si můžete stáhnout pomocí webu Azure Portal, Azure CLI. Alternativně můžete nakonfigurovat nastavení diagnostiky služby Azure Monitor, která automaticky vysílá vaše protokoly (ve formátu JSON) do dlouhodobějších umístění. Další informace o této možnosti najdete v následující části.

Generování .log souborů můžete ukončit nastavením parametru logging_collector na VYPNUTO. Vypnutí .log generování souborů se doporučuje, pokud používáte nastavení diagnostiky služby Azure Monitor. Tato konfigurace sníží dopad dalšího protokolování na výkon.

Poznámka:

Restartujte server, aby se tato změna projevila.

Protokoly prostředků

Služba Azure Database for PostgreSQL je integrovaná s nastavením diagnostiky služby Azure Monitor. Nastavení diagnostiky umožňuje odesílat protokoly Postgres ve formátu JSON do protokolů služby Azure Monitor pro analýzy a upozorňování, službu Event Hubs pro streamování a Službu Azure Storage pro archivaci.

Důležité

Tato diagnostická funkce pro protokoly serveru je k dispozici pouze v cenových úrovních Pro obecné účely a Optimalizováno pro paměť.

Konfigurace nastavení diagnostiky

Nastavení diagnostiky pro server Postgres můžete povolit pomocí webu Azure Portal, rozhraní příkazového řádku, rozhraní REST API a PowerShellu. Kategorie protokolu, která se má vybrat, je PostgreSQLLogs. (Pokud používáte, můžete nakonfigurovat další protokoly.Úložiště dotazů.)

Povolení protokolů prostředků pomocí webu Azure Portal:

  1. Na portálu přejděte do diagnostického Nastavení v navigační nabídce serveru Postgres.
  2. Vyberte Přidat nastavení diagnostiky.
  3. Pojmenujte toto nastavení.
  4. Vyberte upřednostňovaný koncový bod (účet úložiště, centrum událostí, log analytics).
  5. Vyberte typ protokolu Protokoly serveru PostgreSQL.
  6. Uložte nastavení.

Pokud chcete povolit protokoly prostředků pomocí PowerShellu, rozhraní příkazového řádku nebo rozhraní REST API, přečtěte si článek o nastavení diagnostiky.

Přístup k protokolům prostředků

Způsob, jakým přistupujete k protokolům, závisí na zvoleném koncovém bodu. Informace o službě Azure Storage najdete v článku o účtu úložiště protokolů. Informace o službě Event Hubs najdete v článku streamu protokolů Azure.

V případě protokolů služby Azure Monitor se protokoly odesílají do vybraného pracovního prostoru. Protokoly Postgres používají režim shromažďování AzureDiagnostics , aby se mohly dotazovat z tabulky AzureDiagnostics. Pole v tabulce jsou popsaná níže. Další informace o dotazování a upozorňování najdete v přehledu dotazů protokolů služby Azure Monitor.

Níže jsou uvedené dotazy, které se můžete pokusit začít. Výstrahy můžete nakonfigurovat na základě dotazů.

Vyhledejte všechny protokoly Postgres pro konkrétní server za poslední den.

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

Vyhledání všech pokusů o připojení jiného hostitele než localhost

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

Výše uvedený dotaz zobrazí výsledky za posledních 6 hodin pro jakékoli protokolování serveru Postgres v tomto pracovním prostoru.

Formát protokolu

Následující tabulka popisuje pole pro typ PostgreSQLLogs . V závislosti na zvoleném výstupním koncovém bodu se můžou pole a pořadí, ve kterém se zobrazují, lišit.

Pole Popis
TenantId ID vašeho tenanta
SourceSystem Azure
TimeGenerated [UTC] Časové razítko, kdy se protokol zaznamenal v UTC
Typ Typ protokolu Vždy AzureDiagnostics
SubscriptionId IDENTIFIKÁTOR GUID předplatného, ke kterému server patří
ResourceGroup Název skupiny prostředků, do které server patří
ResourceProvider Název poskytovatele prostředků Vždy MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId Adresa URI zdroje
Prostředek Název serveru
Kategorie PostgreSQLLogs
OperationName LogEvent
Errorlevel Úroveň protokolování, příklad: LOG, ERROR, NOTICE
Zpráva Primární zpráva protokolu
Doména Verze serveru, příklad: postgres-10
Podrobnosti Sekundární zpráva protokolu (pokud je k dispozici)
ColumnName Název sloupce (pokud je k dispozici)
Název schématu Název schématu (pokud je k dispozici)
Název datového typu Název datového typu (pokud je k dispozici)
Název logického serveru Název serveru
_ResourceId Adresa URI zdroje
Předpona Předpona řádku protokolu

Další kroky