Azure Database for PostgreSQL のログの構成とアクセス - フレキシブル サーバー
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
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 のログ クエリの概要に関する記事を参照してください。
次に、作業を開始するために試すことのできるクエリを示します。 クエリに基づいてアラートを構成できます。
過去 1 日の特定のサーバーのすべての 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)
過去 1 日の特定のサーバーについて、pg_stat_activity
システム ビューから収集された Azure Database for PostgreSQL フレキシブル サーバー セッションを検索します。
AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexSessions'
| where TimeGenerated > ago(1d)
過去 1 日の特定のサーバーについて、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)