PEM Architecture¶
PostgresEnterpriseManager(PEM)は、単一のGUIインターフェイスを介して複数のPostgresサーバーを監視および管理するために設計されたツールです。PEMは、インフラストラクチャの次の領域を監視できます。
注:Postgresという用語は、PostgreSQLまたはEDBPostgresAdvancedServerを指します。
Hosts -1つ以上のサーバー(物理または仮想)およびそれらのオペレーティングシステム。
Servers -ホストで実行されているPostgreSQLまたはEDBPostgresAdvancedServerの1つ以上のインスタンス。
Databases -1つ以上のデータベースとその中のスキーマオブジェクト(テーブル、インデックスなど)。
PEMは、多数の個々のソフトウェアコンポーネントで構成されています。個々のコンポーネントについて以下に説明します。
PEM Server -PEMサーバーは、データを監視するためのデータリポジトリとして、およびエージェントとクライアントの両方が接続するサーバーとして使用されます。PEMサーバーは、PostgreSQLのインスタンスと、監視データを保存するための関連データベース、およびWebサービスを提供するサーバーで構成されます。
PEM Agent -PEMエージェントは、タスクを実行し、エージェントホストおよび監視対象のPostgresインスタンスからPEMサーバーに統計を報告します。単一のPEMエージェントは、1つ以上のホストに存在するPostgresの複数のインストール済みインスタンスを監視できます。
PEM Web Client -PEMWebインターフェースにより、Postgresサーバーを管理および監視し、PEM拡張機能を利用できます。WebインターフェイスソフトウェアはPEMサーバーとともにインストールされ、サポートされているWebブラウザーを介してアクセスされます。
SQL Profiler -SQLProfilerは、PEMのSQLProfilerツールで分析される監視データとクエリプランを記録するPostgresサーバープラグインです。これはPEMのオプションコンポーネントですが、SQLプロファイラツールを使用するPostgresの各インスタンスにプラグインをインストールする必要があります。SQLプロファイラーは、PostgreSQLサーバーまたはAdvancedServer(PEMサーバーで管理されているものだけでなく)のEDBディストリビューションのサポートされているバージョンで使用できます。詳細およびサポートされているバージョンについては、「PEMSQLプロファイラー構成ガイド<https://www.enterprisedb.com/edb-docs/p/edb-postgres-enterprise-manager>`__」を参照してください。
PEM architecture
次のアーキテクチャ図は、PEMサーバー、クライアント、管理対象および非管理対象のPostgresサーバー間の関係を示しています。
PEMアーキテクチャ¶
PEMサーバー¶
PEMサーバー¶
PEMサーバーは、Postgresのインスタンス、クライアントにWebサービスを提供するApacheWebサーバーのインスタンス、およびPEMエージェントで構成されます。PEMは、サーバー側の暗号化プラグインを使用して認証証明書を生成します。
Postgres(データベースサーバー)のインスタンスとApacheWebサーバー(HTTPD)のインスタンスは、同じホスト上にあっても、別々のホスト上にあってもかまいません。
Postgres Instance (Database server)-これはバックエンドデータベースサーバーです。PEMサーバーのリポジトリとして機能する**Postgres Instance (Database server)**という名前のデータベースをホストします** Postgres Instance (Database server)** データベースには、監視対象の各ホスト、サーバー、データベースから収集されたメトリックデータを格納するいくつかのスキーマが含まれています。
pem -このスキーマはPEMアプリケーションのコアです。これには、アプリケーションに必要な構成関数、テーブル、またはビューの定義が含まれています。
pemdata -このスキーマには、監視対象データの現在のスナップショットが格納されます。
pemhistory -このスキーマには、監視対象の履歴データが格納されます。
Apache Web Server (HTTPD) -PEMWebアプリケーションは、HTTPDを使用してWSGIアプリケーションとしてデプロイされ、クライアントにWebサービスを提供します。次のもので構成されます。
Web content presentation -プレゼンテーションレイヤーは、Webアプリケーション(たとえば、ブラウザー、ログインページなど)によって作成されます。
Rest API -RESTAPIは、他のアプリやサービスとの統合を可能にします。
Database Server Administration/Management -CREATE、ALTER、DROPなどのデータベースサーバーの管理および管理アクティビティは、管理対象サーバーおよび非管理対象サーバーに対して実行できます。
Dashboard/Chart generation -内部的に、Webアプリケーションにはダッシュボードとチャートを生成する機能が含まれています。
Management Tools -AuditManager、CapacityManager、LogManager、PostgresExpert、PostgresLogAnalysisExpert、およびTuningWizardがWebアプリケーションで使用可能になりました。
その他のツールは、管理対象サーバーまたは非管理対象サーバーで機能を提供します。
SQL Profiler UI Integration -SQLProfilerは、簡単に分析されたセッションコンテンツのトレースを生成します。
Query Editor/Data View -クエリエディタを使用すると、データをクエリ、編集、および表示できます。
Debugger -デバッガーはクエリのデバッグに役立ちます。
Performance Diagnostics -パフォーマンス診断は、AdvancedServerのパフォーマンス分析に役立ちます。
PEMバックエンドデータベースの実稼働インスタンスをホストするには、専用のマシンを使用することをお勧めします。ホストは、監視されているデータベースサーバーの数とサーバーが処理しているワークロードに応じて、高レベルのデータスループットの影響を受ける場合があります。
PEMエージェント¶
PEMエージェント¶
PEMエージェントは、マシンとオペレーティングシステム、およびそれらがバインドされている各Postgresインスタンスからの監視データの収集を担当します。各PEMエージェントは、1台の物理マシンまたは仮想マシンを監視でき、複数のデータベースサーバーをローカルに(同じシステムにインストールされているか、リモートに)他のシステムにインストールされているかを監視できます。また、ユーザーがスケジュールする他のタスク(サーバーのシャットダウン、SQLプロファイラートレース、ユーザー定義ジョブなど)の実行も担当します。
PEMエージェントは、PEMサーバーのインストールとともにPEMサーバーにデフォルトでインストールされます。通常、PEMホスト上のPEMエージェントと呼ばれます。別途、PEMを使用して監視するPostgresインスタンスをホストする他のサーバーにPEMエージェントをインストールすることもできます。
ローカルで監視するかリモートで監視するかにかかわらず、PEMエージェントは、SSL証明書ベースの認証を使用して、PostgreSQLのlibpqを使用してPEMサーバーに接続します。WindowsのPEMエージェントインストーラーとLinuxのpemworkerCLIは、各エージェントをPEMサーバーに登録し、必要な証明書を生成およびインストールします。
PEMエージェントとPEMサーバーの間には一方向のトラフィックしかありません。PEMエージェントは常にPEMサーバーに接続します。
PEMエージェントは、監視する各データベースサーバーに接続できる必要があります。この接続はTCP/IP接続(またはオプションでUnixホストのUnixドメインソケット)を介して行われ、オプションでSSLを使用できます。ユーザーは、監視対象サーバーへの接続と認証を構成する必要があります。
構成が完了すると、各エージェントは、ホストと、監視対象の各データベースサーバーとデータベースに関する統計情報やその他の情報を収集します。各情報は**metric**と呼ばれ、metric によって収集されます。ほとんどのプローブは、効率のために一度に複数のメトリックを収集します。収集されるメトリックの例は次のとおりです。
ディスクI/O統計
ネットワーク統計
データベースサーバーのバージョン文字列
データベースサーバー構成オプション(GUC)値
テーブルアクセス統計
テーブルとインデックスのサイズ
PEMプローブのリストは`こちら<https://www.enterprisedb.com/edb-docs/d/edb-postgres-enterprise-manager/reference/online-documentation/latest/pem_probes.html#pem-probesにあります。>`_。
デフォルトでは、データベースサーバーにバインドされたPEMエージェントはOS/データベース監視統計を収集し、その特定のデータベースサーバーのスケジュールされたタスク/ジョブも実行し、PEMサーバーのpemデータベースにデータを保存します。
アラート処理、SNMP/SMTPスプーラー、およびNagiosスプーラーデータは、PEMサーバーの pem データベースに格納され、デフォルトでPEMホストのPEMエージェントによって処理されます。ただし、PEMエージェントのSNMP/SMTPおよびNagiosパラメーターを調整することにより、他のPEMエージェントによる処理を有効にすることができます。
これらのパラメーターの詳細については、「サーバー構成<https://www.enterprisedb.com/edb-docs/d/edb-postgres-enterprise-manager/reference/online-documentation/latest/pem_config_options.html#pem-」を参照してください。config-options>`_。
PEMWebクライアント¶
PEMクライアントは、サポートされているブラウザーで実行されるWebベースのアプリケーションです。クライアントのWebインターフェイスはPEMサーバーに接続し、管理対象サーバーまたは管理対象外サーバー、およびそれらに存在するデータベースとスキーマを直接管理できます。
クライアントでは、ダッシュボード、PostgresLogAnalysisExpert、CapacityManagerなどの機能を介してサーバーに記録されたデータを利用するPEM機能を使用できます。
SQLプロファイラープラグイン¶
すべてのサーバーにSQLプロファイラープラグインをインストールする必要はありませんが、SQLプロファイラーを使用する各サーバーにプラグインをインストールして構成する必要があります。監視されていない開発サーバーにSQLプロファイラーをインストールして構成することもできます。アドホック使用の場合も、SQLProfilerプラグインを一時的にインストールできます。
プラグインはEDBPostgresAdvancedServerディストリビューションとともにインストールされますが、PostgreSQLで使用するには別途インストールする必要があります。SQLProfilerインストーラーは、`EDBWebサイト<https://www.enterprisedb.com/downloads/edb-postgres-enterprise-manager>`_から入手できます。
SQLProfilerは、PEMで管理されていないサーバーで使用できますが、スケジュールされたトレースを実行するには、サーバーにプラグインをインストールし、インストールおよび構成済みのPEMエージェントで管理する必要があります。
SQLプロファイラーの使用の詳細については、「PEMSQLプロファイラー構成ガイド<https://www.enterprisedb.com/edb-docs/p/edb-postgres-enterprise-manager>`__」を参照してください。