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