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:`pemworkerユーティリティを使用してサーバーを登録する <pemworkerユーティリティを使用してサーバーを登録する>` 
  - PEM
  Webアプリケーションの :ref:`自動サーバー検出へのサーバーの登録 <自動サーバー検出へのサーバーの登録>` を使用して、エージェントと同じホストにあるPostgresサーバーを自動的に登録します。
  - :ref:`データベースサーバーの手動登録 <データベースサーバーの手動登録>`  PEM Webアプリケーションのすべての詳細を追加します。

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

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

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

.. code:: shell

   export PEM_SERVER_PASSWORD=example
   export PEM_MONITORED_SERVER_PASSWORD=example
   pemworker --register-server

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

.. code:: shell

   set PEM_SERVER_PASSWORD=example
   set PEM_MONITORED_SERVER_PASSWORD=example
   pemworker.exe REGISTER-SERVER

環境変数\ ``PEM_SERVER_PASSWORD`` は、指定された\ ``--pem-user``
のパスワードに設定する必要があります。必要に応じて、このユーザーに :ref:`pemworker接続の追加パラメーターの指定 <pemworker接続の追加パラメーターの指定>` を実行できます。環境変数\ ``PEM_MONITORED_SERVER_PASSWORD``
を、エージェントサーバーバインドユーザーのパスワードに設定します前者が指定されていない場合は\ ``--asb-host-user``
または\ ``--server-user`` 。

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

.. csv-table::
  :header: Option&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,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ソケットを含む代替パスに設定できます。パスを入力する場合、パスはスラッシュ/で始まる必要があります。この場合、 `PEM_MONITORED_SERVER_PASSWORD`は空でない値に設定する必要がありますが、使用されません。必須。
  `--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>`,監視対象データベースサーバーの表示名を指定します。オプショナル、デフォルトはシステムホスト名です。
  `--cluster-name`,エージェントオブジェクトを追加するオブジェクトエクスプローラーでクラスター名前を指定します。クラスターが存在しない場合、自動的に作成されます。このパラメーターはオプショナル。
  **Other parameters** ,NA
  `--remote-monitoring`,サーバーがエージェントと同じホストにない場合、`yes`に設定します。リモート監視が有効になっている `yes`、監視対象サーバーのエージェントレベルの統計はカスタムグラフとダッシュボードで利用できず、リモートサーバーは一部のPEMユーティリティAudit Manager、Capacity Manager、Log Managerなどからアクセスできません。 )。オプション、デフォルトは`no`です。
  `--efm-cluster-name`,サーバーを監視するEDB Failover Managerクラスターの名前を指定します該当する場合。オプショナル。
  `--efm-install-path`,EDB Failover Managerのインストールディレクトリへの完全なパスを指定します該当する場合。オプショナル。
  `--config-dir`,エージェント構成ファイルのディレクトリパスを指定します。オプション、デフォルトは`<pemworker path>/../etc`です。

pemworker接続の追加パラメーターの指定
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

データベースサーバーを登録または登録解除するときは、登録を実行する管理PEMユーザー
``--pem-user`` を指定する必要があります。
このユーザーのパスワードを\ ``PEM_SERVER_PASSWORD``
として指定する必要もあります。

追加の接続パラメーターを指定する必要がある場合、またはパスワード以外の認証方法を使用する必要がある場合は、以下の手順に従ってください。

pemworkerユーティリティは、
`libpq <https://www.postgresql.org/docs/current/libpq.html>`_ を使用してPostgresに接続します。 そのため、 `libpq environment variables <https://www.postgresql.org/docs/current/libpq-envars.html>`_ 
を使用して多くの接続プロパティを設定できます。

例、エージェントの登録に使用される接続のSSLモードを指定する場合

.. code:: shell

   export PEM_SERVER_PASSWORD=edb
   export PGSSLMODE=require
   pemworker --register-agent ...

同様に、証明書認証されたアカウントを使用して接続する場合、証明書とキーの詳細を提供できます。
``PEM_SERVER_PASSWORD``
を提供する必要があることに注意してくださいが、使用されないため、任意の値に設定できます。

