正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

外部データベースのモニタリングとロギングのセットアップ

外部のPostgreSQLデータベースシステムには、パフォーマンスのモニタリングとトラブルシューティングのための様々なロギングオプションがありますが、これらはデフォルトでは有効になっていません。このセクションでは、セルフマネージドのPostgreSQLに関する推奨事項と、PostgreSQLマネージドサービスの主要プロバイダーに関する推奨事項を提供します。

次のロギング設定を有効にする必要があります:

  • log_statement=ddl: データベースデータモデル定義(DDL)の変更をログに記録します。例えば、オブジェクトのCREATEALTER、または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コンソールから確認できます。
  • RDSパフォーマンスインサイトを有効にすると、多くの重要なPostgreSQLデータベースエンジンのパフォーマンスメトリクスでデータベース負荷を視覚化できます。
  • RDS拡張モニタリングを有効にして、オペレーティングシステムのメトリクスをモニタリングします。これらのメトリクスは、基盤となるハードウェアとOSのボトルネックを示し、データベースのパフォーマンスに影響を与えている可能性があります。
    • 本番環境では、多くのパフォーマンス問題の原因となりうるリソース使用量の微細なバーストを捕捉するために、モニタリング間隔を10秒以下に設定します。コンソールでGranularity=10を設定するか、CLIでmonitoring-interval=10を設定します。