Azure Database for PostgreSQLを使用すると、Postgres の標準ログを構成してアクセスできます。 ログを使用して、構成エラーと最適でないパフォーマンスを特定、トラブルシューティング、修正します。 エラー、クエリ情報、自動バキューム レコード、接続、チェックポイントのログ情報を構成してアクセスできます。 (トランザクション ログへのアクセスは使用できません)。
監査ログは、Postgres 拡張機能 ( pgaudit) を介して使用できます。 詳細については、 監査の概念に関する記事を 参照してください。
ログの設定
ログ記録パラメーターを使用して、サーバーで Postgres 標準ログを構成します。 Postgres ログ パラメーターの詳細については、Postgres ドキュメントの「 ログに記録するタイミング 」および「 ログに記録する内容 」セクションを参照してください。 Azure Database for PostgreSQLでは、Postgres のログ 記録パラメーターの大部分を構成できますが、すべてではありません。
Azure Database for PostgreSQL でパラメーターを構成する方法については、ポータルの ドキュメント または CLI のドキュメントを参照してください。
注
大量のログを構成すると、パフォーマンスのオーバーヘッドが大幅に増加する可能性があります。 たとえば、ステートメントのログ記録はパフォーマンスに影響を与える可能性があります。
アクセス ログ
Azure Database for PostgreSQL フレキシブル サーバーは、Azure Monitor の診断設定に統合されています。 診断設定を使用すると、分析とアラートのために、JSON 形式の PostgreSQL ログを Azure Monitor ログに送信できます。 Event Hubs にストリーミングしたり、Azure Storage にアーカイブしたりすることもできます。
ログのアクセス制御
Azure Role-Based Access Control (RBAC) を使用してサーバー ログへのアクセスを制御します。 サーバーへの読み取りアクセスを提供するロールは、ログをダウンロードするアクセス許可も付与します。 このアクセスには、次のような組み込みのロールが含まれます。
- Reader
- 監視リーダー
- ログアナリティクス リーダー
- または、同等のカスタム ロール
Warnung
ログの構成によっては、資格情報などの機密情報がログに含まれる場合があります。
データ保持ポリシーと価格
Event Hubs またはストレージ アカウントに送信されるログの場合は、一定期間後にデータを自動的に削除するように保持ポリシーを設定します。 Log Analytics のコストは、次の 2 つの要因によって異なります。
- データ インジェスト: 料金は、ワークスペースに取り込まれるデータの量に基づいています。
- データ保有期間:Log Analytics ワークスペースに保存されたログは、最初の 31 日間は無料で保持されます。 この無料保有期間を超えると、毎月保持されるデータの量 (GB 単位) に基づいて日割り計算されたデータを格納するための料金が発生します。
データインジェストとリテンション期間に関連するコストの内訳については、 Azure Monitor の価格ページを参照してください。
ログの形式
次の表では、PostgreSQLLogs タイプのフィールドについて説明します。 選択した出力エンドポイントによって、含まれるフィールドとフィールドの表示順序が異なる場合があります。
| フィールド | 説明 |
|---|---|
| テナント識別子 | テナント ID |
| ソースシステム | Azure |
| 作成時刻 [UTC] | ログが記録されたときのタイム スタンプ (UTC) |
| タイプ | ログの種類。 常に AzureDiagnostics |
| 購読ID | サーバーが属するサブスクリプションの GUID |
| リソースグループ (ResourceGroup) | サーバーが属するリソース グループの名前 |
| リソースプロバイダ | リソース プロバイダーの名前。 常に MICROSOFT.DBFORPOSTGRESQL |
| リソースタイプ | FlexibleServers |
| リソースID | リソース URI |
| Resource | サーバーの名前 |
| カテゴリ | PostgreSQLLogs |
| オペレーションネーム | LogEvent |
| errorLevel_s | ログ レベル (LOG、ERROR、NOTICE など) |
| processId_d | PostgreSQL バックエンドのプロセス ID |
| sqlerrcode_s | SQLSTATE コードの SQL 標準の規則に従う PostgreSQL エラー コード |
| メッセージ | プライマリ ログ メッセージ |
| Detail | セカンダリ ログ メッセージ (該当する場合) |
| ColumnName | 列の名前 (該当する場合) |
| SchemaName | スキーマの名前 (該当する場合) |
| DatatypeName | データ型の名前 (該当する場合) |
| _ResourceId(リソース識別子) | リソース URI |
既知の制限事項
- ログ イベント サイズ: Azure Monitor ログでは、クエリ プランや 65 KB を超えるログ メッセージはキャプチャされません。 この制限は、すべてのAzure Monitorに適用されます。 その結果、複雑なクエリ (入れ子になったビューを含むクエリなど) によって、サーバー ログに不完全なクエリ プラン出力または不足しているクエリ プランの出力が生成される可能性があります。
- その他の制約: アラート ルールのクォータやクエリ結果のサイズなど、プラットフォーム全体のその他の制限が Azure Monitor ログに適用されます。 完全な一覧については、Azure Monitor サービスの制限に関するドキュメントを参照してください。