Registering a Postgres server
=============================

PEMでデータベースサーバーを管理またはモニタする前に、データベースサーバーをPEMに登録し、以前に登録したPEMエージェントにデータベースサーバーをバインドする必要があります。データベースサーバーをリモートエージェント別のホストにあるエージェントにバインドできます。ただし、エージェントが別のホストにある場合、インスタンスに関するすべての統計情報にアクセスできません。

Postgresサーバーを登録するとどうなりますか?
-------------------------------------------

サーバーを登録すると、次の2つのことが行われます。

-  PEM
   Webアプリケーションのサーバーツリーにサーバーを追加し、ユーザーがWebアプリケーションからサーバーへの接続を開くことができます。
   -
   サーバーを特定のエージェントにバインドします。つまり、エージェントがサーバーへの接続を開き、プローブとスケジュールされたジョブを実行します。

..  Note Connections from the agent to the monitored server::
   エージェントの登録時に、エージェントが監視対象サーバーに接続するための接続の詳細を提供する必要があります。通常Postgresで行うように、接続するデータベースを指定する必要があります。ただし、PEMエージェントは、指定されたデータベースだけでなく、**指定されたユーザーがアクセスできるすべてのデータベース**を監視します。

登録後、エージェントは指定されたデータベースへの接続を開きます。この接続を使用して、同じユーザーで接続できる他のデータベースを判断し、それぞれに1つの接続を生成します。

Postgresサーバーを登録する方法
------------------------------

サーバーを登録するには3つの方法があります。

-  バインドするエージェントが存在するホストのコマンドラインから :ref:`Use the pemworker utility to register a database server <#using-the-pemworker-utility-to-register-a-server>` 
   - PEM
   Webアプリケーションの :ref:`Use automatic server discovery <#registering-a-server-with-automatic-server-discovery>` を使用して、エージェントと同じホストにあるPostgresサーバーを自動的に登録します。
   - :ref:`Manually register a Postgres server <#manually-registering-a-database-server>`  PEM Webアプリケーションのすべての詳細を追加します。

pemworkerユーティリティを使用してサーバーを登録する
---------------------------------------------------

pemworkerユーティリティを使用して、Postgresサーバーを登録できます。登録時に、pemworkerユーティリティは、登録コマンドを呼び出したシステムにあるエージェントに新しいサーバーをバインドします。

Linuxホストでサーバーを登録するには、次のコマンドを使用します。

``pemworker --register-server``

Windowsホストにサーバーを登録するには、次のコマンドを使用します。

``pemworker.exe REGISTER-SERVER``

pemworkerユーティリティを呼び出すときに、コマンド文字列にコマンドラインオプションを追加します。各オプションの後には、対応する値を続けます。