.. code:: shell

   export PGSSLCERT=pem-server.crt
   export PGSSLKEY=pem-server.key
   export PEM_SERVER_PASSWORD=none
   pemworker --register-agent ...

例
^^

この例では、必要なパラメーターのみを使用してサーバーを登録します。
ユーザー\ ``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エージェントがこのサーバーを再起動して構成変更を適用できることを意味します。

.. 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-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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,Description
  :widths: 10,30
  :align: left
  :class: longtable

  `--pem-user`,PEM管理ユーザーの名前を指定します。必須。
  `--asb-host-name`,エージェントがデータベースサーバーへの接続に使用するホスト名を指定します。
  `--server-port`,ホストのポート番号を指定します。必須。
  `--config-dir`,エージェント構成ファイルのディレクトリパスを指定します。オプション、デフォルトは`<pemworker path>/../etc`です。

``PEM_SERVER_PASSWORD``
環境変数を使用してPEMサーバーのパスワードを提供し、pemworkerユーティリティが\ ``--pem-user``
として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エージェントにバインドします。

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

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

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

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

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

- **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つのロールとして接続し、接続が確立されたときに別のロールこのフィールドで指定したロールの権限を引き継ぐことができます。接続するロールは、指定されたロールのメンバーである必要があります。

[ **Parameters** ]タブのフィールドを使用して、接続設定を構成します。

``+``
ボタンをクリックして、新しいパラメーターを追加します。一般的なパラメーターには次のものが含まれます。

- **ホストアドレス**
  サーバーのIPアドレスを指定して、DNSルックアップを回避し、接続速度を向上させます。
  Kerberos、GSSAPI、SSPI、またはverify-full
  SSLモードを使用する場合、ホスト名とIPアドレスの両方を提供することをお勧めします。

- **パスワードファイル**
  .pgpassファイルへのパスを指定して、パスワードなしの認証を有効にします。詳細については、PostgreSQLドキュメント、セクション33.15を参照してください。

- **接続タイムアウト**
  接続を待機する最大時間秒単位を設定します。値0または空は、無期限に待機することを意味します。デフォルトは10秒です。
  2秒未満の値を使用することはお勧めできません。

- **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ファイルを使用している場合、パスフレーズを指定します。

- **Savepassword?**
  を有効にして、今後使用するためにパスワードを保存するようにPEMに指示します。
  `Clear SSH Tunnel Password <https://www.pgadmin.org/docs/pgadmin4/9.3/clear_saved_passwords.html#clear-saved-passwords>`_ を使用して、保存したパスワードを削除します。

- **キープアライブ秒**
  フィールドで秒数を指定して、接続を介してデータが送信されなかった場合、\ ``keepalive``
  パケットが送信される期間を定義しますリモートホストによって無視されます。これは、NAT経由で接続を生きたままにするのに役立ちます。
  ``Keep alive`` を無効にするには0を指定します。

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

- **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 execcommand**
  フィールドを使用して、実行時にSQLパスワードを取得するシェルコマンドを指定します。コマンドのstdoutはパスワードとして使用されます。

これは、
`PAM authentication <https://www.postgresql.org/docs/current/auth-pam.html>`_ シナリオなど、パスワードが短期間のトークンである場合に役立ちます。

コマンドにプレースホルダーを含めて、接続の詳細を動的に渡すことができます。

- **%HOSTNAME%** – サーバーホスト名

- **%PORT%** –サーバーポート

- **%USERNAME%** – データベースのユーザー名

- **Password exec有効期限** フィールドを使用して、 **Password
  execコマンド** で取得したパスワードの最大有効期間秒単位を設定します。

  - 指定しない場合、パスワードはセッションの間有効なままです。
  - 0に設定すると、コマンドは新しい接続または再接続のたびに実行されます。
  - パスワードが時間制限されている場合一時トークンなど、認証の失敗を回避するために有効期限の少し前にこの値を設定します。

