Configuring Postgres Enterprise Manager (PEM)

tpaexec configure コマンドが--enable-pem コマンドラインオプションで実行されると、TPAはPEMをインストールして構成します。

--enable-pem のデフォルトの動作は、クラスター内のすべてのpostgres インスタンスに対してpem-agent ロールを有効にすることです。 --enable-pg-backup-api コマンドラインオプションが--enable-pem と一緒に使用される場合、 pem-agent ロールもbarmanノードに追加されます。

pemserver という名前の専用インスタンスもクラスターに追加されます。

PEMサーバーはpostgresバックエンドを使用するため。 pemserverインスタンスは暗黙的にpostgres ロールも使用します。これにより、pemserverはPEMバックエンドとして使用するように構成された有効なpostgresクラスターを取得できます。通常のpostgresインスタンスで使用可能なすべての構成オプションは、PEMのバックエンドpostgresインスタンスでも有効です。詳細については、以下を参照してください。

PEMはEDBのパッケージリポジトリを介してのみ利用可能であるため、有効なサブスクリプションが必要であることに注意してください。

サポートされているアーキテクチャ

PEMは、 --enable-pem 構成コマンドラインオプションを介して、M1およびBDR-Always-ONアーキテクチャでサポートされています。オプションで、生成されたクラスター構成(config.yml)を編集し、クラスター内のpostgresインスタンスからpem-agent ロールを割り当てまたは削除して、そこでPEMを有効または無効にすることができます。

PEMサーバーはバックエンドのpgextendedをまだサポートしていないことに注意してください。

PEM構成

TPAは、pemエージェントとpemサーバーを適切なインスタンス固有の設定で構成し、残りの設定をそれぞれのデフォルト値に設定します。一部の構成オプションは、将来のある時点でユーザー構成に公開される可能性があります。

PEMサーバーのWebインターフェイスは、httpsで実行するように構成され、同じために443ポートを使用します。 PEMのWebサーバー構成では、自己署名証明書を使用します。

PEMサーバーWebインターフェースのデフォルトのログイン資格情報は、デフォルトでpostgresqlの場合はpostgres 、EPASクラスターの場合はenterprisedb に設定されているpostgresバックエンドデータベースユーザーを使用します。 tpaexec show-password $clusterdir $user を実行すると、Webインターフェイスのログインパスワードを取得できます。

共有PEMサーバー

展開によっては、組織内の複数のクラスターを監視および管理するために単一のPEMサーバーを使用することが必要になる場合があります。 tpaexec内の共有pemサーバー展開は、既存のpemサーバーの使用を計画している特定のクラスター構成のpemサーバーインスタンスの下でvars: を介して設定できるpem_shared 変数を介してサポートされます。 pem_shared はブール変数であるため、可能な値はtrueおよびfalse(デフォルト)です。 pemserverインスタンスを共有として宣言する場合、指定されたクラスター構成に、pemserverインスタンスが実際には最初にpemサーバーをプロビジョニングおよびデプロイした別のクラスター構成によって管理されていることを伝えます。したがって、pemのpostgresバックエンドを含むpemサーバーインスタンスに加えたい変更は、pemserverインスタンスが共有pemインスタンスとして宣言されていないクラスターによって管理されます。

複数のクラスターで共有pemサーバーを使用するための一般的なワークフローは次のようになります。

  1. pem-server ロールを持つ単一のインスタンスでtpaexecクラスターを作成します(この例では「pem-cluster」と呼びます)。 pemserverとして実行される単一のインスタンスだけでなく、より大きなクラスターの一部としてpemがプロビジョニングされるシナリオでも、同じワークフローを簡単に使用できますが、単一ノードクラスターを使用します。例として使用する方が簡単で、おそらくメンテナンスも簡単。

2.他のクラスター(pg-clusterなど)で、 $clusters/pem-cluster からこの特定のpemserverを共有pemサーバーインスタンスとして参照し、 bare をプラットフォームとして使用するため、新しいpemserverインスタンスを作成しようとしません。また、このクラスターがpemserverインスタンスへのアクセスに使用できるpemserverの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
  1. 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
  1. pemサーバーノードのpostgresql構成を更新して、新しいpg-clusterからの接続を許可します。 pem-clusterのconfig.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サーバーバックエンドと話すことができるはずです。

  1. pg-cluster内のノードからのpemエージェントがpemサーバーバックエンドに接続して登録できることを確認するには、 tpaexec deploy を実行する前にexport EDB_PEM_CREDENTIALS_FILE=/path/to/pem/credentials/file を実行する必要があります。資格情報ファイルは、pemserverのバックエンドpostgresインスタンスへのアクセス資格情報をusername:password 形式で含むテキストファイルです。

$ cat pem_creds
postgres:f1I%fw!QmWevdzw#EL#$Ulu1cWhg7&RT

バックエンドのパスワードがわからない場合は、 show-password tpaexec コマンドを使用して取得できます。

tpaexec show-password $pem-clusterdir $user
  1. tpaexec deploy $clusters/pg-cluster を実行して、共有pemサーバーインスタンスを使用しながらpemが新しいpg-clusterにデプロイされるようにします。

PEM UIへの接続

PEM UIはhttpsインターフェイスで実行されるため、https://$pem-server-ip/pemを介してPEMサーバーの実行中のインスタンスに接続できます。 PEM UIのログイン資格情報は、それぞれpostgresql およびepas フレーバーにpostgres またはenterprisedb を使用するpostgresバックエンドユーザーに設定されます。 tpaexecのshow-passwordコマンドは、バックエンドユーザーのパスワードを表示します。例:

  tpaexec show-password $clusterdir $user

:ref:`PEM documentation <Configuring Postgres Enterprise Manager (PEM)>` を参照

PEMの設定と使用法の詳細については。