Using the PGD Monitor#

PGD Monitorは、すべてのPGDノードによって提供されるビルトイン監視Webアプリケーションです。 Postgresインスタンス内のバックグラウンドワーカーとして実行され、個別のインストール、展開、またはデータベース接続は必要ありません。それは以下を提供します

  • インタラクティブなトラブルシューティングのためのWeb UI

  • /api/v1/ の下のJSON REST API、UIがレンダリングするのと同じデータを公開します

  • /metrics のPrometheusスクレイプエンドポイント、既存の可観測性スタックをフィードするため

  • オーケストレーション用の/is-live および/is-ready のヘルスプローブ

PGD Monitorは、 Monitoring through SQL でカバーされているSQLレベルのモニタリングインターフェイスを置き換えるものではありません。これらに加えて、共有メトリックレジストリを介して標準のPostgres統計ビューを構築します。このレジストリが収集するメトリックの完全なリストについては Monitoring metrics reference を参照し、 SQLで直接照会するには bdr.ts_metrics() を参照してください。

PGD Monitorの有効化と構成#

それを提供するすべてのノードでPGD Monitorを有効にします。

  1. ノードのpostgresql.conf で bdr.monitor_enabled をon に設定するか、 ALTER SYSTEM SET bdr.monitor_enabled = 'on' を実行します。

  2. 構成SELECT pg_reload_conf(); をリロードします。再起動は必要ありません。

有効にすると、HTTPサーバーはPostgresと同じアドレスで、デフォルトでPostgresポートよりも上位のポート1005でリッスンします。たとえば、ポート5432でPostgresを実行しているノードは、ポート6437でPGD Monitorを提供します。

別のポートを使用するか、HTTPSをオンにするには、 bdr.alter_node_group_option で monitor_http_port ノードグループオプションを設定します。 bdr.monitor_enabled とは異なり、これらの設定はノードグループオプションであり、一度設定すると、すべてのメンバーノードに継承されます。例

SELECT bdr.alter_node_group_option(top_group, monitor_http_port, 8443);
SELECT bdr.alter_node_group_option(top_group, monitor_use_https, true);

HTTPSは、デフォルトでサーバーのSSL証明書構成を再利用します。別の証明書ファイルを使用するには、各ノードで bdr.monitor_ssl_cert_file を個別に設定し、構成をリロードします。

PGDモニタを使用する#

  • Using the web UI クラスターを対話的にモニタする

  • Using Prometheus メトリックを既存の可観測性スタックにスクレイピングする

Postgresの pg_monitor の事前定義されたロールまたはスーパーユーザーのメンバーであるロールを使用して、Postgresロール名とパスワードを使用してREST APIに対して認証することもできます。 REST APIはリリース間で変更される場合があるため、次を安定した統合ポイントではなくベストエフォートとして扱ってください。

#  Log in and save the session cookie.

curl -c cookies.txt -X POST https://node1.example.com:6437/api/v1/login \
  -H "Content-Type: application/json" \
  -d {"username": "monitoring_role", "password": "..."}

#  Reuse the cookie for subsequent authenticated requests.

curl -b cookies.txt https://node1.example.com:6437/api/v1/cluster/health