.. csv-table::
  :header: Option,Description
  :widths: 10,30
  :align: left
  :class: longtable

  `--pem-user`,サーバーの詳細をPEMデータベースに書き込むために使用するPEMサーバー上のPEM管理ユーザーpem_adminロールが必要な名前を指定します。必須。
  **Server parameters** ,これらのパラメーターは、PEM Webアプリケーションに接続プロパティを設定するために使用されます。これらは、ユーザーがPEM Webアプリケーションから監視対象サーバーに接続するときに使用されます。これらは、エージェントサーバーバインディングパラメーターでオーバーライドされない限り、エージェントから監視対象サーバーへの接続にも使用されますこの表の  **エージェントサーバーバインディングパラメーター**  を参照してください。
  `--server-addr`,監視対象サーバーのIPアドレスまたは完全修飾ドメイン名を指定します。 Linuxシステムでは、アドレスフィールドを空白のままにして、ローカルマシン上のデフォルトのPostgreSQL Unixドメインソケットを使用できます。または、PostgreSQLソケットを含む代替パスに設定できます。パスを入力する場合、パスはスラッシュ/で始まる必要があります。必須。
  `--server-port`,監視対象サーバーのポート番号を指定します。必須。
  `--server-database`,接続する監視対象サーバー上のデータベースの名前を指定します。必須。
  `--server-user`,監視対象サーバーへの接続に使用するユーザーの名前を指定します。必須。
  `--server-service-name`,監視対象のPostgresサーバー、たとえば、Linuxのsystemdサービスユニットを管理するオペレーティングシステムサービスの名前を指定します。オプショナル。
  **Agent-server binding parameters** ,これらのパラメーターを使用して、サーバーパラメーターをオーバーライドします。 PEM Webアプリケーションで使用される資格情報とは異なる資格情報を使用してエージェントを監視対象サーバーに接続する場合、これらを使用します。
  `--asb-host-name`,監視対象サーバーのIPアドレスまたは完全修飾ドメイン名を指定します。オプショナル。指定しない場合、デフォルトの`--server-addr`。
  `--asb-host-port`,監視対象サーバーのポート番号を指定します。オプショナル。指定しない場合、デフォルトの`--server-port`。
  `--asb-host-db`,エージェントが接続する監視対象サーバー上のデータベースの名前を指定します。オプショナル。指定しない場合、デフォルトの`--server-database`。
  `--asb-host-user`,エージェントが監視対象サーバーに接続するために使用するユーザーの名前を指定します。オプショナル。指定しない場合、デフォルトの`--server-user`。
  `--asb-ssl-mode`,接続に使用するSSL認証のタイプを指定します。サポートされている値には、`prefer`、`require`、`disable`、`verify-CA`、および`verify-full`が含まれます。オプション、デフォルトは`prefer`です。
  **Server metadata** ,これらのパラメーターは、PEM Webアプリケーションでサーバーがどのように表示されるかを決定します。
  `--group`,サーバーが表示されるグループの名前を指定します。オプショナル。
  `--team`,監視対象サーバーが属するチームとして割り当てられるPEMサーバー上のPostgresロールを指定します。このロールを持つユーザーのみがサーバーにアクセスできます。オプショナル。デフォルトはnoneで、すべてのユーザーがアクセスできます。
  `--owner`,監視対象サーバーの所有者として割り当てるPEMサーバー上のPostgresユーザーを指定します。オプション、デフォルトは`--pem-user`です。
  `--display-name <name>`,監視対象データベースサーバーの表示名を指定します。オプショナル、デフォルトはシステムホスト名です。
  **Other parameters** ,NA
  `--remote-monitoring`,サーバーがエージェントと同じホストにない場合、`yes`に設定します。リモート監視が有効になっている `yes`、監視対象サーバーのエージェントレベルの統計はカスタムグラフとダッシュボードで利用できず、リモートサーバーは一部のPEMユーティリティAudit Manager、Capacity Manager、Log Managerなどからアクセスできません。 、Postgres Expert、およびTuning Wizard）。オプション、デフォルトは`no`です。
  `--efm-cluster-name`,サーバーを監視するEDB Failover Managerクラスターの名前を指定します該当する場合。オプショナル。
  `--efm-install-path`,EDB Failover Managerのインストールディレクトリへの完全なパスを指定します該当する場合。オプショナル。
  `--config-dir`,エージェント構成ファイルのディレクトリパスを指定します。オプション、デフォルトは`<pemworker path>/../etc`です。

環境変数\ ``PEM_SERVER_PASSWORD``
を設定してPEMサーバーのパスワードを提供し、pemworkerがPEM管理ユーザーとして接続できるようにします。

環境変数\ ``PEM_MONITORED_SERVER_PASSWORD``
を設定して、PEMエージェントによって登録および監視されるデータベースサーバーのパスワードを提供します。

パスワードを入力しない場合、パスワード認証エラーが発生します。
PEMサーバーは、サーバーが適切に登録されたことを確認します。

例
^^

この例では、必要なパラメーターのみを使用してサーバーを登録します。ユーザー\ ``admin01``
は、PEMサーバーに接続するために使用されます。 ``--server-*``
パラメーターに指定された資格情報は、エージェントから監視対象サーバーへの接続を作成するために使用されます。同じ詳細は、PEM
Webアプリケーションにサーバー接続の詳細を入力するために使用されます。

.. code:: shell

   pemworker --register-server \
             --pem-user admin01 \
             --server-addr pg123.prod.infra.business \
             --server-port 5432 \
             --server-database postgres \
             --server-user prod_admin 

次の例では、エージェントから監視対象サーバーへの接続に使用するさまざまなパラメーターを指定します。これらは、
``--server-addr``
で提供された完全修飾ドメイン名を代わりに\ ``localhost``
でオーバーライドします。また、ユーザーをオーバーライドして\ ``local_monitor``
ユーザーを使用します。これは、たとえば、同じホストからのみ接続を許可されたユーザーである場合があります。

この例では、サービス名\ ``postgresql``
も指定します。これは、PEMエージェントがこのサーバーを再起動して構成変更を適用できることを意味します。

``shell pemworker --register-server \           --pem-user admin01 \           --server-addr pg123.prod.infra.business \           --server-port 5432 \           --server-database postgres \           --server-user prod_admin \           --server-service-name postgresql \           --asb-host-name localhost \           --asb-host-user local_monitor``
### pemworkerユーティリティを使用してサーバーの登録を解除する

pemworkerユーティリティを使用して、データベースサーバーの登録を解除できます。サーバーの登録を解除するには、pemworkerユーティリティを呼び出します。

Linuxホストでは、次のコマンドを使用します。

``pemworker --unregister-server``

Windowsホストでは、次のコマンドを使用します。

``pemworker.exe UNREGISTER-SERVER``

pemworkerユーティリティを呼び出すときに、コマンド文字列にコマンドラインオプションを追加します。各オプションの後には、対応する値を入力します。

