Configuring Postgres Enterprise Manager (PEM)#
--enable-pem
コマンドラインオプションを使用してtpaexec configure
コマンドを実行すると、TPAはPEMをインストールおよび構成します。
--enable-pem
のデフォルト動作は、クラスター内のすべてのpostgres
インスタンスのpem-agentロールを有効にすることです。 pem-agentロールは、
--enable-pg-backup-api コマンドラインオプションが--enable-pem
とともに使用される場合、 Barmanノードにも追加されます。
pemserver という名前の専用インスタンスもクラスターに追加されます。
PEMサーバーはPostgresバックエンドを使用するため、 pemserver
インスタンスは暗黙的にpostgresロールを使用します。これにより、
pemserver
はPEMバックエンドとして使用するように構成された有効なPostgresクラスターを取得します。通常のPostgresインスタンスで使用可能なすべての構成オプションは、PEMのバックエンドPostgresインスタンスでも同様に有効です。詳細については、以下を参照してください。
PEMはEDBパッケージリポジトリを介してのみ利用可能なため、有効なサブスクリプションが必要です。
サポートされているアーキテクチャ#
PEMは、 --enable-pem
構成コマンドラインオプションを介してすべてのアーキテクチャでサポートされています。例外は、
EDB Postgres Extendedで使用される場合のBDR
-Always-ONアーキテクチャです。オプションで、生成されたクラスター構成ファイル
config.yml
を編集し、クラスター内のPostgresインスタンスからpem-agentロールを割り当てまたは削除して、そこでPEMを有効または無効にすることができます。
PEM構成#
TPAは、適切なインスタンス固有の設定でPEMエージェントとPEMサーバーを構成し、残りの設定はデフォルト値に設定されます。構成オプションの一部は、将来的にユーザー構成用に公開される可能性があります。
PEMサーバーのWebインターフェイスは、httpsで実行されるように構成され、その構成にポート443を使用します。 PEMのWebサーバー構成は、自己署名証明書を使用します。
PEMサーバーWebインターフェイスのデフォルトのログイン資格情報は、
Postgresバックエンドデータベースユーザーを使用します。これは、デフォルトでPostgreSQLの場合はpostgres、
EDB Postgres Advanced
Serverクラスターの場合はenterprisedbに設定されます。
tpaexec show-password $clusterdir $user
を実行して、Webインターフェイスのログインパスワードを取得できます。
共有PEMサーバー#
一部の展開では、組織内の複数のクラスターを監視および管理するために単一のPEMサーバーを使用する場合があります。
tpaexecでの共有PEMサーバーの展開は、 pem_shared
変数を介してサポートされています。この変数は、既存のPEMサーバーを使用する予定がある特定のクラスター構成のPEMサーバーインスタンスの下で
vars: を介して設定できます。 pem_shared
はブール変数であるため、可能な値はtrueおよびfalseデフォルトです。
PEMサーバインスタンスを共有として宣言する場合、PEMサーバーインスタンスが実際には、最初にPEMサーバーをプロビジョニングおよび展開した別のクラスター構成によって管理されていることを指定されたクラスター構成に伝えます。したがって、PEMのPostgresバックエンドを含むPEMサーバーインスタンスに行う変更は、PEMサーバーインスタンスが共有PEMインスタンスとして宣言されていないクラスターによって管理されます。
複数のクラスターで共有PEMサーバーを使用するための一般的なワークフローは次のとおりです。
pem-serverロールを持つ単一のインスタンスを使用してtpaexecクラスターを作成します。 PEMサーバーとして実行される単一のインスタンスではなく、大規模なクラスターの一部としてプロビジョニングされるシナリオでも、同じワークフローを簡単に使用できます。例として使用する方が簡単で、おそらくメンテナンスも簡単であるため、シングルノードクラスターを使用します。
他のクラスター
pg-clusterなどで、この特定のPEMサーバーを共有PEMサーバーインスタンスとして$clusters/pem-clusterから参照します。bareをプラットフォームとして使用して、新しいPEMサーバーインスタンスを作成しないようにします。また、このクラスターがPEMサーバーインスタンスにアクセスするために使用できるPEMサーバーのIPアドレスを指定します。
- Name: pemserver
node: 5
role:
- pem-server
platform: bare
public_ip: 13.213.53.205
private_ip: 10.33.15.102
vars:
pem_shared: true
Postgresクラスターでdeployを実行する前に、
pg-clusterがSSHを介してPEMサーバーインスタンスにアクセスできることを確認してください。ssh-copy-idを介してpg-cluster公開キーをPEMサーバーインスタンスにコピーすることにより、このアクセスを許可できます。次に、SSHを実行して、パスワードを指定せずにログインできることを確認します。
# add pem-clusters key to the ssh-agent (handy for `aws` platform)
$ cd $clusters/pem-cluster
$ ssh-add id_pem-clutser
$ cd $clusters/pg-cluster
$ ssh-keyscan -4 $pem-server-ip >> known_hosts
$ ssh-copy-id -i id_pg-cluster.pub -o UserKnownHostsFile=tpa_known_hosts $user@$pem-server-ip
$ ssh -F ssh_config pemserver
PEMサーバーノードでPostgreSQL構成ファイルを更新して、新しい
pg-clusterからの接続を許可します。pem-clusterconfig.ymlファイルのvars:の下のpem_postgres_extra_hba_settingsに新しいエントリを追加することにより、PEMサーバー上の既存のpg_hba.confファイルを変更できます。例
instances:
- Name: pemserver
location: main
node: 1
role:
- pem-server
vars:
pem_postgres_extra_hba_settings:
- "# Allow pem connections from pg-cluster1.quire"
- hostssl pem +pem_agent 10.33.15.108/32 cert
- "# Allow pem connections from pg-cluster1.upside"
- hostssl pem +pem_agent 10.33.15.104/32 cert
- "# Allow pem connections from pg-cluster2.zippy"
- hostssl pem +pem_agent 10.33.15.110/32 cert
- "# Allow pem connections from pg-cluster2.utopic"
- hostssl pem +pem_agent 10.33.15.109/32 cert
次に、 tpaexec provision $clusters/pem-cluster
に続いてtpaexec deploy $clusters/pem-cluster
を実行します。完了すると、新しいpg-cluster
のノードはPEMサーバーのバックエンドと通信できるようになります。
pg-clusterのノードのPEMエージェントがPEMサーバーバックエンドに接続して登録できるように保証には、tpaexec deployを実行する前にexport EDB_PEM_CREDENTIALS_FILE=/path/to/pem/credentials/fileを実行する必要があります。資格情報ファイルは、PEMサーバーのバックエンドPostgresインスタンスへのアクセス資格情報をusername:password形式で含むテキストファイルです。
$ cat pem_creds
postgres:f1I%fw!QmWevdzw#EL#$Ulu1cWhg7&RT
バックエンドパスワードがわからない場合は、 tpaexec show-password
コマンドを使用して取得できます。
tpaexec show-password $pem-clusterdir $user
tpaexec deploy $clusters/pg-clusterを実行して、共有PEMサーバーインスタンスを使用しながらPEMが新しいpg-clusterに展開されるようにします。
PEM UIへの接続#
PEM
UIはhttpsインターフェイスで実行されるため、https://$pem-server-ip/pemを介してPEMサーバーの実行中のインスタンスに接続できます。
PEM UIのログイン資格情報は、postgresql の場合はpostgres
、epas フレーバーの場合はenterprisedb
を使用するPostgresバックエンドユーザーに設定されます。 tpaexec
show-password
コマンドは、バックエンドユーザーのパスワードを表示します。例
tpaexec show-password $clusterdir $user
PEM documentation を参照してください。
PEMの使用と構成の詳細については、こちらをご覧ください。