Azure Database for PostgreSQL フレキシブル サーバー インスタンスのログは、サーバーのすべてのノードで使用できます。 ストレージ サーバーまたは分析サービスにログを送信できます。 ログは、構成エラーと十分に最適化されていないパフォーマンスの特定、トラブルシューティング、修復に使用できます。
診断設定を構成する
Azure portal、CLI、REST API、PowerShell を使用して、お使いの Azure Database for PostgreSQL フレキシブル サーバー インスタンスの診断設定を有効にすることができます。 選択するログ カテゴリは PostgreSQLLogs です。
Azure portal を使用してリソース ログを有効にするには
ポータルで、お使いの Azure Database for PostgreSQL フレキシブル サーバー インスタンスのナビゲーション メニューから [診断設定] に移動します。
[診断設定の追加] を選択します。
              
              
            
この設定に名前を付けます。
任意の優先エンドポイント (Log Analytics ワークスペース、ストレージ アカウント、イベント ハブ) を選択します。
カテゴリの一覧からログの種類を選択します (サーバー ログ、セッション データ、クエリ ストアのランタイム/待機統計など)。
設定を保存します。
PowerShell、CLI、または REST API を使用してリソース ログを有効にするには、診断の設定に関する記事をご覧ください。
リソース ログへのアクセス
ログへのアクセス方法は、選択したエンドポイントによって異なります。 Azure Storage については、ログ ストレージ アカウントに関する記事を参照してください。 Event Hubs の場合は、Azure ログのストリーミングに関する記事を参照してください。
Azure Monitor ログの場合は、選択したワークスペースにログが送信されます。 Azure Database for PostgreSQL ログでは AzureDiagnostics コレクション モードが使用されるため、AzureDiagnostics テーブルからクエリを実行できます。 表内のフィールドについては、以下で説明します。 クエリとアラートの詳細については、Azure Monitor のログ クエリの概要に関する記事を参照してください。
次に、作業を開始するために試すことのできるクエリを示します。 クエリに基づいてアラートを構成できます。
最後の日に特定のサーバーのすべての Azure Database for PostgreSQL ログを検索します。
AzureDiagnostics
| where Resource == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 
localhost 以外のすべての接続の試行を検索します。 次のクエリでは、このワークスペースの Azure Database for PostgreSQL ログの過去 6 時間の結果が表示されます。
AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)
最後の日に特定のサーバー pg_stat_activity システム ビューから収集された Azure Database for PostgreSQL セッションを検索します。
AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexSessions'
| where TimeGenerated > ago(1d) 
最後の日に特定のサーバーについて、 query_store.qs_view から収集された Azure Database for PostgreSQL クエリ ストアランタイム統計を検索します。 クエリ ストアを有効にしておく必要があります。
AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexQueryStoreRuntime'
| where TimeGenerated > ago(1d) 
過去1日間における特定のサーバーからquery_store.pgms_wait_sampling_viewによって収集された Azure Database for PostgreSQL クエリ ストアの待機統計を探します。 クエリ ストア待機サンプリングを有効にしておく必要があります。
AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexQueryStoreWaitStats'
| where TimeGenerated > ago(1d) 
最後の 1 日以内に、特定のサーバー内の各データベースの Azure Database for PostgreSQL の自動バキュームとスキーマの統計を検索します。
AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexTableStats'
| where TimeGenerated > ago(1d) 
過去 1 日の特定のサーバー内のデータベースごとに、緊急自動バキュームまたはラップアラウンド保護までの Azure Database for PostgreSQL の残りのトランザクションと multixact を検索します。
AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexDatabaseXacts'
| where TimeGenerated > ago(1d)