(57)【要約】      （修正有）【課題】クラウドシステムにおけるイベント及び構成の変更内容の対応関係を管理するマッピング情報を生成する計算機システムを提供する。【解決手段】計算機システムは、クラウドサービスを提供するノード群を含むクラウドシステムと、フロントエンドサーバと、クラウド監視サーバ１００とを備える。クラウド監視サーバにおいて、イベントハンドラモジュール２１１は、フロントエンドサーバからイベント発生通知及びイベント完了通知を受け付ける。マッピング情報生成モジュール２１２は、第１のイベントの発生前のノード群から要素の状態を示す第１の状態情報と、第１のイベントの発生に伴う処理が実行された後のノード群から要素の状態を示す第２の状態情報とを取得し、第１の状態情報及び第２の状態情報の差分から、第１のイベントによる要素の変更内容を特定し、第１のイベント及び特定された要素の変更内容を対応付けてマッピング情報２２３に登録する。【選択図】図２
2018081492.tif 000002
【特許請求の範囲】
【請求項１】
クラウドサービスを提供するクラウドシステムと、前記クラウドシステムを監視する監視モジュールを有する計算機とを備える計算機システムであって、
前記計算機は、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有し、
イベント及び前記クラウドサービスを構成する要素の変更内容の関係を管理するマッピング情報を保持し、
前記クラウドシステムは、前記クラウドサービスに使用する計算機リソースを提供する複数のノードを含むノード群、及び前記ノード群を管理する管理サーバを含み、
前記プロセッサは、
前記クラウドシステムにおける第１のイベントを検出し、
前記第１のイベントの発生前の前記ノード群から前記クラウドサービスを構成する要素の状態を示す第１の状態情報と、前記第１のイベントの発生に伴う処理が実行された後の前記ノード群から前記要素の状態を示す第２の状態情報と、を取得し、
前記第１の状態情報及び前記第２の状態情報の差分から、前記第１のイベントによる要素の変更内容を特定し、
前記第１のイベント及び前記特定された要素の変更内容を対応付けて前記マッピング情報に登録することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記マッピング情報は、イベント及び前記イベントの発生に伴って行われた前記要素の変更内容の対応関係を格納するエントリを含み、
前記プロセッサは、
前記マッピング情報から前記第１のイベントに対応するエントリを検索し、
前記第１のイベントに対応するエントリに登録された前記要素の変更内容と、前記特定された要素の変更内容とを比較して、差異が存在するか否かを判定し、
差異が存在する場合、前記第１のイベントの失敗と判定することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記マッピング情報に含まれるエントリは、前記イベントが発生した回数である第１の回数、前記イベントの発生に伴って行われた前記要素の変更内容が検出された回数である第２の回数、及び前記要素の変更内容と前記イベントとの間の関連性を示す値である関連度を含み、
前記プロセッサは、
前記第１のイベントに対応するエントリの前記第１の回数を設定し、
前記第１のイベントに対応するエントリに登録された要素の変更内容のうち、前記特定された要素の変更内容に対応する前記第２の回数を設定し、
前記第１の回数及び前記第２の回数に基づいて、前記第１のイベントに対応するエントリに登録された要素の変更内容の前記関連度を算出し、
前記比較の処理において、前記第１のイベントに対応するエントリに登録された前記要素の変更内容の中から、前記関連度が第１の閾値以上の前記変更内容を選択し、前記選択された要素の変更内容と、前記特定された変更内容とを比較することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記計算機は、前記クラウドシステムの正常状態を管理するためのシステム状態情報を保持し、
前記プロセッサは、前記マッピング情報を参照し、前記関連度が第２の閾値以上である要素の変更内容に対応する前記第１の状態情報及び前記第２の状態情報の差分を前記システム状態情報に追加することを特徴とする計算機システム。
【請求項５】
請求項４に記載の計算機システムであって、
前記プロセッサは、
周期的に、前記ノード群から前記要素の状態を示す第３の状態情報を取得し、
前記システム状態情報と前記第３の状態情報とを比較することによって、前記クラウドシステムの正常性を確認することを特徴とする計算機システム。
【請求項６】
請求項３に記載の計算機システムであって、
前記プロセッサは、
前記第１のイベントを検出した場合、前記マッピング情報を参照し、前記イベントの種類が前記第１のイベントと一致するエントリを検索し、
前記検索されたエントリの前記第１の回数に基づいて、状態情報を取得する前記要素を決定し、
前記ノード群から前記決定された要素の状態情報を取得することを特徴とする計算機システム。
【請求項７】
請求項２に記載の計算機システムであって、
前記プロセッサは、前記第１のイベントの失敗と判定した場合、前記第１のイベントに対応するエントリに登録された前記要素の変更内容と、前記特定された要素の変更内容との間の差異を提示するための表示情報を生成することを特徴とする計算機システム。
【請求項８】
クラウドサービスを提供するクラウドシステムと、前記クラウドシステムを監視する監視モジュールを有する計算機とを有する計算機システムにおけるシステム監視方法であって、
前記計算機は、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有し、
イベント及び前記クラウドサービスを構成する要素の変更内容の関係を管理するマッピング情報を保持し、
前記クラウドシステムは、前記クラウドサービスに使用する計算機リソースを提供する複数のノードを含むノード群、及び前記ノード群を管理する管理サーバを含み、
前記システム監視方法は、
前記プロセッサが、前記クラウドシステムにおける第１のイベントを検出する第１のステップと、
前記プロセッサが、前記第１のイベントの発生前の前記ノード群から前記クラウドサービスを構成する要素の状態を示す第１の状態情報と、前記第１のイベントの発生に伴う処理が実行された後の前記ノード群から前記要素の状態を示す第２の状態情報と、を取得する第２のステップと、
前記プロセッサが、前記第１の状態情報及び前記第２の状態情報の差分から、前記第１のイベントによる要素の変更内容を特定する第３のステップと、
前記プロセッサが、前記第１のイベント及び前記特定された要素の変更内容を対応付けて前記マッピング情報に登録する第４のステップと、を含むことを特徴とするシステム監視方法。
【請求項９】
請求項８に記載のシステム監視方法であって、
前記マッピング情報は、イベント及び前記イベントの発生に伴って行われた前記要素の変更内容の対応関係を格納するエントリを含み、
前記第３のステップは、
前記プロセッサが、前記マッピング情報から前記第１のイベントに対応するエントリを検索する第５のステップと、
前記プロセッサが、前記第１のイベントに対応するエントリに登録された前記要素の変更内容と、前記特定された要素の変更内容とを比較して、差異が存在するか否かを判定する第６のステップと、
差異が存在する場合、前記プロセッサが、前記第１のイベントの失敗と判定する第７のステップと、を含むことを特徴とするシステム監視方法。
【請求項１０】
請求項９に記載のシステム監視方法であって、
前記マッピング情報に含まれるエントリは、前記イベントが発生した回数である第１の回数、前記イベントの発生に伴って行われた前記要素の変更内容が検出された回数である第２の回数、及び前記要素の変更内容と前記イベントとの間の関連性を示す値である関連度を含み、
前記第４のステップは、
前記プロセッサが、前記第１のイベントに対応するエントリの前記第１の回数を設定するステップと、
前記プロセッサが、前記第１のイベントに対応するエントリに登録された要素の変更内容のうち、前記特定された要素の変更内容に対応する前記第２の回数を設定するステップと、
前記プロセッサが、前記第１の回数及び前記第２の回数に基づいて、前記第１のイベントに対応するエントリに登録された要素の変更内容の前記関連度を算出するステップと、を含み、
前記第６のステップは、
前記プロセッサが、前記第１のイベントに対応するエントリに登録された前記要素の変更内容の中から、前記関連度が第１の閾値以上の前記変更内容を選択するステップと、
前記プロセッサが、前記選択された要素の変更内容と、前記特定された変更内容とを比較するステップと、を含むことを特徴とするシステム監視方法。
【請求項１１】
請求項１０に記載のシステム監視方法であって、
前記計算機は、前記クラウドシステムの正常状態を管理するためのシステム状態情報を保持し、
前記システム監視方法は、前記プロセッサが、前記マッピング情報を参照して、前記関連度が第２の閾値以上である要素の変更内容に対応する前記第１の状態情報及び前記第２の状態情報の差分を前記システム状態情報に追加するステップを含むことを特徴とするシステム監視方法。
【請求項１２】
請求項１１に記載のシステム監視方法であって、
前記プロセッサが、周期的に、前記ノード群から前記要素の状態を示す第３の状態情報を取得するステップと、
前記プロセッサが、前記システム状態情報と前記第３の状態情報とを比較することによって、前記クラウドシステムの正常性を確認するステップと、を含むことを特徴とするシステム監視方法。
【請求項１３】
請求項１０に記載のシステム監視方法であって、
前記第２のステップは、
前記プロセッサが、前記マッピング情報を参照し、前記イベントの種類が前記第１のイベントと一致するエントリを検索するステップと、
前記プロセッサが、前記検索されたエントリの前記第１の回数に基づいて、状態情報を取得する前記要素を決定するステップと、
前記プロセッサが、前記ノード群から前記決定された要素の状態情報を取得するステップと、を含むことを特徴とするシステム監視方法。
【請求項１４】
請求項９に記載のシステム監視方法であって、
前記第７のステップは、前記プロセッサが、前記第１のイベントに対応するエントリに登録された前記要素の変更内容と、前記特定された要素の変更内容との間の差異を提示するための表示情報を生成するステップを含むことを特徴とするシステム監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害等に対応するためのクラウドシステムの監視に関する。
【背景技術】
【０００２】
クラウドシステムは、物理サーバ、ネットワーク装置、及びストレージ装置等の装置から構成され、また、これらの装置を制御し、クラウドサービスを提供する複数の自動化ツールの組み合わせによって実現される。
【０００３】
自動化ツールを用いることによって、エンドユーザからの仮想マシン生成要求等の要求に対する処理の自動化が実現されている。一方、要求に対する処理の失敗及びシステムの障害等のシステム障害に対する対応は自動化されていないため、依然として運用者が対応する必要がある。そのため、運用負荷が大きいという問題がある。
【０００４】
前述のような障害対応の運用負荷を低減するためには、正常なシステム状態を管理する必要がある。正常なシステム状態と現在のシステム状態との間のズレを検出することによって、障害の検出、原因の特定、及び障害への対策が可能となる。
【０００５】
クラウドシステムでは多種多様な要求がエンドユーザから発行されるため、システム状態は時々刻々と変化する。そのため、エンドユーザからの要求等に起因するイベントと、当該イベントによって変化するシステム状態とを対応付けたマッピング情報を正常なシステム状態を把握するために用いる。イベントが発生した場合、管理装置等が、マッピング情報を用いて正常なシステム状態を更新できる。
【０００６】
マッピング情報はイベント毎に生成する必要があり、マッピング情報を手動で生成するのは困難である。これに対して、特許文献１に記載の技術が知られている。特許文献１には、「品質要求情報と、機能要求情報と、Ｗｅｂサービスが提供する機能を定義した機能定義情報と、Ｗｅｂサービスが利用する資源を定義した資源定義情報とにもとづいて、Ｗｅｂサービスにおいて発生し得るイベントに伴う機能および資源の状態変化を導出し、導出した状態変化のうち制約条件に適合する状態変化について、定性挙動表を生成するＷｅｂサービス提供構造管理部１７０と、Ｗｅｂサービス提供構造管理部１７０が生成した定性挙動表の中から、パラメータとして指定されたイベントに対応する定性挙動表を検索し、出力する定性挙動推定部１８０とを含む。」ことが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１７０４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載の技術では、システム内部の情報を用いてマッピング情報が生成される。しかし、クラウドシステムでは自動化ツールがブラックボックスとなっているため、自動化ツールの内部情報を利用することができない。したがって、特許文献１の技術を適用しても、クラウドシステムにおけるマッピング情報を生成できない。
【課題を解決するための手段】
【０００９】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、クラウドサービスを提供するクラウドシステムと、前記クラウドシステムを監視する監視モジュールを有する計算機とを備える計算機システムであって、前記計算機は、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有し、イベント及び前記クラウドサービスを構成する要素の変更内容の関係を管理するマッピング情報を保持し、前記クラウドシステムは、前記クラウドサービスに使用する計算機リソースを提供する複数のノードを含むノード群、及び前記ノード群を管理する管理サーバを含み、前記プロセッサは、前記クラウドシステムにおける第１のイベントを検出し、前記第１のイベントの発生前の前記ノード群から前記クラウドサービスを構成する要素の状態を示す第１の状態情報と、前記第１のイベントの発生に伴う処理が実行された後の前記ノード群から前記要素の状態を示す第２の状態情報と、を取得し、前記第１の状態情報及び前記第２の状態情報の差分から、前記第１のイベントによる要素の変更内容を特定し、前記第１のイベント及び前記特定された要素の変更内容を対応付けて前記マッピング情報に登録することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、自動化ツールの情報を用いることなく、マッピング情報を自動的に生成し、また、更新することができる。これによって、クラウドシステムにおける正常なシステム状態を把握できるため、障害の検出、原因の特定、及び障害への対策を容易にできる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】実施例１のシステムの構成例を示すブロック図である。
【図２】実施例１のクラウド監視サーバの構成例を説明するブロック図である。
【図３】実施例１の取得方法情報の一例を示す説明図である。
【図４】実施例１のノード情報の一例を示す説明図である。
【図５Ａ】実施例１のマッピング情報の一例を示す説明図である。
【図５Ｂ】実施例１のマッピング情報の一例を示す説明図である。
【図６】実施例１のシステム状態情報の一例を示す説明図である。
【図７】実施例１の取得範囲情報の一例を示す説明図である。
【図８】実施例１のシステムにおけるクラウド変更要求時の処理の流れを説明するシーケンス図である。
【図９】実施例１の運用者端末に表示される状態差分情報の一例を示す図である。
【図１０】実施例１の取得範囲決定処理の一例を説明するフローチャートである。
【図１１】実施例１のマッピング情報更新処理の一例を説明するフローチャートである。
【図１２】実施例１のシステム状態情報の更新処理の一例を説明するフローチャートである。
【図１３】実施例１のマッピング情報及びシステム状態情報の変化を説明する図である。
【図１４】実施例２のクラウドシステムの監視処理の流れを説明するシーケンス図である。
【図１５】実施例２の運用者端末に表示される情報の一例を示す図である。
【図１６】実施例２の確認処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施例について図面を参照しながら説明する。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００１３】
図１は、実施例１の計算機システムの構成例を示すブロック図である。
【００１４】
実施例１の計算機システムは、クラウド監視サーバ１００、自動化システム１１０、複数のフロントエンドサーバ１２０、複数の運用者端末１３０、複数のエンドユーザ端末１４０、及びノード群１５０から構成される。自動化システム１１０は、管理用ネットワーク１６０を介して、複数のフロントエンドサーバ１２０及びノード群１５０と接続する。また、クラウド監視サーバ１００は、監視用ネットワーク１７０を介して、複数のフロントエンドサーバ１２０及びノード群１５０と接続する。
【００１５】
管理用ネットワーク１６０及び監視用ネットワーク１７０は、同一のネットワークでもよい。なお、ネットワークの種別は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等が考えられる。
【００１６】
本実施例では、自動化システム１１０、フロントエンドサーバ１２０、及びノード群１５０がクラウドシステムを構成するものとする。なお、ノード群１５０が自動化システム１１０及びフロントエンドサーバ１２０と同様の機能を有する場合、ノード群１５０がクラウドシステムに対応する。
【００１７】
エンドユーザ端末１４０は、クラウドサービスを利用するユーザが操作する端末である。運用者端末１３０は、クラウドシステムを監視するクラウド監視サーバ１００を管理する運用者が操作する端末である。
【００１８】
ノード群１５０は、クラウドサービスに用いられる計算機リソースを提供する複数のノードを含む。ノード群１５０には、例えば、複数の物理サーバ１５１及び複数のネットワーク装置１５２がノードとして含まれる。ノード群１５０が提供する計算機リソースを用いて、ユーザが使用するユーザシステムが構築される。
【００１９】
自動化システム１１０は、ノード群１５０の管理及び制御を行うシステムである。自動化システム１１０は、例えば、クラウド管理サーバ、ネットワーク管理サーバ、ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）管理サーバ、ノード管理サーバ等の計算機から構成される。
【００２０】
フロントエンドサーバ１２０は、エンドユーザ端末１４０から送信された各種要求を受信し、当該要求を自動化システム１１０に転送する。また、フロントエンドサーバ１２０は、クラウド監視サーバ１００にイベントに関する情報を送信する。以下の説明では、ノード群１５０に含まれるノードの状態を変更するための要求をクラウド変更要求と記載する。
【００２１】
なお、ノードの状態は、ユーザシステムを構成する論理構成の状態、ユーザシステムを構成する機能構成の状態、及び物理的な計算機リソースの状態を含む。ユーザシステムを構成する論理構成はインスタンス等の有無、及び設定内容を示し、ユーザシステムを構成する機能構成はプロセス等の有無を示し、また、物理的な計算機リソースは物理サーバ１５１のＣＰＵ等を示す。ユーザシステムを構成する論理構成及び機能構成、並びに物理的な計算機リソースは、クラウドサービスを構成する要素である。
【００２２】
クラウド監視サーバ１００は、発生したイベントと、ノードの状態変化（要素の変更内容）との間の関係を管理するためのマッピング情報２２３（図２参照）を生成する。具体的には、クラウド監視サーバ１００は、フロントエンドサーバ１２０がクラウド変更要求を受信した時、ノード群１５０に含まれる複数のノードから要素の状態情報を取得し、取得した状態情報及びイベントに関する情報に基づいて、マッピング情報２２３を生成し、また、更新する。要素の状態情報は、インスタンスの状態、プロセスの状態、及び計算機リソースの使用状態等の要素の状態を示す値を含む情報である。
【００２３】
また、クラウド監視サーバ１００は、マッピング情報２２３に基づいて、イベントの成否を判定する。イベントの失敗が検出された場合、クラウド監視サーバ１００は、運用者端末１３０に障害に関する情報を送信する。当該情報には、イベントによって期待された要素の変更内容、及びイベント発生に伴う処理が実行された後の実際のノード群１５０の状態等を含む。
【００２４】
図２は、実施例１のクラウド監視サーバ１００の構成例を説明するブロック図である。
【００２５】
クラウド監視サーバ１００は、プロセッサ２０１、メモリ２０２、記憶装置２０３、Ｉ／Ｏインタフェース（Ｉ／Ｆ）２０４、及びネットワークインタフェース（Ｉ／Ｆ）２０５を備える。
【００２６】
プロセッサ２０１は、メモリ２０２に格納されるプログラムを実行する。プロセッサ２０１は、メモリ２０２に格納されるプログラムにしたがって動作することによって、所定の機能を有する機能モジュールとして動作する。以下の説明では、機能モジュールを主語に説明する場合、プロセッサ２０１が機能モジュールを実現するプログラムにしたがって動作していることを示す。
【００２７】
メモリ２０２は、プロセッサ２０１によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ２０２は、プログラムが一時的に使用するワークエリアを含む。メモリ２０２に格納されるプログラム及び情報については後述する。
【００２８】
記憶装置２０３は、データを永続的に格納する。記憶装置２０３は、例えば、不揮発性半導体メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等が考えられる。
【００２９】
メモリ２０２に格納されるプログラム及び情報は、記憶装置２０３、又は、ＩＣカード、ＳＤカード、及びＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納されてもよい。この場合、プロセッサ２０１は、記憶装置２０３等からプログラム及び情報を読み出し、メモリ２０２にプログラム及び情報をロードし、また、メモリ２０２にロードされたプログラムを実行する。
【００３０】
Ｉ／Ｏ  Ｉ／Ｆ２０４は、入力装置及び出力装置等の外部装置と接続するためのインタフェースである。なお、入力装置は、キーボード、マウス、及びタッチパネル等を含む。また、出力装置は、ディスプレイ及びタッチパネル等を含む。
【００３１】
ネットワーク  Ｉ／Ｆ２０５は、ネットワークを介して外部装置と接続するためのインタフェースである。
【００３２】
自動化システム１１０に含まれる計算機、フロントエンドサーバ１２０、運用者端末１３０、エンドユーザ端末１４０、物理サーバ１５１、及びネットワーク装置１５２のハードウェア構成は、クラウド監視サーバ１００と同様のものである。
【００３３】
ここで、メモリ２０２に格納されるプログラム及び情報について説明する。メモリ２０２は、イベントハンドラモジュール２１１、マッピング情報生成モジュール２１２、イベント結果チェックモジュール２１３、状態情報取得モジュール２１４、及び状態監視モジュール２１５を実現するプログラムを格納する。また、メモリ２０２は、取得方法情報２２１、ノード情報２２２、マッピング情報２２３、システム状態情報２２４、及び取得範囲情報２２５を格納する。
【００３４】
イベントハンドラモジュール２１１は、フロントエンドサーバ１２０からイベント発生通知及びイベント完了通知を受け付ける。マッピング情報生成モジュール２１２は、マッピング情報２２３を生成する。イベント結果チェックモジュール２１３は、マッピング情報２２３に基づいてイベントの成否を判定する。状態情報取得モジュール２１４は、イベント発生時及びイベント完了時に、ノードから状態情報を取得する。状態監視モジュール２１５は、システム状態情報２２４に基づいて、周期的に、クラウドシステムの正常性を監視する。
【００３５】
取得方法情報２２１は、要素の種類に応じた状態情報の取得方法を管理するための情報である。取得方法情報２２１の詳細は、図３を用いて説明する。ノード情報２２２は、ノード群１５０に含まれるノードを管理するための情報である。ノード情報２２２の詳細は、図４を用いて説明する。マッピング情報２２３は、イベントと要素の変更内容との間の関係を管理する情報である。マッピング情報２２３の詳細は、図５Ａ及び図５Ｂを用いて説明する。システム状態情報２２４は、正常なクラウドシステムの状態を管理するための情報である。システム状態情報２２４の詳細は、図６を用いて説明する。取得範囲情報２２５は、状態情報を取得する範囲を決定するための情報である。取得範囲情報２２５の詳細は、図７を用いて説明する。
【００３６】
図３は、実施例１の取得方法情報２２１の一例を示す説明図である。
【００３７】
取得方法情報２２１は、ＩＤ３０１、要素種類３０２、対象ノード種類３０３、取得方法３０４、及び戻り値パターン３０５から構成されるエントリを含む。
【００３８】
ＩＤ３０１は、エントリを一意に識別するための情報である。要素種類３０２は、状態情報の取得対象となる要素の種類を示す情報である。対象ノード種類３０３は、要素種類３０２に対応する要素の状態情報を取得するためにアクセスするノードの種類を示す情報である。
【００３９】
取得方法３０４は、ノードから要素の状態情報を取得する方法を示す情報であり、種類３０６及び方法３０７を含む。種類３０６は、取得方法の種類を示す情報である。方法３０７は、要素の状態情報を取得するための方法を示す情報である。
【００４０】
例えば、種類３０６が「ｃｏｍｍａｎｄ」の場合、クラウド監視サーバ１００は、ノードにログインし、方法３０７に設定されたコマンドを実行することによって、要素の状態情報を取得する。種類３０６が「ＡＰＩ」の場合は、クラウド監視サーバ１００は、ノードにリモートで接続し、ＡＰＩを用いて要素の状態情報を取得する。
【００４１】
戻り値パターン３０５は、取得方法３０４に基づく操作を実行した場合に、ノードから得られる戻り値のパターンを示す情報である。
【００４２】
論理構成の状態情報の場合、「（（ｉｄ））」に設定された値を識別情報とする要素の増減を示す値が取得される。「（（ｉｄ））」がない場合は、全ての種類の要素の増減を示す値が取得される。また、機能構成及び計算機リソースの状態情報の場合、「（（ｓｔａｔｅ））」部分に設定された値が取得される。要素が「ＣＰＵ」である場合、物理サーバ１５１のＣＰＵ使用率が取得され、要素が「プロセス」である場合、物理サーバ１５１上のプロセスのプロセスＩＤが取得される。
【００４３】
図４は、実施例１のノード情報２２２の一例を示す説明図である。
【００４４】
ノード情報２２２は、ノードＩＤ４０１、ノード名４０２、ノード種類４０３、及びアクセス方法４０４から構成されるエントリを含む。
【００４５】
ノードＩＤ４０１は、ノードを一意に識別するための情報である。ノードＩＤ４０１は、ノード情報２２２のエントリを一意に識別する情報としても用いられる。ノード名４０２は、ノードの名前である。ノード種類４０３は、ノードの種類を示す情報であり、対象ノード種類３０３に対応する。アクセス方法４０４は、ノードにアクセスする場合に使用される情報である。
【００４６】
図５Ａ及び図５Ｂは、実施例１のマッピング情報２２３の一例を示す説明図である。
【００４７】
図５Ａは、更新前のマッピング情報２２３を示し、図５Ｂは、更新後のマッピング情報を示す。なお、変更された部分は、太文字で表示している。
【００４８】
マッピング情報２２３は、イベント種類５０１、発生回数５０２、要素種類５０３、状態５０４、変更回数５０５、及び関連度５０６から構成されるエントリを含む。一つのエントリが一つのイベントに対応する。一つのエントリには、イベントに関連する一つ以上の要素の変更内容を示す行が一つ以上含まれる。すなわち、イベント及びイベントに関連する要素の変更内容の関係が管理される。なお、一つのエントリには、要素の変更内容の種類毎に行が登録される。
【００４９】
イベント種類５０１は、イベントの種類を示す情報である。イベント種類５０１は、マッピング情報２２３のエントリを一意に識別する情報としても用いられる。発生回数５０２は、イベント種類５０１に対応するイベントが発生した回数である。
【００５０】
要素種類５０３は、イベント種類５０１に対応するイベントの発生に伴う処理によって変更が生じた要素の種類を示す情報である。状態５０４は、要素種類５０３に対応する要素の変更内容を示す情報である。要素種類５０３及び状態５０４の組み合わせは、要素の変更内容の種類を示す。変更回数５０５は、イベント種類５０１に対応するイベントの発生に伴って、要素種類５０３及び状態５０４によって特定される要素の変更内容が検出された回数である。
【００５１】
関連度５０６は、イベントと要素の変更内容との間の関連性を示す値（関連度）である。変更回数５０５の値を発生回数５０２の値で除算することによって、関連度５０６に設定する値が算出される。
【００５２】
なお、発生時刻が近い二つ以上のイベントが発生した場合、一つのイベントに対応するエントリには、各イベントによって生じた要素の変更内容の行が登録される。これは、いずれのイベントによる要素の変更内容であるかを区別できないためである。第１のイベントの発生に伴うマッピング情報２２３の更新時には、第１のイベントに対応するエントリに含まれる要素の変更内容の行のうち、他のイベントに関連する要素の変更内容の行の変更回数５０５には、１未満の値が加算される。この操作は、第１のイベントにおける行の関連度５０６の値を低くするために行われる。したがって、イベントの発生に伴ってマッピング情報２２３を更新することによって、関連性の高い要素の変更内容を正確に把握することができる。
【００５３】
図５Ｂに示す例では、「Ｅ１」、「Ｅ２」に対応するイベントが同時に発生した場合、イベント種類５０１が「Ｅ１」のエントリに含まれ、要素種類５０３が「ＶＭ」かつ状態５０４が「Ｃｒｅａｔｅｄ」の行は、イベント種類５０１が「Ｅ２」と関連性が高い要素の変更内容であるため、当該行の変更回数５０５には「０．５」が加算される。
【００５４】
図６は、実施例１のシステム状態情報２２４の一例を示す説明図である。
【００５５】
システム状態情報２２４は、ＩＤ６０１、要素種類６０２、状態６０３、パラメータ６０４、関連イベント種類６０５、及びノードＩＤ６０６から構成されるエントリを含む。
【００５６】
ＩＤ６０１は、エントリを一意に識別するための情報である。要素種類６０２及び状態６０３は、要素種類５０３及び状態５０４と同一のものである。パラメータ６０４は、要素に関連するパラメータである。関連イベント種類６０５は、要素の変更内容が生じたイベントの種類である。ノードＩＤ６０６は、要素を含むノードの識別情報である。
【００５７】
図７は、実施例１の取得範囲情報２２５の一例を示す説明図である。
【００５８】
取得範囲情報２２５は、ＩＤ７０１、発生回数７０２、及び情報取得範囲７０３から構成されるエントリを含む。
【００５９】
ＩＤ７０１は、エントリを一意に識別するための情報である。発生回数７０２は、イベントの発生回数の範囲を示す情報である。情報取得範囲７０３は、イベントの発生に伴って要素の状態情報を取得する要素を特定するための取得範囲を示す情報である。
【００６０】
図８は、実施例１のシステムにおけるクラウド変更要求時の処理の流れを説明するシーケンス図である。図９は、実施例１の運用者端末１３０に表示される状態差分情報の一例を示す図である。
【００６１】
まず、エンドユーザ端末１４０は、フロントエンドサーバ１２０にクラウド変更要求を送信する（ステップＳ１０１）。クラウド変更要求には、ユーザシステムの変更内容等が含まれる。
【００６２】
フロントエンドサーバ１２０は、クラウド変更要求を受信した場合、クラウド監視サーバ１００にイベント発生通知を送信する（ステップＳ１０２）。イベント発生通知には、クラウド変更要求によって発生するイベントの種類（イベントのＩＤ）、イベントの発生時間、及びクラウド変更要求に含まれる各種パラメータが含まれる。なお、イベントの発生時間はクラウド変更要求を受信した時間等が考えられる。
【００６３】
クラウド監視サーバ１００は、イベント発生通知を受信した場合、要素の状態情報を取得する要素を決定するために取得範囲決定処理を実行する（ステップＳ１０３）。具体的には、イベントハンドラモジュール２１１が、イベント発生通知を受信し、状態情報取得モジュール２１４を呼び出す。取得範囲決定処理の詳細は、図１０を用いて説明する。
【００６４】
クラウド監視サーバ１００は、取得方法情報２２１を用いて、取得範囲決定処理によって決定された要素を含むノードに要素の状態情報の取得要求を送信する（ステップＳ１０４）。具体的には、状態情報取得モジュール２１４が、要素の状態情報の取得要求をノード群１５０に含まれるノードに送信する。
【００６５】
ノード群１５０に含まれるノードは、要素の状態情報の取得要求を受信した場合、要求された要素の状態情報をクラウド監視サーバ１００に送信する（ステップＳ１０５）。状態情報には、ノードの識別情報、要素の識別情報、及び戻り値等が含まれる。クラウド監視サーバ１００の状態情報取得モジュール２１４は、受信した要素の状態情報をメモリ２０２に一時的に格納する。なお、複数のイベントが発生した場合、各イベントについて取得範囲決定処理及び要素の状態情報の取得処理が並列に実行される。
【００６６】
フロントエンドサーバ１２０は、イベント発生通知の送信後、自動化システム１１０にクラウド変更要求を送信する（ステップＳ１０６）。
【００６７】
自動化システム１１０は、クラウド変更要求を受信した場合、ノードの状態を変更するための制御命令をノード群１５０に送信する（ステップＳ１０７）。制御命令には、ノードの具体的な変更内容を示す値が含まれる。なお、クラウドシステムにおけるノードの制御方法は公知の技術であるため詳細な説明は省略する。
【００６８】
ノード群１５０に含まれるノードは制御命令にしたがって、ノードの状態を変更し、変更結果を自動化システム１１０に送信する（ステップＳ１０８）。例えば、ノードは、インスタンスの生成、プロセスの開始、及び計算機リソースの割当等を行う。
【００６９】
自動化システム１１０及びフロントエンドサーバ１２０は、変更結果に基づいて、クラウド変更要求の処理結果を生成し、当該処理結果をエンドユーザ端末１４０に転送する（ステップＳ１０９、ステップＳ１１０）。処理結果には、クラウド変更要求の成否を示す情報が含まれる。
【００７０】
フロントエンドサーバ１２０は、クラウド変更要求の処理結果を送信した後、クラウド監視サーバ１００にイベント完了通知を送信する（ステップＳ１１１）。イベント完了通知には、ユーザのＩＤ、イベントの種類、イベントのＩＤ、及びクラウド変更要求の成否を示す情報が含まれる。
【００７１】
クラウド監視サーバ１００は、イベント完了通知を受信した場合、取得方法情報２２１を用いて、取得範囲決定処理によって決定された要素を含むノードに要素の状態情報の取得要求を送信する（ステップＳ１１２）。具体的には、イベントハンドラモジュール２１１が、イベント完了通知を受信し、状態情報取得モジュール２１４を呼び出す。状態情報取得モジュール２１４は、要素の状態情報の取得要求をノード群１５０に含まれるノードに送信する。
【００７２】
ノード群１５０に含まれるノードは、要素の状態情報の取得要求を受信した場合、要求された要素の状態情報をクラウド監視サーバ１００に送信する（ステップＳ１１３）。クラウド監視サーバ１００の状態情報取得モジュール２１４は、受信した要素の状態情報をメモリ２０２に一時的に格納する。
【００７３】
クラウド監視サーバ１００は、ノード群１５０から要素の状態情報を受信した場合、マッピング情報更新処理を実行する（ステップＳ１１４）。マッピング情報更新処理の詳細は、図１１を用いて説明する。
【００７４】
なお、クラウド監視サーバ１００は、マッピング情報更新処理において、イベントの失敗を検出した場合、運用者端末１３０に状態差分情報を送信する（ステップＳ１１５）。状態差分情報には、イベントの処理結果「失敗」、及びイベントによって期待された要素の変更内容と実際に発生した要素の変更内容との間の差分を示す情報等が含まれる。
【００７５】
ここで、状態差分情報に基づいて表示される画面について説明する。運用者端末１３０の出力装置には、図９に示すような画面９００が表示される。
【００７６】
画面９００は、メッセージ欄９０１、イベント情報欄９０２、差分情報欄９０３、及びＯＫボタン９０４を含む。
【００７７】
メッセージ欄９０１には、運用者に注意喚起を促すメッセージが表示される。イベント情報欄９０２には、クラウド変更要求を送信したエンドユーザ端末１４０を操作するユーザの識別情報、イベントの種類、及びイベントの発生時間等が表示される。差分情報欄９０３には、期待された要素の変更内容と実際に生じた要素の変更内容との間の差分を示す差分情報が表示される。差分情報は、要素種類９１１、状態９１２、ノードＩＤ９１３、期待値９１４、及び差分９１５から構成されるエントリを含む。一つのエントリが一つの要素に対応する。本実施例では、差分が生じた要素に対応するエントリがハイライトで表示される。ＯＫボタン９０４は、運用者が画面９００に表示された情報を確認した後に操作される。
【００７８】
要素種類９１１は、要素の種類を示す情報である。状態９１２は、実際に生じた要素の変更内容を示す情報である。ノードＩＤ９１３は、要素の変更内容が生じたノードを識別するための情報である。期待値９１４は、期待された要素の変更内容を示す情報である。差分９１５は、期待された要素の変更内容と実際に生じた要素の変更内容との間に差分が生じたか否かを示す情報である。差分が生じた場合、差分９１５には「あり」が格納され、差分が生じていない場合、差分９１５には「なし」が格納される。
【００７９】
図１０は、実施例１の取得範囲決定処理の一例を説明するフローチャートである。
【００８０】
イベントハンドラモジュール２１１は、イベント発生通知を受信した場合、状態情報取得モジュール２１４を呼び出す。
【００８１】
状態情報取得モジュール２１４は、マッピング情報２２３に、発生したイベントに一致するエントリが存在するか否かを判定する（ステップＳ２０１）。
【００８２】
具体的には、状態情報取得モジュール２１４は、マッピング情報２２３を参照し、イベント種類５０１にイベント発生通知に含まれるイベントの種類に一致するエントリが含まれるか否かを判定する。
【００８３】
マッピング情報２２３に、発生したイベントに一致するエントリが存在しないと判定された場合、状態情報取得モジュール２１４は、取得範囲情報２２５を参照して、全ての要素を取得対象に決定する（ステップＳ２０３）。その後、マッピング情報生成モジュール２１２は処理を終了する。
【００８４】
具体的には、状態情報取得モジュール２１４は、発生回数を示す変数に「１」を設定した後、取得範囲情報２２５の発生回数７０２を参照する。本実施例では、発生回数が「１」から「２」の間の場合、情報取得範囲７０３は「全体」であるため、状態情報取得モジュール２１４は、全要素を取得対象に決定する。
【００８５】
マッピング情報２２３に、発生したイベントに一致するエントリが存在すると判定された場合、状態情報取得モジュール２１４は、マッピング情報２２３及び取得範囲情報２２５に基づいて、イベントに関連する要素を選択する（ステップＳ２０２）。その後、状態情報取得モジュール２１４は処理を終了する。ステップＳ２０２では、以下のような処理が実行される。
【００８６】
状態情報取得モジュール２１４は、マッピング情報２２３から検索されたエントリの発生回数５０２に「１」を加算した値を発生回数を示す変数に設定する。状態情報取得モジュール２１４は、取得範囲情報２２５の発生回数７０２を参照し、変数に設定した値が含まれる範囲に対応するエントリを検索する。
【００８７】
状態情報取得モジュール２１４は、検索されたエントリの情報取得範囲７０３に基づいて、マッピング情報２２３から検索されたエントリに含まれる行の関連度５０６を参照し、当該エントリの中からイベントに関連する要素の変更内容を選択する。状態情報取得モジュール２１４は、選択された行の要素種類５０３に対応する要素を取得対象に決定する。
【００８８】
例えば、イベント種類５０１が「Ｅ１」、かつ、発生回数を示す変数の値が「１１」である場合、状態情報取得モジュール２１４は、関連度５０６の値が「８０％」以上である行を選択する。したがって、マッピング情報生成モジュール２１２は、「ＶＰＮ  ＧＷ（ＶＭ）」及び「ＦＷ  ＡＣＬ」を取得対象に決定する。以上がステップＳ２０２の処理の説明である。
【００８９】
図１１は、実施例１のマッピング情報更新処理の一例を説明するフローチャートである。以下で説明する処理はイベント単位で実行される。
【００９０】
マッピング情報生成モジュール２１２は、イベント開始前に取得した要素の状態情報及びイベント終了後に取得した要素の状態情報を比較することによって、要素の変更内容を特定する（ステップＳ３０１）。具体的には、以下のような処理が実行される。
【００９１】
マッピング情報生成モジュール２１２は、要素の状態情報を取得したノードの中からターゲットノードを一つ選択する。マッピング情報生成モジュール２１２は、イベント開始前にターゲットノードから取得された要素の状態情報と、イベント終了後にターゲットノードから取得された要素の状態情報とを比較して、要素の変更内容を特定する。
【００９２】
例えば、イベントの発生に伴ってインスタンスが追加されている場合、状態は「Ｃｒｅａｔｅｄ」に決定され、イベントの発生に伴ってインスタンスが削除されている場合、状態は「Ｄｅｌｅｔｅｄ」に決定される。また、イベントの発生に伴ってプロセスが起動している場合、状態は「Ｕｐ」に決定され、イベントの発生に伴ってプロセスが終了している場合、状態は「Ｄｏｗｎ」に決定される。
【００９３】
マッピング情報生成モジュール２１２は、ノードの識別情報、要素の種類、パラメータ、及び状態を含む一時エントリを生成し、メモリ２０２に格納する。なお、変更された要素が複数存在する場合、一つのターゲットノードに対して複数の一時エントリが生成される。
【００９４】
マッピング情報生成モジュール２１２は、要素の状態情報を取得した全てのノードについて同様の処理を実行する。
【００９５】
マッピング情報生成モジュール２１２は、要素の状態情報を取得した全てのノードについて一時エントリを生成した後、一時エントリからマッピング用エントリを生成する。具体的には、マッピング情報生成モジュール２１２は、要素の変更内容の種類を特定し、要素の変更内容の種類を特定する値を含むマッピング用エントリを生成する。すなわち、要素の種類及び状態を含むマッピング用エントリが生成される。
【００９６】
例えば、要素が「ＶＰＮ  ＧＷ（ＶＭ）」かつ状態が「Ｃｒｅａｔｅｄ」である一時エントリが三つ存在し、要素が「ＦＷ  ＡＣＬ」かつ状態が「Ｃｒｅａｔｅｄ」である一時エントリが四つ存在する場合、要素が「ＶＰＮ  ＧＷ（ＶＭ）」かつ状態が「Ｃｒｅａｔｅｄ」であるマッピング用エントリと、要素が「ＦＷ  ＡＣＬ」かつ状態が「Ｃｒｅａｔｅｄ」であるマッピング用エントリが生成される。以上が、ステップＳ３０１の処理の説明である。
【００９７】
次に、マッピング情報生成モジュール２１２は、イベント完了通知に含まれるクラウド変更要求の成否を示す情報を参照して、イベントが成功したか否かを判定する（ステップＳ３０２）。
【００９８】
イベントが失敗したと判定された場合、マッピング情報生成モジュール２１２は、状態差分情報を運用者端末１３０に送信する（ステップＳ３１２）。その後、マッピング情報生成モジュール２１２は処理を終了する。ステップＳ３１２では、以下のような処理が実行される。
【００９９】
マッピング情報生成モジュール２１２は、イベント発生通知に含まれるイベントの発生時間、及びイベント完了通知に含まれるユーザの識別情報を含む表示情報をイベント情報欄９０２に表示する情報として生成する。
【０１００】
マッピング情報生成モジュール２１２は、マッピング情報２２３を参照し、イベント種類５０１がイベント発生通知に含まれるイベントの種類に一致するエントリを検索する。
【０１０１】
マッピング情報生成モジュール２１２は、要素種類９１１、状態９１２、及びノードＩＤ９１３に、一つの一時エントリを選択し、差分情報に一つのエントリを追加する。
【０１０２】
マッピング情報生成モジュール２１２は、追加されたエントリに、選択された一時エントリに含まれる要素の種類、状態、及びノードの識別情報を設定する。また、マッピング情報生成モジュール２１２は、マッピング情報２２３から検索されたエントリに含まれる行の中から、要素種類５０３及び状態５０４が一時エントリに含まれる要素の種類及び状態に一致する行を選択し、追加されたエントリの期待値９１４に選択された行の状態５０４を設定する。また、マッピング情報生成モジュール２１２は、状態９１２及び期待値９１４の値が異なる場合、追加されたエントリの差分９１５に「あり」を設定し、状態９１２及び期待値９１４の値が一致する場合、追加されたエントリの差分９１５に「なし」を設定する。
【０１０３】
マッピング情報生成モジュール２１２は、全ての一時エントリについて前述の処理を実行する。
【０１０４】
マッピング情報生成モジュール２１２は、メッセージ、表示情報、及び差分情報を含む状態差分情報を運用者端末１３０に送信する。その後、マッピング情報生成モジュール２１２は、メモリ２０２から一時エントリ及びマッピング用エントリを削除する。以上がステップＳ３１２の処理の説明である。
【０１０５】
ステップＳ３０２においてイベントが成功したと判定された場合、マッピング情報生成モジュール２１２は、マッピング情報２２３に、発生したイベントに対応するエントリが存在するか否かを判定する（ステップＳ３０３）。
【０１０６】
具体的には、マッピング情報生成モジュール２１２は、イベント種類５０１がイベント発生通知に含まれるイベントの種類に一致するエントリが存在するか否かを判定する。
【０１０７】
マッピング情報２２３に、発生したイベントに対応するエントリが存在しないと判定された場合、マッピング情報生成モジュール２１２は、マッピング情報２２３にエントリを追加する（ステップＳ３１１）。その後、マッピング情報生成モジュール２１２は処理を終了する。ステップＳ３１１では、以下のような処理が実行される。
【０１０８】
マッピング情報生成モジュール２１２は、マッピング情報２２３にエントリを追加し、追加されたエントリのイベント種類５０１に、イベント完了通知に含まれるイベントの種類を設定し、また、当該エントリの発生回数５０２に「１」を設定する。
【０１０９】
マッピング情報生成モジュール２１２は、追加されたエントリに、マッピング用エントリの数だけ行を生成する。
【０１１０】
マッピング情報生成モジュール２１２は、生成された行の要素種類５０３及び状態５０４にマッピング用エントリに含まれる要素の種類及び状態を設定し、当該行の変更回数５０５に「１」を設定し、関連度５０６に「１００％」を設定する。マッピング情報生成モジュール２１２は、メモリ２０２から一時エントリ及びマッピング用エントリを削除する。以上がステップＳ３１１の処理の説明である。
【０１１１】
マッピング情報２２３に、発生したイベントに対応するエントリが存在すると判定された場合、マッピング情報生成モジュール２１２は、マッピング情報２２３に基づいて、イベントが成功したか否かを判定する（ステップＳ３０４）。具体的には、以下のような処理が実行される。
【０１１２】
マッピング情報生成モジュール２１２は、イベント結果チェックモジュール２１３を呼び出す。このとき、マッピング情報生成モジュール２１２は、ステップＳ３０３において検索されたエントリのイベント種類５０１を入力する。
【０１１３】
イベント結果チェックモジュール２１３は、ステップＳ３０３において検索されたエントリの発生回数５０２が第１の閾値以上であるか否かを判定する。
【０１１４】
ステップＳ３０３において検索されたエントリの発生回数５０２が第１の閾値より小さいと判定された場合、イベント結果チェックモジュール２１３は、イベントが成功したと判定する。イベント結果チェックモジュール２１３は、判定結果をマッピング情報生成モジュール２１２に出力する。
【０１１５】
ステップＳ３０３において検索されたエントリの発生回数５０２が第１の閾値以上であると判定された場合、イベント結果チェックモジュール２１３は、当該エントリの各行の中から、関連度５０６が第２の閾値以上である行、すなわち、イベントに関連する要素の変更内容を特定する。
【０１１６】
イベント結果チェックモジュール２１３は、は、検索された要素の変更内容の中からターゲット変更内容を一つ選択する。イベント結果チェックモジュール２１３は、は、要素の種類及び状態が、ターゲット変更内容の要素種類５０３及び状態５０４に一致するマッピング用エントリが存在するか否かを判定する。
【０１１７】
前述の条件を満たすマッピング用エントリが存在しない場合、イベント結果チェックモジュール２１３は、は、イベントが失敗したと判定する。イベント結果チェックモジュール２１３は、判定結果をマッピング情報生成モジュール２１２に出力する。
【０１１８】
前述の条件を満たすマッピング用エントリが存在する場合、イベント結果チェックモジュール２１３は、ステップＳ３０３において検索されたエントリに含まれる全ての行について処理が完了したか否かを判定する。
【０１１９】
ステップＳ３０３において検索されたエントリに含まれる全ての行について処理が完了していない場合、イベント結果チェックモジュール２１３は、新たなターゲット変更内容を選択し、同様の処理を実行する。
【０１２０】
ステップＳ３０３において検索されたエントリに含まれる全ての行について処理が完了したと判定された場合、イベント結果チェックモジュール２１３は、イベントが成功したと判定する。イベント結果チェックモジュール２１３は、判定結果をマッピング情報生成モジュール２１２に出力する。
【０１２１】
マッピング情報生成モジュール２１２は、イベント結果チェックモジュール２１３から取得した判定結果が成功である場合、ステップＳ３０３において検索されたエントリの発生回数５０２に「１」を加算する。以上が、ステップＳ３０４の処理の説明である。
【０１２２】
イベントが失敗したと判定された場合、マッピング情報生成モジュール２１２は、状態差分情報を運用者端末１３０に送信する（ステップＳ３１２）。その後、マッピング情報生成モジュール２１２は処理を終了する。
【０１２３】
イベントが成功したと判定された場合、マッピング情報生成モジュール２１２は、ステップＳ３０１において特定された要素の変更内容の中からターゲット変更内容を一つ選択する（ステップＳ３０５）。
【０１２４】
具体的には、マッピングは、マッピング用エントリの中からターゲットマッピング用エントリを一つ選択する。
【０１２５】
マッピング情報生成モジュール２１２は、ステップＳ３０３において検索されたエントリに、ターゲット変更内容に一致する行が存在するか否かを判定する（ステップＳ３０６）。
【０１２６】
ステップＳ３０６の条件を満たす行が存在すると判定された場合、マッピング情報生成モジュール２１２は、当該行を更新する（ステップＳ３０７）。その後、マッピング情報生成モジュール２１２は、ステップＳ３０９に進む。ステップＳ３０７では、以下のような処理にしたがって、変更回数５０５及び関連度５０６が更新される。
【０１２７】
マッピング情報生成モジュール２１２は、処理中のイベントと発生時間が近いイベント（参照イベント）が存在するか否かを判定する。例えば、マッピング情報生成モジュール２１２は、処理中のイベントの発生時間と他のイベントの発生時間との差を算出し、当該差が第３の閾値より小さいか否かを判定する。算出された差が第３の閾値より小さい場合、マッピング情報生成モジュール２１２は、処理中のイベントと発生時間が近いイベントが存在すると判定する。
【０１２８】
参照イベントが存在しない場合、マッピング情報生成モジュール２１２は、ステップＳ３０６において検索された行の変更回数５０５に「１」を加算する。また、マッピング情報生成モジュール２１２は、当該行の変更回数５０５を、当該行を含むエントリの発生回数５０２で除算することによって関連度を算出する。マッピング情報生成モジュール２１２は、当該行の関連度５０６に算出された関連度を設定する。
【０１２９】
参照イベントが存在する場合、マッピング情報生成モジュール２１２は、参照イベントに対応するエントリを参照し、要素種類５０３及び状態５０４がターゲットマッピング用エントリに含まれる要素の種類及び状態と一致する行が存在するか否かを判定する。
【０１３０】
参照イベントのエントリに前述の条件を満たす行が存在しない場合、マッピング情報生成モジュール２１２は、ステップＳ３０６において検索された行の変更回数５０５に「１」を加算する。また、マッピング情報生成モジュール２１２は、当該行の変更回数５０５を、当該行を含むエントリの発生回数５０２で除算することによって関連度を算出する。マッピング情報生成モジュール２１２は、当該行の関連度５０６に算出された関連度を設定する。
【０１３１】
参照イベントのエントリに前述の条件を満たす行が存在する場合、マッピング情報生成モジュール２１２は、当該行の関連度５０６が第４の閾値以上であるか否かを判定する。
【０１３２】
参照イベントのエントリに含まれる行の関連度５０６が第４の閾値より小さい場合、マッピング情報生成モジュール２１２は、ステップＳ３０６において検索された行の変更回数５０５に「１」を加算する。また、マッピング情報生成モジュール２１２は、当該行の変更回数５０５を、当該行を含むエントリの発生回数５０２で除算することによって関連度を算出する。マッピング情報生成モジュール２１２は、当該行の関連度５０６に算出された関連度を設定する。
【０１３３】
参照イベントのエントリに含まれる行の関連度５０６が第４の閾値より小さい場合、マッピング情報生成モジュール２１２は、ステップＳ３０６において検索された行の変更回数５０５に、「１」に重み係数を乗算した値を加算する。本実施例では、重み係数として「０．５」が設定されている。また、マッピング情報生成モジュール２１２は、当該行の変更回数５０５を、当該行を含むエントリの発生回数５０２で除算することによって関連度を算出する。マッピング情報生成モジュール２１２は、当該行の関連度５０６に算出された関連度を設定する。以上が、ステップＳ３０７の処理の説明である。
【０１３４】
ステップＳ３０６の条件を満たす行が存在しないと判定された場合、マッピング情報生成モジュール２１２は、ステップＳ３０３において検索されたエントリに行を追加する（ステップＳ３０８）。その後、マッピング情報生成モジュール２１２は、ステップＳ３０９に進む。ステップＳ３０８では、以下のような処理が実行される。
【０１３５】
マッピング情報生成モジュール２１２は、ステップＳ３０３において検索されたエントリに行を追加する。マッピング情報生成モジュール２１２は、追加された行の要素種類５０３及び状態５０４にターゲットマッピング用エントリに含まれる要素の種類及び状態を設定し、また、当該行の変更回数５０５に「１」を設定する。また、マッピング情報生成モジュール２１２は、当該行の変更回数５０５を、当該行を含むエントリの発生回数５０２で除算することによって関連度を算出する。マッピング情報生成モジュール２１２は、当該行の関連度５０６に算出された関連度を設定する。以上がステップＳ３０８の処理の説明である。
【０１３６】
ステップＳ３０７又はステップＳ３０８の処理が完了した後、マッピング情報生成モジュール２１２は、全ての要素の変更内容の処理が完了したか否かを判定する（ステップＳ３０９）。すなわち、全てのマッピング用エントリの処理が完了したか否かが判定される。
【０１３７】
全ての要素の変更内容の処理が完了していないと判定された場合、マッピング情報生成モジュール２１２は、ステップＳ３０５に戻り、新たな要素の変更内容（マッピング用エントリ）を選択して同様の処理を実行する。
【０１３８】
全ての要素の変更内容の処理が完了していないと判定された場合、マッピング情報生成モジュール２１２は、システム状態情報２２４を更新する（ステップＳ３１０）。その後、マッピング情報生成モジュール２１２は、メモリ２０２から一時エントリ及びマッピング用エントリを削除し、処理を終了する。システム状態情報２２４の更新処理については図１２を用いて説明する。
【０１３９】
なお、マッピング情報更新処理において用いられる各閾値は予め設定されているものとする。ただし、各閾値は任意のタイミングで変更できる。
【０１４０】
図１２は、実施例１のシステム状態情報２２４の更新処理の一例を説明するフローチャートである。なお、ステップＳ３０３において検索されたエントリのイベント種類５０１がターゲットイベント種類として入力される。
【０１４１】
マッピング情報生成モジュール２１２は、イベント種類５０１がターゲットイベント種類に一致するエントリを参照し、関連度５０６が第５の閾値以上の行を特定する（ステップＳ４０１）。
【０１４２】
次に、マッピング情報生成モジュール２１２は、特定された行の中から、ターゲット行を選択する（ステップＳ４０２）。
【０１４３】
次に、マッピング情報生成モジュール２１２は、要素の種類及び状態が、ターゲット行の要素種類５０３及び状態５０４と一致する一時エントリを検索する（ステップＳ４０３）。
【０１４４】
次に、マッピング情報生成モジュール２１２は、検索された一時エントリの中からターゲット一時エントリを選択する（ステップＳ４０４）。
【０１４５】
マッピング情報生成モジュール２１２は、システム状態情報２２４に、ターゲット一時エントリに対応するエントリが存在するか否かを判定する（ステップＳ４０５）。
【０１４６】
具体的には、マッピング情報生成モジュール２１２は、（条件１）、（条件２）を満たすエントリが存在するか否かを判定する。
【０１４７】
（条件１）要素種類６０２、状態６０３、及びノードＩＤ６０６が、ターゲット一時エントリに含まれる要素の種類、状態、及びノードの識別情報と一致する。（条件２）関連イベント種類６０５がターゲットイベント種類に一致する。
【０１４８】
システム状態情報２２４に、ターゲット一時エントリに対応するエントリが存在すると判定された場合、マッピング情報生成モジュール２１２は、当該エントリを更新する（ステップＳ４０６）。その後、マッピング情報生成モジュール２１２はステップＳ４０８に進む。
【０１４９】
具体的には、ターゲット一時エントリに含まれるパラメータを当該エントリのパラメータ６０４に設定する。
【０１５０】
システム状態情報２２４に、ターゲット一時エントリに対応するエントリが存在しないと判定された場合、マッピング情報生成モジュール２１２は、システム状態情報２２４にエントリを追加する（ステップＳ４０７）。その後、マッピング情報生成モジュール２１２はステップＳ４０８に進む。
【０１５１】
具体的には、マッピング情報生成モジュール２１２は、追加されたエントリのＩＤ６０１に識別情報を設定する。マッピング情報生成モジュール２１２は、追加されたエントリの要素種類６０２、状態６０３、パラメータ６０４、及びノードＩＤ６０６に、ターゲット一時エントリに含まれる要素の種類、状態、パラメータ、及びノードの識別情報を設定する。マッピング情報生成モジュール２１２は、追加されたエントリの関連イベント種類６０５にターゲットイベント種類を設定する。
【０１５２】
ステップＳ４０６又はステップＳ４０７の処理が完了した後、マッピング情報生成モジュール２１２は、ステップＳ４０３において検索された全ての一時エントリの処理が完了したか否かを判定する（ステップＳ４０８）。
【０１５３】
ステップＳ４０３において検索された全ての一時エントリの処理が完了していないと判定された場合、マッピング情報生成モジュール２１２は、ステップＳ４０４に戻り、新たなターゲット一時エントリを選択して同様の処理を実行する。
【０１５４】
ステップＳ４０３において検索された全ての一時エントリの処理が完了したと判定された場合、マッピング情報生成モジュール２１２は、ステップＳ４０１において特定された全ての行の処理が完了したか否かを判定する（ステップＳ４０９）。
【０１５５】
ステップＳ４０１において特定された全ての行の処理が完了していないと判定された場合、マッピング情報生成モジュール２１２は、ステップＳ４０２に戻り、新たなターゲット行を選択して同様の処理を実行する。
【０１５６】
ステップＳ４０１において特定された全ての行の処理が完了したと判定された場合、マッピング情報生成モジュール２１２は、関連度５０６が第６の閾値より小さい行（削除行）に対応するエントリを削除し（ステップＳ４１０）、その後、処理を終了する。
【０１５７】
具体的には、マッピング情報生成モジュール２１２は、要素種類６０２及び状態６０３が削除行の要素種類５０３及び状態５０４に一致し、かつ、関連イベント種類６０５がターゲットイベント種類に一致するエントリを検索する。マッピング情報生成モジュール２１２は、検索されたエントリをシステム状態情報２２４から削除する。
【０１５８】
なお、システム状態情報２２４の更新処理において用いられる各閾値は予め設定されているものとする。ただし、各閾値は任意のタイミングで変更できる。
【０１５９】
図１３は、実施例１のマッピング情報２２３及びシステム状態情報２２４の変化を説明する図である。なお、第５の閾値は８５％であるものとする。
【０１６０】
イベントＥ１及びイベントＥ２が同時に発生し、ＶＰＮ  ＧＷ、ＦＷ  ＡＣＬ、及びＶＭの生成が要素の変更内容として特定された場合、イベントＥ１及びイベントＥ２のエントリがマッピング情報２２３に登録される。イベントＥ１のエントリ及びイベントＥ２のエントリのそれぞれに、三種類の要素の変更内容の行がマッピング情報２２３に追加される。この時点では、全ての行の関連度５０６は「１００％」である。
【０１６１】
次に、イベントＥ１のみが発生し、ＶＰＮ  ＧＷの生成及びＦＷ  ＡＣＬの生成が要素の変更内容として特定された場合、イベントＥ１に対応するエントリのＶＰＮ  ＧＷ及びＦＷ  ＡＣＬの行の関連度５０６は「１００％」のままであるが、ＶＭの行の関連度５０６は「７５％」に更新される。この場合、要素の種類が「ＶＰＮ  ＧＷ」かつ状態が「Ｃｒｅａｔｅｄ」である一時エントリ、及び、要素の種類が「ＦＷ  ＡＣＬ」かつ状態が「Ｃｒｅａｔｅｄ」である一時エントリがシステム状態情報２２４に追加される。
【０１６２】
また、関連イベント種類６０５が「Ｅ１」、要素種類６０２が「ＶＭ」、及び状態６０３「Ｃｒｅａｔｅｄ」であるエントリが登録されていた場合、マッピング情報２２３の更新後に当該エントリが削除される。
【０１６３】
実施例１によれば、クラウド監視サーバ１００は、成功したイベントの結果に基づいて、イベントと要素の変更内容とを対応付けて管理するマッピング情報２２３を生成し、また、更新できる。クラウド監視サーバ１００は、マッピング情報２２３に基づいて、イベントの成否を判定することができる。また、クラウド監視サーバ１００は、更新されたマッピング情報２２３の関連度５０６に基づいてシステム状態情報２２４を更新することによって、正常なシステム状態を常に把握することができる。
【実施例２】
【０１６４】
実施例２では、クラウド監視サーバ１００が、周期的に、ノード群１５０を監視し、監視結果を運用者に通知する。以下、実施例１との差異を中心に実施例２について説明する。
【０１６５】
実施例２の計算機システムの構成は、実施例１の計算機システムの構成と同一である。また、クラウド監視サーバ１００のハードウェア構成及びソフトウェア構成は、実施例１のクラウド監視サーバ１００のハードウェア構成及びソフトウェア構成と同一である。また、実施例２の他の装置の構成は、実施例１の他の装置の構成と同一である。
【０１６６】
図１４は、実施例２のクラウドシステムの監視処理の流れを説明するシーケンス図である。図１５は、実施例２の運用者端末１３０に表示される情報の一例を示す図である。
【０１６７】
クラウド監視サーバ１００の状態監視モジュール２１５が、周期的に、監視処理を実行する。まず、状態監視モジュール２１５は、取得範囲決定処理を実行する（ステップＳ５０１）。
【０１６８】
実施例２の取得範囲決定処理では、状態監視モジュール２１５は、システム状態情報２２４の要素種類６０２を参照し、登録された全ての要素を取得対象に決定する。
【０１６９】
状態監視モジュール２１５は、取得範囲決定処理によって決定された要素を含むノードに状態情報の取得要求を送信する（ステップＳ５０２）。
【０１７０】
ノード群１５０に含まれるノードは、要素の状態情報の取得要求を受信した場合、状態情報をクラウド監視サーバ１００に送信する（ステップＳ５０３）。クラウド監視サーバ１００は、受信した状態情報をメモリ２０２に一時的に格納する。
【０１７１】
状態監視モジュール２１５は、要素の状態情報の取得要求を送信した全てのノードから状態情報を受信した場合、システム状態情報２２４及び要素の状態情報を用いて、確認処理を実行する（ステップＳ５０４）。確認処理では、システム状態情報２２４と要素の状態情報との間に差異があるか否かが判定される。確認処理の詳細は、図１６を用いて説明する。
【０１７２】
システム状態情報２２４と要素の状態情報との間に差異がある場合、状態監視モジュール２１５は、ノード群１５０に異常があると判定し、確認処理の結果を含む確認結果通知を運用者端末１３０に送信する（ステップＳ５０５）。
【０１７３】
ここで、確認結果通知に基づいて表示される画面について説明する。運用者端末１３０の出力装置には、図１５に示すような画面１５００が表示される。
【０１７４】
画面１５００は、メッセージ欄１５０１、日時欄１５０２、確認結果表示欄１５０３、及びＯＫボタン１５０４を含む。
【０１７５】
メッセージ欄１５０１には、運用者に注意喚起を促すメッセージが表示される。日時欄１５０２には、確認処理が実行された時間が表示される。確認結果表示欄１５０３には、システム状態情報２２４との差異を表示する確認結果情報が表示される。確認結果情報は、ＩＤ１５１１、要素種類１５１２、状態１５１３、ノードＩＤ１５１４、期待値１５１５、及び差分１５１６から構成されるエントリを含む。本実施例では、差分が生じた要素のエントリはハイライトで表示される。ＯＫボタン１５０４は、運用者が画面１５００に表示された情報を確認した後に操作される。
【０１７６】
図１６は、実施例２の確認処理の一例を説明するフローチャートである。
【０１７７】
状態監視モジュール２１５は、システム状態情報２２４からターゲットエントリを一つ選択する（ステップＳ６０１）。本実施例では、上のエントリから順に選択されるものとする。
【０１７８】
次に、状態監視モジュール２１５は、要素の種類及びノードの識別情報が、ターゲットエントリの要素種類６０２及びノードＩＤ６０６と一致する要素の状態情報が存在するか否かを判定する（ステップＳ６０２）。
【０１７９】
ステップＳ６０２の条件を満たす要素の状態情報が存在しないと判定された場合、状態監視モジュール２１５は、差分エントリを確認結果情報に追加し（ステップＳ６０５）、その後、ステップＳ６０７に進む。
【０１８０】
具体的には、状態監視モジュール２１５は、確認結果情報にエントリを追加し、追加されたエントリのＩＤ１５１１、要素種類１５１２、及びノードＩＤ１５１４に、ターゲットエントリのＩＤ６０１、要素種類６０２、及びノードＩＤ６０６を設定する。状態監視モジュール２１５は、追加されたエントリの期待値１５１５にターゲットエントリの状態６０３を設定し、また、追加されたエントリの差分１５１６に「あり」を設定する。また、状態監視モジュール２１５は、追加されたエントリの状態１５１３に比較結果を設定する。通常、要素であるインスタンスが削除された場合、状態情報が取得できない。したがって、状態１５１３には「Ｄｅｌｅｔｅｄ」等が設定される。
【０１８１】
ステップＳ６０２の条件を満たす要素の状態情報が存在すると判定された場合、状態監視モジュール２１５は、差分があるか否かを判定する（ステップＳ６０３）。
【０１８２】
例えば、プロセスが要素であり、かつ、ターゲットエントリの状態６０３が「Ｕｐ」である場合、状態監視モジュール２１５は、要素の状態情報に基づいて当該プロセスが稼働しているか否かを判定する。プロセスが稼働していない場合、状態監視モジュール２１５は、差分があると判定する。
【０１８３】
例えば、インスタンスが要素である場合、状態監視モジュール２１５は、ターゲットエントリのパラメータ６０４と要素の状態情報に含まれるパラメータとが一致するか否かを判定する。ターゲットエントリのパラメータ６０４と要素の状態情報に含まれるパラメータとが異なる場合、状態監視モジュール２１５は、差分があると判定する。
【０１８４】
差分があると判定された場合、状態監視モジュール２１５は、差分エントリを確認結果情報に追加し（ステップＳ６０６）、その後、ステップＳ６０７に進む。
【０１８５】
具体的には、状態監視モジュール２１５は、確認結果情報にエントリを追加し、追加されたエントリのＩＤ１５１１、要素種類１５１２、及びノードＩＤ１５１４に、ターゲットエントリのＩＤ６０１、要素種類６０２、及びノードＩＤ６０６を設定する。状態監視モジュール２１５は、追加されたエントリの期待値１５１５にターゲットエントリの状態６０３を設定し、また、追加されたエントリの差分１５１６に「あり」を設定する。また、状態監視モジュール２１５は、追加されたエントリの状態１５１３に比較結果を設定する。例えば、プロセスが停止している場合、状態１５１３には「Ｄｏｗｎ」等が設定される。
【０１８６】
差分がないと判定された場合、状態監視モジュール２１５は、通常エントリを確認結果情報に追加し（ステップＳ６０４）、その後、ステップＳ６０７に進む。
【０１８７】
具体的には、状態監視モジュール２１５は、確認結果情報にエントリを追加し、追加されたエントリのＩＤ１５１１、要素種類１５１２、及びノードＩＤ１５１４に、ターゲットエントリのＩＤ６０１、要素種類６０２、及びノードＩＤ６０６を設定する。状態監視モジュール２１５は、追加されたエントリの状態１５１３及び期待値１５１５にターゲットエントリの状態６０３を設定し、また、追加されたエントリの差分１５１６に「なし」を設定する。
【０１８８】
状態監視モジュール２１５は、ステップＳ６０４、ステップＳ６０５、又はステップＳ６０６の処理の後、システム状態情報２２４の全てのエントリの処理が完了したか否かを判定する（ステップＳ６０７）。
【０１８９】
システム状態情報２２４の全てのエントリの処理が完了していないと判定された場合、状態監視モジュール２１５は、ステップＳ６０１に戻り、新たなターゲットエントリを選択して同様の処理を実行する。
【０１９０】
システム状態情報２２４の全てのエントリの処理が完了したと判定された場合、状態監視モジュール２１５は、確認結果情報に差分エントリが含まれるか否かを判定する（ステップＳ６０８）。
【０１９１】
確認結果情報に差分エントリが含まれると判定された場合、状態監視モジュール２１５は、確認結果情報を含む確認結果通知を運用者端末１３０に送信する（ステップＳ６０９）。その後、状態監視モジュール２１５は処理を終了する。
【０１９２】
確認結果情報に差分エントリが含まれないと判定された場合、状態監視モジュール２１５は処理を終了する。
【０１９３】
実施例２によれば、クラウド監視サーバ１００は、運用状態に合わせて更新されるシステム状態情報２２４に基づいて、クラウドシステムの状態を監視することができる。これによって、障害の検出、原因の特定、及び障害への対策を容易にできる。
【０１９４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１９５】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるＣＰＵが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１９６】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１９７】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるＣＰＵが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１９８】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１９９】
１００  クラウド監視サーバ
１１０  自動化システム
１２０  フロントエンドサーバ
１３０  運用者端末
１４０  エンドユーザ端末
１５０  ノード群
１５１  物理サーバ
１５２  ネットワーク装置
１６０  管理用ネットワーク
１７０  監視用ネットワーク
２０１  プロセッサ
２０２  メモリ
２０３  記憶装置
２０４  Ｉ／Ｏ  Ｉ／Ｆ
２０５  ネットワーク  Ｉ／Ｆ
２１１  イベントハンドラモジュール
２１２  マッピング情報生成モジュール
２１３  イベント結果チェックモジュール
２１４  状態情報取得モジュール
２１５  状態監視モジュール
２２１  取得方法情報
２２２  ノード情報
２２３  マッピング情報
２２４  システム状態情報
２２５  取得範囲情報
【図１】
2018081492.tif 000003
【図２】
2018081492.tif 000004
【図３】
2018081492.tif 000005
【図４】
2018081492.tif 000006
【図５Ａ】
2018081492.tif 000007
【図５Ｂ】
2018081492.tif 000008
【図６】
2018081492.tif 000009
【図７】
2018081492.tif 000010
【図８】
2018081492.tif 000011
【図９】
2018081492.tif 000012
【図１０】
2018081492.tif 000013
【図１１】
2018081492.tif 000014
【図１２】
2018081492.tif 000015
【図１３】
2018081492.tif 000016
【図１４】
2018081492.tif 000017
【図１５】
2018081492.tif 000018
【図１６】
2018081492.tif 000019