.. csv-table::
  :header: Option,Description
  :widths: 10,30
  :align: left
  :class: longtable

  `--pem-user`,PEM管理ユーザーの名前を指定します。必須。
  `--server-addr`,サーバーホストのIPアドレスまたは完全修飾ドメイン名を指定します。 Unixベースのシステムでは、アドレスフィールドを空白のままにして、ローカルマシンでデフォルトのPostgreSQL Unixドメインソケットを使用できます。または、PostgreSQLソケットを含む代替パスに設定できます。パスを入力する場合、パスはスラッシュ/で始まる必要があります。必須。
  `--server-port`,ホストのポート番号を指定します。必須。
  `--config-dir`,エージェント構成ファイルのディレクトリパスを指定します。オプション、デフォルトは`<pemworker path>/../etc`です。

``PEM_SERVER_PASSWORD``
環境変数を使用してPEMサーバーのパスワードを提供し、pemworkerユーティリティが\ ``--pem-user``
としてPEMサーバーに接続できるようにします。

パスワードを入力しない場合、パスワード認証エラーが発生します。
PEMサーバーは、サーバーが登録解除されたことを確認します。

自動サーバー検出へのサーバーの登録
----------------------------------

モニタするサーバーがモニタリングエージェントと同じホストにある場合は、[
Auto Discovery
]ダイアログボックスを使用して登録とバインドのプロセスを簡素化できます。

..  Note Limitations of automatic discovery::
   自動サーバー検出は、Postgresバイナリまたはサービスの完全な検索を実行しません。パッケージインストーラーによって直接作成されたPostgresインスタンスのみを検出します。

特定のエージェントの自動検出を有効にするには、Server Auto
Discoveryプローブを有効にする必要があります。これを行うには、PEMクライアントツリーでPEMエージェントを選択し、
**Management > Manage Probes** を選択します。 [ **Manage Probes**
]タブが開いたら、 **Enabled?** 列のスライダーが **Yes**
に設定されていることを確認します。

Auto
Discoveryダイアログボックスを開くには、PEMクライアントツリーでPEMエージェントを選択し、
**Management > Auto Discovery** を選択します。

[ Auto Discovery ]ダイアログボックスが開くと、[ **Discovered Database
Servers**
]ボックスに、現在PEMエージェントによって監視されていないサーバーのリストが表示されます。サーバー名の横にあるボックスを選択して、
**Server Connection Details** ボックスにサーバーに関する情報を表示し、
**Agent Connection Details**
ボックスにエージェントの接続プロパティを表示します。

**Check All**
を使用して、表示されているすべてのサーバーの横にあるボックスを選択するか、
**Uncheck All**
を使用してサーバー名の左側にあるすべてのボックスをクリアします。

**Server Connection Details**
ボックスのフィールドは、PEMがモニタするサーバーに関する情報を提供します。

-  **Name**
   フィールドの監視対象サーバーの名前を受け入れるか、変更します。指定した名前はPEMクライアントのツリーに表示されます。

-  **Server group**
   リストを使用して、PEMクライアントツリーでサーバーが表示されるサーバーグループを選択します。

-  **Host name/address**
   フィールドを使用して、監視対象サーバーのIPアドレスを指定します。

-  **Port**
   フィールドには、サーバーによって監視されているポートが表示されます。このフィールドは変更できません。

-  **Service ID**
   フィールドにサービスの名前を入力します。一部のPEM機能を有効にするには、サービス名を提供する必要があります。

-  **Maintenance Database**
   フィールドは、初期接続とグローバルメンテナンス操作に使用するデータベースを指定します。インストールの
   **メンテナンスデータベース** フィールドの内容をカスタマイズします。

**Agent Connection Details**
ボックスのフィールドは、サーバーへの接続時に使用するPEMエージェントのプロパティを指定します。

-  **Host**
   フィールドには、PEMエージェントのバインディングに使用されるIPアドレスが表示されます。

-  **User name**
   フィールドには、選択したサーバーに接続するときにPEMエージェントが使用する名前が表示されます。

-  **Password**
   フィールドには、指定されたユーザー名に関連付けられたパスワードが表示されます。

-  **SSLmode** フィールドを使用して、SSL接続設定を指定します。

モニタリングにバインドしているサーバーの接続プロパティの指定が終了したら、
**OK** を選択してサーバーを登録します。

**OK**
を選択すると、新しく登録されたサーバーがPEMツリーに表示され、PEMサーバーによって監視されます。

データベースサーバーの手動登録
------------------------------

PEMでデータベースサーバーを管理またはモニタするには、次のことを行う必要があります。

-  EDB Postgres Advanced
   ServerまたはPostgreSQLサーバーをPEMサーバーに登録します。

-  データベースサーバーをPEMエージェントにバインドします。

