サーバーの登録

PEMでサーバーを管理または監視する前に、サーバーをPEMに登録し、エージェントをバインドする必要があります。サーバーはリモートエージェント(別のホストに存在するエージェント)にバインドできますが、エージェントが同じホストに存在しない場合、インスタンスに関するすべての統計情報にアクセスできません。

サーバーの手動登録

PEMを使用してサーバーを管理または監視するには、次のことを行う必要があります。

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

  • サーバーをPEMエージェントにバインドします。

Create - Server ダイアログを使用して、サーバーの登録情報を提供し、PEMエージェントをバインドし、サーバーをPEMクライアントツリーコントロールに表示できます。 Create - Server ダイアログを開くには、 Object メニュー(またはサーバーグループのコンテキストメニュー)の Create オプションをナビゲートし、 Server… を選択します。

Accessing the Create – Server dialog

``サーバーの作成``ダイアログへのアクセス

注釈

登録するPostgresサーバーの pg_hba.conf ファイルが、接続を試みる前にPEMクライアントのホストからの接続を許可していることを確認する必要があります。

Accessing the Create – Server dialog

The General tab of the Create – Server dialog

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

  • Name フィールドを使用して、サーバーのわかりやすい名前を指定します。指定された名前は、PEM Browser ツリーコントロールでサーバーを識別します。

  • グループを使用して、サーバーとエージェントをツリーコントロールで整理できます。グループを使用すると、多数のサーバーをより簡単に管理できます。たとえば、実稼働グループ、テストグループ、またはLAN固有のグループが必要な場合があります。 Group ドロップダウンリストボックスを使用して、新しいサーバーが表示されるサーバーグループを選択します。

  • Team フィールドを使用して、Postgresロール名を指定します。このロールのメンバーである、サーバーを最初に作成した、またはPEMサーバーでスーパーユーザー特権を持つPEMユーザーのみが、PEMにログオンしたときにこのサーバーを表示します。このフィールドを空白のままにすると、すべてのPEMユーザーにサーバーが表示されます。

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

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

  • Connect now? の横にあるチェックボックスをオンにして、 Connect now? ボタンをクリックしたときにサーバー接続を試行するようにPEMに指示します。 PEMクライアントが、後の接続試行まで指定された接続パラメーターを検証しないようにする場合は、 Connect now? をオフのままにします。

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

The Connection tab of the Create – Server dialog

The Connection tab of the Create – Server dialog

Connection tab のフィールドを使用して、サーバーの接続の詳細を指定します。

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

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

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

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

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

  • Save password? の隣のボックスをチェックして、後で再利用できるように ~/.pgpass ファイル(Linuxの場合)または %APPDATA%/postgresql/pgpass.conf (Windowsの場合)にパスワードを保存するようPEMに指示します。詳細については、 pgpass のドキュメントを参照してください。保存されたパスワードは、すべてのlibpqベースのツールに使用されます。パスワードを削除するには、サーバーから切断し、サーバーの[プロパティ]ダイアログを開いて、選択を解除します。

  • Role フィールドを使用して、サーバーへの接続後にクライアントが使用する必要がある特権が割り当てられているロールの名前を指定します。これにより、1つの役割として接続し、接続が確立されたときに別の役割(このフィールドで指定した役割)の許可を引き受けることができます。接続する役割は、指定された役割のメンバーでなければなりません。

The SSL tab of the Create – Server dialog

The SSL tab of the Create – Server dialog

SSLを構成するには、 SSL タブのフィールドを使用します:

  • SSL mode フィールドのドロップダウンリストボックスを使用して、サーバーが使用するSSL接続のタイプを選択します。 SSL暗号化の使用の詳細については、次のPostgreSQLドキュメントを参照してください。

    https://www.postgresql.org/docs/current/static/libpq-ssl.html

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

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

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

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

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

  • SSL compression? をTrueに設定すると、SSL接続を介して送信されるデータが圧縮されます。デフォルト値は False です(圧縮は無効です)。 SSL接続が確立されない場合、このパラメーターは無視されます。

警告

証明書、秘密キー、および失効リストは、PEMサーバープロセスが実行されるユーザーアカウントが所有するサーバー上のユーザーごとのファイルストレージ領域に格納されます。これは、サーバーの管理者がこれらのファイルにアクセスできることを意味します。この機能の使用を選択する前に、適切な注意を払う必要があります。

The SSH Tunnel tab of the Create – Server dialog

