Understanding Postgres Enterprise Manager components and architecture#

Postgres Enterprise ManagerPEMは、単一のグラフィカルインターフェイスを介して複数のPostgresサーバーを監視および管理します。 PEMは、インフラストラクチャの次の領域を監視できます。

  • ホスト - 1つ以上のサーバー物理または仮想とそのオペレーティングシステム。

  • データベースサーバー - ホストで実行されているPostgreSQL、 EDB Postgres Advanced Server、またはEDB Postgres Extended Server旧2ndQPostgresの1つ以上のインスタンス。

  • データベース - 1つ以上のデータベースと、テーブルやインデックスなどのスキーマオブジェクト。

注釈

Postgresという用語は、 PostgreSQL、 EDB Postgres Advanced Server、またはEDB Postgres Extended Serverを指します。

PEMは個々のソフトウェアコンポーネントで構成されています。

  • PEMサーバー - PEMサーバーは、データを監視するためのデータリポジトリであり、エージェントとクライアントが接続するサーバーです。 PEMサーバーは、PostgreSQLのインスタンス、監視データを保存するための関連データベース、およびWebサービスを提供するサーバーで構成されています。

  • PEMエージェント - PEMエージェントは、タスクを実行し、エージェントホストおよび監視対象のPostgresインスタンスからPEMサーバーに統計を報告します。単一のPEMエージェントは、エージェントがインストールされている同じホストまたは複数のリモートホストに存在するPostgresの複数のインストール済みインスタンスを監視できます。 PEMサーバーインストールの一部としてエージェントをインストールするか、スタンドアロンエージェントをインストールできます。

  • PEM Webクライアント - PEM Webインターフェイスを使用すると、Postgresサーバーを管理および監視し、PEM拡張機能を使用できます。 Webインターフェイスソフトウェアは、PEMサーバーと共にインストールされ、サポートされているWebブラウザーを使用してアクセスされます。

  • SQLプロファイラー - SQLプロファイラーは、PEMで分析するSQLプロファイラーツールの監視データとクエリプランを記録するPostgresサーバー拡張機能です。これはPEMのオプショナルコンポーネントですが、拡張機能は、使用するPostgresの各インスタンスで有効にする必要があります。 SQLプロファイラーは、PEMサーバーで管理されているものだけでなく、PostgresのEDBディストリビューションのサポートされているバージョンで使用できます。詳細およびサポートされているバージョンについては、 Installing the SQL Profiler extension を参照してください。

PEMアーキテクチャ#

次のアーキテクチャ図は、PEMサーバー、クライアント、管理対象および非管理対象のPostgresサーバー間の関係を示しています。

PEM Architecture

PEM Architecture#

PEMサーバー#

PEM Server

PEM Server#

PEMサーバはPostgresのインスタンス、クライアントにWebサービスを提供するWebサーバ、およびPEMエージェントで構成されています。 PEMは、サーバーサイドの暗号化プラグインを使用して認証証明書を生成します。

PostgresのインスタンスとWebサーバーは、同じホスト上または別のホスト上にあってもかまいません。

注釈

すべてのPEM機能は、選択したバックエンドデータベースサーバーPostgreSQLまたはEDB Postgres Advanced Serverで利用できます。

  • Postgresインスタンスデータベースサーバー - これはバックエンドデータベースサーバーです。 pem という名前のデータベースをホストし、PEMサーバーのリポジトリとして機能します。 pem データベースには、各監視対象ホスト、サーバー、およびデータベースから収集されたメトリックデータを保存するいくつかのスキーマが含まれています。

    • pem - このスキーマはPEMアプリケーションのコアです。アプリケーションに必要な構成ファンクション、テーブル、またはビューの定義が含まれています。

    • pemdata -このスキーマは、監視対象データの現在のスナップショットを保存します。

    • pemhistory -このスキーマは、履歴監視対象データを保存します。

  • WebサーバーNginx/HTTPD - PEM Webアプリケーションは、Webサーバーの背後にWSGIアプリケーションとして展開され、クライアントにWebサービスを提供します。これは次で構成されています。

    • Webコンテンツプレゼンテーション - プレゼンテーションレイヤーは、Webアプリケーションブラウザやログインページなどによって作成されます。

    • Rest API - REST APIにより、他のコンテンツと統合できます。アプリとサービス.

    • データベースサーバの管理/management - 管理対象および非管理対象サーバーのCREATE、ALTER、DROPなどのデータベースサーバの管理と管理アクティビティを実行できます。

    • ダッシュボード/チャートの生成 - 内部的に、 Webアプリケーションには、ダッシュボードとチャートを生成する機能が含まれています。

    • 管理ツール - Audit Manager、Capacity Manager、およびLog ManagerはWebアプリケーションで使用できます。

    • 他のツールは、管理対象または非管理対象サーバーで機能を提供します。

      • SQLプロファイラーUIの統合 - SQLプロファイラーは、セッションコンテンツの簡単に分析されたトレースを生成します。

      • クエリエディタ/データビュー - クエリエディタでは、データを照会、編集、および表示できます。e db_tran_20 Debugger - デバッガーは、クエリーのデバッグに役立ちます。

      • パフォーマンス診断 - パフォーマンス診断は、Postgresインスタンスのパフォーマンスの分析に役立ちます。