Create
Serverダイアログボックスを使用して、サーバーの登録情報を提供し、PEMエージェントをバインドし、PEMクライアントツリーにサーバーを表示できます。
[ Create Server ]ダイアログボックスを開くには、 **Object > Create >
Server** を選択します。

..  Note::
   - 接続する前に、登録しているPostgresサーバーの`pg_hba.conf` ファイルでPEMクライアントのホストからの接続が許可されていることを確認する必要があります。 - データベーススーパーユーザーまたは`pem_admin` ロールを持つユーザーのみがデータベースサーバーをPEMエージェントにバインドできます。

**General** タブを使用して、サーバーの一般的なプロパティを説明します。

-  **Name**
   フィールドを使用して、サーバーの名前を指定します。名前は、PEMブラウザツリー内のサーバーを識別します。

-  グループを使用して、ツリー内のサーバーとエージェントを整理できます。グループを使用すると、多数のサーバーをより簡単に管理できます。たとえば、実稼働グループ、テストグループ、またはLAN固有のグループを持つことができます。
   **Group**
   リストを使用して、新しいサーバーを表示するサーバーグループを選択します。

-  **Team**
   フィールドを使用して、PostgreSQLロール名を指定します。このロールのメンバーであるPEMユーザー、最初にサーバーを作成した人、またはPEMサーバーのスーパーユーザー権限を持つPEMユーザーのみが、PEMにログインするときにこのサーバーを表示します。このフィールドを空白のままにした場合、デフォルトでは、すべてのPEMユーザーにサーバーが表示されます。
   [ Server Configuration
   ]ダイアログボックスの\ ``show_objects_with_no_team``
   パラメーターを使用して、動作を変更できます。
   ``show_objects_with_no_team`` が\ ``false``
   に設定されている場合、チームのないサーバーは他のすべてのユーザーに表示されません。

-  **Background**
   カラーセレクターを使用して、サーバーに保存されているデータベースオブジェクトの背後にあるPEMツリーに表示する色を選択します。

-  **Foreground**
   カラーセレクターを使用して、サーバーに保存されているオブジェクトのPEMツリーのラベルのフォント色を選択します。

-  **Save** を選択するときに **Connect now?**
   を選択してサーバー接続を試行します。
   PEMクライアントが、後の接続試行まで指定された接続パラメーターを検証したくない場合は、
   **Connect now?** をクリアします。

-  **Comments** フィールドにサーバーに関するメモを入力します。

**Connectionタブ** を使用して、サーバーの接続の詳細を指定します。

-  **Host name/address**
   フィールドに、サーバホストのIPアドレスまたは完全修飾ドメイン名を指定します。
   Unixベースのシステムでは、アドレスフィールドを空白のままにして、ローカルマシンでデフォルトのPostgreSQL
   Unixドメインソケットを使用します。または、PostgreSQLソケットを含む代替パスを設定できます。パスを入力する場合、パスはスラッシュ/で始まる必要があります。

-  **Port** フィールドにホストのポート番号を指定します。

-  **Maintenance Database**
   フィールドを使用して、インストールされたpgAgentスキーマとadminpackオブジェクトを含むことが予想される接続するPEMの初期データベースの名前を指定します両方オプショナル。
   PostgreSQLバージョン8.1以降では、メンテナンスDBは通常\ ``postgres``
   と呼ばれます。以前のバージョンでは ``template1``
   がよく使用されますが、テンプレートデータベースの混乱を避けるために\ ``postgres``
   データベースを作成することをお勧めします。

-  監視対象サーバーでKerberos認証を使用するには、 **Kerberos
   Authentication** を **Yes**
   に設定します。デフォルトでは、監視対象サーバーはPEMサーバーと同じ認証方法を使用します。監視対象サーバーがKerberos認証を使用したくない場合は、
   ``config_local.py``
   ファイルで\ ``ALLOW_DATABASE_CONNECTION_WITHOUT_KERBEROS``
   から\ ``TRUE`` を設定します。

-  **Username**
   フィールドにサーバーで認証するときに使用する名前を指定します。

-  指定されたユーザーに関連付けられたパスワードを **Password**
   フィールドに入力します。

-  後で再利用できるようにPEMバックエンドデータベースにパスワードを暗号化された形式で保存するには、
   **Savepassword?**
   を選択します。各パスワードはユーザーごと、サーバーごとに保存され、他のチームメンバーと共有されません。
   PEMは、保存されたパスワードを使用して、次回データベースサーバーに接続します。保存されたパスワードを削除するには、最初にデータベースサーバーを切断し、次に[
   \**Object > Clear Saved Password ]を選択します。

-  **Role**
   フィールドを使用して、サーバーに接続した後にクライアントが使用する特権を割り当てられたロールの名前を指定します。この値により、1つのロールとして接続し、接続が確立されたときに別のロールこのフィールドで指定したロールの権限を引き継ぐことができます。接続するロールは、指定されたロールのメンバーである必要があります。