The SSH Tunnel tab of the Create – Server dialog

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

  • 指定したサーバーに接続するときにPEMがSSHトンネルを使用するように指定するには、 Use SSH tunneling を Yes に設定します。

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

  • Tunnel port フィールドにSSHクライアントのポート(クライアント接続が転送される)を指定します。

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

  • Authentication フィールドでSSHホストに接続するときに使用される認証のタイプを指定します。

  • Password を選択して、PEMがSSHホストへの認証にパスワードを使用することを指定します。これがデフォルトです。

  • 接続時にPEMが秘密鍵ファイルを使用することを指定するには、 Identity file を選択します。

  • SSHホストが認証用の秘密鍵ファイルを予期している場合、 Identity file フィールドを使用して鍵ファイルの場所を指定します。

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

The Advanced tab of the Create – Server dialog

The Advanced tab of the Create – Server dialog

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

注釈

パスワードファイルの使用は、PEMがlibpq v10.0以降を使用してサーバーに接続している場合にのみサポートされます。

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

    • PEMクライアントがWindowsマシンで実行されている場合、十分なアクセス権があれば、ポストマスターサービスを制御できます。サービスの名前を入力します。リモートサーバーの場合は、マシン名を先頭に追加する必要があります(例: PSE1/pgsql-8.0 )。 PEMは、ローカルマシンで実行されているサービスを自動的に検出します。

    • PEMクライアントがLinuxマシンで実行されている場合、十分なアクセス権があれば、ローカルマシンで実行されているプロセスを制御できます。 pg_ctl プログラムにアクセスするためのフルパスと必要なオプションを提供します。サービス制御機能を実行すると、PEMはこれにstatus / start / stopキーワードを追加します。例:

    sudo /usr/local/pgsql/bin/pg_ctl -D /data/pgsql

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

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

The PEM Agent tab of the Create – Server dialog

The PEM Agent tab of the Create – Server dialog

PEM Agent タブのフィールドを使用して、PEMエージェントの接続の詳細を指定します。

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

  • Bound agent ラベルの右側にあるドロップダウンリストボックスを使用して、Enterprise Managerエージェントを選択します。 1つのエージェントで複数のPostgresサーバーを監視できます。

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

  • サーバーに接続するときにエージェントが使用する Port 番号を入力します。デフォルトでは、エージェントは Properties タブで定義されたポートを使用します。

  • SSL動作モードを指定するには、 SSL フィールドのドロップダウンリストボックスを使用します。 require、prefer、allow、disable、verify-caまたはverify-fullを指定します。 SSL暗号化の使用の詳細については、次のPostgreSQLドキュメントを参照してください。

    http://enterprisedb.com/docs/en/10/pg/libpq-ssl.html

  • Database フィールドを使用して、エージェントが最初に接続するデータベースの名前を指定します。

  • User name フィールドで、サーバーに接続するときにエージェントが使用するロールの名前を指定します。指定されたロールがデータベースのスーパーユーザーでない場合、一部の機能が期待どおりに機能しないことに注意してください。指定されたロールがデータベーススーパーユーザーでない場合に機能しない機能のリストについては、 エージェント権限を参照してください。 。

Postgresバージョン10以降を使用している場合、 pg_monitor ロールを使用して、必要な特権を非スーパーユーザーに付与できます。 pg_monitor ロールの詳細については、以下を参照してください。

  • サーバーに接続するときにエージェントが使用するパスワードを Password フィールドに指定し、 Confirm password フィールドにもう一度入力して確認します。パスワードを指定しない場合、エージェントの認証を手動で構成する必要があります。たとえば、 .pgpass ファイルを使用できます。

  • Allow takeover? スライダーを Yes に設定して、サーバーが別のエージェントに引き継がれることを指定します。この機能により、エージェントは、たとえば、高可用性フェイルオーバープロセスの一環としてサーバーが別のホストに移動された場合に、データベースサーバーの監視を行うことができます。

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

自動サーバー検出

監視したいサーバーが監視エージェントと同じホストにある場合、 Auto Discovery ダイアログを使用して登録とバインドのプロセスを簡素化できます。

特定のエージェントの自動検出を有効にするには、 Server Auto Discovery プローブを有効にする必要があります。 Manage Probesタブにアクセスするには、PEMクライアントツリーコントロールでPEMエージェントの名前を強調表示し、 Management メニューから Manage Probes... を選択します。 Manage Probes タブが開いたら、 Enabled? 列のスライダーコントロールが Yes に設定されていることを確認します。

