PEM Architecture

Postgres Enterprise Manager(PEM)は、単一のGUIインタフェースを介してマルチプルのPostgresサーバーをモニタおよび管理するために設計されたツール。 PEMは、インフラストラクチャの次の領域をモニタリングできます。

Note * Postgresという用語は、 PostgreSQL 、 EDB Postgres Advanced Server、またはEDB Postgres Extendedのいずれかを指します。

  • ホスト-1つまたは複数のサーバー(物理的または仮想)およびそれらのオペレーティングシステム。

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

  • データベース-1つまたは複数のデータベースと、その中のスキーマオブジェクト(テーブル、インデックスなど)。

PEMは、多数の個々のソフトウェアコンポーネントで構成されています。個々のコンポーネントについて以下に説明します。

  • ** PEMサーバー**-PEMサーバーは、データをモニタリングするためのデータリポジトリとして、およびエージェントとクライアントの両方が接続するサーバーとして使用されます。 PEMサーバーは、 PostgreSQLのインスタンスと、モニタリングデータをストレージするための関連データベース、およびWebサービスを提供するサーバーで構成されます。

  • ** PEMエージェント**-PEMエージェントは、タスクを実行し、エージェントホストおよび監視対象のPostgresインスタンスからPEMサーバーに統計を報告します。単一のPEMエージェントは、1つ以上のホストに存在するPostgresのマルチプルのインストール済みインスタンスをモニタできます。

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

  • ** SQL Profiler **- SQL Profilerは、PEMのSQL Profilerツールによって分析されるモニタリングデータとクエリープランをレコードするPostgresサーバープラグインです。これはPEMのオプショナルコンポーネントですが、 SQLプロファイラーツールを使用するPostgresの各インスタンスにプラグインをインストールする必要があります。 SQLプロファイラーは、 PostgreSQLサーバーまたはAdvanced Server (PEMサーバーで管理されているものだけでなく)のEDBディストリビューションのサポートされているバージョンで使用できます。詳細およびサポートされているバージョンについては、PEM SQL Profiler Configuration Guideを参照してください。

** PEMアーキテクチャ**

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

PEM Architecture

PEM Architecture

PEMアーキテクチャ

PEMサーバー

PEM Server

PEM Server

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

Postgresのインスタンス(データベースサーバ)とApacheウェブサーバ(HTTPD)のインスタンスは、同じホスト上または別のホスト上にあってもよいです。

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

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

  • ** pemdata **-このスキーマには、監視対象データの現在のsnapshotが格納されます。

  • ** pemhistory **-このスキーマには、監視対象の履歴データが格納されます。

  • ** Apache Web Server(HTTPD)**-PEM Webアプリケーションは、HTTPDを使用してWSGIアプリケーションとしてデプロイされ、クライアントにWebサービスを提供します。次のもので構成されます。

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

  • ** REST API**-REST APIを使用すると、他のアプリやサービスと統合できます。

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

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

  • 管理ツール-Audit Manager、Capacity Manager、Log Manager、 Postgres Expert、 Postgres Log Analysis Expert、Tuning WizardがWebアプリケーションで利用可能になりました。

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

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

  • クエリエディタ/データビュー-クエリエディタでは、データのクエリー、編集、ビューます。

  • デバッガ-デバッガはクエリのデバッグに役立ちます。

  • パフォーマンス診断-パフォーマンス診断は、 Advanced Serverのパフォーマンス分析にヘルプます。

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 Serverの間の唯一の一方通行があることにノートしてください。 PEMエージェントは常にPEMサーバーに接続します。

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

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

  • ディスクI / O統計

  • ネットワーク統計

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

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

  • テーブルアクセス統計

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

PEMプローブのリストはhereにあります。

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

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

これらのパラメーターの詳細については、Server Configurationを参照してください。

PEM Webクライアント

PEMクライアントは、サポートされているブラウザーで実行されるWebベースのアプリケーションです。クライアントのWebインタフェースはPEMサーバーに接続し、管理対象サーバーまたは管理対象外サーバー、およびそれらに存在するデータベースとスキーマを直接管理できます。

クライアントでは、ダッシュボード、 Postgres Log Analysis Expert、Capacity Managerなどの機能を介してサーバーに記録されたデータを利用するPEM機能を使用できます。

SQLプロファイラープラグイン

あなたは、すべてのサーバー上のSQLプロファイラプラグインをインストールする必要はありませんが、あなたは、SQLプロファイラを使用したい各サーバー上のプラグインをインストールして設定する必要があります。監視されていない開発サーバーにSQLプロファイラーをインストールして構成することもできます。アドホック使用の場合も、 SQL Profilerプラグインを一時的にインストールできます。

プラグインはEDB Postgres Advanced Serverディストリビューションとともにインストールされますが、 PostgreSQLで使用するには別途インストールする必要があります。 SQL Profilerインストーラは、EDB websiteから入手できます。

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

SQLプロファイラの使用の詳細については、PEM SQL Profiler Guideを参照してください。