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
を検索します。優先順位は高いものから低いものです。
/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