以下に実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以後の説明では「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等の表現にて情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等について「aaa情報」と呼ぶことがある。さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。さらに、データ内容を示すために「情報」という表現を用いているが、他の表現形式であってもよい。
また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはCPUによって実行されることで定められた処理を記憶資源及び通信インターフェース(I/Oポート等)を用いながら行うため、CPUを有する計算機又はシステムを主語とした説明としてもよい。また、管理計算機または管理計算機を含む管理システムは、CPUに代えて又は加えて、一部または全ての処理を行う専用ハードウェアを有してもよい。
また、各種プログラムは、プログラム配布計算機或いは記憶メディアから計算機にインストールされてもよい。当然ながらこのようなプログラム配布サーバは、配布対象プログラム及び配布サーバプログラムを記憶した記憶資源と、配布サーバプログラムを実行することで配布対象プログラムを計算機に配布するCPUと、を含むことで、各計算機への配布対象プログラムのインストール支援を行っている。
<システム構成>
図1は、実施例1の概要を示した図である。
計算機システムは、管理対象システム300、管理計算機100、及び表示用計算機200がネットワーク接続されたシステムである。
管理計算機100は、管理対象システム300を管理する計算機であって、CPU110、記憶資源120、及び通信インターフェース130を含む。後ほど詳細を示すが、記憶資源120は、管理サーバプログラムと、管理対象システム300の各種情報を格納し、CPU110は、管理プログラムを実行することで、各種管理処理を行う。なお、記憶資源120は、例えば、HDD(Hard Disk Drive)、フラッシュメモリ、DRAM、及びこれら組み合わせであることが考えられるが、プログラム及び情報を格納できるデバイスであれば、どのようなデバイスで代用されてもよい。
表示用計算機200は、管理者に対する入出力を担当する計算機であって、CPU210、記憶資源220、通信インターフェース230、及び入出力デバイス240を含む。なお、図には示していないが、CPU210は、記憶資源220に格納した管理表示プログラムを実行する。なお、記憶資源220は、例えば、HDD、フラッシュメモリ、DRAM、及びこれら組み合わせであることが考えられるが、プログラム及び情報を格納できるデバイスであれば、どのようなデバイスで代用されてもよい。
なお、一実現形態として、管理表示プログラムは、Flashアプリケーション、或いは、その他Webアプリケーション技術で生成されたプログラムの場合がある。この場合、管理表示プログラムは画面表示以外の管理用処理の一部を担当する機能分担であることもありえる。しかし、本実施例においては、管理サーバプログラムと管理表示プログラムはどのような機能分担であってもかまわないため、以後は説明の容易化のために「管理プログラムは...を入出力デバイス240に表示する」や「管理プログラムは...を入出力デバイス240から受信する」等と記載する。この時の管理プログラムは、管理サーバプログラム、又は/及び管理表示プログラムである。
また、以後の説明では、管理計算機100と表示用計算機200を組み合わせて「管理システム」と呼ぶ場合がある。また、管理計算機100は複数計算機であってもよく、同様に表示用計算機200も複数存在してもよい。
また、管理表示プログラムはがWebアプリケーションの場合、典型的には、管理表示プログラムは最初は管理計算機100の記憶資源120に格納され、表示用計算機から管理計算機にアクセスすることでダウンロードされる。しかし、管理表示プログラムは、直接、表示用計算機にインストールされてもよい。
また、入出力デバイス240としては、マウスとディスプレイの組み合わせ、スマートフォンやタブレットコンピュータであればタッチパネルその他Natural User Interfaceデバイス、であることが考えられるが、他であってもよい。
管理対象システム300は、管理システムが管理対象とするシステムである。管理対象システム300は、例えば、サーバ計算機、IPスイッチやルータ等のネットワーク装置、NAS、あるいはストレージ装置等を含む。なお、管理対象システム300が含む装置、及び/又は、装置に含まれる物理的又は仮想的なコンポーネントを、まとめて、「システムコンポーネント」と呼ぶ。システムコンポーネントの例は、他に、ポート、プロセッサ、記憶資源、記憶デバイス、プログラム、VM(Virtual Machine)、論理ボリューム(ストレージ装置内部で定義されるコンポーネントの一例)、RAIDグループ、DBMSのインスタンス及び/又はテーブル、Webサーバが提供するURLツリーを分解した存在(例えばhttp://www.aaa/customer1/を含むURLを処理する仮想的なWebサーバを想定してそれを仮想的なシステムコンポーネントとみなす)、その他のネットワークサービス名、ネットワークサービスを提供するインスタンス、等がある。
管理システムは、これら管理対象システム及びシステムコンポーネントの構成情報、障害又は性能を示す情報等の装置情報を取得し、取得した装置情報に基づいて、管理対象システムの管理情報(例えば構成情報、障害発生の有無、性能値等)を表示することで、管理者を支援する。
<管理システムのプログラム及び情報>
図2は、管理計算機100の詳細を示した図である。管理計算機100の記憶資源120には、以下の情報が格納されている。
* 管理対象システムのシステムコンポーネント情報122。
* システムコンポーネントの監視値の履歴。なお、監視値は、システムコンポーネントについて監視できる値であればよく、例えばシステムコンポーネントの性能値、温度、エラー回数、といった値も含められる。なお、以後の説明では、監視値の例として性能値を取り上げるため、図2には、性能情報123が含まれているが、より一般的には、監視情報であって、監視情報の内部には、監視値の履歴が格納されていることは言うまでもない。
* システムコンポーネントの障害情報124。情報124は、システムコンポーネントの障害内容を格納している。
* リクエスト管理情報125。情報125は、管理対象システム外部からのリクエスト、及びシステムコンポーネント間で送受信されたリクエストの情報(例えば単位時間当たりのリクエスト数やレスポンス時間)を格納する。
* 相関分析結果情報126。情報126は、後述する管理プログラム121の相関分析部121Cによる障害とその障害に関連する監視値の項目を格納する。
記憶資源120には、管理プログラム121が格納されている。なお、管理プログラム121は以下の機能部位を含む。しかし繰り返しになるが、これら機能部位は、管理サーバプログラムにあってもよく、管理表示プログラムにあってもよい。また、上記情報の全て又は一部は、表示用計算機200の記憶資源220に格納されていてもよい。そのため、上記情報は、管理システムが格納しているといっても差し支えない。
* 情報取得部121A。情報取得部121Aは、情報122乃至126に格納する内容をシステムコンポーネントから(又はシステムコンポーネントの監視エージェント計算機を経由して)受信し、情報122乃至126の作成及び更新を行う。なお、システムコンポーネントから受信するデータは、以後の図3乃至図9の形である必要はなく、情報取得部121Aが上述の内容さえ格納できれば、情報取得部121Aは、各情報の各項目を個別に受信してもよく、或いは、それらをまとめて受信してもかまわない。なお、情報取得部121Aによる情報取得は繰り返し行われる。
* 画面表示部121B。画面表示部121Bは、入出力デバイス240への表示を制御する。
* 相関分析部121C。相関分析部121Cは、情報122乃至126の1つ以上を用いて障害に関連するシステムコンポーネントとその監視項目を関連づけ、相関分析結果情報126に格納する。なお、相関分析部121Cは、管理プログラムとは別なプログラムであってもよい。
<管理システムが格納した情報>
次に、図3乃至図6を用いて管理システムが格納した情報について説明する。
<<システムコンポーネント情報>>
図3は、システムコンポーネント情報122を示している。このようにシステムコンポーネント情報122は、システムコンポーネントの名前、カテゴリ、そして当該システムコンポーネントを管理システム内でユニークに管理するためのコンポーネントIDが少なくとも格納される。なお、システムコンポーネント情報122には、上記名前、カテゴリ及びコンポーネントID以外の情報が更に含まれてもよい。その一例として、図3では、トポロジ表示コントロール用に表示位置と表示画面番号が共に格納されている。なお、トポロジ表示コントロール用の情報は、別テーブルに分けても問題ない。なお、図3の情報の中身は、Webサーバ、アプリケーションサーバ、DBMSサーバとしてVMが用いられている場合を示している。
<<画面定義情報>>
図4は、画面定義情報を示している。画面定義情報は、トポロジ表示で表示する項目の表示順序を格納した情報である。図4の例では、表示順序が、表示画面番号という数字で表されている。
<<監視情報>>
次に監視情報の例として性能情報123を説明する。図5A乃至図5Cは、監視項目として、CPU負荷、メモリ使用率、ネットワーク性能、ストレージアクセス性能、そしてプロセス毎のCPU負荷を持つシステムコンポーネントの監視値を格納したテーブルを示した図である。各テーブルとも共通な点は、取得時間と監視値をセットとして監視値の履歴を格納している点である。
なお、図5A乃至図5Cの例では、1枚のテーブルが1コンポーネントの監視値を格納しており、それがコンポーネント別に生成されている。しかし、性能情報123及び監視情報の格納形態としてはこれ以外であってもよい。例えば、監視項目、取得時間、監視値をセットとして監視値の履歴が格納されれば、1システムコンポーネントの監視値を1つのテーブルにまとめることが可能である。他の例としては、システムコンポーネントID、監視項目、取得時間、監視値をセットとして監視値の履歴が格納されれば、全システムコンポーネントの監視値を1つのテーブルにまとめることが可能である。反対に、項目毎に、テーブルがまとめられてもよい。
<<障害情報>>
図6は、障害情報124を示した図である。障害情報は、どのシステムコンポーネントで障害が発生したのかを最低限示せればよいが、図では、障害発生時刻、障害ステータスもあわせて格納している。なお、障害情報は構成情報と統合して格納されている場合もある。
<<リクエスト管理情報>>
図7は、リクエスト管理情報126を示した図である。本情報は、クライアントからフロントエンド側のシステムコンポーネントへ送信されたリクエスト(以後、フロントエンドリクエストと呼ぶ))の数及びその健全性を示すステータスと、フロントエンドリクエストが枝分かれしてどのバックエンド側のシステムコンポーネントにリクエスト(以後、バックエンドリクエストと呼ぶ)がどの程度の数が送信されているのかを示す。そして、図7の例では、顧客毎にフロントエンドリクエストの健全性を判断している想定であるため、枝分かれも顧客毎に管理されている。なお、健全性の判断は、これ以外にも「全リクエスト中、所定の基準を超えて異常と判断したリクエストの割合」といった管理でもよく、その場合は、図7の顧客を識別するクライアントIDは不要になる。なお、以後は、図7の例に従った顧客毎の健全性判断の場合について説明する。
リクエスト管理情報126は上記内容を示すために、以下を行として格納する。
(1) フロントエンド側のシステムコンポーネント(送信先コンポーネントIDで示される)が受信したフロントエンドリクエストの単位時間当たりの数、平均又は最大レスポンス時間、及び健全性の状態。これら値は、さらに顧客(クライアントIDで示される)毎に集計された値である。
(2) フロントエンド側又はバックエンド側のシステムコンポーネント(送信元コンポーネントIDで示される)を送信元とし、バックエンド側のシステムコンポーネント(送信先コンポーネントIDで示される)を送信先として送信されたバックエンドリクエストの単位時間当たりの数。(1)と同様に、この数は、顧客(クライアントIDで示される)毎に集計された値である。
なお、状態カラムには、フロントエンドリクエストの数又はレスポンス時間を、所定の判断基準(典型的にはSLA)に従って健全性を判断した結果が記憶される。また、健全性を判断する所定の判断基準としては、例えば以下が考えられる。
* レスポンス時間が管理者が設定した1以上の閾値と比較される。例えば、SLAに記載のレスポンス時間を第1の閾値として、レスポンス時間が第1の閾値を超えた場合は、状態は「違反」とされ、SLA記載のレスポンス時間の80%を第2の閾値として、レスポンス時間が第2の閾値を超えた場合は、状態は「注意」とされる、といったことが考えられる。
* ベースライン監視が採用され、過去のレスポンス時間と現在のレスポンス時間が比較され、それらが一定程度以上異なっていたら、状態は「異常」とされる。
しかし、所定の判断基準はこれ以外であってもよい。
なお、リクエスト管理情報126の管理対象であるリクエストは、システムコンポーネントが受信する全てのリクエストでもよいが、所定の条件を満たすリクエストでってもよい。所定の条件(つまりフィルタリング条件)は管理者が入力してもよい。所定の条件の一例としては、リクエストの種類や、リクエストの引数や、データ長(データ転送に係るリクエストの場合)が、についての条件がある。
<<異常状態リクエスト情報>>
図8は、リクエスト管理情報126から生成される、異常状態リクエスト情報を示した図である。本情報は、図7から以下の(3)又は(4)の条件を満たす行を抽出して格納する。
(3) 状態が所定の状態(例えば異常や違反)と判断されたフロントエンドリクエストに関する行。
(4)(3)を満たすフロントエンドリクエストから枝分かれしたバックエンドリクエストに関する行。
なお、「リクエストの枝分かれ」とは、受信したリクエストを1以上のシステムコンポーネントに転送すること、及び、受信したリクエストに基づいて作成した新たなリクエストを1以上のシステムコンポーネントに送信すること、の少なくとも一方を指す。
<<相関分析結果情報>>
図9は、相関分析結果情報を示した図である。本情報は、上記(3)に記載のフロントエンドリクエストから枝分かれしたバックエンドリクエストの送信先のシステムコンポーネントと、前述の所定の状態の判断基準となったリクエストの数またはレスポンス時間との相関性の高い監視項目を示す。なお、こうした相関性判断は、管理プログラム121の相関分析部121Cで処理される。
<管理プログラムの画面表示>
次に、管理プログラムの画面表示を、図10A乃至図10Eを用いて説明する。
<<基本のトポロジ表示>>
図10Aは、管理プログラムによって、入出力デバイス240へ表示されたトポロジ表示画面を示した図である。トポロジ表示画面は以下を含む。
* システムコンポーネントを表した表示オブジェクト(システム表示オブジェクトと呼ぶ)。システム表示オブジェクト内部には対応するシステムコンポーネントの監視値(より好ましくは監視値のグラフ)が表示される。なお、このグラフに表示する監視値は、監視情報に格納された値である。図10Aの例では、監視値として、CPU負荷のグラフが示されている。
* システム表示オブジェクト間、または、システム表示オブジェクトと後述する湧出エリアとの間に表示される帯。なお、この帯を表示するために、リクエスト管理情報と異常状態リクエスト情報が参照される。
* 管理対象システムの外部をイメージするための湧出エリア。図10Aでは湧出エリアは左側の「User」の下の表示領域である。なお、図10Aのように、湧出エリアは、特に表示オブジェクトを表示しなくてもよいが、それは必須ではない。
* システム表示オブジェクト中の表示中のグラフがどの監視項目に対するものかを示す表示(図中の右下のバー)。
* (オプション)システムコンポーネントに障害が発生していることを表す表示オブジェクト(障害表示オブジェクトと呼ぶ)。図10Aでは、VM11とIDが表示されたシステム表示オブジェクトの「×」印が障害表示オブジェクトである。なお、障害表示オブジェクトを表示するために、障害情報125が参照される。
<<<システム表示オブジェクトの配置>>>
図10Aの例では、トポロジ表示領域をグリッド状に分割し、グリッドのカラム毎に決められたカテゴリのシステム表示オブジェクトを配置している。これによって管理対象システムの外部からのリクエストが左側にあるシステム表示オブジェクトから順次処理されているイメージを管理者に与えることができる。また、あるカテゴリに属するシステム表示オブジェクトを探す場合に、管理者は該当するカラム上で視線を上下すれば目的とするシステム表示オブジェクトを発見できる。
なお、カラム及び行へのシステム表示オブジェクトの配置に際して、表示する帯が重なるなどして視認性が低下しないように当該配置基準を定めてもよい。
<<<リクエストを表す帯と代替方法について>>>
図10Aの例では、リクエストの数を視覚的に表すために、管理プログラムは、リクエストの数に基づいて帯の幅を決定し、決定された幅を有する帯を表示する。さらに、管理プログラムは、違反や注意状態等の正常でないリクエストを視覚的に表すために、帯の一部の色を変更して表示する(図10Aでは、色の違いはハッチングの違いで表されている)。色の異なる帯の割合によって、管理者は、正常でないリクエストの数を視覚的に把握できる。特に入出力デバイス(又は表示用計算機)がトポロジ表示の拡大表示機能を持つ場合(例えばマウスのホイールに呼応したズームイン・アウトや、タッチパネルでのピンチイン・ピンチアウト)、帯の幅も共に拡大表示されることから、より正確な視覚的把握が可能となる。
なお、より高い視覚的効果を出すために、帯の内部に、長辺方向の複数の線が表示されてもよい。このようにすることで、個々の線が1リクエストを表し、帯がそれを束ねたものというイメージを管理者に与えることができる。さらには、管理対象システムが外部からのリクエストを受信して処理していることをイメージ的に表すために、帯を湧出エリアから定期的に輝かせるような処理が実行されてもよい。
なお、リクエストの数を表現する別な方法として、帯に替えて線が表示され、線の色が、リクエスト数に従う色(リストエスト数によって異なる色)であってもよい。この方法でも、管理者は、リクエスト数を視覚的に把握できる。しかし入出力デバイスで表現できる色の数及び階調には限りがあり、またトポロジ表示の拡大をしたとしても視覚的把握の精度は上がらない。また、色つきの線では、リクエストの数と正常で無いリクエストの割合を同時に視覚的に認識させるのは困難である。
<<<トポロジ表示のメリット>>>
図10Aのトポロジ表示は、少なくとも以下のポイントを持つ。
(1)管理対象システムのトポロジ表示画面にて、従来は管理対象システムに含まれるシステムコンポーネントのアイコンが表示されていた領域に、システムコンポーネントの監視値のグラフが埋め込み表示される。
(2)システムコンポーネントを表すシステム表示オブジェクト間の関係表示として、所定の幅を持つ帯が表示される。なお、帯の幅は、システムコンポーネントが送受信したリクエストの数に基づいて決定される。
それにより、メリットとしては例えば以下がある。
(1)について:システムコンポーネントの監視値を見るための、管理対象システムのトポロジ表示からの視点移動距離が短い(場合によっては画面スクロール・ドラッグ操作量も)が少ない。このメリットがより顕著になる環境としては、(A)トポロジ表示が広大な場合、または(B)トポロジ表示を拡大・縮小しながら見る場合(例えばタッチパネルでのピンチイン・ピンチアウト、ドラッグ等の操作を使いながらトポロジ表示を見る)、である。こうした環境でトポロジ表示の外にグラフを表示してしまうと、広大なトポロジ表示から視線を外すために平均的に視線移動距離が長くなる。(B)の場合は、さらに画面操作を伴いながらトポロジ表示の外にあるグラフを見る必要がある。
(2)について:管理者は、トポロジ表示を確認しながら、所定のシステムコンポーネントが受信又は送信するリクエスト数を把握できるため、視点移動距離が短い(場合によっては画面スクロール・ドラッグ操作量も少ない)。
(1)と(2)の組み合わせについて:トポロジ表示内の所定のシステムコンポーネントのグラフ近傍を見れば、帯の太さで当該システムコンポーネントが送受信するリクエストの数が把握できるため、監視値に影響を与えているリクエストの送信元又は送信先を把握できてしまう。例えば、図10AのVM11のシステム表示オブジェクトのグラフはCPU負荷が他と比較して高いことを示しているが、そのわずか周辺を見ただけでも帯の幅によってVM11が受信したリクエストの多さを視認できる。また、わずか周辺を見ただけで帯の色を見ることができ、その結果どの程度のリクエストにCPU高負荷の影響が出ているのか視認できる。さらに視野を隣接するシステム表示オブジェクトに広げればその原因がどこからの(またはどこ宛の)リクエストか認識でき、場合によっては隣接のシステム表示オブジェクトのグラフを確認することで更なる分析ができることもある。
<<他の監視項目に表示を切り替える場合>>
図10Bを用いて他の監視項目に表示を切り替える場合を説明する。図10Aのシステム表示オブジェクトによる監視値のグラフ表示方法では、グラフの表示面積が限られている。そのため、視認性を意識するとあまり多くの項目の監視値を1つのシステム監視オブジェクト中のグラフ表示領域に表示させるのは好ましく無い。その代替として、管理プログラムは、システム表示オブジェクトを円柱、多角柱、または板で表現し、それをアニメーションにより回転させることによって、別な監視項目のグラフ表示に切り替える。図10Bの例は、四角柱が回転され、そして回転軸は、画面と平行かつ画面を正面から見て真上方向に、設定がされた場合を示している。そして、管理プログラムは、四角柱の側面に切り替え前のグラフと切り替え後のグラフが張り付いているように見せている。
図10Bの上段は、グラフ表示が切り替わる前を表している。中段は、グラフ表示の項目が項目Aから項目Bに切り替わる途中状態を表している。下段は、グラフ表示が項目Bに切り替わった後を表している。
なお、柱又は板の形は、正多角柱(底面が正多角形な柱)であることが好ましい。また、切り替え中を除き、柱又は板の1面だけがいっときに表示されるように回転を制御することが好ましい。底面が正多角形でないと回転を止めたその時々でグラフの大きさが変わってしまうからである。また、いっときに2面以上を見せる状態で回転を停止してしまうと、個々のグラフの表示面積が小さくなり、視認性が下がってしまうからである。しかし、このような好適な条件を満たさない回転体を用いてグラフの切り替えが行われてもよい。また、図10Bの例では、多角柱を表すために、2点パース法を用いた立体表示手法が用いられたが、他の手法で立体感が表現されてもよく、また立体感の表現がされなくてもよい。
また、システム監視オブジェクトは、四角柱又は円柱であることが好ましい。四角柱又は円柱の場合、次の面を表示するのに90度回転で済むが、板の場合は180度回転が必要なため、余計なアニメーション処理時間及び処理性能を要することになるからである。また、円柱より四角柱の方が好ましく、その理由は、上下方向の回転も表現する際に、円柱では底面及び上面が円形となるため情報表現の整合性を保てなくなるためである。
また、このようなグラフ表示の切り替えの契機は、管理者による切り替え操作を入出力デバイス240で受信した契機のほか、管理プログラムが定期的にグラフ表示を切り替えるようにしてもよく、障害等の契機でグラフ表示が切り替えられてもよい。なお、管理プログラムがグラフ表示を自動的に切り替える場合は、管理者による操作によって自動的な切り替えが一時停止されてもよい。
<<システムコンポーネント関連情報の詳細表示>>
前述の通り、図10Aのシステム表示オブジェクトによる監視値のグラフ表示方法では、グラフの表示面積が限られている。そのため、視認性を意識するとあまり多くの項目の監視値を1つのシステム監視オブジェクト中のグラフ表示領域に表示させるのは好ましく無い。上記柱又は板を回転させることによるグラフ表示の切り替えや、トポロジ画面の拡大とは別な表示方法として、選択したシステム表示オブジェクトの表示領域を拡大する方法を紹介する。図10Cは、VM11のシステム表示オブジェクトを選択したことで、当該システム表示オブジェクトの表示領域が拡大し、また拡大後の領域にシステムコンポーネントの詳細情報を表示していることを示す図である。なお、詳細情報は、どのような情報でもよく、例えば、上記柱又は板で別なグラフであった監視値が1つのグラフに統合表示されたり、拡大前のグラフに表示していない情報が表示済みのグラフに追加されたり、または、情報が、拡大前のグラフに表示していない情報だけに差し替えられてもよい。
なお、拡大後のシステム表示オブジェクトにチェックボタンのような操作用の表示オブジェクトが配置され、当該オブジェクトの操作によってシステム表示オブジェクト内に表示する情報の種類が変更されてもよい。拡大後のシステム表示オブジェクト内であれば、こうした操作用の表示オブジェクトの表示サイズを入出力デバイス240を用いて操作しやすいサイズで配置することもできる。
なお、拡大対象となるシステム表示オブジェクトは、入出力デバイス240を介した管理者の指定によって管理プログラムが選択することが考えられる。しかし、他の方法として、管理プログラムが何らかの判断基準で自動的に選択してもよい(例えば、最近障害が発生したシステムコンポーネントに対応するシステム表示オブジェクトを選択する、等)。
<<<システム表示オブジェクトの拡大方法>>>
これまで説明したとおり、システム表示オブジェクトはトポロジ表示の1表示オブジェクトとして表示されるため、トポロジ表示の視認性を低下させるのは好ましくない。また、拡大前後で大幅にトポロジ表示が変化してしまうと管理者が感じる違和感が大きくなってしまう。管理プログラムはこうした点をできるだけ回避するために、所定のシステム表示オブジェクトを拡大させる際にアニメーションによってトポロジ表示を変形させる。図10Dは、図10Bから図10Cのように拡大する際のアニメーションのさせ方について示した図である。アニメーションの特徴は以下の通りである。
* まず、選択されたシステム表示オブジェクトが、定められたサイズまで縦横とも拡大される。なお、拡大中心は、拡大前のシステム表示オブジェクトの中心である。しかし、このような拡大を行うと、隣接配置された他のシステム表示オブジェクトとの距離が縮まったり、場合によっては表示が重なったりする。その結果として選択されたシステム表示オブジェクトと隣接配置されたシステム表示オブジェクトとの間に表示された帯の長さが短くなったり、場合によっては隠れてしまったりする。また、表示が重なった場合は、他のシステム表示オブジェクトが隠れてしまうこともある。
* その対策として、管理プログラムは、こうした他のシステム表示オブジェクトを、選択したシステム表示オブジェクトのアニメーションと連動してアニメーションで移動させ、帯の表示領域の確保やシステム表示オブジェクトの重なりを回避する。他のシステム表示オブジェクトをアニメーションで移動させることで、管理者は、拡大後のトポロジ表示を拡大前のトポロジ表示と対応させながら認識することが容易になる。
なお、隣接配置されたシステム表示オブジェクトとは、拡大対象のシステム表示オブジェクトの拡大中心から所定の距離(拡大率に関係)に配置されたシステム表示オブジェクトであり、図10Dのグリッド状の配置では、少なくとも選択されたシステム表示オブジェクトが配置されたグリッド目の隣(上下も斜めも含む)のグリッド目である。
図10Dの例では、VM11のシステム表示オブジェクトの拡大に伴い、Webサーバカラム、Appサーバカラムに配置されたシステム表示オブジェクトは左に移動し、VM11と同じカラムの上に位置するVM10のシステム表示オブジェクトは上に移動している。なお、選択されたシステム表示オブジェクトから斜めに隣接するシステム表示オブジェクトについては、図10Dでは横への移動のみとしているが、上下の移動を伴うことでグリッド形状を維持してもよい。
また、このアニメーションによって他のシステム表示オブジェクトの表示サイズは変わらない。しかし、管理プログラムは、隣接するシステム表示オブジェクトの表示サイズを若干拡大し、選択対象のシステム表示オブジェクトへ向けて少しづつ表示サイズが拡大しているように表現してもよい。
なお、他のシステム表示オブジェクトの移動による表示処理の負荷が高い、等の理由がある場合は、他のシステム表示オブジェクトの移動を省略してもよい。
<<<さらなる詳細表示をする場合>>>
拡大表示後の詳細表示からシステムコンポーネントのログ情報等、表示に大きな領域を使う情報の場合、システム表示オブジェクト中に表示させようとすると、トポロジ表示の形状が拡大前と比較して変形しすぎてしまう。そのため、こうした場合は図10Eに示すように、表示済みのトポロジ表示上にさらなる詳細表示領域を作成し、表示する。
図10Eは、さらなる詳細表示の例として、拡大後のシステム表示オブジェクトのグラフ線を選択することで、選択したグラフ線の監視項目を用いたSLAレポート表示を上重ね表示させた場合を示している。
ところで、SLAレポート表示は少なくとも以下の特徴を持つ表示である。
* グラフは時系列グラフである。
* 時系列グラフには後ほど説明する健全性を示すアイコンの表示基準となる時間を指定するための縦棒が表示されている。
* 縦棒で指定された時間を対象に既に説明済みの基準に基づいて管理対象システムの健全性を判断し、その結果をアイコンで表示する。なお、アイコン表示は縦棒の操作と同期して更新される。また、将来の時間を縦棒で示された場合は予測した健全性に基づいてアイコンを表示する。
図10Eの例では、縦棒がグラフの左側に位置する場合は「晴れ」、つまり正常をイメージするアイコンが表示されており、縦棒が操作されることでグラフの中程に位置すると「雷」、つまりSLA違反が発生していることをイメージするアイコンが表示されている。なお、こうしたアイコンのほかの例としては顔アイコン等もあるが、健全性を表現できるのであれば他の種類のアイコンでもよい。
以上、管理プログラムによる表示について説明した。その一部についてはフローで詳細を説明するが、その他の部分についてもこれら表示が管理プログラムの処理によって為されていることは言うまでもない。
<管理プログラムの処理フロー>
以下に管理プログラムによる各種表示処理のフローを説明する。
<<トポロジ表示処理>>
図11は、管理プログラムによるトポロジ表示処理のフローを示した図である。なお、本処理は管理者によってトポロジ表示が要求されたときに実行される。以下にフロー中の各ステップを説明する。
(S101)管理プログラムは、ローカル変数であるコンポーネント行位置変数を1に初期化する。なお、本変数はカラム数と同数だけ存在し、図10の場合は3つ(つまりWebサーバカラム用、Appサーバカラム用、DBサーバカラム用)である。なお、以後の図、説明ではシステムコンポーネントを単に「コンポーネント」と呼ぶことがある。
(S102)管理プログラムは、システムコンポーネント情報122から全てのシステムコンポーネントの情報を取得する。
(S103)管理プログラムは、S102で取得したシステムコンポーネントの各々(S103システムコンポーネントと便宜上呼ぶ)について、それぞれS104乃至S110を実行する。
(S104)管理プログラムは、性能情報124を参照し、S103システムコンポーネントの性能値(ただし全項目分)を取得する。
(S105)管理プログラムは、S103システムコンポーネントのカテゴリを確認し、レイアウト先カラムを決定する。
(S106)管理プログラムは、立方体(すなわち四角柱)回転によるグラフ表示切替に備えるため、レイアウト先カラムのコンポーネント行位置変数の位置に、S104で取得した性能値のグラフを全項目分表示しておく。なお、この時点での表示結果は入出力デバイスに表示させなくてよい、内部的な表示である。
(S107)管理プログラムは、内部表示したグラフから、最初に表示させたい項目の性能値グラフ(今回は1に対応するCPU負荷のグラフ)を入出力デバイスに表示させ、さらにS103システムコンポーネントの名前を表示する。
(S108)管理プログラムは、システムコンポーネント情報122のS103システムコンポーネントの表示位置に、レイアウト先カラム対応のコンポーネント行位置変数の値を格納する。
(S109)管理プログラムは、システムコンポーネント情報122のS103システムコンポーネントの表示画面番号に初期値である1を格納する。
(S110)管理プログラムは、レイアウト先カラム対応のコンポーネント行位置変数を1加算する。
(S111)管理プログラムは、帯を表示する。なお、本処理の詳細の内、帯全体の表示処理については図12で説明し、図12の後に実行される、正常でないリクエストを表すための帯表示処理については、図13で説明する。
なお、上記処理は、システムコンポーネントの増加、減少を検知した場合に実行してもよい。なお、性能情報124に新しい時間の値が追加格納された場合は、S102、S103、S106、及びS107を再実行してもよい。
<<<帯表示処理>>>
図12は、管理プログラムによる帯表示処理のフローを示した図である。以下、フローに沿って説明する。
(S201)管理プログラムは、リクエスト管理情報126を参照し、各行の送信元コンポーネントID、送信先コンポーネントID、リクエスト数を取得する。
(S202)管理プログラムは、一時的に表示状態を管理するための表示状態リストを記憶資源に作成する。なお、作成時はリストには何も入っていない。
(S203)管理プログラムは、S201で取得した各行(S201行と便宜上呼ぶ)に対して、S204乃至S212の処理を繰り返す。
(S204)管理プログラムは、S201行の送信元コンポーネントIDと送信先コンポーネントIDのペアが表示状態リスト内に無いか有るかを判断する。そして、有る場合は、現在のS201行に対するS205乃至S212の処理をスキップする。もし無い場合は、S205を実行する。
(S205)管理プログラムは、リクエスト管理情報126の行であって、S201行の送信元コンポーネントIDと送信先コンポーネントIDのペアが同じ行を選択し、リクエスト数の合計値を算出する。なお、この合計値にはS201行のリクエスト数も含まれている。
(S206)管理プログラムは、S205で計算した合計値に基づいて表示する帯の幅を決定する。なお、幅を決める算出式としては「幅=システム表示オブジェクトの直径*係数*合計値/最大値」という式が考えられるが他の式であってもよい。例えば、管理プログラムは、log関数を用いたりしてもよい。また、最大値は、管理者が設定した値であってもよい。
(S207)管理プログラムは、S201行に記載の送信元コンポーネントIDに対応するシステムコンポーネント情報の中のカテゴリと表示位置から、送信元コンポーネントに対応するシステム表示オブジェクトの表示位置を取得し、帯の表示開始位置とする。
(S208)管理プログラムは、S201行に記載の送信先コンポーネントIDに対応するシステムコンポーネント情報の中のカテゴリと表示位置から、送信先コンポーネントに対応するシステム表示オブジェクトの表示位置を取得し、帯の表示終了位置とする。
(S209、S210)管理プログラムは、S201行に記載のリクエストがフロントエンドリクエストか否か判断し、フロントエンドリクエストの場合は帯の表示開始位置を湧出エリア内に設定する。なお、フロントエンドリクエストか否かの判断は、S201行の送信元コンポーネントIDがNULLかIDが格納されているか否かで判断できる。さらに帯の表示開始位置を湧出エリア内にする点は、具体的には帯の表示終了位置から水平方向に移動した湧出エリア内の特定位置にすることが考えられる。
(S211)管理プログラムは、S207乃至S208で求めた位置に、S206で決定した幅を持つ帯を表示する。
(S212)管理プログラムは、前述の表示状態リストに送信元コンポーネントIDと送信先コンポーネントIDのペアを追加する。
<<<異常帯表示処理>>>
図13は、管理プログラムによる異常状態のリクエストを表す帯の表示処理フローを示した図である。以下、フローに沿って説明する。
(S304)管理プログラムは、リクエスト管理情報126の状態が異常とされた行を全て取得する。
(S305)管理プログラムは、S304で取得した行のクライアントIDを持つ全ての行を取得する。
(S306)管理プログラムは、S304とS305で取得した行を異常状態リクエスト情報に保存する。
(S307)管理プログラムは、図12の処理を実行する。ただし、「リクエスト管理情報」は「異常状態リクエスト情報」と読み替え、「表示状態リスト」は、「異常状態表示リスト」と読み替える。
<<監視値項目の切り替え処理>>
次にシステム表示オブジェクトの性能値グラフの項目を切り替える処理について説明する。
<<<全てのシステム表示オブジェクトの切り替え>>>
図14は、トポロジ表示に含まれる全てのシステム表示オブジェクトの性能値グラフの切り替え処理フローを示した図である。以下、フローに沿って説明する。
(S401)管理プログラムは、入出力デバイス240を介して、管理者からのグラフ切り替え操作を受信する。
(S402)管理プログラムは、システムコンポーネント情報122に含まれる全てのシステムコンポーネントの各々(S402システムコンポーネントと便宜上呼ぶ)について、S403乃至S409を実行する。
(S403)管理プログラムは、システムコンポーネント情報122のS402システムコンポーネントの現在の表示画面番号を取得する。
(S404)管理プログラムは、現在の表示番号に1加算した値を次画面番号に設定する。
(S405、S406)管理プログラムは、次画面番号が画面定義情報123の表示画面番号数の最大値より大きいと判断した場合に、次画面番号を1に設定しなおす。
(S407)管理プログラムは、画面定義情報123を参照し、次画面番号の画面情報を次画面情報として取得する。
(S408)管理プログラムは、システム表示オブジェクトの現在表示中の性能値グラフを立方体の正面とし、次画面情報に対応する性能値グラフを立方体の側面とし、立方体が回転して側面が正面に表示されるアニメーションを表示する。
(S409)管理プログラムは、システムコンポーネント情報122の表示画面番号を次画面番号に更新する。
<<<その他のシステム表示オブジェクトの切り替え方法>>>
なお、システム表示オブジェクトは必ずしも全てのシステム表示オブジェクトを切り替える必要が無い。例えば、図13で表示させた異常状態のリクエストを表す帯に関連したシステム表示オブジェクトに限定した切り替えを行ってもよい。さらに、切り替え先となるグラフの項目についても全オブジェクトで同じ項目にする必要は無く、それぞれの性能値グラフを相関分析結果情報の関連監視項目に記載の項目に切り替えてもよい。相関分析結果情報には相関性の高い監視項目が登録されているため、このような切り替えをすることでシステムコンポーネントに跨った問題解決の支援をすることができる。
<システムコンポーネント関連情報の詳細表示処理>
図15A乃至図15Cは、図10C及び図10Dで説明したシステムコンポーネント関連情報の詳細表示処理フローを示した図である。以下、フローに沿って説明する。
(S701)管理プログラムは、入出力デバイス240を介して、管理者からの拡大操作を受信する。
(S702)管理プログラムは、受信した拡大操作から、拡大対象のシステムコンポーネント(以後拡大コンポーネントと呼ぶ)を特定する。
(S703)管理プログラムは、一時的に位置変更コンポーネントを管理するための位置変更コンポーネントリストを記憶資源に作成する。
(S704)管理プログラムは、システムコンポーネント情報122から、拡大コンポーネントのカテゴリと表示位置を取得する(以後これらを拡大コンポーネント構成情報と呼ぶ)。
(S705)管理プログラムは、拡大コンポーネントに対応するシステム表示オブジェクト(以後、拡大システム表示オブジェクトと呼ぶ)を上下左右方向に拡大して表示し、内部のグラフもその大きさに合わせて再表示する。
(S706)管理プログラムは、位置変更コンポーネントリストに拡大コンポーネントのコンポーネントIDと変更後位置情報を追加する。
(S707)管理プログラムは、拡大システム表示オブジェクトに隣接してかつ真上に位置するシステム表示オブジェクトを取得する。
(S708、S709、S710)S707に該当するオブジェクトが存在する場合、管理プログラムは、該当オブジェクトの表示位置を現在より上側に変更する。そして、位置変更コンポーネントリストに該当オブジェクトに対応するコンポーネントIDと変更後位置情報を追加する。
(S711)管理プログラムは、拡大システム表示オブジェクトに隣接してかつ真下に位置するシステム表示オブジェクトを取得する。
(S712、S713、S714)S711に該当するオブジェクトが存在する場合、管理プログラムは、該当オブジェクトの表示位置を現在より下側に変更する。そして、管理プログラムは、位置変更コンポーネントリストに該当オブジェクトに対応するコンポーネントIDと変更後位置情報を追加する。
(S715)管理プログラムは、拡大システム表示オブジェクトに隣接してかつ真左、左上、又は左下に位置するシステム表示オブジェクトを取得する。
(S716、S717、S718)S715に該当するオブジェクト各々について、管理プログラムは、該当オブジェクトの表示位置を現在より左側に変更する。そして、管理プログラムは、位置変更コンポーネントリストに該当オブジェクトに対応するコンポーネントIDと変更後位置情報を追加する。
(S719)管理プログラムは、拡大システム表示オブジェクトに隣接してかつ真右、右上、又は右下に位置するシステム表示オブジェクトを取得する。
(S720、S721、S722)S719に該当するオブジェクト各々について、管理プログラムは、該当オブジェクトの表示位置を現在より右側に変更する。そして、管理プログラムは、位置変更コンポーネントリストに該当オブジェクトに対応するコンポーネントIDと変更後位置情報を追加する。
(S723)管理プログラムは、図12及び図13の処理を実行することで帯を再表示する。ただし、各システム表示オブジェクトの表示位置は、位置変更コンポーネントリストに存在するコンポーネントの場合はその位置情報を優先して用いる。
以上が本実施例の説明である。なお、本実施例のトポロジ表示は画面全体に表示されてもよく、また画面の一部に表示されていてもよい。さらに、本実施例のトポロジ表示の外に特許文献1のようなグラフを表示させてもよい。さらには、トポロジ表示の中で表示されているグラフをグリップ等で選択し、トポロジ表示外部のグラフ領域にリリースすることでグラフ表示を行ってもよい。