このガイドでは、Sun JavaTM Enterprise System (Java ES) の Monitoring Framework 2.0 および Monitoring Console 1.0 コンポーネントについて説明します。これらのコンポーネントは連携して、リリース 5 で導入された新しい監視機能を実装します。
このガイドで説明する手順では、インストールした各コンポーネントに対して Monitoring Framework を有効化する方法と、すべての監視対象データを Monitoring Console で表示する方法を示します。このガイドでは、個別のコンポーネントがフレームワークの外部で実装するログファイル、エラーメッセージ、およびその他の監視機構については説明しません。Monitoring Framework と Monitoring Console のどちらも、監視対象コンポーネントの管理機能は提供しません。コンポーネントの管理については、各製品の個別のマニュアルを参照してください。
この章では、監視の基本的な概念および Monitoring Framework のアーキテクチャーについて説明します。
この章の内容は次のとおりです。
Sun Java System Monitoring Framework は、コンポーネントをインストゥルメントしたり、コンポーネントの属性を監視対象として公開したりするためのインフラストラクチャーを提供します。業界標準の CIM (Common Information Model) 仕様に基づいて、Common Monitoring Model (CMM) と呼ばれる監視対象オブジェクトの階層が定義されます。各製品コンポーネントは、そのコンポーネントの監視可能な属性を表すオブジェクトを公開します。ノードエージェントは、1 つのホスト上の複数コンポーネントのビューを集約します。Monitoring Framework は、運用統計を収集したり、ユーザー定義のしきい値に基づくアラームを定義したりするための機構も提供します。
Sun Java System Monitoring Console は、Java ES コンポーネントを監視するためのグラフィカルインタフェースです。Monitoring Console には、Java ES 配備内のすべてのノードエージェントに接続するマスターエージェントが含まれます。Monitoring Console は Sun Java System Web コンソールに依存する Web ベースのアプリケーションであり、HTTP 経由であらゆる場所からのアクセスが可能です。Monitoring Console のメイン画面には、生成されたアラームなど、すべての有効化されたコンポーネントのステータスの要約が表示されます。この画面から、各コンポーネント内の監視対象オブジェクトの階層にアクセスしたり、すべての監視対象属性の詳細なステータスやリアルタイムの値を確認したりできます。Monitoring Console のインタフェースでは、任意のアラームの詳細を表示して確認したり、任意の属性に基づいて新しい監視ルールを作成したりできます。
監視とは、実行時データを収集して公開し、サービス基準の品質を計測することにより、システム管理者がパフォーマンスを評価したり、アラームの通知を受けたりできるようにするプロセス全般のことです。実行時の運用中、管理者はパフォーマンス統計の表示、自動監視のためのルールの作成、アラームの確認などの作業を、すべて Monitoring Console との対話操作により実行することができます。ただし、Monitoring Framework のアーキテクチャーや、Monitoring Framework が Monitoring Console に接続するしくみを理解しておくと、設定、トラブルシューティング、および高度な監視を実行する際に役立ちます。
Java ES での監視は、次の概念に基づいて行われます。
Common Monitoring Model (CMM) は、比較可能な属性に関して、すべての Java ES コンポーネントが同じオブジェクトや値を公開することを保証します。
CMM インタフェースによって定義される Java オブジェクトは、製品コンポーネントの標準化されたインストゥルメンテーションを提供します。
ノードエージェントは、システムにインストールされたすべてのコンポーネントのすべての監視対象オブジェクトを公開し、それらのオブジェクトの統計、ルール、およびアラームを管理します。
独立したホスト上のマスターエージェントは、すべてのノードエージェントが管理するすべての監視対象オブジェクトを集約し、Monitoring Console にデータを提供します。
次の節では、監視アーキテクチャーのこれらの各概念についてさらに詳しく説明します。
標準化された監視機構の基本は、監視されるオブジェクトを定義し、すべての監視対象コンポーネントを横断してこれらのオブジェクトを採用することです。監視アーキテクチャーではこの目的のために、Common Monitoring Model (CMM) を定義しています。CMM は、Distributed Management Task Force (DMTF) が管理する Common Information Model (CIM) の拡張です。CMM は、コンピュータやアプリケーションなどの監視対象オブジェクトの仕様を定める情報モデルであると同時に、運用ステータス値などの統一された値の仕様を定めるデータモデルでもあります。CMM では情報モデルの一部として、オブジェクトの属性も定義します。これには、サービスによって処理される要求の数や、あるサービスは特定のコンピュータ上でホストされる、といったオブジェクト間の関係などがあります。
CMM により、配下の実装が異なる場合も含めて、アプリケーション、サービス、アクセスポイントなどの概念がすべての製品コンポーネント間で共通化されます。たとえば、Web Server は HTTP 要求を処理するサービスを公開し、Directory Server は LDAP 要求を処理するサービスを公開します。CMM で定義される標準オブジェクトは、これら 2 つの機能に共通する要素 (処理される要求数を計測する能力、特定の期間中に要求に応答する平均時間など) を捕捉します。
また、値の意味がシステム全体を通して一貫するように、特定のデータ値が標準化されます。たとえば、監視対象の製品コンポーネントに関係なく、DEGRADED という運用ステータスは常に、「サービスはまだ利用できるがパフォーマンスが著しく低下している」ことを意味します。
CMM 仕様は、インストゥルメンテーションに使用される Java のインタフェースおよびクラスに組み込まれています。これらのインタフェースやクラスについては付録 A 「CMM オブジェクトリファレンス」で説明しています。
Monitoring Framework で、インストゥルメンテーションとは、CMM 定義を実装する Java のインタフェースおよびクラスの集合のことです。Java ES の新しい監視機能のために、製品コンポーネントのコードがインストゥルメントされています。その目的は、CMM オブジェクトをインスタンス化し、監視対象オブジェクトの属性を通して実行時の値を公開できるようにすることです。各コンポーネントによって実装される CMM オブジェクトは、監視可能な要素を決定します。またこの理由のため、一部のコンポーネントはほかのコンポーネントよりも公開する属性が少なくなります。付録 B 「各コンポーネントが公開する監視対象オブジェクト」では、各製品コンポーネントによって監視対象として公開されるオブジェクトおよび属性の一覧を示しています。
監視に関する用語で、ノードとは、一意な完全指定ドメイン名または IP アドレスによって識別される、単一の論理ホストのことです。システム全体、または仮想システムとして構成されたSolaris ゾーンのどちらかがノードとして機能できます。ノードエージェントは、配備先ホスト上のすべてのインストゥルメント済みコンポーネントと通信し、それらのコンポーネントの監視対象オブジェクトをすべて公開します。またノードエージェントは、エージェントに含まれる監視対象オブジェクトに関して、パフォーマンス統計を収集したり、ルールで定義されたしきい値を監視したり、アラームを生成したりするためのすべてのロジックを管理します。
次の図は、1 つのホスト上のノードエージェントの内容を表しています。このホストには、3 つの Java ES 製品コンポーネントのインスタンスが存在します。またこの図では、製品コンポーネントによって提供される値を公開するために、ノードエージェント内でインストゥルメンテーションがインスタンス化されるしくみも示しています。
ノードエージェントは、それ自体が Java 仮想マシンである共通エージェントコンテナにロードされるモジュールとして実装されます。ノードエージェントの実装は、監視およびリモート管理のための標準 Java 拡張機能である Java Management Extensions (JMX) に基づいています。CMM を認識するすべての JMX 対応監視アプリケーションが、ノードエージェント内の監視対象オブジェクトにアクセスできます。ノードエージェントは JMX の機能を利用して、特定の監視対象オブジェクトを Simple Network Monitoring Protocol (SNMP) 経由で公開することもできます。
マスターエージェントは、Monitoring Console インストールの一部として独立したマシン上に配備されます。マスターエージェントには、すべてのノードエージェント内の監視対象オブジェクトを集約できるように、すべてのノードの名前またはアドレスが設定されます。マスターエージェントも JMX に基づいています。マスターエージェントは JMX を利用してノードエージェントと通信し、そのローカル共通エージェントコンテナにロードされます。
次の図は、2 つのノードに接続されたマスターエージェントを表します。Monitoring Console はマスターエージェントに接続して、各ノード上の 3 つのコンポーネントを監視します。マスターエージェントは SNMP 属性を集約しないため、監視のために SNMP を使用する場合、各ノードに個別に接続する必要があります。マスターエージェントは Monitoring Console のみとの組み合わせで使用することを前提に設計されており、ほかの監視アプリケーションからのアクセスはできません。
Java ES の監視機能を評価または配備する場合、次の順序でインストールを実行するのが最も簡単な方法です。
『Sun Java Enterprise System 5 インストールガイド (UNIX 版)』の推奨事項および手順説明に従って、すべてのコンポーネントを配備環境にインストールし、設定します。
第 2 章「Monitoring Framework の有効化と設定」の説明に従って、すべての監視対象コンポーネントに対して Monitoring Framework を有効化および設定します。
第 3 章「Monitoring Console のインストールと使用」の説明に従って、独立したホスト上に Monitoring Console をインストールし、マスターエージェントを起動してから Web サーバーを起動します。これで、すべての監視対象コンポーネントが Monitoring Console から認識可能になり、アクティブに監視されるようになるはずです。
このリリースでのノードエージェントおよびマスターエージェントの非互換性が原因で、Monitoring Console は、ほかの Java ES コンポーネントが存在しないホストにインストールする必要があります。詳細は、「Monitoring Console のトラブルシューティング」を参照してください。
監視を有効化したあとで配備済みコンポーネントを変更するときは常に、「Monitoring Framework のトラブルシューティング」の説明に従って、マスターエージェントのコンテナと Monitoring Console の Web サーバーを再起動する必要があります。