PostgreSQL のモニター

PostgreSQL インスタンスは、 PostgreSQL を使用して監視できます。 PostgreSQLは、Instanaエージェントをインストールすると自動的にデプロイおよびインストールされます。 PostgreSQLに関連するメトリクスは、InstanaのUIで確認できます。

サポート情報

PostgreSQLセンサーが現在のセットアップと互換性があることを確認するには、以下のサポート情報のセクションをチェックしてください:

サポート対象のオペレーティング・システム

PostgreSQLのサポート対象オペレーティングシステムは、ホストエージェントの要件と一致しており、これは各ホストエージェントの「サポート対象オペレーティングシステム」セクション(例えば 「Unixのサポート対象オペレーティングシステム」) で確認できます。

対応バージョンとサポートポリシー

このセンサーは以下のバージョンのPostgreSQL:をサポートしています:

  • PostgreSQL 8.0.x から 8.4.x
  • PostgreSQL 9.0.x から 9.6.x
  • PostgreSQL 10.x
  • PostgreSQL 11.x
  • PostgreSQL 12.x
  • PostgreSQL 13.x
  • PostgreSQL 14.x
  • PostgreSQL 15.x
  • PostgreSQL 16.6
  • PostgreSQL 17.2

以下の表は、最新のサポートバージョンとサポートポリシーを示しています:

表 1. 最新のサポートバージョンとサポートポリシー
テクノロジー サポート・ポリシー 最新バージョン サポートされる最新バージョン
PostgreSQL 45 日間 17.2 17.2

サポート方針の詳細については、センサーのサポート戦略を参照してください。

クライアントサイド・トレース対応

この技術について、Instana は以下の言語とランタイムのクライアントサイドトレースをサポートしています:

構成

統計収集の有効化

統計情報の収集は、postgresqlの設定時に作成される'postgresql.confファイルに設定される設定パラメータによって制御される。 統計情報の収集を監視するには、次のパラメータを on に設定します( yestrue1 でも受け付けます)。

以下の表は、構成パラメータの一覧です

パラメーター 説明
track_activities = on 任意のサーバープロセスによって実行されている現在のコマンドを監視する。
track_counts = on テーブルおよびインデックスへのアクセスに関連して収集された累積統計を監視します。
track_io_timing = on ブロックの読み取り時間と書き込み時間を監視する。

統計情報収集設定の詳細については、PostgreSQLのドキュメントを参照してください。

モニター・ユーザーの作成

メトリックの収集を監視するための最小限のパーミッションは、「pg_stat_databaseデータベース上の「SELECTである。 次の例は、エージェントが必要とするユーザを作成する方法を示しています:

create user <USERNAME> with password <PASSWORD>;
grant SELECT ON pg_stat_database to <USERNAME>;

センサー

センサーがPostgreSQL,に接続する際に必要な認証を設定するには、以下の手順を実行する:

  1. エージェント設定ファイル '<agent_install_dir>/etc/instana/configuration.yaml の設定セクションを有効にして、ユーザ認証情報を設定する。

  2. ユーザー名とパスワードを入力してください。

    パスワードはクリアテキストのパスワードである。

パスワードベースの認証の場合、対応するPostgreSQLユーザの認証機構はmd5、scram-sha-256(バージョン10以降)、またはパスワードでなければなりません。 詳細については、PostgreSQLドキュメントパスワード認証とクライアント認証のセクションを参照してください。

センサーと'PostgreSQL,'PostgreSQL間で接続を確立するためには、ユーザー名と同じ名前のデータベースが含まれていなければならない:

com.instana.plugin.postgresql:
  user: '<USERNAME>'
  password: '<PASSWORD>'
  database: '' # by default PostgreSQL will use 'user' as database to connect to.

database フィールドは認証目的でのみ使用されます。 エージェントは、構成ファイルへの変更を自動的に読み取ります。 <agent_install_dir>/etc/instana/configuration.yaml 。 したがって、この設定ファイルへの変更はホットリロードされる(エージェントの再起動は必要ない)。