**SSL** タブを使用して、SSLを構成します。

-  **SSLmode**
   フィールドで、サーバーが使用するSSL接続のタイプを選択します。
   SSL暗号化の使用の詳細については、 `the PostgreSQL documentation <https://www.postgresql.org/docs/current/static/libpq-ssl.html>`_ を参照してください。

プラットフォーム固有のファイルマネージャーダイアログボックスを使用して、SSL暗号化をサポートするファイルをサーバーにアップロードできます。ファイルマネージャーを開くには、次の各フィールドの右側にあるアイコンを選択します。

-  **Clientcertificate**
   フィールドを使用して、クライアントSSL証明書を含むファイルを指定します。このファイルは、PEMがデスクトップモードでインストールされている場合はデフォルトの\ ``~/.postgresql/postgresql.crt``
   ファイルを置き換え、PEMがWebモードでインストールされている場合は\ ``<STORAGE_DIR>/<USERNAME>/.postgresql/postgresql.crt``
   ファイルを置き換えます。
   SSL接続が作成されない場合、このパラメーターは無視されます。

-  **Clientcertificate key**
   フィールドを使用して、クライアント証明書に使用される秘密キーを含むファイルを指定します。このファイルは、PEMがデスクトップモードでインストールされている場合はデフォルトの\ ``~/.postgresql/postgresql.key``
   を、PEMがWebモードでインストールされている場合は\ ``<STORAGE_DIR>/<USERNAME>/.postgresql/postgresql.key``
   を置き換えます。
   SSL接続が作成されない場合、このパラメーターは無視されます。

-  **ルート証明書**
   フィールドを使用して、SSL認証局を含むファイルを指定します。このファイルは、デフォルトの\ ``~/.postgresql/root.crt``
   ファイルを置き換えます。
   SSL接続が作成されない場合、このパラメーターは無視されます。

-  **証明書失効リスト**
   フィールドを使用して、SSL証明書失効リストを含むファイルを指定します。このリストは、\ ``~/.postgresql/root.crl``
   にあるデフォルトリストを置き換えます。
   SSL接続が作成されない場合、このパラメーターは無視されます。

-  **SSLcompression?** が **True**
   に設定されている場合、SSL接続を介して送信されるデータは圧縮されます。デフォルト値は
   **False** 圧縮は無効です。
   SSL接続が作成されない場合、このパラメーターは無視されます。

..  Warning ::
   証明書、プライベート鍵、および失効リストは、PEMサーバープロセスが実行されるユーザアカウントが所有するサーバー上のユーザーごとのファイル格納領域に格納されます。これは、サーバーの管理者がこれらのファイルにアクセスできることを意味します。この機能を使用する前に注意してください。

**SSH Tunnel**
タブを使用して、SSHトンネリングを構成します。トンネルを使用して、中間プロキシホストを介してデータベースサーバーを、クライアントが直接接続できないネットワーク上にあるサーバーに接続できます。

-  指定されたサーバーへの接続時にSSHトンネルを使用するには、 **Use
   SSH確かにトンネリング** を **Yes** に設定します。

-  **Tunnel host**
   フィールドに、SSHホストクライアント接続が転送される名前またはIPアドレスを指定します。

-  クライアント接続が転送されるSSHホストのポートを **トンネルポート**
   フィールドに指定します。

-  **Username**
   フィールドに、SSHホストのログイン特権を持つユーザーの名前を指定します。

-  **Authentication**
   フィールドにSSHホストに接続するときに使用する認証の種類を指定します。

-  SSHホストへの認証にパスワードを使用する場合は、 **Password**
   を選択します。これがデフォルトです。

-  接続時にプライベートキーファイルを使用するには、 **Identity file**
   を選択します。

-  SSHホストが認証用にプライベートキーファイルを想定している場合、
   **Identity file**
   フィールドを使用して、キーファイルの場所を指定します。

-  SSHホストがパスワードを想定している場合は、 **Password**
   フィールドを使用してパスワードを指定します。
   IDファイルを使用している場合、パスフレーズを指定します。

**Advanced**
タブを使用して、サーバーの管理に使用される詳細を指定します。

-  **Host address** フィールドにサーバーホストのIPアドレスを指定します。

-  **DB rotation**
   フィールドを使用して、 `pg_database <http://www.postgresql.org/docs/current/interactive/catalog-pg-database.html>`_ テーブルに対して使用するSQL制限を指定して、ツリーに表示されるデータベースを制限します。たとえば、
   ``live_db`` および\ ``test_db`` データベースのみを表示するには、
   ``'live_db'`` , ``'test_db'``
   と入力できます。データベースのプロパティダイアログボックスから
   `pg_namespace <http://www.postgresql.org/docs/current/interactive/catalog-pg-namespace.html>`_ 
   に対する制限を入力して、データベースに表示されるスキーマを制限することもできます。

