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アーキテクチャ
PEMサーバー¶
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エージェントは、マシンとオペレーティングシステム、およびそれらがバインドされている各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を参照してください。