外部データベースのモニタリングとロギングのセットアップ
外部のPostgreSQLデータベースシステムには、パフォーマンスのモニタリングとトラブルシューティングのための様々なロギングオプションがありますが、これらはデフォルトでは有効になっていません。このセクションでは、セルフマネージドのPostgreSQLに関する推奨事項と、PostgreSQLマネージドサービスの主要プロバイダーに関する推奨事項を提供します。
推奨されるPostgreSQLロギング設定
次のロギング設定を有効にする必要があります:
log_statement=ddl: データベースデータモデル定義(DDL)の変更をログに記録します。例えば、オブジェクトのCREATE、ALTER、またはDROPなどです。これは、パフォーマンスの問題を引き起こす可能性のある最近のモデル変更を追跡し、セキュリティ漏洩やヒューマンエラーを特定するのに役立ちます。log_lock_waits=on: 長時間locksを保持しているプロセスをログに記録します。これは貧弱なクエリパフォーマンスの一般的な原因です。log_temp_files=0: パフォーマンスの低いクエリを示唆する可能性のある、集中的で異常な一時ファイルの使用状況をログに記録します。log_autovacuum_min_duration=0: すべてのautovacuum実行をログに記録します。Autovacuumは、PostgreSQLエンジンの全体的なパフォーマンスにとって重要なコンポーネントです。デッドタプルがテーブルから削除されていない場合のトラブルシューティングとチューニングに不可欠です。log_min_duration_statement=1000: 遅いクエリ(1秒より遅い)をログに記録します。
これらのパラメータ設定の完全な説明は、PostgreSQLエラー報告とロギングドキュメントで確認できます。
Amazon RDS
Amazon Relational Database Service(RDS)は、多数のモニタリングメトリクスとロギングインターフェースを提供します。設定すべきいくつかの項目を以下に示します:
- すべての推奨PostgreSQLロギング設定をRDSパラメータグループを通じて変更します。
- RDSパフォーマンスインサイトを有効にすると、多くの重要なPostgreSQLデータベースエンジンのパフォーマンスメトリクスでデータベース負荷を視覚化できます。
- RDS拡張モニタリングを有効にして、オペレーティングシステムのメトリクスをモニタリングします。これらのメトリクスは、基盤となるハードウェアとOSのボトルネックを示し、データベースのパフォーマンスに影響を与えている可能性があります。
- 本番環境では、多くのパフォーマンス問題の原因となりうるリソース使用量の微細なバーストを捕捉するために、モニタリング間隔を10秒以下に設定します。コンソールで
Granularity=10を設定するか、CLIでmonitoring-interval=10を設定します。
- 本番環境では、多くのパフォーマンス問題の原因となりうるリソース使用量の微細なバーストを捕捉するために、モニタリング間隔を10秒以下に設定します。コンソールで