-  **Password file** フィールドを使用して、パスワードファイル
   ``.pgpass`` の場所を指定します。 ``.pgpass``
   ファイルを使用すると、ユーザーは接続時にパスワードを入力せずにログインできます。ファイルはPEMサーバーに存在する必要があります。詳細については、
   `Postgres documentation <http://www.postgresql.org/docs/current/static/libpq-pgpass.html>`_ を参照してください。

-  **Service ID**
   フィールドを使用して、データベースサービスプロセスのパラメーターを指定します。
   Enterprise
   Managerディレクトリに保存されているサーバーの場合、サービスIDを入力します。
   Windowsマシンでは、これはWindowsサービスの識別子です。
   Linuxマシンでは、サーバーの起動に使用されるinitスクリプトの名前は\ ``/etc/init.d``
   で、サーバーを起動するsystemdスクリプトの名前は\ ``systemctl``
   です。たとえば、 EDB Postgres Advanced Server
   11サービスの名前は\ ``edb-as-11``
   です。ローカルサーバーの場合、設定はオペレーティングシステムに依存します。

   -  PEMクライアントがWindowsマシンで実行されている場合、十分なアクセス権限がある場合、postmasterサービスを制御できます。サービスの名前を入力します。リモートサーバーの場合、マシン名\ ``PSE1\pgsql-8.0``
      などを先頭に付けます。
      PEMは、ローカルマシンで実行されているサービスを自動的に検出します。
   -  PEMクライアントがLinuxマシンで実行されている場合、十分なアクセス権限があれば、ローカルマシンで実行されているプロセスを制御できます。
      ``pg_ctl``
      プログラムにアクセスするためにフルパスと必要なオプションを提供します。サービス制御機能を実行すると、PEMはstatus/start/stopキーワードをこれに追加します。例

``sudo /usr/pgsql-x/bin/pg_ctl -D /var/lib/pgsql/x/data``

``x`` は、PostgreSQLデータベースサーバーのバージョンです。

-  サーバーがフェールオーバーマネージャークラスターのメンバーである場合は、PEMを使用してクラスターの状態を監視し、必要に応じてプライマリノードを置き換えることができます。
   PEMがフェールオーバーマネージャーを監視できるようにするには、 **EFM
   cluster name**
   フィールドを使用してクラスター名を指定します。クラスター名は、フェールオーバーマネージャークラスタープロパティファイルの名前の接頭辞です。たとえば、クラスタープロパティファイルの名前が\ ``efm.properties``
   の場合、クラスター名はefmです。

-  PEMを使用してフェールオーバーマネージャークラスターのステータスをモニタいる場合は、
   **EFM installation path** フィールドを使用して、Failover
   Managerバイナリファイルの場所を指定します。デフォルトでは、Failover
   Managerバイナリファイルは\ ``/usr/edb/efm-x.x/bin``
   にインストールされます。\ ``x.x`` はFailover
   Managerのバージョンを指定します。

[ **PEM Agent**
]タブを使用して、PEMエージェントの接続の詳細を指定します。

[ **Connection Parameters** ]タブで

-  **Remote Monitoring?** を **Yes**
   に設定して、PEMエージェントが監視対象サーバーと同じホストにないことを示します。リモート監視が有効になっている場合、監視対象サーバーのエージェントレベルの統計はカスタムグラフとダッシュボードで利用できず、リモートサーバーは一部のPEMユーティリティAudit
   Manager、Capacity Manager、Log Manager、Postgres
   Expertなどからアクセスできません。 、およびチューニングウィザード)。

-  **Bound agent** リストを使用して、PEMエージェントを選択します。
   1つのエージェントでマルチプルのPostgresサーバーをモニタできます。

-  **Host**
   フィールドに、データベースサーバーに接続するときに使用するエージェントのIPアドレスまたはソケットパスを入力します。デフォルトでは、エージェントは[
   **General** ]タブに表示されるホストアドレスを使用します。
   Unixサーバーでは、\ ``/tmp``
   などのソケットパスを指定することができます。

-  サーバーへの接続時に使用するエージェントのポート番号を入力します。デフォルトでは、エージェントは[
   **プロパティ** ]タブで定義されたポートを使用します。

-  **SSL** フィールドを使用して、SSL操作モードを指定します。 **require**
   、 **prefer** 、 **allow** 、 **disable** 、 **verify-ca** 、または
   **verify-full** を指定します。

