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は、他のアプリとの統合を可能にします。 services.
データベースサーバの管理/management 管理対象および非管理対象サーバーのCREATE、ALTER、DROPなどのデータベースサーバの管理と管理アクティビティを実行できます。
ダッシュボード/チャートの生成 内部的に、Webアプリケーションには機能が含まれていますダッシュボードとチャートを生成します。
管理ツール 監査マネージャー、キャパシティマネージャー、およびログマネージャーは、Webアプリケーションで利用できます。
他のツールは、管理対象または非管理対象サーバーで機能を提供します。
SQLプロファイラーUI統合 SQLプロファイラーは、セッションコンテンツの簡単に分析されたトレースを生成します。
クエリエディタ/データビュー クエリエディタでは、データを照会、編集、および表示できます。
デバッグr デバッガーは、クエリーのデバッグに役立ちます。
パフォーマンス診断 パフォーマンス診断は、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 を参照してください。