- **準備しきい値**
  フィールドを使用して、クエリーを準備する時期を制御します。

  - **0** 最初の実行時にクエリーを準備します。
  - **正の整数**
    クエリーを準備します。その回数実行された後、クエリーを準備します。
    days.
  - **空白** この接続では準備されたステートメントを完全に無効にします。

この設定は、準備されたステートメントと互換性のないPgBouncerのような外部接続プーリングツールを使用する場合に特に役立ちます。そのような場合、このフィールドを空白に設定します。

- **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データベースサーバーのバージョンです。

**Post Connection SQL** タブを使用して、 SQLクエリーを指定します。

- **Post Connection SQL**
  フィールドを使用して、サーバー内のデータベースに行われる接続ごとにオートコミットモードで実行するSQLクエリーを書き込みます。

**Tags** タブを使用して、タグを追加します。

- **Tags**
  タブを使用してカスタムタグを追加します。これは、オブジェクトエクスプローラーツリーのサーバーノードラベルの横に表示されます。

タグを追加するには - **+** ボタンをクリックします。 - **Text**
フィールドを使用して、タグ名を指定します。 - **Color**
フィールドを使用して、タグのアクセントカラーを選択します。

**Replication**
タブを使用して、サーバーが使用するレプリケーションソリューションを選択します。

- サーバーの **レプリケーションソリューション** を使用します。

  - サーバーがレプリケーションソリューションのメンバーである場合、PEMを使用してクラスターの状態を監視し、必要に応じてプライマリノードを置き換えることができます。
    **EFM**
  - PEMでフェールオーバーマネージャーを監視できるようにするには、 **EFM
    cluster name**
    フィールドを使用してクラスター名を指定します。クラスター名は、フェールオーバーマネージャークラスタープロパティファイル名の名前の接頭辞です。たとえば、ファイル名が\ ``efm.properties``
    の場合、クラスター名はefm.
  - PEMを使用してフェールオーバーマネージャークラスターのステータスをモニタいる場合、
    **EFM installation path**
    フィールドを使用して、フェールオーバーの場所を指定しますマネージャーバイナリファイル。デフォルトでは、Failover
    Managerバイナリファイルは\ ``/usr/edb/efm-x.x/bin``
    にインストールされます。\ ``x.x`` はFailover
    Managerのバージョンを指定します。 **Patroni**
  - PEMでパトロニクラスターを監視できるようにするには、 **Patroni
    cluster name**
    フィールドを使用してクラスター名を指定します。クラスターのデフォルト名はPatroniです。クラスター名は、Patroni構成ファイルの\ ``Scope``
    値で見つけることができます。構成ファイルはYAML形式であり、多くの場合patroni.yaml.
  - という名前が付けられます **Patroniインストールパス**
    を使用して、Patroniバイナリファイルの場所を指定します。一般的な場所は次のとおりです。

    - ``/usr/local/bin``
    - ``/usr/bin``

  - **Patroni config path**
    フィールドを使用して、構成ファイルを指定します。一般的な場所は次のとおりです。

    - ``/etc/patroni/patroni.yaml``
    - ``/etc/patroni.yaml``
    - Patroniプロセスが開始されるディレクトリ **None**

  - レプリケーションソリューションを使用していない場合は、 **None**
    を選択します。

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

[ **Connection Parameters** ]タブで

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

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

- **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分散データベースノードを登録する場合、このフィールドにEDB Postgres Distributed対応データベース名を指定します。  **Username** フィールドに、サーバーへの接続時に使用するエージェントのロールの名前を指定します。すべての機能が期待どおりに動作するには、指定されたロールがデータベーススーパーユーザーである必要があります。指定されたロールがデータベーススーパーユーザーでない場合、機能しない機能のリストについては、 :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>`_ を参照してください。 **Username**
    フィールドに、サーバーへの接続時に使用するエージェントのユーザーの名前を指定します。すべての機能が期待どおりに動作するには、指定されたロールがデータベーススーパーユーザーである必要があります。
    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::
   データベースレベルのプローブは、除外されたデータベースに対して実行されませんが、サーバーレベルのプローブはデータベース統計を収集できます。

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

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

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

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

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

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