.. csv-table::
  :header: Mode,Description
  :widths: 10,30
  :align: left
  :class: longtable

  require,サーバーとエージェント間のトランザクションにはSSL暗号化が必要です。
  prefer,SSL暗号化が利用できる場合、サーバーとエージェント間でSSL暗号化を使用します。
  allow,サーバーで必要な場合、接続がSSLを使用できるようにします。
  disable,エージェントとサーバー間のSSL暗号化を無効にします。
  verify-ca,SSL暗号化を必要とし、認証局によって登録された証明書を使用してサーバーに認証を要求します。
  verify-full,SSL暗号化を必要とし、信頼できる認証局によって登録された証明書を使用してサーバーに認証を要求します。

SSL暗号化の使用の詳細については、 `PostgreSQL documentation <https://www.postgresql.org/docs/12.1/libpq-ssl.html>`_ を参照してください。

-  **Server**
   フィールドを使用して、エージェントが最初に接続するPostgresデータベースの名前を指定します。
   EDB Postgres Distributedデータベースノードを登録する場合、このフィールドにEDB
   Postgres Distributed対応データベース名を指定します。

-  **User name**
   フィールドに、サーバーへの接続時に使用するエージェントのロールの名前を指定します。すべての機能が期待どおりに動作するには、指定されたロールがデータベーススーパーユーザーである必要があります。指定されたロールがデータベーススーパーユーザーでない場合、機能しない機能のリストについては、
   :ref:`Setting agent privileges <Setting agent privileges>` を参照してください。
   Kerberos認証方法を使用している場合、このフィールドにpgd_monitorまたはpgd_superuserロールを持つユーザーを指定します。

Postgresバージョン10以降を使用している場合は、
pg_monitorロールを使用して、必要な特権を非スーパーユーザーに付与できます。
pg_monitorロールの詳細については、 `Default Roles <https://www.postgresql.org/docs/current/default-roles.html>`_ を参照してください。

-  **User name**
   フィールドに、サーバーへの接続時に使用するエージェントのユーザーの名前を指定します。すべての機能が期待どおりに動作するには、指定されたロールがデータベーススーパーユーザーである必要があります。
   Postgresバージョン10以降を使用している場合は、
   pg_monitorロールを使用して、必要な特権を非スーパーユーザーに付与できます。
   pg_monitorロールの詳細については、 `Default Roles <https://www.postgresql.org/docs/current/default-roles.html>`_ を参照してください。

-  サーバーに接続するときに使用するエージェントのパスワードを
   **Password** フィールドと **確認パスワード**
   フィールドに指定します。パスワードを指定しない場合、エージェントの認証を手動で構成する必要があります。たとえば、
   ``.pgpass``
   ファイルは、エージェントがインストールされているシステムに存在し、アクセスできる必要があります。

[ **Advanced** ]タブで

-  **Allow takeover?** を **Yes**
   に設定して、別のエージェントがサーバーを引き継ぎできることを指定します。この機能により、エージェントは、高可用性フェールオーバープロセスの一部としてサーバーが別のホストに移動した場合など、データベースサーバーの監視を引き継ぐことができます。

-  プラス記号 **+**
   を使用して、PEM監視から除外するデータベースを追加します。 [
   **PEMエージェント** ]タブの[ **Connection Parameters**
   ]タブに記載されているデータベースを除外することはできません。

..  Note::
   データベースレベルのプローブは、除外されたデータベースに対して実行されませんが、サーバーレベルのプローブはデータベース統計を収集できます。

**BART** タブの下の **General**
タブを使用して、PEMサーバーにマップするBARTサーバーの一般的なプロパティを説明します。

-  **BART server** フィールドを使用して、BARTサーバー名を選択します。
   PEMコンソールで構成されたすべてのBARTサーバーがリストされます。

-  **Server name**
   フィールドを使用して、BARTサーバーを使用してバックアップするデータベースサーバーの名前を指定します。この名前は、BART構成ファイルに保存されます。

-  **Backup name**
   フィールドを使用して、データベースサーバーのバックアップに割り当てるユーザー定義名のテンプレートを指定します。バックアップ名テンプレートを指定しない場合、BARTが割り当てた整数バックアップ識別子を使用してのみ、BARTサブコマンドでバックアップを参照できます。

-  **Host address**
   フィールドを使用して、バックアップ用に構成するデータベースサーバーのIPアドレスを指定します。

-  **Port**
   フィールドを使用して、バックアップするデータベースに使用するポートを指定します。

-  **User**
   フィールドを使用して、PEMコンソールからBARTを使用してバックアップするデータベースのユーザーを指定します。このデータベースサーバーのインクリメンタル
   バックアップを有効にする場合、ユーザーはスーパーユーザーである必要があります。

-  **Password**
   フィールドを使用して、バックアップするデータベースのユーザーのパスワードを指定します。

