(57)【要約】【課題】  仮想マシン上への監視エージェントの組み込み、暗号化通信の復号鍵のインポートなど特別な制限事項がなく、本番稼動中のアプリケーションであっても監視項目を動的に変更でき、なおかつアプリケーションへの影響がない、仮想化環境における監視のアーキテクチャを実現することを目的とする。【解決手段】  監視ログの出力の定義を動的に変更するトラップ機構と、データセンタ管理者に対して複数の仮想化端末に関する監視ログの統一的なビューを提供するための監視マネージャと、監視ログの出力内容、頻度、場所などのポリシを動的に適用する機能を提供するポリシマネージャと、監視ログの出力のポリシの編集機能を提供するポリシ編集機構とを備えることを特徴とする。【選択図】      図１
2011113243.tif 000002
【特許請求の範囲】
【請求項１】
監視ログの出力の定義を動的に変更するトラップ機構と、データセンタ管理者に対して複数の仮想化端末に関する監視ログの統一的なビューを提供するための監視マネージャと、監視ログの出力内容、頻度、場所などのポリシを動的に適用する機能を提供するポリシマネージャと、監視ログの出力のポリシの編集機能を提供するポリシ編集機構とを備えることを特徴とする仮想化環境において稼動中のアプリケーション監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化環境における稼動中のアプリケーションに対し、動的に監視機構を組み込むことができると共に、ＳＳＬ通信や暗号化ファイルシステムなど暗号化コミュニケーションに対する復号鍵のインポートを不要にすることができるアプリケーション監視システムに関するものである。
【背景技術】
【０００２】
データセンタでは仮想化技術を採用し、１つのホスト上に同時に複数のサーバを稼動させることが一般的になってきた。個々のサーバではＷＥＢサーバ、データベースサーバ、アプリケーションサーバなど、様々なアプリケーションが稼動する。
従来、上記のようなホスティングサービスではＷｅｂアプリケーションを監視する方法に関して、下記特許文献１、非特許文献１に記載の技術が知られている。
【０００３】
下記特許文献１に記載のものは、ホストオペレーティングシステム内で実行される仮想マシン上で実行される監視モジュールが障害を識別し、ホストオペレーティングシステム上で実行されるホストエージェントが障害を修復することを特徴とする。
また、下記非特許文献１に記載のVMware社のAppSpeedの製品では、複数のサーバのネットワークトラフィックを仮想化アプライアンスに転送する方法によって、各サーバの応答時間などの統計量を採取する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２５１０００
【非特許文献】
【０００５】
【非特許文献１】VMware vCenter AppSpeed Evaluator’s Guidehttp:/www.vmware.com/files/pdf/vcenter_appSpeed_1.Evaluators_Guide.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の技術では、各仮想マシン上で実行される監視エージェントが監視ログの収集や障害の識別を実行する。リソースを複数の仮想マシンが共有する仮想化環境においては、仮想マシンモニタが各仮想マシンに割り当てるリソースをスケジューリングするため、仮想マシン上の監視エージェントからは正確なリソース使用量、応答時間等の統計情報の正確な値を取得することはできない。また、アプリケーションの監視項目を動的に変更するためには、仮想マシンの内部で実行されている監視エージェントやアプリケーション自体の構成変更が必要になる。従って、システム全体への影響が懸念されるため、通常は本番稼動中のアプリケーション環境は変更できない。
【０００７】
一方、上記非特許文献１に記載の技術では、アプリケーションの稼動環境に影響することなく、外部から複数のサーバのネットワークトラフィックを採取することができる。しかしながら、通常のＷｅｂアプリケーションの実装では、ＳＳＬなど通信経路を暗号化することが一般的である。この場合、複数のサーバのＳＳＬ鍵を監視ソフトウエアにインポートすることが必要になる。これでは鍵の変更管理が煩雑になるだけでなく、ホスティングサービスなど、各サーバの管理主体とデータセンタの管理主体が異なる場合に、ユーザから鍵を提供してもらえないケースではそもそも監視ができないということになる。
【０００８】
本発明は、上記の問題に鑑み、（１）仮想マシン上への監視エージェントの組み込み、暗号化通信の復号鍵のインポートなど特別な制限事項がなく、（２）本番稼動中のアプリケーションであっても監視項目を動的に変更でき、なおかつアプリケーションへの影響がない、仮想化環境における監視のアーキテクチャを実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係るアプリケーション監視システムは、監視ログの出力の定義を動的に変更するトラップ機構と、データセンタ管理者に対して複数の仮想化端末に関する監視ログの統一的なビューを提供するための監視マネージャと、監視ログの出力内容、頻度、場所などのポリシを動的に適用する機能を提供するポリシマネージャと、監視ログの出力のポリシの編集機能を提供するポリシ編集機構とから構成されていることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、仮想マシンモニタ上にログ出力機能を実現するため、仮想マシン上への監視エージェントを組み込む必要がなく、さらに、本番稼動中のアプリケーションであっても監視項目を動的に変更でき、なおかつアプリケーションへの影響がなくなる。また、ＣＰＵの命令ステップ単位にログ出力を定義したり、デバイスへの入出力など、アプリケーションプログラムのあらゆる位置にログを追加することができるため、暗号化通信の手前でログを採取することが可能になるなど、特別な制限事項がなくなる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態を示すシステム構成図である。
【図２】従来の監視方法の一例を示す説明図である。
【図３】従来の監視方法の別の例を示す説明図である。
【図４】本発明における監視ログの出力方法を示す説明図である。
【図５】本発明におけるポリシ編集機構の画面例を示す図である。
【図６】本発明における監視マネージャの処理を示すフローチャートである。
【図７】本発明におけるポリシ編集機構の処理を示すフローチャートである。
【図８】本発明におけるポリシマネージャの処理を示すフローチャートである。
【図９】本発明におけるトラップ機構の処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図１は本発明の実施の形態を示すシステム構成図である。
図１において、データセンタ１内のネットワーク１１には、仮想化端末２、管理端末３が接続されている。仮想化端末２には仮想マシンモニタ２２が稼動するため、同時に複数の仮想マシン（Ｗｅｂサーバ、ＤＢサーバ）を稼動させることができる。図１ではＷｅｂサーバ２０、ＤＢサーバ２１が稼動する例を示している。
Ｗｅｂサーバ２０上のＷｅｂアプリケーション２００は、ＤＢサーバ２１と連携し、インターネット側にあるクライアント端末（Ａ）５やクライアント端末（Ｂ）６など、任意の端末からのリクエストに応答を返すことができる。
【００１３】
仮想マシンモニタ２２上には、本発明の特徴である、アプリケーションに対して動的に監視機能を追加することを可能にするためのトラップ機構２２０、監視ＤＢ２２１が組み込まれている。
【００１４】
一方、管理端末３上には、データセンタ管理者に対して複数の仮想化端末に関する監視ログの統一的なビューを提供するための監視マネージャ３０、管理ログの出力内容、頻度、場所などのポリシを動的に適用する機能を提供するポリシマネージャ３１、ポリシのリポジトリであるポリシデータベース（ＤＢ）３３、ポリシを記述してポリシＤＢ３３に保存するためのポリシ編集機構３２が格納されている。
【００１５】
図２は、図１のように構成されたシステムにおける従来の監視方法の一例を説明する図である。
データセンタ１内のネットワーク１１には、Ｗｅｂサーバ２０、ＤＢサーバ２１、管理端末３が接続されている。Ｗｅｂサーバ２０上にはＷｅｂアプリケーション２００、管理端末上には監視マネージャ３０が稼動している。本発明におけるシステム構成（図１）との違いは、Ｗｅｂサーバ、ＤＢサーバなど、各サーバに専用の監視エージェント（２０１、２１０）、監視ＤＢ（２０２、２１１）を組み込んでいる点である。こうすることで、オペレーティングシステムより上位のアプリケーションのレイヤで監視ログを採取することが可能になる。あとは、監視エージェント２０１，２１０が収集した監視ログは監視ＤＢ２０２，２１１に格納され、監視マネージャ３０が定期的に各サーバ２０，２１の監視ＤＢ２０２，２１１から監視ログを回収するだけである。
【００１６】
ただし、本構成は図２のように監視エージェント２０１，２１１がホスト上で直接稼動する場合には対応できるが、リソースを複数の仮想マシンが共有する仮想化環境においては、仮想マシンモニタが各仮想マシンに割り当てるリソースをスケジューリングするため、仮想マシン上の監視エージェントからは正確なリソース使用量、応答時間等の統計情報の正確な値を取得することはできない。
また、予め決められた内容の監視ログを採取するだけであれば本構成で対応可能であるが、例えば、本番稼動中のＷｅｂアプリケーションに対して一時的にデバッグ用の監視ログの項目を追加したい場合には、システムを一旦停止してＷｅｂアプリケーションのコードを変更するか、メモリ上の実行コードを動的に書き換える必要がある。従来方式において監視項目を動的に変更することは現実的ではない。
【００１７】
図３は、従来の監視方式の別の例を示す説明図であり、仮想化環境におけるエージェントレス監視として一般的に知られている方法である。
データセンタ１内の仮想化端末２では仮想マシンモニタ２２が稼動しており、この端末２上でＷｅｂサーバ２０、ＤＢサーバ２１と監視アプライアンス２３が稼動している。
監視アプライアンス２３の特徴として、仮想マシンモニタ２２が提供する仮想的スイッチ２２０にプロミスキャスモードを設定したポートグループに接続していることがある。こうすることで、仮想スイッチ２２０を通過する全てのネットワークトラフィックは仮想アプライアンス２３に転送されるため、監視アプライアンス２３は各サーバの応答時間等のログをモニタリングすることができる。監視アプライアンス２３には監視マネージャ２３０が稼動している。最近のＷｅｂアプリケーションではＳＳＬなどの暗号化通信を利用することが一般的である。このため、単にネットワークトラフィックをモニタリングするだけでは、通信データは暗号化されているため、監視ログを抽出できない。監視マネージャ２３０の役割は、例えばＳＳＬ通信を利用する場合、予め各サーバのＳＳＬ鍵、証明書ペアーをＳＳＬ鍵管理ＤＢ２３２に登録しておき、ネットワークトラフィックを受信するたびに、通信データを復号し、監視ログを監視ＤＢ２３１に格納することができる点である。
【００１８】
ただし、ＳＳＬ鍵管理ＤＢ２３２には常に最新の鍵を格納しておかなければならない。例えばユーザが勝手にサーバ上の証明書を変更した場合にはＳＳＬ鍵管理ＤＢ２３２に登録されている鍵も更新する必要があるが、ホスティングサービスなど、各サーバの管理主体とデータセンタの管理主体が異なる場合、鍵を同期させておくことは難しい。
【００１９】
図４は本発明における監視ログの出力方法を示す説明図である。
本発明の監視ログの出力方法の特徴として、仮想マシンモニタ２２にトラップ機構２２０、監視ＤＢ２２１が稼動させることである。仮想マシンモニタ２２は仮想化端末２のＣＰＵを仮想化しているため、ＣＰＵの命令ステップ単位にログ出力を定義したり、デバイスへの入出力など、プログラム上のあらゆる位置にログを追加することができるようになる。
【００２０】
上記の仕組を用いると、例えば（１）管理端末３上でポリシ編集機構３２を用いて編集した監視ログの出力のポリシをポリシＤＢ３３に格納しておけば、（２）新たに監視ログを追加したい場合に、ポリシマネージャ３１からポリシを読み込み、（３）トラップ機構２２０に対して新たなログのポリシを追加できる。（４）トラップ機構２２０はＣＰＵの命令ステップ毎にログポリシをチェックし、（５）ポリシに適合する場合は監視ＤＢ２２１に監視ログを格納するし、それ以外の場合は監視ＤＢ２２１には格納しないで実行を継続する。（６）監視マネージャ３０は必要に応じて監視ＤＢ２２１から監視ログを収集できるため、データセンタ管理者は任意のタイミングで監視ログをチェックすることができる。
【００２１】
図５は本発明におけるポリシ編集機構３２の画面例を示すものである。
ポリシ編集機構３２はポリシ保存ボタン３２０、監視プローブペイン３２１、監視ログ出力定義領域３２２で構成されているとする。画面左側の監視プローブペインは例えば、Ｗｅｂアプリケーション、ミドルウェア、オペレーティングシステムなどの各種ソースコードであったり、デバッグ用のシンボル、入出力チャンネル定義であったりする。ユーザが任意のプローブを選択すると、画面右側の監視ログ出力定義領域にソースコードが表示される。図面太字で示す監視ログの定義を記述した後でポリシ保存ボタンを押下するとポリシＤＢにポリシが格納される。
図５は１例として、データベース操作の処理の前後に経過時間を取得する処理を追加し、データベース操作にかかる応答時間をアプリケーションのレイヤで取得するサンプルである。アプリケーションのレイヤでログを採取できるため、ＳＳＬ通信を復号などを意識する必要がなくなる。
【００２２】
以下、本発明を実施する場合の処理の流れをフローチャートを用いて具体的に説明する。
図６は本発明における監視マネージャ３０の処理を示すフローチャートである。
ユーザが監視マネージャ３０を起動した場合、監視マネージャ３０は定期的に仮想マシンモニタ２２上の監視ＤＢ２２１にアクセスし、監視ログを収集する（ステップ６０１）。
【００２３】
図７は本発明におけるポリシ編集機構３２の処理を示すフローチャートである。
ポリシ編集機構３２は例えば図５に示したようなグラフィカルユーザインタフェースを持っている。ユーザがポリシを編集してポリシ保存ボタンが押下されるのを待ち（ステップ７０１）、ポリシ保存ボタンが押下されると（ステップ７０２）、ポリシＤＢ３３にユーザ定義の監視ログのポリシを格納する（ステップ７０３）。
【００２４】
図８は本発明におけるポリシマネージャ３１の処理を示すフローチャートである。
ユーザが必要に応じて監視ログのポリシを追加したい場合、ポリシＤＢ３３から監視のポリシを読み込み（ステップ８０１）、ユーザがポリシの適用を実行するのを待つ（ステップ８０２）。ユーザがポリシを適用すると（ステップ８０３）、監視ログの出力を開始するため、仮想マシンモニタ２２上のトラップ機構２２０にポリシを適用させる（ステップ８０４）。
【００２５】
図９は本発明におけるトラップ機構２２０の処理を示すフローチャートである。
トラップ機構２２０はポリシマネージャ３１からのポリシ適用要求を待ち（ステップ９０１）、ポリシマネージャ３１からのポリシ適用要求を受信すると（ステップ９０２）、仮想マシンモニタ２２の実行ステータスをトラップする処理を開始する（ステップ９０３）。仮想マシンモニタ２２の実行ステータスとは、例えば、実行内容、実行頻度、実行場所のことである。この実行ステータスがポリシに適合するかチェックし（ステップ９０４）、監視ログを出力する必要があるか否かを判断する（ステップ９０５）。ステップ９０５でログ出力を要する場合は監視ＤＢ２２１に監視ログを出力した後で（ステップ９０６）、ステップ９０３から繰り返す。ステップ９０５でログ出力が不要な場合にはそのままステップ９０３から繰り返す。
【符号の説明】
【００２６】
１…データセンタ、１１…ネットワーク、２…仮想化端末、２０…Ｗｅｂサーバ、２１…ＤＢサーバ、２２…仮想マシンモニタ、２２０…トラップ機構、２２１…監視ＤＢ、３…管理端末、３０…監視マネージャ、３１…ポリシマネージャ、３２…ポリシ編集機構、３３…ポリシＤＢ、５…クライアント端末（Ａ）、６…クライアント端末（Ｂ）。
【図１】
2011113243.tif 000003
【図２】
2011113243.tif 000004
【図３】
2011113243.tif 000005
【図４】
2011113243.tif 000006
【図５】
2011113243.tif 000007
【図６】
2011113243.tif 000008
【図７】
2011113243.tif 000009
【図８】
2011113243.tif 000010
【図９】
2011113243.tif 000011