(57)【特許請求の範囲】
【請求項１】
監視指示を行う監視指示コンピュータと接続された複数のコンピュータのいずれかのコンピュータに、
前記複数のコンピュータのうち一のコンピュータを監視の起点として、順次どのコンピュータを監視すべきかの監視先のコンピュータと監視元のコンピュータとの関係が登録された経路情報であって、前記監視指示コンピュータの前記監視指示に基づいて順次監視する際の前記監視の起点となる監視元のコンピュータのＩＤ、監視先かつ監視元となる１以上のコンピュータのＩＤ、最後の監視先のコンピュータのＩＤとを順次関係付けた該経路情報を取得し、
自コンピュータが、前記経路情報に監視先かつ監視元となるコンピュータとして登録されている場合、自コンピュータを監視する監視元のコンピュータから監視結果と監視依頼とを取得し、該監視依頼及び該経路情報に基づいて、自コンピュータが監視すべき監視先のコンピュータを監視し、取得した該監視結果に、該監視先のコンピュータを監視した結果を含め、該監視先のコンピュータを監視した結果を含めた該監視結果と、監視依頼とを、該監視先のコンピュータに送信する
処理を実行させる監視プログラム。
【請求項２】
自コンピュータが、前記経路情報に前記最後の監視先のコンピュータとして登録されている場合、前記経路情報に基づいて自コンピュータを監視する監視元のコンピュータから取得した前記監視結果を前記監視指示コンピュータに送信する
処理を実行させる請求項１に記載の監視プログラム。
【請求項３】
監視指示を行う監視指示コンピュータと、該監視指示コンピュータと接続された複数のコンピュータとを含む監視システムであって、
前記監視指示コンピュータは、
前記複数のコンピュータのうち一のコンピュータを監視の起点として、順次どのコンピュータを監視すべきかの監視先のコンピュータと監視元のコンピュータとの関係が登録された経路情報であって、前記監視指示コンピュータの前記監視指示に基づいて順次監視する際の前記監視の起点となる監視元のコンピュータのＩＤ、監視先かつ監視元となる１以上のコンピュータのＩＤ、最後の監視先のコンピュータのＩＤとを順次関係付けた該経路情報を、前記複数のコンピュータへ配布し、
前記起点となる監視元のコンピュータへ前記監視指示を行い、
前記複数のコンピュータのうち、配布された前記経路情報に、前記起点となる監視元のコンピュータとして登録されているコンピュータは、
前記監視指示及び前記経路情報に基づいて、該起点となる監視元のコンピュータが監視すべき監視先のコンピュータを監視し、該監視先のコンピュータに、監視依頼と監視結果とを送信し、
前記複数のコンピュータのうち、配布された前記経路情報に、監視先かつ監視元となるコンピュータとして登録されているコンピュータは、
該監視先かつ監視元となるコンピュータを監視する監視元のコンピュータから監視結果と監視依頼とを取得し、
取得した前記監視依頼及び前記経路情報に基づいて、該監視先かつ監視元となるコンピュータが監視すべき監視先のコンピュータを監視し、取得した前記監視結果に、該監視先のコンピュータを監視した結果を含め、
前記監視先のコンピュータを監視した結果を含めた前記監視結果と、監視依頼とを、該監視先のコンピュータに送信し、
前記複数のコンピュータのうち、配布された前記経路情報に、前記最後の監視先となるコンピュータとして登録されているコンピュータは、
前記経路情報に基づいて該最後の監視先のコンピュータを監視する監視元のコンピュータから取得した監視結果を前記監視指示コンピュータに送信する
ことを特徴とする監視システム。
【請求項４】
監視指示を行う監視指示コンピュータと接続された複数のコンピュータのいずれかのコンピュータは、
前記複数のコンピュータのうち一のコンピュータを監視の起点として、順次どのコンピュータを監視すべきかの監視先のコンピュータと監視元のコンピュータとの関係が登録された経路情報であって、前記監視指示コンピュータの前記監視指示に基づいて順次監視する際の前記監視の起点となる監視元のコンピュータのＩＤ、監視先かつ監視元となる１以上のコンピュータのＩＤ、最後の監視先のコンピュータのＩＤとを順次関係付けた該経路情報を取得し、
自コンピュータが、前記経路情報に監視先かつ監視元となるコンピュータとして登録されている場合、自コンピュータを監視する監視元のコンピュータから監視結果と監視依頼とを取得し、該監視依頼及び該経路情報に基づいて、自コンピュータが監視すべき監視先のコンピュータを監視し、取得した該監視結果に、該監視先のコンピュータを監視した結果を含め、該監視先のコンピュータを監視した結果を含めた該監視結果と、監視依頼とを、該監視先のコンピュータに送信する
処理を実行する監視方法。
【請求項５】
自コンピュータが、前記経路情報に前記最後の監視先のコンピュータとして登録されている場合、前記経路情報に基づいて自コンピュータを監視する監視元のコンピュータから取得した前記監視結果を前記監視指示コンピュータに送信する
処理を実行する請求項４に記載の監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュータを監視する技術に関する。
【背景技術】
【０００２】
複数のコンピュータによりサービスを提供するデータセンタなどでは、例えば、サービスの品質を確保するため、各コンピュータの作動状態を常時監視する。このため、各コンピュータをリング状に接続した監視経路に従って、各コンピュータが他のコンピュータの作動状態を順繰りに監視する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３１２１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては、監視対象となるコンピュータの台数が増えると、リング状の監視経路を一巡するのにある程度の時間を要するようになり、各コンピュータの監視時間間隔が長くなってしまう。そして、コンピュータの監視時間間隔が長くなることで、あるコンピュータに発生した故障が迅速に検知されず、例えば、データセンタで提供されるサービスの品質が低下してしまうおそれがあった。【０００５】
そこで、１つの側面では、本発明は、従来提案技術の問題点に鑑み、複数のコンピュータを効率よく監視する監視技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面に係る監視プログラムは、監視の開始指示を行う指示コンピュータと接続された複数のコンピュータのいずれかのコンピュータに、前記複数のコンピュータのいずれかを監視の起点として、順次どのコンピュータを監視すべきかの関係が登録された経路情報であって、前記指示コンピュータの前記開始指示に基づいて他のコンピュータを監視する前記監視の起点となる起点コンピュータのＩＤ、前記起点コンピュータまたは第１のコンピュータにより監視されると共に第２のコンピュータを監視する１以上の監視・被監視コンピュータのＩＤ、該監視・被監視コンピュータによって監視され監視すべきコンピュータがない被監視コンピュータのＩＤとを順次関係付けた該経路情報を取得し、自コンピュータが、前記経路情報に前記監視・被監視コンピュータとして登録されている場合、前記起点コンピュータまたは前記第１のコンピュータから、第１の監視依頼と、該起点コンピュータまたは該第１のコンピュータが自コンピュータを監視した結果を含む第１の監視結果とを受信し、取得した前記第１の監視依頼及び前記経路情報に基づいて、自コンピュータが監視すべき第２のコンピュータを監視し、該第２のコンピュータを監視した結果を前記第１の監視結果に含ませた第２の監視結果を生成し、第２の監視依頼と前記第２の監視結果とを前記第２のコンピュータに送信する処理を実行させる。
【発明の効果】
【０００７】
複数のコンピュータを効率よく監視することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態における情報システムの一例を示す構成図である。
【図２】監視コンピュータの各種機能の一例を説明する機能ブロック図である。
【図３】監視経路テーブルの一例を説明するデータ構造図である。
【図４】監視項目テーブルの一例を説明するデータ構造図である。
【図５】プログラムテーブルの一例を説明するデータ構造図である。
【図６】監視対象テーブルの一例を説明するデータ構造図である。
【図７】監視結果テーブルの一例を説明するデータ構造図である。
【図８】コンピュータの各種機能の一例を説明する機能ブロック図である。
【図９】新規導入処理の一例を示すフローチャートである。
【図１０】監視経路設定処理の一例を示すフローチャートである。
【図１１】準備依頼送信処理の一例を示すフローチャートである。
【図１２】監視データ配布処理の一例を示すフローチャートである。
【図１３】監視依頼送信処理の一例を示すフローチャートである。
【図１４】状態更新処理の一例を示すフローチャートである。
【図１５】応答処理の一例を示すフローチャートである。
【図１６】監視データ保存処理の一例を示すフローチャートである。
【図１７】監視実行処理の一例を示すフローチャートである。
【図１８】コンピュータ監視形態の第１実施例の説明図である。
【図１９】第１実施例における監視経路テーブルの説明図である。
【図２０】第１実施例における監視項目テーブルの説明図である。
【図２１】第１実施例におけるプログラムテーブルの説明図である。
【図２２】第１実施例における監視結果テーブルの説明図である。
【図２３】コンピュータ監視形態の第２実施例の説明図である。
【図２４】第２実施例における監視経路テーブルの説明図である。
【図２５】第２実施例における監視項目テーブルの説明図である。
【図２６】第２実施例における監視結果テーブルの説明図である。
【図２７】コンピュータ監視形態の第３実施例の説明図である。
【図２８】第３実施例における監視経路テーブルの説明図である。
【図２９】第３実施例における監視項目テーブルの説明図である。
【図３０】第３実施例における監視結果テーブルの説明図である。
【発明を実施するための形態】
【０００９】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳細に説明する。
図１は、本実施形態における情報システムの一例を示す。
コンピュータの作動状態を監視する監視コンピュータ１００は、インターネットなどのネットワーク２００を介して、複数の監視対象コンピュータ（以下「コンピュータ」という）３００に接続される。各コンピュータ３００は、例えば、ルータ及びスイッチを介してネットワーク２００に接続されていてもよい。
【００１０】
監視コンピュータ１００は、図２〜図７に示すように、監視経路テーブル１１０Ａ，監視項目テーブル１１０Ｂ，プログラムテーブル１１０Ｃ，監視対象テーブル１１０Ｄ及び監視結果テーブル１１０Ｅを格納するためのストレージ１１０を有する。ここで、ストレージ１１０としては、例えば、ＨＤ（Hard Disk），ＳＳＤ（Solid State Drive）などの外部記憶装置を利用してもよい（以下同様）。
【００１１】
監視経路テーブル１１０Ａは、グループごとに、あるコンピュータを起点として、順次どのコンピュータを監視すべきかの関係（監視経路）を示している。なお、グループは、例えば、情報システムを管理する管理者により適宜設定してもよく、例えば、各グループに複数のコンピュータが属するように設定する。
例えば、監視経路テーブル１１０Ａは、図３に示すように、グループ１（ＩＤ＃１）について、監視の起点となる監視元コンピュータとしてコンピュータ１０のＩＤを格納し、その右隣に、コンピュータ１０が監視すべき監視対象としてコンピュータ１１のＩＤを格納し、更に、コンピュータ１１が監視すべき監視対象としてコンピュータ１２のＩＤを格納している。なお、左から順に監視経路をたどるように、コンピュータのＩＤを格納しているが、監視する側と監視される側が関連付いていれば他の格納方法でもよい。
【００１２】
他の、クループ２，３等についても、同様に、監視経路を示す情報がテーブルに格納されている。
監視項目テーブル１１０Ｂは、コンピュータごとに、例えば、ＣＰＵ（Central Processing Unit）の温度，ＨＤの温度など、その、コンピュータについて各種リソースの作動状態を監視すべき項目（監視項目）を定義したテーブルである。
【００１３】
なお、監視項目テーブル１１０Ｂは、図４に示すように、コンピュータのＩＤと、監視項目の内容を示す情報と、を関連付けたレコードを含む。監視項目の内容は、別のテーブル（例えば、図５）を参照するようにしてもよく、その場合は、監視項目テーブル１１０Ｂは、１または複数の監視項目のＩＤを格納してもよい。なお、図４に示す監視項目テーブル１１０Ｂでは、コンピュータ１０については、項目１及び項目２、並びに、コンピュータ１１については、項目１，項目２及び項目３を監視すべきことが定義されている。
【００１４】
プログラムテーブル１１０Ｃは、監視項目の内容を示すテーブルの一例として、プログラム名により監視内容を示すようにした例である。対応するプログラムを実行することにより、監視すべき各種リソースの作動状態が特定され、その監視を行うことができる。例えば、プログラムテーブル１１０Ｃは、図５に示すように、監視項目を特定するための監視項目ＩＤと、監視項目ＩＤにより特定される項目を監視するためのプログラム名と、を関連付けたレコードを含む。ここで、プログラム名には、プログラムの所在を示す絶対パスが付されてもよい。なお、図５に示すプログラムテーブル１１０Ｃでは、項目１を監視するプログラムは“c:\prg\programA.exe”、項目２を監視するプログラムは“c:\prg\programB.exe”であることが定義されている。なお、当該プログラムは図２のストレージ１１０に格納しておけばよい。
【００１５】
監視対象テーブル１１０Ｄは、各グループごとに、故障中やメンテナンス中など、実際に監視できないコンピュータ３００を含んだ、監視対象となる複数のコンピュータ３００を定義したテーブルである。監視対象テーブル１１０Ｄは、図６に示すように、グループを特定するためのグループＩＤと、コンピュータ３００を特定するための監視対象ＩＤと、を関連付けたレコードを含む。なお、図６に示す監視対象テーブル１１０Ｄでは、グループ１のコンピュータ１０，コンピュータ１１及びコンピュータ１２、並びに、グループ２のコンピュータ２０，コンピュータ２１及びコンピュータ２２が監視対象であることが定義されている。
【００１６】
監視結果テーブル１１０Ｅは、各項目についての監視結果が格納されるテーブルである。監視結果テーブル１１０Ｅは、図７に示すように、コンピュータのＩＤと、当該コンピュータについて少なくとも１つの監視項目ＩＤと、監視結果と、を関連付けたレコードを含む。この例では、各監視項目についての作動状態を監視した結果である各監視項目の作動状態（ＯＫ又はＮＧ）がテーブルに格納される。なお、図７に示す監視結果テーブル１１０Ｅでは、グループ１の監視結果を示しており、コンピュータ１０の監視項目１及び監視項目２に関する作動状態、並びに、コンピュータ１１の監視項目１，監視項目２及び監視項目３に関する作動状態が夫々格納されている。もちろん、他のグループについても同様に、監視結果が対応するテーブルに格納される。
【００１７】
ここで、監視経路テーブル１１０Ａ，監視項目テーブル１１０Ｂ，プログラムテーブル１１０Ｃ及び監視対象テーブル１１０Ｄは、例えば、情報システムの管理者などがツールを使用して適宜設定する。なお、監視経路テーブル１１０Ａ及び監視対象テーブル１１０Ｄは、後述する処理により自動的に設定されるようにしてもよい。
監視コンピュータ１００は、監視プログラムを実行することで、図２に示すように、新規導入部１２０，監視経路設定部１３０，準備依頼送信部１４０，監視データ配布部１５０，監視依頼送信部１６０及び状態更新部１７０のそれぞれに対応する機能が実現される。監視プログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory），ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）などのコンピュータ読取可能な記録媒体から、公知の手段を用いて、ＨＤ，ＳＳＤなどの外部記憶装置にインストールされる。
【００１８】
新規導入部１２０は、新たに導入するコンピュータ３００のグループＩＤ及び監視対象ＩＤを伴った導入指示があったことを契機として、ストレージ１１０の監視対象テーブル１１０Ｄに監視対象となるコンピュータ３００を追加登録する。監視経路設定部１３０は、監視経路を設定するグループＩＤを伴った設定指示があったことを契機として、ストレージ１１０の監視対象テーブル１１０Ｄを参照し、コンピュータ３００の負荷に基づいて、グループＩＤにより特定されるグループの監視経路を自動的に設定及び登録する。準備依頼送信部１４０は、コンピュータ３００の監視を開始するグループＩＤを伴った開始指示があったことを契機として、グループＩＤにより特定されるグループに属する全てのコンピュータ３００に準備依頼を送信する。監視データ配布部１５０は、コンピュータ３００から準備依頼の応答があったことを契機として、監視対象であるグループに属する全てのコンピュータ３００に対して、各種リソースの作動状態を監視するための監視データ（監視経路情報，監視項目情報及びプログラム）を、ストレージ１１０の記憶データから読み出して送信（配布）する。監視依頼送信部１６０は、監視データ配布部１５０から通知があったことを契機として、監視の起点となるコンピュータ３００に監視依頼を送信する。状態更新部１７０は、監視結果の報告を行うように設定されたコンピュータ３００（例えば、グループ内で監視経路の最後に設定されたコンピュータ）から監視結果が到着したことを契機として、ストレージ１１０の監視結果テーブル１１０Ｅを更新する。
【００１９】
さらに、監視コンピュータ１００は、例えば、ＮＩＣ（Network Interface Card）などの通信インタフェース部１８０を有する。そして、準備依頼送信部１４０，監視データ配布部１５０及び監視依頼送信部１６０は、夫々、通信インタフェース部１８０を介してネットワーク２００に接続する。
一方、コンピュータ３００は、図８に示すように、監視経路情報，監視項目情報及びプログラムを格納するためのストレージ３１０を有する。ここで、監視経路情報及び監視項目情報は、コンピュータ３００が属するグループの監視経路、及び、コンピュータ３００が監視する他のコンピュータ３００の監視項目を示す情報である。また、コンピュータ３００は、図８に示すように、応答部３２０，監視データ保存部３３０及び監視実行部３４０を夫々実装する。応答部３２０，監視データ保存部３３０及び監視実行部３４０は、情報システムの管理者などがコンピュータ３００を新たに導入するとき、例えば、コンピュータ３００にエージェントを予め組み込むことで実装される。
【００２０】
なお、応答部３２０，監視データ保存部３３０及び監視実行部３４０は、監視コンピュータ１００の準備依頼送信部１４０が準備依頼を送信する前に、各コンピュータ３００に配布したプログラムにより実現されるようにしてもよい。
応答部３２０は、監視コンピュータ１００から準備依頼が到着したことを契機として、監視の準備ができた旨を示す応答を監視コンピュータ１００に返送する。監視データ保存部３３０は、監視コンピュータ１００に応答を返信したことに伴って監視データが到着したことを契機として、監視データである監視経路情報，監視項目情報及びプログラムをストレージ３１０に保存する。監視実行部３４０は、監視依頼が到着したことを契機として、監視経路情報に則って他のコンピュータ３００の監視を実行する。
【００２１】
次に、監視コンピュータ１００及びコンピュータ３００の各部が実行する処理について説明する。
図９は、グループＩＤ及び監視対象ＩＤを伴った導入指示があったことを契機として、監視コンピュータ１００の新規導入部１２０が実行する新規導入処理の一例を示す。
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、新規導入部１２０が、ストレージ１１０の監視対象テーブル１１０Ｄを参照し、グループＩＤにより特定されるレコードの最後に監視対象ＩＤを追加登録する。
【００２２】
かかる新規導入処理によれば、情報システムの管理者などの導入指示に応じて、ストレージ１１０の監視対象テーブル１１０Ｄが順次更新される。このため、監視対象テーブル１１０Ｄを参照すれば、監視すべきコンピュータ３００、及び、各グループに属するコンピュータ３００を把握することができる。
図１０は、グループＩＤを伴った設定指示があったことを契機として、監視コンピュータ１００の監視経路設定部１３０が実行する監視経路設定処理の一例を示す。なお、設定指示には、故障中又はメンテナンス中など、監視対象から除外するコンピュータ３００を指定した情報が付随する。
【００２３】
ステップ１１では、監視経路設定部１３０が、ストレージ１１０の監視対象テーブル１１０Ｄを参照し、グループＩＤにより特定されるレコードに登録されているコンピュータ３００の集合から、監視対象から除外するコンピュータ３００を除外する。なお、監視経路設定部１３０は、監視対象から除外するコンピュータ３００が指定されていないときには、グループＩＤにより特定されるレコードに登録されているコンピュータ３００の集合を生成すればよい。なお、故障中やメンテナンス中などのコンピュータ３００を監視対象から除外する場合には、除外する対象のコンピュータのＩＤを除外リストとしてストレージ１１０に格納し、適宜更新することが望ましい。
【００２４】
ステップ１２では、監視経路設定部１３０が、グループＩＤにより特定されるレコードに登録されているコンピュータ３００の集合から、負荷が第１の閾値を超える高負荷状態にあるコンピュータ３００を抽出する。ここで、コンピュータ３００の負荷は、例えば、負荷を測定するエージェントを事前にコンピュータ３００に配布し、エージェントが提供する機能により求めるようにすればよい（以下同様）。
【００２５】
ステップ１３では、監視経路設定部１３０が、高負荷状態のコンピュータ３００があるか否かを判定する。そして、監視経路設定部１３０は、高負荷状態のコンピュータ３００があると判定すれば処理をステップ１４へと進める一方（Ｙｅｓ）、高負荷状態のコンピュータ３００がないと判定すれば処理をステップ１６へと進める（Ｎｏ）。
ステップ１４では、監視経路設定部１３０が、コンピュータ３００の集合から、負荷が第２の閾値を下回る低負荷状態にあるコンピュータ３００を抽出する。ここで、第２の閾値は、低負荷状態にあるコンピュータ３００を特定するため、第１の閾値よりも小さな値でもよい。
【００２６】
ステップ１５では、監視経路設定部１３０が、高負荷状態にあるコンピュータ３００を低負荷状態にあるコンピュータ３００が均等に監視するように、監視経路を設定する。即ち、高負荷状態にあるコンピュータ３００は、他のコンピュータ３００を監視する余裕が少ないので、高負荷状態にあるコンピュータ３００に監視処理を行わせないことで、処理能力不足によるボトルネックの発生を回避する。
【００２７】
ステップ１６では、監視経路設定部１３０が、集合に含まれるコンピュータ３００を、所定規則に則って並べた監視経路を設定する。ここで、所定規則としては、例えば、ＩＰ（Internet Protocol）アドレス又は監視対象ＩＤが昇順又は降順となるように、コンピュータ３００を順次並べる規則が適用できる。
ステップ１７では、監視経路設定部１３０が、ステップ１５又はステップ１６で設定した監視経路を、ストレージ１１０の監視経路テーブル１１０Ａに格納する。
【００２８】
かかる監視経路設定処理によれば、情報システムの管理者などの設定指示に応じて、ストレージ１１０の監視対象テーブル１１０Ｄに登録されているコンピュータ３００について、負荷を考慮した監視経路が自動的に設定される。このとき、負荷が第１の閾値を超える高負荷状態のコンピュータ３００があれば、負荷が第２の閾値を下回る低負荷状態のコンピュータ３００が高負荷状態のコンピュータ３００を均等に監視するように、監視経路が設定される。このため、高負荷状態のコンピュータ３００が他のコンピュータ３００を監視することがなく、処理能力不足によるボトルネックの発生を回避することができる。一方、高負荷状態のコンピュータ３００がなければ、所定規則に則ってコンピュータ３００を並べた監視経路が自動的に設定されるので、管理者などによる監視経路の設定に要する労力を低減することができる。また、監視対象テーブル１１０Ｄに登録されているコンピュータ３００から、故障中やメンテナンス中などのコンピュータ３００を除外して監視経路を設定できることから、実際に監視ができないコンピュータ３００を含んだ監視経路が設定されることがない。
【００２９】
図１１は、グループＩＤを伴った開始指示があったことを契機として、監視コンピュータ１００の準備依頼送信部１４０が実行する準備依頼送信処理の一例を示す。
ステップ２１では、準備依頼送信部１４０が、ストレージ１１０の監視経路テーブル１１０Ａを参照し、グループＩＤにより特定されるレコードに登録されている各コンピュータ３００に準備依頼を送信する。
【００３０】
ステップ２２では、準備依頼送信部１４０が、監視データ配布部１５０に監視データの配布を開始すべき旨を通知する。なお、監視データ配布部１５０への通知には、監視対象となるグループを特定するためのグループＩＤが含まれる。
図１２は、準備依頼送信部１４０から通知があったことを契機として、監視コンピュータ１００の監視データ配布部１５０が実行する監視データ配布処理の一例を示す。
【００３１】
ステップ３１では、監視データ配布部１５０が、監視対象であるコンピュータ３００から応答があったか否かを判定する。そして、監視データ配布部１５０は、応答があったと判定すれば処理をステップ３２へと進める一方（Ｙｅｓ）、応答がないと判定すれば本処理を繰り返す（Ｎｏ）。
ステップ３２では、監視データ配布部１５０が、応答があったコンピュータ３００に監視データを配布する。即ち、監視データ配布部１５０は、ストレージ１１０の監視経路テーブル１１０Ａを参照し、グループＩＤにより特定されるレコードから監視経路に関するデータを抽出した監視経路情報を生成する。また、監視データ配布部１５０は、ストレージ１１０の監視項目テーブル１１０Ｂを参照し、監視経路情報に登録されている監視対象ＩＤにより特定されるレコードを抽出した監視項目情報を生成する。さらに、監視データ配布部１５０は、ストレージ１１０のプログラムテーブル１１０Ｃを参照し、監視項目情報に登録されている監視項目ＩＤにより特定されるプログラム名を取得する。そして、監視データ配布部１５０は、応答があったコンピュータ３００に対して、監視経路情報、監視項目情報、及び、プログラム名により特定されるプログラムを送信する。
【００３２】
ステップ３３では、監視データ配布部１５０が、監視経路情報を参照し、監視対象ＩＤにより特定される全てのコンピュータ３００に監視データを送信したか否かを判定する。そして、監視データ配布部１５０は、全てのコンピュータ３００に監視データを送信したと判定すれば処理をステップ３４へと進める一方（Ｙｅｓ）、全てのコンピュータ３００に監視データを送信していないと判定すれば処理をステップ３１へと戻す（Ｎｏ）。
【００３３】
ステップ３４では、監視データ配布部１５０が、監視依頼送信部１６０に監視依頼を送信すべき旨を通知する。なお、監視依頼送信部１６０への通知には、監視対象となるグループを特定するためのグループＩＤが含まれる。
図１３は、監視データ配布部１５０から通知があったことを契機として、監視コンピュータ１００の監視依頼送信部１６０が実行する監視依頼送信処理の一例を示す。
【００３４】
ステップ４１では、監視依頼送信部１６０が、ストレージ１１０の監視経路テーブル１１０Ａを参照し、監視の起点となるコンピュータ３００（例えばグループ１であれば、コンピュータ１０）を特定する。
ステップ４２では、監視依頼送信部１６０が、監視の起点となるコンピュータ３００に監視依頼を送信する。
【００３５】
かかる準備依頼送信処理，監視データ配布処理及び監視依頼送信処理によれば、監視対象となるグループに属する全てのコンピュータ３００に対して、他のコンピュータ３００を監視するための監視経路情報，監視項目情報及びプログラムが配布される。そして、監視経路情報，監視項目情報及びプログラムが配布された後、監視対象となるグループにおいて監視の起点となるコンピュータ３００に対して、他のコンピュータ３００の監視を開始すべきことを通知する監視依頼が送信される。このため、監視経路，監視項目及びプログラムの少なくとも１つが変更されたときには、情報システムの管理者などの開始指示に応じて、監視対象となるコンピュータ３００に最新の監視経路情報，監視項目情報及びプログラムが提供されることとなる。従って、監視データの管理が容易になり、管理者などの労力を低減することができる。
【００３６】
図１４は、監視データの配布先であるコンピュータ３００から監視結果が到着したことを契機として、監視コンピュータ１００の状態更新部１７０が実行する状態更新処理の一例を示す。なお、監視結果には、グループＩＤ，監視対象ＩＤ，監視項目ＩＤ及び作動状態が含まれている。
ステップ５１では、状態更新部１７０が、監視結果に基づいて、ストレージ１１０の監視結果テーブル１１０Ｅの作動状態を更新する。即ち、状態更新部１７０は、監視結果に含まれるグループＩＤ，監視対象ＩＤ及び監視項目ＩＤにより特定される作動状態について、監視結果に含まれる作動状態を上書きする。
【００３７】
かかる状態更新処理によれば、コンピュータ３００からの監視結果に基づいて監視結果テーブル１１０Ｅが順次更新されるため、監視結果テーブル１１０Ｅは最新の状態を表すこととなる。このため、監視結果テーブル１１０Ｅを参照すれば、あるグループに属するコンピュータ３００の作動状態を容易に把握することができる。なお、監視コンピュータ１００には、ストレージ１１０の監視結果テーブル１１０Ｅを参照し、コンピュータ３００の作動状態を確認するための機能を組み込んでもよい。
【００３８】
図１５は、監視コンピュータ１００から準備依頼が到着したことを契機として、コンピュータ３００の応答部３２０が実行する応答処理の一例を示す。
ステップ６１では、応答部３２０が、監視コンピュータ１００の監視データ配布部１５０に応答を返送する。
かかる応答処理によれば、監視対象となるコンピュータ３００は、監視コンピュータ１００からの準備依頼に対して応答を返送することで、監視データとしての監視経路情報，監視項目情報及びプログラムを受け入れる準備が完了したことを通知できる。
【００３９】
図１６は、監視コンピュータ１００から監視データが到着したことを契機として、コンピュータ３００の監視データ保存部３３０が実行する監視データ保存処理の一例を示す。
ステップ７１では、監視データ保存部３３０が、監視データ、即ち、監視経路情報，監視項目情報及びプログラムをストレージ３１０に保存する。
かかる監視データ保存処理によれば、監視対象となるコンピュータ３００は、他のコンピュータ３００を監視するための監視データをストレージ３１０に自動的に保存することができる。
【００４０】
図１７は、監視依頼があったことを契機として、コンピュータ３００の監視実行部３４０が実行する監視実行処理の一例を示す。
ステップ８１では、監視実行部３４０が、ストレージ３１０の監視項目情報を参照し、他のコンピュータ３００を監視するためのプログラムを起動する。なお、起動したプログラムは、明示の終了指示があるまで、他のコンピュータ３００を監視し続ける。
【００４１】
ステップ８２では、監視実行部３４０が、ストレージ３１０の監視経路情報を参照し、監視コンピュータ１００に監視結果を通知する義務を負う通知元であるか否か、即ち、監視経路の最後に登録されているコンピュータ３００であるか否かを判定する。そして、監視実行部３４０は、監視結果の通知元であると判定すれば処理をステップ８３へと進める一方（Ｙｅｓ）、監視結果の通知元でないと判定すれば処理をステップ８５へと進める（Ｎｏ）。
【００４２】
ステップ８３では、監視実行部３４０が、プログラムの監視結果を得て、監視コンピュータ１００に監視結果を通知する。ここで、監視結果の通知には、監視経路に沿って各コンピュータ３００を監視した監視結果が含まれる。
ステップ８４では、監視経路情報に則ってコンピュータ３００の監視を繰り返すために、監視実行部３４０が、ストレージ３１０の監視経路情報を参照し、監視の起点となるコンピュータ３００に監視依頼を送信する。
【００４３】
ステップ８５では、監視実行部３４０が、プログラムの監視結果を得ると共に、ストレージ３１０の監視経路情報を参照し、次に登録されているコンピュータ３００、即ち、監視先のコンピュータ３００に監視結果及び監視依頼を送信する。
かかる監視実行処理によれば、監視対象となるコンピュータ３００は、監視依頼が到着するとプログラムを起動し、監視経路情報に則って他のコンピュータ３００の監視を実行する。そして、コンピュータ３００は、監視結果を通知する義務を負っていれば、監視コンピュータ１００にグループの監視結果を通知すると共に、監視の起点となるコンピュータ３００に監視依頼を送信する。一方、コンピュータ３００は、監視結果を通知する義務を負っていなければ、監視先のコンピュータ３００に監視結果及び監視依頼を送信する。
【００４４】
このため、グループを構成する各コンピュータ３００は協働して、監視経路情報に則って順繰りに他のコンピュータ３００を監視しつつ、監視結果の報告を行うように設定されたコンピュータ３００が、監視コンピュータ１００に監視結果を通知する。従って、監視コンピュータ１００は、監視対象となる各コンピュータ３００に監視データを配布し、監視の起点となるコンピュータ３００に監視依頼を送信した後は、コンピュータ３００からの監視結果を受け取るだけとなる。よって、監視対象であるコンピュータ３００の台数が多くなっても、監視コンピュータ１００の負荷がさほど増加せず、複数のコンピュータ３００を効率よく監視することができる。なお、監視の起点となるコンピュータ３００を監視するためには、これを他のコンピュータ３００が監視するように監視経路を設定すればよい。
【００４５】
ここで、本実施形態の理解を容易ならしめることを目的として、具体的な事例を想定した実施例について説明する。
［実施例１］
実施例１では、図１８に示すように、グループＡにおいて、コンピュータａがコンピュータｂを監視し、コンピュータｂが監視結果を通知する一方、グループＢにおいて、コンピュータｃがコンピュータｄを監視し、コンピュータｄが監視結果を通知する。
【００４６】
この場合、監視コンピュータ１００のストレージ１１０には、図１９に示すような監視経路テーブル１１０Ａが格納される。監視経路テーブル１１０Ａでは、監視コンピュータ１００に監視結果を通知するコンピュータ３００を特定可能とするために、例えば、監視対象ＩＤの末尾に接尾辞「Ｎ」を付すこととする（以下同様）。また、監視コンピュータ１００のストレージ１１０には、図２０に示すような監視項目テーブル１１０Ｂ、及び、図２１に示すようなプログラムテーブル１１０Ｃが夫々格納される。図２０に示す監視項目テーブル１１０Ｂでは、コンピュータａ及びｃを監視するコンピュータが存在しないので、コンピュータａ及びｃの監視項目ＩＤには、例えば、監視項目がないことを示すＮＵＬＬなどが設定される。
【００４７】
そして、監視コンピュータ１００から各コンピュータａ〜ｄに監視データが配布されると共に、監視コンピュータ１００から監視の起点となるコンピュータａ及びｃに監視依頼が送信されると、コンピュータｂ及びｄの監視が開始される。その後、監視コンピュータ１００は、コンピュータｂ及びｄから監視結果を受け取ると、図２２に示すように、ストレージ１１０の監視結果テーブル１１０Ｅの作動状態を更新する。なお、各グループを構成するコンピュータは、２台に限らず、３台以上であってもよい。
【００４８】
［実施例２］
実施例２では、図２３に示すように、グループＡにおいて、コンピュータａがコンピュータｂを監視し、コンピュータｂが監視結果を通知した後、コンピュータｂがコンピュータａを監視し、コンピュータａが監視結果を通知する。即ち、２台のコンピュータａ及びｂが相互に相手を監視し合うことで、グループに属する特定のコンピュータが監視されないという事態を回避する。
【００４９】
この場合、監視コンピュータ１００のストレージ１１０には、図２４に示すような監視経路テーブル１１０Ａ、及び、図２５に示すような監視項目テーブル１１０Ｂが夫々格納される。なお、プログラムテーブル１１０Ｃは、実施例１と同一である。
そして、監視コンピュータ１００から各コンピュータａ及びｂに監視データが配布されると共に、監視コンピュータ１００から監視の起点となるコンピュータａに監視依頼が送信されると、コンピュータａ及びｂの相互監視が開始される。即ち、コンピュータａがコンピュータｂを監視し、コンピュータｂが監視結果を通知した後、コンピュータｂがコンピュータａを監視し、コンピュータａが監視結果を通知する。その後、監視コンピュータ１００は、コンピュータａ又はｂから監視結果を受け取ると、図２６に示すように、ストレージ１１０の監視結果テーブル１１０Ｅの作動状態を更新する。なお、グループを構成するコンピュータは、２台に限らず、３台以上であってもよい。
【００５０】
［実施例３］
実施例３では、図２７に示すように、グループＡに含まれる複数のコンピュータａ〜ｄのうち、コンピュータａ〜ｃがコンピュータｄを交互に監視し、コンピュータａ〜ｃが監視結果を交互に通知する。このような監視が必要な理由として、例えば、コンピュータｄが重要なサービスを提供しており、システムダウンなどが許されない場合が想定される。
【００５１】
この場合、監視コンピュータ１００のストレージ１１０には、図２８に示すような監視経路テーブル１１０Ａ、及び、図２９に示すような監視項目テーブル１１０Ｂが夫々格納される。ここで、監視項目テーブル１１０Ｂでは、コンピュータａ〜ｃを監視するコンピュータが存在しないので、コンピュータａ〜ｃの監視項目には、例えば、監視項目がないことを示すＮＵＬＬなどが設定される。なお、プログラムテーブル１１０Ｃは、実施例１と同一である。
【００５２】
そして、監視コンピュータ１００から各コンピュータａ〜ｄに監視データが配布されると共に、監視コンピュータ１００から監視の起点となるコンピュータａに監視依頼が送信されると、コンピュータａによるコンピュータｄの監視が開始される。次に、コンピュータａからコンピュータｂに監視依頼が送信され、コンピュータｂによるコンピュータｄの監視が開始される。このように、コンピュータａ〜ｃが順番にコンピュータｄを監視して監視結果を通知する。一方、監視コンピュータ１００は、コンピュータａ〜ｃから監視結果を受け取ると、図３０に示すように、ストレージ１１０の監視結果テーブル１１０Ｅの作動状態を更新する。なお、グループを構成するコンピュータは、４台に限らず、３台以上であればよい。
【００５３】
従って、［実施例１］〜［実施例３］のように、監視経路テーブル１１０Ａ，監視項目テーブル１１０Ｂ及びプログラムテーブル１１０Ｃを適宜変更することで、グループにおけるコンピュータの監視形態を定義することができる。なお、コンピュータの監視形態は、前述した［実施例１］〜［実施例３］に限らない。
【符号の説明】
【００５４】
１００    監視コンピュータ
１１０    ストレージ
１１０Ａ  監視経路テーブル
１１０Ｂ  監視項目テーブル
１１０Ｃ  プログラムテーブル
１３０    監視経路設定部
１５０    監視データ配布部
１６０    監視依頼送信部
３００    コンピュータ
【図１】
0005475130.tif 000002
【図２】
0005475130.tif 000003
【図３】
0005475130.tif 000004
【図４】
0005475130.tif 000005
【図５】
0005475130.tif 000006
【図６】
0005475130.tif 000007
【図７】
0005475130.tif 000008
【図８】
0005475130.tif 000009
【図９】
0005475130.tif 000010
【図１０】
0005475130.tif 000011
【図１１】
0005475130.tif 000012
【図１２】
0005475130.tif 000013
【図１３】
0005475130.tif 000014
【図１４】
0005475130.tif 000015
【図１５】
0005475130.tif 000016
【図１６】
0005475130.tif 000017
【図１７】
0005475130.tif 000018
【図１８】
0005475130.tif 000019
【図１９】
0005475130.tif 000020
【図２０】
0005475130.tif 000021
【図２１】
0005475130.tif 000022
【図２２】
0005475130.tif 000023
【図２３】
0005475130.tif 000024
【図２４】
0005475130.tif 000025
【図２５】
0005475130.tif 000026
【図２６】
0005475130.tif 000027
【図２７】
0005475130.tif 000028
【図２８】
0005475130.tif 000029
【図２９】
0005475130.tif 000030
【図３０】
0005475130.tif 000031