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を有効にします。
ノードの
postgresql.confで bdr.monitor_enabled をonに設定するか、ALTER SYSTEM SET bdr.monitor_enabled = 'on'を実行します。構成
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