"コンピュータリソースの状況を監視して状況に応じた制御を行うコンピュータリソース制御システムであって、前記コンピュータリソース制御システムは、複数の監視エージェントから収集された計測値と予め定義された制御ルールとを比較して、前記コンピュータリソースに対するアクションの要否を判断する管理サーバと、前記管理サーバによって、前記コンピュータリソースに対するアクションを要すると判断された場合に、前記コンピュータリソースに対するアクションを実行するための指示を出力する実行サーバと、を含む複数のサーバを含んで構成され、前記コンピュータリソース制御システム内のサーバの少なくとも一つに前記監視エージェントを含む、ことを特徴とするコンピュータリソース制御システム。前記アクションは、前記コンピュータリソース制御システムに含まれるサーバの数を増減させる処理を含む、ことを特徴とする請求項1に記載のコンピュータリソース制御システム。前記コンピュータリソース制御システムはさらに、前記監視エージェントと前記管理サーバと前記実行サーバとの間でデータを非同期的に交換するための分散メッセージキューサーバを備え、前記分散メッセージキューサーバは、データの交換状況を監視する監視エージェントを含む、ことを特徴とする請求項1又は2に記載のコンピュータリソース制御システム。前記分散メッセージキューサーバと、前記管理サーバと、前記実行サーバは、それぞれ複数の仮想サーバによって構成され、前記アクションは、前記分散メッセージキューサーバを構成するサーバの数を増減させる処理、前記管理サーバを構成するサーバの数を増減させる処理、又は、前記実行サーバを構成するサーバの数を増減させる処理のうち、少なくとも一つを含む、ことを特徴とする、請求項3に記載のコンピュータリソース制御システム。前記分散メッセージキューサーバは、前記複数の監視エージェントから収集された計測値が順次入力され、前記管理サーバによって順次読み出される計測値管理キューと、前記管理サーバからアクションの指示が順次入力され、前記実行サーバによって順次読み出される実行キューと、前記実行サーバから前記コンピュータリソースに対するアクションを実行するための処理データが順次入力され、対応する監視エージェントによって順次読み出される管理キューと、を備え、前記分散メッセージキューサーバに含まれる前記監視エージェントは、前記計測値管理キュー、前記実行キュー、及び前記管理キューの待ち行列を監視する、ことを特徴とする請求項4に記載のコンピュータリソース制御システム。前記コンピュータリソース制御システム内の各サーバは、各サーバの稼働状況をそれぞれ監視する監視エージェントを含み、前記管理サーバは、前記各サーバの稼働状況に基づいて、前記コンピュータリソースに対するアクションの要否を判断する、ことを特徴とする請求項5に記載のコンピュータリソース制御システム。前記コンピュータリソース制御システムはさらに、前記計測値を格納するための分散データベースサーバと、前記複数の監視エージェントから収集された計測値を前記分散メッセージキューサーバから読み出して、前記分散データベースに登録する収集サーバと、前記分散データベースに格納された計測値を読み出して編集し、ユーザ端末装置へ送信するダッシュボードサーバと、を備えることを特徴とする請求項1乃至6のいずれかに記載のコンピュータリソース制御システム。前記分散データベースサーバと、前記収集サーバと、前記ダッシュボードサーバは、それぞれ複数の仮想サーバによって構成され、前記アクションは、前記分散データベースサーバを構成するサーバの数を増減させる処理、前記収集サーバを構成するサーバの数を増減させる処理、又は、前記ダッシュボードサーバを構成するサーバの数を増減させる処理のうち、少なくとも一つを含む、ことを特徴とする請求項7に記載のコンピュータリソース制御システム。コンピュータリソースの状況を監視して状況に応じた制御を行う制御システムにおいて、前記制御システムの備える処理装置が処理を行う方法であって、前記処理装置が、複数の監視エージェントから収集された計測値と予め定義された制御ルールとを比較して、前記コンピュータリソースに対するアクションの要否を判断するステップと、前記コンピュータリソースに対するアクションを要すると判断された場合に、前記コンピュータリソースに対するアクションを実行するための指示を出力するステップと、を備え、前記制御システムは、複数のサーバを含んで構成され、前記複数のサーバの少なくとも一つに前記監視エージェントを含む、ことを特徴とするコンピュータリソース制御方法。前記アクションは、前記制御システムに含まれるサーバの数を増減させる処理を含む、ことを特徴とするコンピュータリソース制御方法。前記コンピュータリソース制御方法はさらに、前記処理装置が、前記監視エージェントと前記制御システムとの間でデータを非同期的に交換するステップを備え、前記監視エージェントのうちの一つは、前記データの交換状況を監視する、ことを特徴とする請求項9又は10に記載のコンピュータリソース制御方法。前記交換するステップと、前記判断するステップと、前記出力するステップは、それぞれ複数のサーバによって分散処理され、前記アクションは、前記交換するステップを分散処理するサーバの数を増減させる処理、前記判断するステップを分散処理するサーバの数を増減させる処理、又は、前記出力するステップを分散処理するサーバの数を増減させる処理のうち、少なくとも一つを含む、ことを特徴とする請求項11に記載のコンピュータリソース制御方法。前記データの非同期的な交換は、メッセージキューにより実装され、前記データの交換状況を監視する監視エージェントは、前記メッセージキューの待ち行列を監視する、ことを特徴とする請求項12に記載のコンピュータリソース制御方法。前記複数の監視エージェントは、前記制御システムを構成する複数のサーバの稼働状況を監視し、前記判断するステップは、前記稼働状況を利用して、前記コンピュータリソースに対するアクションの要否を判断する、ことを特徴とする請求項13に記載のコンピュータリソース制御方法。前記コンピュータリソース制御方法はさらに、前記処理装置が、前記複数の監視エージェントから収集された計測値を分散データベースサーバに登録するステップと、前記分散データベースに格納された計測値を読み出して編集し、ユーザ端末装置へ送信するステップと、を備えることを特徴とする請求項9乃至14のいずれかに記載のコンピュータリソース制御方法。前記登録するステップと前記送信するステップは、それぞれ複数のサーバによって分散処理される、前記アクションはさらに、前記分散データベースサーバを構成するサーバの数を増減させる処理、前記登録するステップを分散処理するサーバの数を増減させる処理、又は、前記登録するステップを分散処理するサーバの数を増減させる処理のうち、少なくとも一つを含む、ことを特徴とする請求項15に記載のコンピュータリソース制御方法。請求項9乃至16のいずれかに記載のコンピュータリソース制御方法をコンピュータに実行させるためのプログラム。請求項17に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。ところで、クラウド環境では、データセンター等が仮想化分散化されているため、仮想化されたサーバ等のコンピュータリソースを動的に変化させることによって、トランザクションやデータ量の変動に対して柔軟に対応可能なシステムを構築できるのではないかと期待されている。しかしながら、仮想化分散化された環境下では、システムのどこで何が起きているのかを正確に把握することは難しい。例えば、CPUが高負荷になる原因が、ミドルウェアのガベージコレクションによる場合もあれば、ユーザ数の増加によりトランザクションが増加している場合もあるし、外部との通信が大量に発生している場合もある。近年、ますます多くのトランザクションとデータに対応することが求められている中、様々な仮想化分散化環境に備えて、状況をリアルタイムに把握し、事態を予測、そして遅滞なく制御していく仕組みが必要とされている。このような仕組みは、クラウド環境の信頼性と性能を大きく高めていくことにつながる。しかし同時に、このような仕組みに障害が発生し、制御が滞ると、クラウドの機能は大幅に低下しかねない。そのため、コンピュータリソースを監視し、制御する仕組み自体にも、スケーラビリティと耐障害性能が要求される。本発明は、かかる実情に鑑み、監視対象システムのコンピュータリソースの状況をリアルタイムに監視し、制御することのできるソリューションを提供しようとするものである。また、このようなソリューション自体に、スケーラビリティと耐障害性能を担保しようとするものである。本発明の一態様によるコンピュータリソース制御システムは、コンピュータリソースの状況を監視して状況に応じた制御を行う。コンピュータリソース制御システムは、複数の監視エージェントから収集された計測値と予め定義された制御ルールとを比較して、コンピュータリソースに対するアクションの要否を判断する管理サーバと、管理サーバによって、コンピュータリソースに対するアクションを要すると判断された場合に、コンピュータリソースに対するアクションを実行するための指示を出力する実行サーバと、を含む複数のサーバを含んで構成され、コンピュータリソース制御システム内のサーバの少なくとも一つに監視エージェントを含む。これによれば、監視対象のシステムに含まれるコンピュータリソースの状況をリアルタイムに把握し、制御することができるシステムを提供できる。また、同時に、そのようなシステムに含まれるコンピュータリソースの状況をリアルタイムに監視し、制御することができる。好適には、アクションは、コンピュータリソース制御システムに含まれるサーバの数を増減させる処理を含む。これによれば、投入するコンピュータリソースの量を動的に制御できる。また、コンピュータリソース制御システムはさらに、監視エージェントと管理サーバと実行サーバとの間でデータを非同期的に交換するための分散メッセージキューサーバを備え、分散メッセージキューサーバは、データの交換状況を監視する監視エージェントを含むことが好ましい。これによれば、メッセージキューのデータ量に応じて、コンピュータリソースの投入量を適宜制御できるようになる。さらに、分散メッセージキューサーバと、管理サーバと、実行サーバは、それぞれ複数の仮想サーバによって構成され、アクションは、分散メッセージキューサーバを構成するサーバの数を増減させる処理、管理サーバを構成するサーバの数を増減させる処理、又は、実行サーバを構成するサーバの数を増減させる処理のうち、少なくとも一つを含むことが好ましい。これによれば、単一障害点のない分散構造でシステムが構成されるため、どこか単一の機能に障害が発生しても、全体としてはダウンしないシステムを構築できる。また、好適には、分散メッセージキューサーバは、複数の監視エージェントから収集された計測値が順次入力され、管理サーバによって順次読み出される計測値管理キューと、管理サーバからアクションの指示が順次入力され、実行サーバによって順次読み出される実行キューと、実行サーバからコンピュータリソースに対するアクションを実行するための処理データが順次入力され、対応する監視エージェントによって順次読み出される管理キューと、を備え、分散メッセージキューサーバに含まれる監視エージェントは、計測値管理キュー、実行キュー、及び管理キューの待ち行列を監視する。これによれば、キュー毎の待ち行列を監視することで、よりきめ細かな制御が可能になる。さらに好適には、コンピュータリソース制御システム内の各サーバは、各サーバの稼働状況をそれぞれ監視する監視エージェントを含み、管理サーバは、各サーバの稼働状況に基づいて、コンピュータリソースに対するアクションの要否を判断する。これによれば、各サーバの稼働状況に応じて、インスタンスの起動や停止を行うことができる。コンピュータリソース制御システムはさらに、計測値を格納するための分散KVSサーバと、複数の監視エージェントから収集された計測値を分散メッセージキューサーバから読み出して、分散データベースに登録する収集サーバと、分散データベースに格納された計測値を読み出して編集し、ユーザ端末装置へ送信するダッシュボードサーバと、を備えることが好ましい。これによれば、利用者に監視状況をリアルタイムで表示するダッシュボードを提供できる。好適には、分散KVSサーバと、収集サーバと、ダッシュボードサーバは、それぞれ複数の仮想サーバによって構成され、アクションは、分散KVSサーバを構成するサーバの数を増減させる処理、収集サーバを構成するサーバの数を増減させる処理、又は、ダッシュボードサーバを構成するサーバの数を増減させる処理のうち、少なくとも一つを含む。これによれば、単一障害点のない分散構造で、フォールトトレラントなシステムを提供できる。また、本発明の一態様によるコンピュータリソース制御方法は、コンピュータリソースの状況を監視して状況に応じた制御を行う制御システムにおいて、制御システムの備える処理装置が処理を行う方法である。処理装置は、複数の監視エージェントから収集された計測値と予め定義された制御ルールとを比較して、コンピュータリソースに対するアクションの要否を判断するステップと、コンピュータリソースに対するアクションを要すると判断された場合に、コンピュータリソースに対するアクションを実行するための指示を出力するステップと、を備える。制御システムは、複数のサーバを含んで構成され、複数のサーバの少なくとも一つに監視エージェントを含む。なお、本発明において、システムという用語は、物理的コンピュータで構成されたシステムのみでなく、コンピュータ上で仮想的に構築されたシステムをも含む。また、コンピュータリソースという用語は、コンピュータに関するあらゆるレベルのハードウェア及びソフトウェアを含むものであり、物理的に構成されているか或いは仮想的に構成されているかを問わない。本発明によれば、監視対象のシステムに含まれるコンピュータリソースの状況をリアルタイムに監視し、制御することのできるソリューションを提供することができるという優れた効果を奏し得る。また、このようなソリューション自体に、スケーラビリティと耐障害性能を担保することができるというという優れた効果を奏し得る。以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。図1は、本発明によるコンピュータリソース制御システムの前提となるクラウドコンピューティング環境クラウド環境の概略構成を示す図である。同図に示すように、クラウドコンピューティング環境においては、ユーザ端末装置12がネットワークNを介してクラウド10に接続される。クラウド10は、ソフトウェアやハードウェア、データ保管領域などのコンピューティングリソースの利用を、ネットワークNを通じてサービスとして利用者に提供するシステムの総称であり、一般的には、大規模なデータセンターや、その中で運用されている複数のサーバ装置などを含む。ASPサービスやユーティリティコンピューティング、グリッドコンピューティング、SaaS/PaaSなどを包含した、より包括的な概念であるともいえる。ユーザ端末装置12の側から見れば、クラウド10は、ネットワークNの向こう側にあり、ユーザ端末装置12に何らかのサービスを提供するコンピュータリソースの総称であるともいえる。本発明は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドを含む、あらゆるクラウド環境に適用可能である。好適には、クラウド10内のネットワーク上に分散して存在する物理的なディスクや物理的なサーバは、仮想化して論理的に管理される。さらに、仮想化して管理されるリソースのうち、稼動していないものはリソースプールに登録しておき、コンピュータリソース制御システムは、変動する要求に応じて、動的にリソースプールからリソースを取り出す。そして、タスクを割り当てて、スケーラブルなサービス提供を保障する。ユーザ端末装置12は、利用者がクラウド10を利用するための端末装置であり、ネットワークNへの接続環境とユーザ端末装置12上で動くブラウザを含む。このようなユーザ端末装置12としては、パーソナルコンピュータPC、携帯情報端末装置PDA、タブレット型端末装置、携帯電話機、スマートフォンなどを含む。ネットワークNは、クラウド10とユーザ端末装置12との間でデータ等を送受信するための通信回線である。例えば、インターネット、LAN、専用線、パケット通信網、電話回線、企業内ネットワーク、その他の通信回線、それらの組み合わせ等のいずれであってもよく、有線であるか無線であるかを問わない。図2は、本発明によるコンピュータリソース制御システムの前提となる仮想化技術及び分散化技術の概要を示す図である。同図に示すように、物理的なコンピュータ装置群20は、分散化技術により、コンピュータ装置群20で機能や処理を分散させながら、あたかも一台のコンピュータ22のように動作する。例えば、コンピュータ装置群20は、ネットワーク221を通じて、仮想的な1台のハードウェア222の上でオペレーティングシステムOS223が動いているように動作する。また、仮想化技術により、一台のコンピュータ22のように動作するコンピュータ装置群20を、仮想的に複数のコンピュータサーバを含む24として利用することができる。つまり、ハードウェアのソフトウェア化である。この仮想化技術によって、仮想化されたサーバ24をコピーすれば、同じサーバのレプリケーション複製を作成できるため、サーバイメージをコピーすることによって、必要なサーバ数を確保することができるようになる。また、サーバ数を減らす場合は、サーバイメージを削除すればよい。仮想化の一例としては、図2に示すように、KVMKernel-basedVirtualMachineと呼ばれる仮想化ソフト224上でOS225が動く。そのOS225の上では、JavaVirtualMachineJVM。なお、Javaは登録商標。のような別の仮想化環境226が動き、その上でミドルウェア227があり、アプリケーション228が動く。なお、コンピュータ装置群20を構成する個々の物理的なコンピュータは、コンピュータの動作や処理を制御するためのCPUなどの処理装置、データの格納や処理の作業領域として機能するメモリや記憶装置、入出力インターフェース、通信インターフェース、及びこれらを結ぶバスを含むことが好ましい。また、コンピュータ装置群20は、単一のコンピュータより構成されるものであっても、ネットワーク上に分散した複数のコンピュータより構成されるものであってもよい。各コンピュータは、処理装置がメモリまたは記憶装置などに記憶された所定のプログラムを実行することにより、各種機能実現手段として各コンピュータを機能させる。図3は、本発明によるコンピュータリソース制御システム1の概略構成の一例を示すブロック図である。本実施例によるコンピュータリソース制御システム1は、分散メッセージネットワーク32とデータを処理する処理部34とを含む。同図に示すように、本実施例によるコンピュータリソース制御システム1は、監視対象の監視ポイントに組み込まれた監視エージェント30から、分散メッセージネットワーク32を介して監視データを収集341する。そして、収集された監視データ342に基づいて、監視対象をモニタ343し、監視対象に必要なコンピュータリソースの需要を予測344し、監視対象のコンピュータリソースの数等を動的に制御345する。なお、監視エージェント30、分散メッセージネットワーク32、及び処理部34の全てが、クラウド10の内部に構成される。なお、本発明によるコンピュータリソース制御システム1を構築するクラウド10は、サーバリソース等を管理するAPIが実装されていれば、パブリッククラウド、プライベートクラウドを問わず、どのような環境でも構築可能であり、複数の環境を組み合わせて構築することも可能である。AmazonWebServicesは構築可能なクラウド環境の一例である。監視エージェント30は、小さなソフトウェアモジュールであり、監視対象の監視ポイントに組み込まれ、この監視エージェント30が監視情報を収集する。監視対象としては、例えば、システムリソースの監視、アプリケーションの監視、ログファイルの監視、プロセスの監視、ジョブの監視などがある。また、独自のセンサーネットワークや工場のラインの監視にも応用可能である。監視エージェント30は、収集した監視情報の計測値を分散メッセージネットワーク32に送信する。また、監視エージェント30は、処理部34側から動的に中身を入れ替えることができるようになっている。分散メッセージネットワーク32は、監視ポイントに埋め込まれた監視エージェント30と、処理部34とのデータ交換を実現するためのものである。監視対象が大量になった場合、処理部34側のスループットによってデータの取りこぼしが発生する場合がある。こうした事態を避けるために、データの受け渡しは分散メッセージネットワーク構造を採用している。これにより、大量の監視対象を、効率よく監視制御することが可能になる。処理部34は、監視エージェント30からのデータ計測値を収集し、分散データベースに保管する。また、監視エージェント30からの情報に基づき、クラウド環境内にある監視対象のコンピュータリソースに対する制御を行う機能を担っている。一例として、処理部34の動作は、利用者が作成するDSLDomainSpecificLanguageによって定義される。なお、後述の実施例のように、処理部34の各要素は、全て分散化されることが好ましい。これにより、単一障害点のない構造になるとともに、性能劣化を仮想化されたコンピュータリソースの台数増加により補える構造になる。図4は、本発明によるコンピュータリソース制御システム1の一実施例を示すブロック図である。同図に示すとおり、本実施例においてコンピュータリソース制御システム1は、分散メッセージキューサーバ41と、収集サーバ42と、管理サーバ43と、実行サーバ44と、分散KVSサーバ45と、ダッシュボードサーバ46とを含む。これらの各サーバは、同じサーバイメージを有する複数の仮想サーバによって分散化されていることが好ましい。コンピュータリソース制御システム1は、クラウド10の環境内の監視対象システムに含まれる監視対象アプリケーション40から監視データを受け取る。また、コンピュータリソース制御システム1は、ユーザ端末装置12に対して、ブラウザで閲覧可能なダッシュボード48を提供する。なお、図3の分散メッセージネットワーク32は、分散メッセージキューサーバ41に対応する。図3の処理部34は、収集サーバ42、管理サーバ43、実行サーバ44、分散KVSサーバ45、及びダッシュボードサーバ46に対応する。また、コンピュータリソース制御システム1と監視対象アプリケーション40は、クラウド10上で稼働する。本実施例においては、複数の監視対象アプリケーション40を監視対象にすることができる。また、各監視対象アプリケーション40は、複数のレプリケーションにより分散化されている。つまり、各監視対象アプリケーション40は、複数の仮想サーバによって構成され、仮想サーバの台数は動的に変更できるようになっている。例えば、1,000台の監視対象サーバがあるとして、実サーバ毎に10台の仮想サーバを立ち上げると、サーバは10,000台ということになる。監視ポイントがそれぞれ20ポイントあるとすると、監視ポイントは全部で200,000箇所ということになる。また、監視対象は、単にアプリケーションに関するサービスを提供する狭義の監視対象アプリケーションのみに限定されるものではない。データベースサーバ、その他、クラウド10の環境内に存在するあらゆるサーバ及びコンピュータリソースを監視対象にすることができることは言うまでもない。監視対象の監視対象アプリケーション40の監視ポイントには、監視データを計測するための監視エージェント30が組み込まれる。具体的には、例えば、利用者が予め、監視対象の監視対象アプリケーション40のインスタンスに監視エージェントプログラムをインストールする。監視エージェント30は、クラスタと呼ばれる所定の論理的な単位で監視対象を管理する。本実施例では、監視エージェント30は、システムエージェント401と、ログファイルエージェント402を含む。システムエージェント401は、実行中のプロセスを管理するモジュールである。実行中のプロセスとは、OSやミドルウェアの他、アプリケーションなども対象となる。プロセス内部で起きた変化や挙動を捉え、計測値を定期的に又は所定のトリガ等に応じて非定期的にコンピュータリソース制御システム1に通知するほか、プロセス内部の変数を変えたり、プログラム内部のメソッドを呼び出すなどの操作を行う。ログファイルエージェント402は、監視対象内に書き込まれたファイルを監視するモジュールである。アプリケーションの状況監視のためにログファイルを活用しているアプリケーションは多く、そうしたログを監視対象にすることで、アプリケーション開発者の意図にあった監視が可能になる。ログファイルエージェント402が収集した情報は、システムエージェント401と同様に、計測値を定期的に又は所定のトリガ等に応じて非定期的にコンピュータリソース制御システム1に通知される。監視対象としては、OSレベルの状況から、JVMや監視対象アプリケーションなどのミドルウェア、アプリケーションまでを一括で監視する。例えば、特定サービスの利用状況の監視、ミドルウェアの混雑度の監視、CPU負荷の監視、どのサーバにジョブが割り当てられているか、各ジョブの進捗がどのようになっているか、ブラックリスト入りしたサーバはどこか、といった内容を監視できる。また、監視ポイントを動的に変更することによって、監視すべき対象を監視対象の動作状況に応じて変更できる。これにより、キャンペーン中にキャンペーン商品の在庫量を監視対象に加えたり、キャンペーン商品が完売したらサービス内容を切り替えるといった処理が監視対象を停止させることなく、実施可能である。分散メッセージキューサーバ41は、監視対象アプリケーション40に組み込まれた監視エージェント30とコンピュータリソース制御システム1との間のデータ交換、及び、コンピュータリソース制御システム1内のサービス間のデータ交換を、非同期的に行うためのメッセージキューを提供する。つまり、監視エージェント30と収集サーバ42、管理サーバ43、実行サーバ44、及びダッシュボードサーバ46との間のデータ交換、並びに、収集サーバ42、管理サーバ43、実行サーバ44、及びダッシュボードサーバ46の間のデータ交換は全て、分散メッセージキューサーバ41内のメッセージキューを介して非同期的に行われる。ここで、データ交換とは、データの交換のみならず、タスク等の交換も含む。本実施例では、分散メッセージキューサーバ41内のメッセージキューとして、計測値収集キュー411と、計測値管理キュー412と、管理キュー413と、実行キュー414とを含む。各キューは、データを先入れ先出しFIFO:FirstInFirstOutのリスト構造で保持する。また、各キューは、冗長構成が可能であり、キュー間通信を行うことで、メッセージキューの紛失を防ぐことができる。計測値収集キュー411は、監視対象の全ての監視エージェント30から、その計測値が順次入力され、収集サーバ42によって順次読み出される。計測値管理キュー412は、監視対象の全ての監視エージェント30から、その計測値が順次入力され、管理サーバ43によって順次読み出される。管理キュー413は、管理サーバ43、実行サーバ44、及びダッシュボードサーバ46から、監視対象のサーバを制御するためのデータタスク等を含むが順次入力され、制御対象の監視エージェント30によって順次読み出される。実行キュー414は、管理サーバ43から、インスタンス起動制御や警告送信などのアクションの指示が順次入力され、実行サーバ44によって順次読み出される。収集サーバ42は、監視エージェント30から送信された計測値を分散データベースに登録する処理を実行する。収集サーバ42は、計測値収集キュー411に入力された監視エージェント30の計測値を順次取り出して、分散KVSサーバ45に渡す。管理サーバ43は、監視エージェント30から送信された計測値をもとに、予め設定された制御ルールを参照して、インスタンス起動制御や警告送信などのアクションの実行要否を判断する処理を行う。管理サーバ43は、計測値管理キュー412に入力された監視エージェント30の計測値を順次取り出して、予め設定された制御ルールと比較する。ここで、制御ルールは、複数の制御ルールを含み得る。個々の制御ルールは、管理対象のサーバ群等の定義、監視エージェントが収集する情報の閾値の設定、及び、閾値を超えた場合の制御内容の定義を含むことが好ましい。また、個々の制御ルールは、監視エージェントの設定内容の変更などを含んでもよい。制御ルールは、コンピュータリソース制御システム1が予めデフォルトで定義されたものを利用してもよいし、利用者が予め定義してもよい。好適には、利用者が制御ルールを定義するためのルールエディタが提供される。このルールエディタは、監視対象の単位であるクラスタの制御ルールを設定可能であり、計画的な変動に対する制御、計測値に応じた受動的な変動に対する制御、監視エージェントの設定変更、警告設定など、状況に応じた種々の制御ルールを設定できるようになっている。制御ルールは、例えばRubyをベースとしたドメイン特化言語DSLを用いて記述できるため、直感的で分かりやすいルールで記述できる。また、グラフィカルエディタにより制御ルールを設定できるようにしてもよく、この場合は、DSLに馴染みのない利用者でも直感的にルールを記述できる。図5は、制御ルールの一例である。同図の例は、インスタンス内部で、ペンディングスレッドが規定以上の状態を5秒以上続けていたら、同じサーバイメージからインスタンスを3台増やしなさい。という条件と制御内容を規定している。他にも、例えば計画的な変動に対する制御ルールの一例として、何月何日の何時何分になったら、ここのサーバを何台にしなさい。そして、時間がきたら、サーバを元の台数に戻しなさい。といった内容を規定できる。また、計測値に基づく受動的な変動に対する制御ルールとしては、例えば、処理するデータ量に基づいて、割り当てるサーバ台数を増減させるように規定できる。また、特定のサービスはスループットを低下させたくないような場合、アプリケーションごとに制御ルールのスケール基準を変えて設定する。商品が完売したらサービス内容を切り替えたい場合、アプリケーションを監視し、システム構成を変更するようなルールを設定する。なお、好適には、管理サーバ43は、リソースの増減がパフォーマンスにどのような影響があるのかを自律的に学習し、制御の最適解を求め、制御ルールを書き換える。図4に戻り、管理サーバ43は、監視エージェント30から収集された計測値と制御ルールとを比較して、監視対象のシステム内のサーバ等のコンピュータリソースに対するアクションの要否を判断する。すなわち、計測値が制御ルールに規定された条件を満たさない場合には、アクションは不要であると判断する。一方、計測値が制御ルールに規定された条件を満たす場合に、アクションが必要であると判断し、その制御ルールに規定された制御内容のアクションを、その制御ルールに定義された管理対象のサーバ等に対して実行する旨の指示を出力する。そして、この指示は、実行キュー414に入力される。実行サーバ44は、インスタンスの起動や停止といった具体的なアクションを実行する処理を行う。実行サーバ44は実行キュー414から、アクションの指示を順次読み出し、指示に応じて、制御ルールで規定された所定のサーバ監視対象アプリケーション40を含むに対して、各種の制御を実行する。制御の内容としては、システムレベルからクラウドレベルまでの幅広い制御レベルに対応している。システムレベルの制御の一例としては、アプリケーションの特定機能のメソッド呼び出しや、内部変数の変更などがある。クラウドレベルでの制御の一例としては、インスタンスの起動複製停止、割り当てリソースの変更、起動インスタンスの設定変更などがある。つまり、仮想サーバの起動複製消去や仮想サーバの設定変更などを行うことができる。分散KVSサーバ45は、監視エージェント30によって収集された計測値を含む種々のデータを格納するデータベースである。このデータベースは、単独のデータベースサーバを前提とした仕組みではなく、複数のサーバが協調しあって性能を上げていく分散データベース構造である。データ量が膨大になっても、参加するサーバ台数を増やすことでキャパシティの対応ができ、複数サーバにレプリケーションを持たせることで、単一障害点のないデータベースになっている。また、データベース性能劣化が予想される場合、サーバ台数の追加で性能維持ができる。なお、分散KVSサーバ45とは、保存したいデータValueに、任意のラベルKeyを付けて、のペアを保存し、保存したデータを取得する際は、ラベルKeyを指定して、対応するデータValueを取得するものであり、KVSとはKey-ValueStoreの略である。複数サーバにデータを分散保存するスケールアウト型であり、サーバを追加することで、大量のデータを扱うことができる。KVSサーバの一例として、mongoDBがある。なお、分散KVSサーバ45は、KVS方式のデータベースサーバを利用することが好ましいが、KVSに限定されるものではなく、他の方式による分散データベースサーバを用いてもよい。ダッシュボードサーバ46は、ユーザに対して表示操作を提供するダッシュボード48をユーザ端末装置12に提供するサーバである。ここで、ダッシュボード48とは、所定の監視項目などの情報をクライアントで表示等するための画面であり、見た目や機能が重要である。ダッシュボード48の画面には、システムの監視状況やジョブの実行状況などのモニタリングの他、DSLによるバッチジョブのフローやリアルタイムシステムの監視制御などが含まれ、利用者とコンピュータリソース制御システム1とのインターフェースとして機能する。ダッシュボードサーバ46は、ユーザ端末装置12からウェブサービス経由のアクセスを受け付け、分散KVSサーバ45に格納された計測値等を読み出してダッシュボード48を編集し、ユーザ端末装置12に送信する。運用管理者は、ダッシュボード48でシステムの監視、構成管理、制御設定を行う。また、監視情報が予め設定された閾値を超えた際に、ダッシュボード48上に警告を表示すると共にメール通知を行うことで、効率的に監視できる。本発明ではダッシュボードサーバ46のみを交換することで、ユーザの要求に合わせた表示や操作を提供することが可能である。これにより、コンピュータリソース制御システムを他のシステムの一部として販売したりOEM販売したりすることが容易に実現できるようになっている。図6は、ダッシュボード48の一例である。表示する画面の種類としては、メトリクスビュー、システム構成ビュー、ジョブネット監視ビュー、ログ監視ビュー、お知らせ一覧などがある。メトリクスビューは、監視エージェント30から送信されている計測値メトリックをリアルタイムで監視するための画面である。計測項目に応じたグラフを表示し、リアルタイム更新を行う。また、過去のデータを表示可能である。システム構成ビューは、監視対象のシステム構成を俯瞰的に監視する画面である。各サーバの稼働状況の表示、サーバ内で稼働するプロセスの稼働状況の表示、サーバ間でのプロセス依存関係の表示等を行う。サーバリソースが閾値を超えた場合や、アプリケーションでエラーが発生した場合には、システム構成ビューで検知できるように表示される。ジョブネット監視ビューは、コンピュータリソース制御システム1が管理しているバッチジョブネットの実行状況を監視する画面である。実行状況に応じてアイコンの色を変化させ、視覚的に実行状況を示す。ログ監視ビューは、ログファイルの出力内容を監視し、監視にヒットした箇所を閲覧する画面である。アプリケーションエラーの検知やバッチジョブの進行状況把握のために使用される。ダッシュボード48で何をどのように表示させるかは、利用者が自由に設定可能である。これにより、例えば、経営者は経営者の視点からのコンソール機能を、システム管理者はシステム運用上の監視制御コンソールなど、利用者のニーズに合わせたユーザインターフェースを実現できる。図7は、本発明によるコンピュータリソース制御システム1の他の実施例を示すブロック図である。同図に示す実施例の構成は、コンピュータリソース制御システム1内のサーバに監視エージェント30が組み込まれている他は、図4とほぼ同じである。コンピュータリソース制御システム1内の各サーバは、同じサーバイメージを有する複数の仮想サーバによって分散化されている。つまり、コンピュータリソース制御システム1は、通常、複数の分散メッセージキューサーバ41と、複数の収集サーバ42と、複数の管理サーバ43と、複数の実行サーバ44と、複数の分散KVSサーバ45と、複数のダッシュボードサーバ46とを含む。ただし、障害発生時などの場合に、同じサーバイメージを有するサーバの台数が一時的に1つになることはあり得る。コンピュータリソース制御システム1内のサーバに組み込まれた監視エージェント30は、監視対象アプリケーション40に組み込まれた監視エージェント30と同様に、監視データとして収集した計測値を分散メッセージキューサーバ41の計測値収集キュー411と計測値管理キュー412に入力する。以降の処理は、図4と同じである。すなわち、管理サーバ43は、監視対象アプリケーション40に組み込まれた監視エージェント30から収集された計測値と同様に、コンピュータリソース制御システム1内のサーバに組み込まれた監視エージェント30から収集された計測値に対して、予め定義された複数の制御ルールを参照して、コンピュータリソースに対するアクションの要否を判断する。そして、クラスタ毎のデータ量や処理量の変動に応じて、実行サーバ44がコンピュータリソース制御システム1内の各サーバの投入台数を増減させるなどの処理を実行することによって、最適なシステム構成が保持される。例えば、分散メッセージキューサーバ41に組み込まれた監視エージェント30は、サーバ内の各キュー、すなわち、計測値収集キュー411、計測値管理キュー412、管理キュー413、及び実行キュー414に投入されたデータ量や待ち行列の量を監視する。さらに、分散メッセージキューサーバ41と、収集サーバ42と、管理サーバ43と、実行サーバ44と、分散KVSサーバ45と、ダッシュボードサーバ46のそれぞれに組み込まれた別の監視エージェント30は、それぞれ各サーバの稼働状況を監視する。一方、制御ルールには、計測値収集キュー411の状態応じて収集サーバ42のサーバ台数を増減させるためのルールが定義される。例えば、計測値収集キュー411の待ち行列の量が所定の閾値を超えた場合には、インスタンス起動制御、すなわち、収集サーバ42のレプリケーション複製を所定個数作成して、仮想サーバの数を増加させる、という条件と制御内容が定義される。待ち行列の量が所定の閾値以下になった場合には、インスタンス停止制御、すなわち、収集サーバ42のレプリケーションを所定個数破棄削除して、仮想サーバの数を減らす、という条件と制御内容が定義される。他のキューに対して、同じような制御ルールが定義され、例えば、計測値管理キュー412の状態に応じて管理サーバ43のサーバ台数を増減させるためのルールが定義される。すなわち、計測値管理キュー412の待ち行列の量が所定の閾値を超えた場合には、管理サーバ43のレプリケーションを所定個数作成して、仮想サーバの数を増加させる一方、待ち行列の量が所定の閾値以下になった場合には、管理サーバ43のレプリケーションを所定個数破棄して、仮想サーバの数を減らす、という条件と制御内容が定義される。また、実行キュー414の状態に応じて実行サーバ44のサーバ台数を増減させるためのルールが定義される。すなわち、実行キュー414の待ち行列の量が所定の閾値を超えた場合には、実行サーバ44のレプリケーションを所定個数作成して、仮想サーバの数を増加させる一方、待ち行列の量が所定の閾値以下になった場合には、実行サーバ44のレプリケーションを所定個数破棄して、仮想サーバの数を減らす、という条件と制御内容が定義される。さらに、管理キュー413の状態に応じて任意のサーバのサーバ台数を増減させるためのルールが定義される。すなわち、管理キュー413の待ち行列のうち、ある特定のサーバに対するアクションの待ち行列の量が所定の閾値を超えた場合には、当該特定のサーバのレプリケーションを所定個数作成して、仮想サーバの数を増加させる一方、待ち行列の量が所定の閾値以下になった場合には、その特定のサーバのレプリケーションを所定個数破棄して、仮想サーバの数を減らす、という条件と制御内容が定義される。また、分散メッセージキューサーバ41内のキュー全体の状況に応じて、分散メッセージキューサーバ41のサーバ台数を増減させるためのルールが定義されてもよい。また、他の制御ルールとして、各サーバの稼働状況に応じて、サーバのレプリケーションや破棄を動的に制御するためのルールが定義されることが好ましい。すなわち、あるサーバの稼働状況が所定の閾値を超えている場合には、そのサーバのレプリケーションを作成し、稼働状況が所定の閾値以下の場合には、そのサーバを破棄する。また、サーバが異常な挙動を示している場合には、利用者に警告を通知する。異常が直らない場合には、そのサーバを破棄して、新たにサーバのレプリケーションを作成することによって、サーバを立ち上げ直してもよい。このような構成を取ることにより、コンピュータリソース制御システム1は、クラウド環境内の監視対象システムを監視する仕組みと同じ仕組みによって、コンピュータリソース制御システム1自身に含まれるコンピュータリソースを動的に制御することが可能になる。こうして、コンピュータリソース制御システム1は、監視対象アプリケーション40等の監視対象の状況をリアルタイムに把握し、遅滞なく制御するばかりでなく、コンピュータリソース制御システム1自身の状況をリアルタイムに把握し、遅滞なく制御することができるようになる。本実施例は単一障害点のない分散構造で構成されるため、どこか単一の機能に障害が発生しても、全体としてはダウンしない構造になっている。また、計画的ないし突発的な負荷の増加にも動的に対応できる構造になっており、利用者や監視対象の増加に対して、コンピュータリソース制御システム1を構成するサーバのサーバ台数を増加させるなど、コンピュータリソースを制御することによって、サービスレベルを維持するように構成されている。なお、コンピュータリソース制御システム1は、APIApplicationProgramInterfaceとして提供されることが好ましい。次に、本実施例におけるコンピュータリソース制御システム1の動作について説明する。図8は、コンピュータリソース制御システム1における処理のフローチャートである。まず、クラウド環境内の監視ポイントに埋め込まれた監視エージェント30が計測値を収集して分散メッセージキューサーバ41に送信するS81。なお、監視エージェント30は、定期的にまたは非定期的に計測値を分散メッセージキューサーバ41に送り続ける。分散メッセージキューサーバ41は、受信した計測値を、計測値収集キュー411と計測値管理キュー412に入れる。収集サーバ42は、計測値収集キュー411から計測値を順次読み出して、分散KVSサーバ45のデータストアに計測値を登録するS82。収集サーバ42は、計測値の登録を終えると、次の計測値をメッセージキューから読み出して、S82の処理を繰り返す。ダッシュボードサーバ46は、利用者からのリクエストに応じて、監視対象の状況等を閲覧するためのダッシュボード48を作成し、ネットワークNを介してユーザ端末装置に送信するS83。ユーザ端末装置12は、受信したダッシュボード48をブラウザ上で表示するS84。また、データの登録処理に並行して、管理サーバ43は、計測値管理キュー412から計測値を読み出し、制御ルールと対比してS85、コンピュータリソースに対するアクションの要否を判断するS86。計測値が制御ルールに規定された条件を満たさない場合には、アクションが不要と判断するS86:No。一方、計測値が制御ルールに規定された条件を満たす場合には、アクションが必要であると判断しS86:Yes、具体的なアクションの指示を分散メッセージキューサーバ41の実行キュー414に送信するS87。その後、管理サーバ43は、計測値管理キュー412から計測値を再度読み出し、S85からS87までの一連の処理を繰り返す。実行サーバ44は、実行キュー414からアクションの指示を読み出して、インスタンスの起動や停止などの具体的なアクションを実行するための処理データを分散メッセージキューサーバ41の管理キュー413に送信するS88。その後、実行サーバ44は、実行キューからアクション指示を再度読み出し、S88の処理を繰り返す。管理キュー413に入力された処理データは、アクションの対象となる監視エージェント30に順次読み出され、サーバの複製や破棄などのアクションが実行されるS89。なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。"