Auto Discovery ダイアログを開くには、PEMクライアントツリーコントロールでPEMエージェントの名前を強調表示し、 Management メニューから Auto Discovery... を選択します。

The PEM Auto Discovery dialog

The PEM Auto Discovery dialog

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クライアントツリーコントロールに表示されるサーバーグループを選択します。

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

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

  • Service ID フィールドにサービスの名前を入力します。一部のPEM機能を有効にするには、サービス名を指定する必要があることに注意してください。

  • デフォルトでは、 Maintenance database フィールドは、選択したサーバーがPostgresメンテナンスデータベースを使用することを示します。インストールの Maintenance database フィールドの内容をカスタマイズします。

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

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

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

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

  • SSL mode フィールドのドロップダウンリストボックスを使用して、SSL接続設定を指定します。

監視用にバインドしているサーバーの接続プロパティの指定が終了したら、 OK ボタンをクリックしてサーバーを登録します。変更を保存せずに終了するには、 Cancel をクリックします。

The registered server

登録済みサーバー

OK ボタンをクリックすると、新しく登録されたサーバーがPEMツリーコントロールに表示され、PEMサーバーによって監視されます。

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

pemworker ユーティリティを使用して、PEMサーバーによる監視用にサーバーを登録したり、データベースサーバーの登録を解除したりできます。登録中、 pemworker ユーティリティは、登録コマンドを呼び出したシステム上にあるエージェントに新しいサーバーをバインドします。サーバーを登録するには:

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

pemworker --register-server

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

pemworker.exe REGISTER-SERVICE

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

オプション

説明

--pem-user

PEM管理ユーザーの名前を指定します。必須です。

--server-addr

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

--server-port

ホストのポート番号を指定します。必須です。

--server-database

サーバーが接続するデータベースの名前を指定します。必須です。

--server-user

サーバーのモニター時にエージェントが使用するユーザーの名前を指定します。必須です。

--server-service-name

登録されるサーバーでの操作を制御するデータベースサービスの名前を指定します(STOP、START、RESTARTなど)。オプション。

--remote-monitoring

--remote-monitoring句と値false(デフォルト)を含めて、サーバーがPEMエージェントと同じマシンにインストールされていることを示します。リモート監視が有効(true)の場合、監視対象サーバーのエージェントレベルの統計はカスタムチャートおよびダッシュボードで利用できず、一部のPEMユーティリティ(監査マネージャー、キャパシティマネージャー、ログマネージャー、 Postgres Expert and Tuning Wizard)。必須です。

--efm-cluster-name

サーバーを監視するフェールオーバーマネージャークラスターの名前を指定します(該当する場合)。オプション。

--efm-install-path

フェールオーバーマネージャーのインストールディレクトリへの完全なパスを指定します(該当する場合)。オプション。

--asb-host-name

エージェントが接続しているホストの名前を指定します。

--asb-host-port

データベースに接続するときにエージェントが使用するポート番号を指定します。

--asb-host-db

エージェントが接続するデータベースの名前を指定します。

--asb-host-user

データベースでの認証時にエージェントが提供するデータベースユーザー名を指定します。

--asb-ssl-mode

接続に使用されるSSL認証のタイプを指定します。サポートされる値には、prefer、require、disable、verify-CA、verify-fullなどがあります。

--group

サーバーが表示されるグループの名前を指定します。

--team

サーバーへのアクセスを許可されるグループロールの名前を指定します。

--owner

監視対象サーバーを所有するロールの名前を指定します。

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

環境変数PEM_MONITORED_SERVER_PASSWORDを設定して、pemagentによって登録および監視されているデータベースサーバーのパスワードを提供します。

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

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

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

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

pemworker --unregister-server

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

pemworker.exe UNREGISTER-SERVICE

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

オプション

説明

--pem-user

PEM管理ユーザーの名前を指定します。必須です。

--server-addr

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

--server-port

ホストのポート番号を指定します。必須です。

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

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

接続とバインドの検証

登録されると、新しいサーバーはPEMの Browser ツリーコントロールに追加され、 Global Overview に表示されます。

The Global Overview dashboard

グローバル概要ダッシュボード

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

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

5分経過しても Global Overview ダッシュボードに新しいサーバーが表示されない場合は、監視エージェントのログファイルを確認してエラーを確認する必要があります。ツリーコントロールでエージェントの名前を右クリックし、コンテキストメニューの Dashboards サブメニューから Probe Log Analysis オプションを選択します。