Installing PGD Proxy

PGDプロキシのインストール

2つの方法を使用して、PGDプロキシをインストールおよび構成して、 EDB Postgres分散クラスターを管理できます。 PGDプロキシをインストールして構成するための推奨される方法は、クラスターの展開と管理にEDB Trusted Postgres Architect(TPA)ユーティリティを使用することです。

TPAを介したインストール

PGDクラスターがTPAを介して展開されている場合、TPAは推奨アーキテクチャに従ってPGDプロキシを自動的にインストールおよび構成します。 PGDクラスター内の他のノードにPGDプロキシをインストールする場合は、TPA構成ファイルでそのインスタンスにpgd-proxyロールをアタッチする必要があります。また、この例に示すように、展開する前にbdr_child_group パラメーターを設定します。詳細については、 信頼できるPostgresアーキテクト を参照してください。

- Name: proxy-a1
  location: a
  node: 4
  role:
  - pgd-proxy
  vars:
    bdr_child_group: group_a
  volumes:
  - device_name: /dev/sdf
    volume_type: none

構成

PGDプロキシは、プロキシオプションの取得や書き込みリーダーの詳細の取得など、内部操作のためにPGDデータベースに接続します。したがって、PGDノードに接続するにはエンドポイント/ DSNのリストが必要です。 PGDプロキシは、ローカル構成ファイルpgd-proxy-config.yml でこれらの構成を想定しています。以下は、 pgd-proxy-config.yml ファイルの作業例です。

log-level: debug
cluster:
  name: cluster-name
  endpoints:
    - "host=bdr-a1 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a3 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a2 port=5432 dbname=bdrdb user=pgdproxy "
  proxy:
    name: "proxy-a1"

デフォルトでは、TPAで作成されたクラスターでは、 pgd-proxy-config.yml は /etc/edb/pgd-proxy ディレクトリにあります。 PGDプロキシは、次の場所でpgd-proxy-config.yml を検索します。優先順位は高いものから低いものです。

  1. /etc/edb/pgd-proxy (デフォルト) 2. $HOME/.edb/pgd-proxy

ファイルの名前を変更するか、別の場所に移動する場合は、サービスの開始時にオプションの-f または--config-file フラグを使用して、新しい名前と場所を指定します。

sample service file を参照してください。

サンプル構成に示すように、トップレベルの構成パラメーターlog-level を使用して、PGDプロキシサービスのログレベルを設定できます。 log-level の有効な値は、debug 、info 、warn 、およびerror です。

cluster.endpoints およびcluster.proxy.name は、構成ファイルの必須フィールドです。 PGDプロキシは、常にリスト内の最初のエンドポイントに接続しようとします。失敗した場合、次のエンドポイントを試行します。

PGDプロキシは、プロキシの起動時にのみローカル構成ファイルで指定されたエンドポイントを使用します。その後、PGDプロキシはPGDプロキシカタログから実際のエンドポイント(route_dsn)のリストを取得します。したがって、ノードオプションroute_dsn をPGDプロキシノードごとに設定する必要があります。詳細については、 route_dsn を参照してください。

ヘルスチェックの構成

PGDプロキシは HTTP(S) health check APIs を提供します。ヘルスチェックが必要な場合、以下の構成パラメーターをpgd-proxy構成ファイルに追加することにより、それらを有効にできます。デフォルトでは無効になっています。

cluster:
  name: cluster-name
  endpoints:
    - "host=bdr-a1 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a3 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a2 port=5432 dbname=bdrdb user=pgdproxy "
  proxy:
    name: "proxy-a1"
    endpoint: "host=proxy-a1 port=6432 dbname=bdrdb user=pgdproxy "
    http:
      enable: true
      host: "0.0.0.0"
      port: 8080
      secure: false
      cert_file: ""
      key_file: ""
      probes:
        timeout: 10s

config cluster.proxy.http.enable: true を追加することで、APIを有効にできます。有効にすると、HTTPサーバーはデフォルトのポート8080 で10秒のtimeout をリッスンし、HTTPSはサポートしません。

HTTPSを有効にするには、構成パラメーターcluster.proxy.http.secure: true を設定します。 true に設定されている場合、 cert_file およびkey_file も設定する必要があります。

cluster.proxy.endpoint は、プロキシがチェックの一環として現在の書き込みリーダーに接続するために使用するエンドポイントです。 cluster.proxy.http.enable がtrue の場合、cluster.proxy.endpoint も設定する必要があります。ホストは listen_address 、ポートは listen_port proxy options 、 BDRノード

と同じになる可能性があります。必要に応じて、ユーザーはこのエンドポイントにsslmode 、sslrootcert 、user などの接続文字列パラメーターを追加できます。

PGDプロキシユーザー

エンドポイントで指定されたデータベースユーザーは、スーパーユーザーである必要はありません。通常、TPA環境では、 pgdproxy はOSユーザーであり、 bdr_superuser ロールを持つデータベースユーザーでもあります。

PGDプロキシサービス

PGD Proxyをsystemdサービスとして実行することをお勧めします。 pgd-proxy サービスユニットファイルは、デフォルトで/etc/systemd/system/pgd-proxy.service にあります。以下は、TPAによって作成されたサンプルサービスファイルです。

[Unit]
Description=PGD Proxy

[Service]
Type=simple
User=pgdproxy
Group=pgdproxy
Restart=on-failure
RestartSec=1s
ExecStart=/usr/bin/pgd-proxy -f /etc/edb/pgd-proxy/pgd-proxy-config.yml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=pgd-proxy

[Install]
WantedBy=multi-user.target

次のコマンドを使用して、 pgd-proxy サービスを管理します。

systemctl status pgd-proxy
systemctl stop pgd-proxy
systemctl restart pgd-proxy

手動インストール

PGDリポジトリから入手可能な.deb および.rpm パッケージを使用して、任意のLinuxマシンにPGDプロキシを手動でインストールできます。パッケージ名はedb-pgd5-proxy です。例:

sh # Debianの場合

sudo apt-get install edb-pgd5-proxy