-  **Cluster Owner**
   フィールドを使用して、データベースクラスターを所有するLinuxオペレーティングシステムのユーザーアカウントを指定します。これは通常、Oracleデータベース互換モードでインストールされたEDB
   Postgres Advanced
   Serverデータベースクラスターのenterprisedbです。これは、通常、
   PostgreSQLデータベースクラスター、およびPostgreSQLデータベース互換モードでインストールされたEDB
   Postgres Advanced Serverデータベースクラスターのpostgresです。

-  **Archive command** フィールドを使用して、\ ``bart.cfg``
   ファイルで使用するアーカイブコマンド文字列の目的の形式を指定します。
   Archiveコマンドに提供された入力は、データベースサーバーの\ ``Postgresql.conf``
   ファイルを上書きします。サーバーが追加されると、データベースサーバーが再起動するか、データベース構成がリロードされます。

-  **Allow attempts attempts?**
   を使用して、このデータベースサーバーのインクリメンタル
   バックアップを有効にするかどうかを指定します。

-  **SetuppasswordlessSSH?**
   を使用して、SSH証明書を作成して、データベースサーバーとBARTサーバー間でパスワードなしのログインを許可するかどうかを指定します。パスワードなしのSSH認証を設定する前に、必ずPEMエージェントをバインドしてください。パスワードレスSSHは、PEMエージェントによってリモートで監視されているデータベースサーバーでは機能しません。

**BART** タブの下の **Misc** タブを使用して、BART
Serverのその他のプロパティを説明します。

-  **Overridedefault configuration?**
   を使用して、BARTサーバー構成を特定のデータベースサーバー構成でオーバーライドします。

-  **Xlog** メソッドを使用して、
   pg_basebackupの実行中にトランザクションログを収集する方法を指定します。

-  **Retentionpolicy**
   フィールドを使用して、バックアップの保持ポリシーを指定します。これにより、アクティブなバックアップを古いものとして、したがって削除の候補としてマークする時期が決定されます。バックアップの数または期間日、週、または月の観点から保持ポリシーを指定できます。

-  **WAL圧縮** を使用して、アーカイブされたXlog /
   WALファイルをgzip形式で圧縮するかどうかを指定します。
   WAL圧縮を有効にするには、gzip圧縮プログラムがBARTユーザーアカウントのPATHに存在する必要があります。インクリメンタル
   バックアップする必要があるデータベースサーバーの **WAL圧縮**
   設定を有効にしないでください。

-  **Copy WALs while recovery**
   フィールドを使用して、RESTORE操作を呼び出したときにアーカイブされたWALファイルを収集する方法を指定します。データベースサーバーアーカイブリカバリーの前に、アーカイブされたWALファイルをBARTバックアップカタログから\ ``<restore_path>/archived_wals``
   ディレクトリにコピーするには、 **Enabled**
   に設定します。データベースサーバーアーカイブリカバリ中にBARTバックアップカタログからアーカイブされたWALファイルを直接取得するには、
   **Disabled** に設定します。

-  **Thread count**
   フィールドを使用して、ブロックをコピーするスレッドの数を指定します。
   pg_basebackupユーティリティを使用してバックアップを取る場合は、
   **Thread count** を **1** に設定する必要があります。

-  **Batch size**
   フィールドを使用して、変更したブロックのコピーに使用されるメモリのブロック数を指定します。このオプションは、インクリメンタル
   バックアップにのみ適用されます。

-  **Scan interval**
   フィールドを使用して、新しいWALファイルをスキャンする前にWALスキャナーが待機する秒数を指定します。

-  **MBM scan timeout**
   フィールドを使用して、タイムアウトになるまでにMBMファイルを待機する秒数を指定します。このオプションは、インクリメンタル
   バックアップにのみ適用されます。

サーバーのプロパティをビューするには、PEMクライアントツリーでサーバー名前を右クリックし、コンテキストメニューから
**Properties** を選択します。サーバーのプロパティを変更するには、[
Properties ]ダイアログボックスを開く前にサーバーから切断します。

接続とバインディングの検証
--------------------------

登録されると、新しいサーバーはPEMブラウザツリーに追加され、グローバル概要ダッシュボードに表示されます。

新しくバインドされたサーバーに最初に接続すると、グローバル概要ダッシュボードには、サーバーリストに「不明」のステータスで新しいサーバーが表示される場合があります。サーバーを認識する前に、バインドされたエージェントは多数のプローブを実行してサーバーを調べる必要があります。ネットワークの可用性によっては、これらのプローブが完了するまでに数分かかる場合があります。

数分で、Global
Overviewダッシュボードの棒グラフに、エージェントが正常に接続されたことが示されます。新しいサーバーは
**Postgres Server Status** リストに含まれます。

5分後、Global
Overviewダッシュボードはまだ新しいサーバーをリストしていない場合は、モニタリングエージェントのログファイルでエラーを確認します。ツリーでエージェントの名前を右クリックし、コンテキストメニューから
**Dashboards > Probe Log Analysis** を選択します。