専用マシンを使用して、PEMバックエンドデータベースの運用インスタンスをホストすることをお勧めします。監視対象のデータベースサーバーの数、およびサーバーが処理しているワークロードによっては、ホストは高レベルのデータスループットの影響を受ける場合があります。

PEMエージェント#

PEM Agent

PEM Agent#

PEMエージェントは、マシンとオペレーティングシステムと、それらがバインドされている各Postgresインスタンスから監視データを収集します。各PEMエージェントは1つの物理マシンまたは仮想マシンを監視でき、他のシステムにインストールされている複数のデータベースサーバーをローカルに監視できます。これらのサーバーは、同じシステムまたはリモートにインストールできます。また、サーバーのシャットダウン、 SQLプロファイラーのトレース、カスタムジョブなど、ユーザーがスケジュールした他のタスクを実行する責任もあります。

PEMエージェントは、PEMサーバーのインストール時にデフォルトでPEMサーバーにインストールされます。通常、PEMホスト上のPEMエージェントと呼ばれます。別に、PEMを使用して監視するPostgresインスタンスをホスティングする他のサーバーにPEMエージェントをインストールすることもできます。

ローカルで監視するかリモートでモニタリングかにかかわらず、PEMエージェントは、SSL証明書ベースの認証を使用して、PostgreSQLのlibpqを使用してPEMサーバーに接続します。 WindowsのPEMエージェントインストーラーとLinuxのpemworker CLIは、各エージェントをPEMサーバーに登録し、必要な証明書を生成およびインストールします。

PEMエージェントとPEMサーバーの間は一方通行だけです。 PEMエージェントは常にPEMサーバーに接続します。

PEMエージェントは、監視対象の各データベースサーバーに接続できる必要があります。この接続は、TCP/IP接続またはオプションでUnixホスト上のUnixドメインソケットを介して確立され、オプションでSSLを使用できます。監視対象サーバーへの接続と認証を構成する必要があります。

構成が完了すると、各エージェントは、ホストと、監視対象の各データベースサーバーとデータベースに関する統計情報やその他の情報を収集します。各情報は メトリック と呼ばれ、 プローブ によって収集されます。ほとんどのプローブは、効率のために一度にマルチプルのメトリックを収集します。収集されるメトリックの例は次のとおりです。

  • ディスクI/O統計

  • ネットワーク統計

  • データベースサーバーバージョン文字列

  • データベースサーバー構成オプションGUC値

  • テーブルアクセス統計

  • テーブルとインデックスのサイズ

PEMプローブのリストについては、 プローブ を参照してください。

デフォルトでは、データベースサーバにバインドされたPEMエージェントはOS /データベースモニタリング統計を収集し、その特定のデータベースサーバのスケジュールされたタスク/ジョブを実行し、PEMサーバーのpem データベースにデータを保存します。

アラート処理、SNMP / SMTPスプーラー、およびNagiosスプーラーデータは、PEMサーバー上のpem データベースに保存され、デフォルトでPEMホスト上のPEMエージェントによって処理されます。ただし、PEMエージェントのSNMP / SMTPおよびNagiosパラメーターを調整することにより、他のPEMエージェントによる処理を有効にできます。

これらのパラメーターの詳細については、 サーバー構成パラメーター - リファレンス を参照してください。

PEM Webアプリケーション#

WebアプリケーションはPEMサーバーに接続し、管理対象または非管理対象サーバーと、それらに存在するデータベースとスキーマを直接管理できます。

Webアプリケーションでは、ダッシュボードやCapacity Managerなどの機能を介してサーバーに記録されたデータを利用するPEM機能を使用できます。

SQLプロファイラー拡張機能#

すべてのサーバーにSQLプロファイラー拡張機能をインストールする必要はありませんが、 SQLプロファイラーを使用する各サーバーに拡張機能をインストールして有効にする必要があります。監視されていない開発サーバーにSQLプロファイラー拡張機能をインストールして有効にすることもできます。アドホックに使用するためにSQLプロファイラー拡張機能を一時的にインストールすることもできます。

PEMで管理されていないサーバーでSQLプロファイラーを使用できます。ただし、スケジュールされたトレースを実行するには、サーバーに拡張機能をインストールして有効にし、インストールおよび構成済みのPEMエージェントで管理する必要があります。

詳細については、 Installing the SQL Profiler extension および Using SQL Profiler を参照してください。