Installing PGD Proxy#
PGDプロキシのインストール#
2つの方法を使用して、PGDプロキシをインストールして構成し、 EDB Postgres分散クラスターを管理できます。 PGDプロキシをインストールして構成する推奨方法は、クラスターの展開と管理にEDB Trusted Postgres ArchitectTPAユーティリティを使用することです。
TPAを介したインストール#
PGDクラスターがTPAを介して展開されている場合、TPAは推奨アーキテクチャに従って、PGDプロキシを自動的にインストールおよび構成します。
PGDクラスター内の他のノードにPGDプロキシをインストールする場合は、TPA構成ファイルでそのインスタンスにpgd-proxyロールをアタッチする必要があります。また、この例が示しているように、展開する前にbdr_child_group
パラメーターを設定します。詳細については、
Trusted Postgres ArchitectTPAのインストール を参照してください。
- 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のリストを取得します。したがって、各PGDプロキシノードにノードオプションroute_dsn
を設定する必要があります。詳細については、
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
構成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 も設定する必要があります。これは、 BDRノード
routing_dsn と同じにすることができます。ホストは
listen_address
、ポートはlisten_port proxy options
です。必要に応じて、このエンドポイントにsslmode
、sslrootcert 、user
などの接続文字列パラメーターを追加できます。
PGDプロキシユーザー#
エンドポイントで指定されたデータベースユーザーは、スーパーユーザーである必要はありません。通常、TPA環境では、 pgdproxyはOSユーザーであるだけでなく、 bdr_superuserロールを持つデータベースユーザーでもあります。
PGDプロキシサービス#
PGDプロキシを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
です。例
# for Debian
sudo apt-get install edb-pgd5-proxy