データベース・メトリクスを収集するには、PostgreSQLインスタンス内に存在するすべてのデータベースに対して、指定された'userに'CONNECT権限を割り当てる必要があります。 次の例は、「CONNECT権限をユーザーに付与する方法を示している:

GRANT CONNECT ON DATABASE <DATABASE_NAME> TO <USERNAME>;

メトリック収集

メトリックを表示するには、以下のステップを実行します。

  1. Instana ユーザーインターフェースのサイドバーでインフラストラクチャを選択します。
  2. 特定の監視対象ホストをクリックすると、収集されたすべてのメトリクスと監視対象プロセスが表示されるホスト・ダッシュボードが表示されます。

構成データ

実行中のPostgresインスタンスから収集される以下の設定データを参照してください:

  • プロセス ID
  • 開始時刻
  • ポート
  • バージョン
  • 役割
  • 最大接続数

パフォーマンス・メトリック

以下は、各Postgresインスタンスで収集されるパフォーマンス・メトリクスです:

PostgreSQL サーバー

以下の表は PostgreSQL から収集されるメトリクスをリストアップしています

メトリック 説明 粒度
コミットされたトランザクションの合計数 すべてのデータベースでコミットされたトランザクションの数。 1 秒
合計アクティブ接続数 すべてのデータベースでのアクティブな接続の数。 1 秒
接続使用率 許可される接続の最大数に対するアクティブな接続の数の割合。 1 秒
レプリケーション遅延 (レプリケーションでのみ使用可能) プライマリサーバとレプリカサーバ間のレプリケーション遅延がバイトと秒単位で表示されます。 1 秒

データベース

以下の表は、データベースから収集される指標をリストアップしたものです

メトリック 説明 粒度
コミットされたトランザクション このデータベースでコミットされたトランザクションの数。 1 秒
ロールバックされたトランザクション このデータベースでロールバックされたトランザクションの数。 1 秒
キャッシュ・ヒット率 バッファキャッシュにあるディスクブロックのうち、読み出しが不要なブロックの割合。 1 秒
スタンバイ競合 このデータベースのリカバリとの競合によりキャンセルされたクエリの数。 1 秒
タプルが返されました シーケンシャルスキャンによってフェッチされたライブ行の数と、このデータベースのインデックススキャンによって返されたインデックスエントリの数を足した数。 1 秒
フェッチされたタプル このデータベースのインデックススキャンによってフェッチされたライブ行の数。 1 秒
データベースのサイズ このデータベースが使用するディスク容量。 1 秒
アクティブな接続 このデータベースへのアクティブな接続の数。 1 秒

正常性シグニチャー

各センサーは、入力されるメトリクスに対して継続的に評価され、ユーザーの影響に依存する問題やインシデントを提起するために使用される健康シグネチャのキュレートされた知識ベースを持っています。

組み込みイベントは、エンティティの健全性シグネチャの失敗に基づいて問題やインシデントをトリガし、カスタムイベントは、特定のエンティティの個々のメトリックのしきい値に基づいて問題やインシデントをトリガする。

PostgreSQLセンサーの組み込みイベントの詳細については、組み込みイベントリファレンスを参照してください。

トラブルシューティング

PostgreSQLに関連する問題を解決するために、これらのトラブルシューティングエントリを使用してください。 InstanaのPostgresqlダッシュボードとログに、問題の種類と簡単な説明が記載されたエラーメッセージが表示されます。

PostgreSQL 統計が有効になっていない

モニター問題タイプ: postgresql_stats_not_enabled

PostgreSQLサーバは検出されましたが、統計情報の収集は有効になっていません。 統計情報の収集を有効にする必要があります。 詳細については、統計情報収集を有効にするセクションを参照してください。

PostgreSQL 認証が失敗する

モニター問題タイプ: postgresql_authentication_failed

PostgreSQL 認証が失敗しました。 監視ユーザーを作成し、エージェントを設定するには、監視ユーザーの作成セクションを参照してください。

PostgreSQL 接続が失敗する

モニター問題タイプ: postgresql_connection_failed

エージェントがPostgreSQLサーバに接続できません。 エージェントとセンサー間の接続が確立されていることを確認する必要がある。