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