以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る管理装置の構成例および処理例を示す図である。図1に示す管理装置1は、記憶部2と処理部3を有する。記憶部2は、例えば、管理装置1が備える図示しない記憶装置の記憶領域として実現される。処理部3は、例えば、管理装置1が備える図示しないプロセッサとして実現される。
この管理装置1は、複数の機器を管理する。管理対象の複数の機器は、例えば、サーバ装置などのコンピュータや、スイッチなどの通信機器である。管理対象の機器の1つは、管理対象の他の少なくとも1つの機器との間で通信できるようになっている。図1では、管理対象の機器として機器11~14が例示されている。
処理部3は、機器11~14のそれぞれから、管理対象の他の機器との間で実行された通信処理の履歴に基づく情報を収集して、記憶部2に格納する。例えば、機器11~14のそれぞれは、他の機器との間で実行された通信処理の履歴に基づいて、同じ通信相手との間で同じ時間間隔で実行された同じ種類の通信処理を示す通信処理情報21を作成する。処理部3は、上記の履歴に基づく情報として、通信処理情報21を機器11~14のそれぞれから収集して、記憶部2に格納する。
処理部3は、収集された情報(図1では通信処理情報21)に基づいて、同じ種類の通信処理が同じ時間間隔で実行された1組以上の通信元および通信先の機器のペアをまとめてグループを作成する。例えば図1では、記憶部2に格納された通信処理情報21に基づき、次のような通信処理31,32が抽出されたとする。
通信処理31は、通信元が機器A(機器11)、通信先が機器B(機器12)、処理種別がP1、実行間隔が1時間の処理である。通信処理32は、通信元が機器D(機器14)、通信先が機器B(機器12)、処理種別がP1、実行間隔が1時間の処理である。このような通信処理31,32の間では、処理種別が同じで処理の種類が同じと考えられ、なおかつ実行間隔が同じであることから、処理部3は、通信処理31における機器A,Bのペアと、通信処理32における機器D,Bのペアとをグループ化する。
なお、処理種別は、例えば、実行されるプログラム名やプロセス名、使用されるプロトコル名などに基づく情報であり、通信処理の種類を示す。例えば通信処理31,32の間では、処理種別が同一の場合だけでなく、処理種別が類似または関連する場合でも、処理の種類が同じと判定されてもよい。
また、グループ化の判断には、処理の種類および実行間隔の他に、例えば使用ポート番号が用いられてもよい。
処理部3は、以上の処理によって作成されたグループに含まれる機器A,B,Dの情報を表示する表示情報41を出力する。表示情報41は、図示しない表示装置に表示されて、管理者によって閲覧される。
以上の管理装置1によれば、保守作業の確実性を高めるための情報を提示できる。例えば、グループに含まれる機器A,B,Dでは、同じ種類の通信処理が同じ時間間隔で実行されるので、互いの関連性や依存性が高いと推定される。例えば、機器A,B,Dのいずれかの動作を停止させる場合には、他の機器の動作も停止させないと、他の機器において異常が発生する可能性が高まる。あるいは、機器A,B,Dのいずれかにおいてプログラムを更新する場合には、他の機器でもプログラムを更新しないと、他の機器において異常が発生する可能性が高まる。
ここで、単にある機器と別の機器との間で通信が行われていたというだけでは、それらの機器間の関連性や依存性が高いとは言えない。管理装置1は、処理種別と実行間隔とに基づいてグループ化を行うことで、保守作業の際に何らかの対処をしないと異常が発生しやすいという、関連性や依存度が高い機器群を高精度に推定できる。
したがって、管理者は、表示情報41を閲覧することで、機器A,B,Dの中では保守作業の影響が大きい可能性が高いと判断できる。例えば、管理者は、機器Aの動作を停止させる際に、表示情報41を閲覧することで、機器B,Dの動作も停止させた方がよいと判断できる。あるいは、管理者は、機器Aのプログラムを更新する際に、表示情報41を閲覧することで、機器B,Dのプログラムを更新した方がよいと判断できる。このように、表示情報41が管理者に提示されることで、管理者による保守作業の確実性を高めることができる。
〔第2の実施の形態〕
次に、第2の実施の形態として、データセンタにおけるノード管理について説明する。
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。図2に示す情報処理システム100は、データセンタに配置される各種の情報処理機器を含むシステムであり、ノード管理装置101と、ノード管理装置101による管理対象となるノードN1,N2,N3,N4,・・・と、ノード管理装置101に接続された管理者端末102を備える。
ノード管理装置101は、ネットワーク103を介して接続されたノードN1,N2,N3,N4,・・・を管理する。管理者端末102は、N1,N2,N3,N4,・・・を管理する管理者によって操作される端末装置である。
管理対象のノードN1,N2,N3,N4,・・・のそれぞれは、サーバ装置、通信機器(ネットワーク関連機器)などの情報処理機器である。例えば、サーバ装置としては、Webサーバ、アプリケーションサーバ、データベースサーバ、ストレージ制御サーバなどを適用可能である。通信機器としては、スイッチ、ルータなどを適用可能である。ノードN1,N2,N3,N4,・・・のそれぞれは、管理対象の他のノードの少なくとも1つとネットワークを介して接続されている。
なお、ノード管理装置101とノードN1,N2,N3,N4,・・・とを接続するネットワーク103は、ノード間の通信が行われるネットワークと同一であってもよいし、このようなネットワークとは別に管理専用に設けられたものであってもよい。
ノードN1,N2,N3,N4,・・・のそれぞれには、実行された通信処理の履歴を収集してノード管理装置101に送信する機能が設けられている。ノード管理装置101は、各ノードから収集された情報に基づいて、ノードの相互関係を可視化する。特に、本実施の形態では、ノード管理装置101は、通信におけるプロセス名や使用ポート、通信先、通信の周期性などに基づいて、保守作業の際に大きな影響が及び得るノードの組み合わせをグループ化する。そして、ノード管理装置101は、グループの情報をノードの属性情報とともに管理者端末102に表示させる。また、ノード管理装置101は、グループの情報の表示の際に、形成されたグループの構成と、過去に形成されたグループの構成との差分を示すこともできる。このような処理により、ノードの管理者による管理作業を効率化し、正確化する。
図3は、ノード管理装置のハードウェア構成例を示す図である。ノード管理装置101は、例えば、図3に示すようなコンピュータとして実現される。
図3に示すノード管理装置101は、プロセッサ111、RAM(Random Access Memory)112、HDD(Hard Disk Drive)113、グラフィックインタフェース(I/F)114、入力インタフェース(I/F)115、読み取り装置116および通信インタフェース(I/F)117を備える。
プロセッサ111は、ノード管理装置101全体を統括的に制御する。プロセッサ111は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ111は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM112は、ノード管理装置101の主記憶装置として使用される。RAM112には、プロセッサ111に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM112には、プロセッサ111による処理に必要な各種データが格納される。
HDD113は、ノード管理装置101の補助記憶装置として使用される。HDD113には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィックインタフェース114には、表示装置114aが接続されている。グラフィックインタフェース114は、プロセッサ111からの命令にしたがって、画像を表示装置114aに表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース115には、入力装置115aが接続されている。入力インタフェース115は、入力装置115aから出力される信号をプロセッサ111に送信する。入力装置115aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置116には、可搬型記録媒体116aが脱着される。読み取り装置116は、可搬型記録媒体116aに記録されたデータを読み取ってプロセッサ111に送信する。可搬型記録媒体116aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース117は、ネットワーク103を介してノードN1~N6などの他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、ノード管理装置101の処理機能を実現することができる。なお、管理対象のノードも、例えば、図3に示すような構成のコンピュータとして実現可能である。ノードは、例えば、プロセッサを備え、プロセッサがアプリケーションプログラムやファームウェアを実行することで各種の処理を実行可能な構成を有している。
次に、図4は、資産情報リストの作成についての比較例を示す図である。
情報処理システム100の管理者は、例えば、システム内の情報処理機器(ノード)に関する情報が登録された資産情報リスト121を用いて、これらの情報処理機器を管理することができる。図4では、管理対象のノードN1~N6に関する情報が登録された資産情報リスト121を例示している。資産情報リスト121には、各ノードを識別するノード名に対して、ノードのIP(Internet Protocol)アドレス、ノードのシリアル番号、機能・用途が対応付けて登録されている。これらのうち、機能・用途は、例えば、ノードの主たる役割や処理内容を示す情報であり、例えば、主たるプログラム名、プロセス名、OS名、使用されるプロトコルなどに基づく情報である。
管理者は、例えば、資産情報リスト121を管理者端末102に表示させ、その表示内容を参照しながら、情報処理システム100の保守作業を行うことができる。例えば、管理者は、資産情報リスト121を参照して作業対象のノードの情報を確認することで、ノードの機能・用途等に応じた適切な作業を行うことができる。
また、あるノードの保守作業を行う際に、保守作業の影響が他のノードにも及ぶ場合がある。このため、管理者は、保守作業の影響が及ぶ範囲を判定する必要がある。例えば、ノードN1とノードN3,N5との間で通信が行われている状況で、ノードN1の保守作業を行う場合には、ノードN3,N5がノードN1と通信できなくなるので、保守作業の影響がノードN3,N5にも及ぶと言える。この場合、管理者は、ノードN1だけでなくノードN3,N5の動作も停止させて、ノードN1の保守作業を行う必要がある。また、ノードN1に対する作業内容によっては、ノードN3,N5に対しても何らかの作業を行う必要が生じる場合もある。
管理者は、例えば、資産情報リスト121の機能・用途の内容を参照することで、保守作業の影響が及ぶ範囲を特定できる場合がある。例えば、機能・用途の内容が同じノードが、影響が及ぶ範囲に属すると判定される。
このような資産情報リスト121は、例えば、管理者端末102を用いた管理者の操作によって作成され、更新される。管理者は、例えば、ノードの増設や入れ替え、廃却などに伴って、管理者端末102を操作して資産情報リスト121の内容を更新する。しかしながら、データセンタの大規模化に伴い、管理対象のノード(情報処理機器)の台数は増加する傾向にある。管理対象のノード数が膨大な数になると、上記のように管理者の手作業で資産情報リスト121を更新する作業は煩雑になり、更新作業の間違いが発生しやすくなる。
例えば、資産情報リスト121の更新内容に間違いが生じた場合、保守作業の影響が及ぶ範囲を正確に特定できなくなる。その結果、管理者が保守作業を正しく行うことができず、保守作業後にシステムの動作に異常が生じてしまう場合がある。また、管理者は、保守作業後に障害が発生した場合に、資産情報リスト121を参照して、保守作業前後で内容に差異が生じているかを確認する場合がある。これは、内容の差異が障害の発生原因に関係している場合があるからである。しかし、資産情報リスト121の更新内容に間違いが生じた場合、管理者は、保守作業前後での資産情報リスト121の内容の差異を正確に確認できなくなり、障害発生原因のための有用な情報を得られなくなる。
また、上記の資産情報リスト121を基に表示される内容だけでは、保守作業のために参照される情報の内容としては十分とは言えない。例えば、資産情報リスト121に機能・用途が登録されるだけでは、保守作業の影響が及ぶ範囲の特定や、保守作業後の障害発生原因の究明のために十分な情報とは言えない。このため、保守作業のためにより有用な情報を管理者に提示できるようにすることが望まれる。
さらに、システムがその外見からは正しく動作しているように見えるが、実際には異常が発生している場合もある。例えば、インストールするソフトウェアの種類やバージョンを間違えた場合でも、動作を継続できてしまう場合には、システムの利用者等によって具体的な処理の異常が発見されるまで、管理者が異常に気付かない場合がある。このため、このようなケースにおいても異常に気付けるような有用な情報を管理者に提示できることが望まれる。
そこで、本実施の形態では、管理対象の各ノードに、ノードが実行した通信処理内容(履歴)を定期的に収集する機能が設けられ、この収集機能によって収集された情報がノード管理装置101に送信される。ノード管理装置101は、収集された情報を用い、通信におけるプロセス名や使用ポート、通信先、通信の周期性などに基づいて、保守作業の影響が及び得るノードの組み合わせをグループ化する。このような処理により、ノード管理装置101は、ノードの構成に変化があった場合でも、保守作業の影響が及び得る範囲を正確に特定し、特定された範囲に属するノードを管理者に提示できる。
また、ノード管理装置101は、あるタイミングで特定されたグループの情報と、それ以前に特定されたグループの情報とを比較して、その差分を示す情報をグループの情報とともに管理者端末102に表示させる。これにより、保守作業の効率や正確性を向上させるために有用な情報を管理者に提示できるようになる。
図5は、ノードおよびノード管理装置が備える処理機能の構成例を示す図である。
ノードN1は、OS201、データ収集部202、データ解析部203、データ送信部204、収集データ記憶部210、分類済みデータ記憶部220および解析済みデータ記憶部230を備えている。
OS201の処理は、ノードN1が備える図示しないプロセッサがOSプログラムを実行することで実現される。データ収集部202、データ解析部203およびデータ送信部204の処理は、ノードN1が備える図示しないプロセッサが所定のアプリケーションプログラムまたはファームウェアプログラムを実行することで実現される。収集データ記憶部210、分類済みデータ記憶部220および解析済みデータ記憶部230は、ノードN1が備える図示しない記憶装置の記憶領域として実現される。
なお、ノードN2,N3,・・・も、ノードN1と同様の処理機能を備えている。
ノード管理装置101は、データ収集部131、データ解析部132、管理表出力部133、機器リスト記憶部140、解析済みデータ記憶部150およびグループデータ記憶部160を備えている。
データ収集部131、データ解析部132および管理表出力部133の処理は、プロセッサ111が所定のプログラムを実行することで実現される。機器リスト記憶部140、解析済みデータ記憶部150およびグループデータ記憶部160は、RAM112、HDD113など、ノード管理装置101が備える記憶装置の記憶領域として実現される。
まず、ノードのOS201およびデータ収集部202の処理について説明する。OS201は、通信処理などのノードで実行されるプロセスを管理する。また、OS201は、通信状態を示す情報を出力する機能を備えている。データ収集部202は、OS201が備えるこの機能を用いて、ノードで実行された通信プロセスの内容を定期的に収集する。データ収集部202は、収集された情報を、収集データ記憶部210に記憶された収集データテーブルに登録する。
図6は、データ収集部によるデータ収集処理の一例を説明するための図である。
例えば、Windows(登録商標)やLinux(登録商標)では、netstatコマンドを用いることで、通信状態を示す情報を取得できる。図6に示す出力情報201aは、OS201がLinuxの場合において、データ収集部202がnetstatコマンドにより通信状態を示す情報を要求したときに、OS201からデータ収集部202に出力される情報の例である。
この出力情報201aは、コネクションごとのレコードを含み、各レコードは、Local Address、Foreign Address、State、PID/Program nameの各項目を含む。Local Addressの項目には、ローカルコンピュータ(ノード自身)のIPアドレスと使用ポートとが記述される。Foreign Addressの項目には、通信先(接続先)のIPアドレスと使用ポートのポート番号とが記述される。Stateの項目には、コネクションの状態が記述される。PID/Program nameの項目には、通信プロセスを識別するプロセスIDと、その通信プロセスを実行するためのプログラムを示すプログラム名が記述される。
一方、収集データ記憶部210に記憶される収集データテーブル211は、タイムスタンプ、通信元情報、通信先情報、通信状態、プロセス名の各項目を含む。
タイムスタンプは、データが収集された時刻を示す。通信元情報は、通信元(ノード自身)のIPアドレスと使用ポート(待ち受けポート)のポート番号とを示す。通信元情報の項目には、出力情報201aにおけるLocal Addressの項目に記述された情報が登録される。通信先情報は、通信先のIPアドレスと使用ポートのポート番号とを示す。通信先情報の項目には、出力情報201aにおけるForeign Addressの項目に記述された情報が登録される。
通信状態は、コネクションにおける通信の状態を示す。通信状態の項目には、出力情報201aにおけるStateの項目に記述された情報が登録される。プロセス名は、コネクションを用いた通信プロセスを識別するためのプロセスの名称を示す。プロセス名の項目には、出力情報201aにおけるPID/Program nameの項目に記述された情報が登録される。この情報は、通信元の機器で該当するコネクションを用いて実行されている通信プロセスを示す。
データ収集部202は、通信状態を示す情報を要求するコマンドを一定の時間間隔でOS201に周期的に発行して、その情報を収集し、収集した情報の内容を収集データテーブル211に蓄積していく。このようにして、データ収集部202は、ノードで実行された通信プロセスの内容(図6の例では通信状態が“ESTABLISHED”であるコネクションに関する情報)を定期的に収集し、蓄積することができる。
以下、データ収集部202によるデータ収集の実行周期(収集周期)をT1とし、単位時間“T1”の期間を「単位収集期間」と記載する。また、本実施の形態では、例として、T1=5秒とする。
図7は、データ収集の処理手順を示すフローチャートの例である。
[ステップS11]データ収集部202は、タイムスタンプ(現時点での時刻)を取得する。タイムスタンプは、5秒ごとに収集される情報を識別できるようにするために、秒単位の情報とされる。
[ステップS12]データ収集部202は、状態確認コマンド(例えば上記のnetstatコマンド)を実行して、OS201に対して通信状態を示す情報の出力を要求する。
[ステップS13]データ収集部202は、一定時間(ここではT1=5秒)待ち状態となる。
[ステップS14]データ収集部202は、直近の5秒における通信状態を示す情報をOS201から取得する。データ収集部202は、収集されたデータを、ステップS11で取得したタイムスタンプとともに収集データ記憶部210内の収集データテーブル211に登録する。図6に例示したように、収集データテーブル211には、通信状態を示す情報がコネクションごとに登録される。この後、処理がステップS11に進められる。
以上のように、ステップS11~S14の処理が1回実行されることで、直近の単位収集期間においてデータ収集部202により収集されたデータが収集データ記憶部210に蓄積される。ステップS11~S14の処理が繰り返し実行されることで、収集データ記憶部210には、単位収集期間ごとに収集されたデータが順次蓄積されていく。
次に、ノードのデータ解析部203およびデータ送信部204の処理について説明する。データ解析部203は、データ収集部202によって収集されて収集データ記憶部210に蓄積されたデータを解析し、解析結果を解析済みデータ記憶部230に格納する。この解析では、データ解析部203は、プロセス名、通信元および通信先のポート番号、通信先のIPアドレスに基づいて、実行された通信プロセスに関する情報を分類する。分類された情報群のそれぞれを示すデータは、分類済みデータファイルとして分類済みデータ記憶部220に一時的に格納される。データ解析部203は、分類済みデータ記憶部220に蓄積されたデータに基づいて、通信プロセスの実行の規則性を解析し、規則性のある通信プロセスの情報を解析済みデータ記憶部230に登録する。
ここで、図6、図7に示したように、データ収集部202により1回の単位収集期間に収集されたデータには、同じ時刻を示すタイムスタンプが付加される。したがって、収集周期T1は、データ解析部203によって通信プロセスの実行の規則性(周期性)を判定できる最小の周期となる。
一方、データ解析部203によって通信プロセスの実行の規則性を判定できる最大の周期(最大判定周期)をT2とすると、データ解析部203は、直近の時間“T2×2”以上の長さの期間にデータ収集部202によって収集されたデータを用いて、規則性の判定を行う。原理的にはT2はT1以上であればよいが、通信プロセスの実行の周期性を複数の異なる周期について判定できるようにするためには、T2はT1より大きな値に設定される。
以下の説明では、T1=5秒、T2=1日であるものとする。この場合、データ解析部203は、収集データ記憶部210に記憶された収集データのうち、直近の3日(≧T2×2)に収集されて記憶されたデータを用いて、通信プロセスの実行の規則性を解析する。
図8は、データ解析部によるデータ解析処理手順を示すフローチャートの例である。図8の処理は、T1以上の時間間隔で周期的に実行される。本実施の形態では、図8の処理は1日(24時間)ごとに実行されるものとする。
[ステップS21]データ解析部203は、収集データ記憶部210の収集データテーブル211に登録されたレコードの中から、タイムスタンプに基づき、直近の3日(72時間)の期間に登録されたレコードを特定する。さらに、データ解析部203は、特定されたレコードの中から、通信が実行されているレコードを抽出する。この処理では、例えば、通信状態が“ESTABLISHED”であるコネクションに関するレコードが抽出される。
[ステップS22]データ解析部203は、抽出されたレコードを、通信先情報に登録されたIPアドレスに基づいて分類する。これにより、通信先情報に登録された通信先のIPアドレスが同じであるレコードが同じグループに分類される。
[ステップS23]データ解析部203は、分類された各グループについて、グループ内のレコードを通信元情報および通信先情報に登録されたポート番号に基づいてさらに分類する。これにより、通信先のIPアドレスが同じで、なおかつ、通信元および通信先でそれぞれ用いられているポート番号も同じであるレコードが、同じグループに分類される。
なお、ポート番号については、通信元と通信先の一方のみが同じレコードがグループ化されてもよい。しかし、通信プロセスの種類が同じコネクションでは通信元と通信先のポート番号の組み合わせが同じになるので、上記のように、通信元および通信先でそれぞれ用いられているポート番号も同じであるレコードが同じグループに分類されることが望ましい。
[ステップS24]データ解析部203は、分類された各グループについて、グループ内のレコードをプロセス名に基づいてさらに分類する。これにより、通信先のIPアドレスが同じで、なおかつ、通信元および通信先でそれぞれ用いられているポート番号も同じで、なおかつ送信元で実行されているプロセスの名称も同じであるレコードが、同じグループに分類される。
[ステップS25]データ解析部203は、分類されたグループごとに分類済みデータファイルを作成し、分類済みデータ記憶部220に格納する。このとき、各分類済みデータファイルには、グループに含まれるレコードに記述されたプロセス名、通信先アドレス(IPアドレス)、ポート番号が記述される。また、分類済みデータファイルには、グループに含まれるレコードに記述されたすべてのタイムスタンプが記述される。これにより、分類済みデータファイルには、プロセス名、通信先アドレス、ポート番号が同一である通信プロセスについての、直近の3日における実行履歴が記録される。
[ステップS26]データ解析部203は、分類済みデータ記憶部220に格納された分類済みデータファイルに基づいて、規則性のある通信プロセスの情報を抽出する。この処理では、データ解析部203は、分類済みデータファイルごとに、タイムスタンプに基づいて周期的な通信プロセスが行われているかを判定する。実行間隔が等しい複数の通信プロセスが発見された場合、それらの通信プロセスが規則性のある通信プロセスとして抽出される。
ここで、実行間隔が12時間未満の通信プロセスについては、分類済みデータファイルに記述されたタイムスタンプのうち、直近の1日以内の時刻を示すタイムスタンプだけを用いて判定が行われる。実行間隔が12時間以上、24時間未満の通信プロセスについては、分類済みデータファイルに記述されたタイムスタンプのうち、直近の2日以内の時刻を示すタイムスタンプだけを用いて判定が行われる。実行間隔が24時間(1日)の通信プロセスについては、分類済みデータファイルに記述されたタイムスタンプのうち、直近の3日以内の時刻を示すタイムスタンプを用いて(すなわち、分類済みデータファイル内のすべてのタイムスタンプを用いて)判定が行われる。
また、規則性のある通信プロセスでも、通信エラーに伴う再実行などによって実行周期にブレが生じ得ることから、実行周期のブレを考慮して判定が行われる。例えば、10分未満の実行周期の通信プロセスを判定する場合、実行周期のブレがプラスマイナス5秒以内であれば規則性のある通信プロセスと判定される。また、1時間単位の実行周期の通信プロセスを判定する場合、実行周期のブレがプラスマイナス2分以内であれば規則性のある通信プロセスと判定される。また、1日(24時間)単位の実行周期の通信プロセスを判定する場合、実行周期のブレがプラスマイナス30分以内であれば規則性のある通信プロセスと判定される。
[ステップS27]データ解析部203は、現在時刻のタイムスタンプが付加された解析済みデータテーブルを作成し、解析済みデータ記憶部230に格納する。データ解析部203は、ステップS26で規則的な通信プロセスを抽出すると、その通信プロセスの通信元アドレス、通信先アドレス、プロセス名を、実行間隔を示す時間とともに、作成された解析済みデータテーブルの1つのレコードに登録する。
なお、1つの分類済みデータファイルから、実行周期が異なる複数の規則的な通信プロセスが抽出される場合もある。その場合には、各通信プロセスの情報が解析済みデータテーブルにおける別々のレコードに登録される。
[ステップS28]データ解析部203は、分類済みデータ記憶部220に格納されたすべての分類済みデータファイルをクリアする(削除する)。分類済みデータ記憶部220は、収集データ記憶部210によるデータ解析処理において、作業領域として使用される。
図9は、分類済みデータファイルおよび解析済みデータテーブルの一例を示す図である。
図9では、図8のステップS25で作成される分類済みデータファイルの例として、分類済みデータファイル221a,221bを示している。この例のように、分類済みデータファイルには、プロセス名、通信先アドレス、ポート番号、および複数のタイムスタンプが記述される。タイムスタンプは、プロセス名、通信先アドレス、ポート番号が同一の通信プロセスが実行された時刻を示している。
一方、解析済みデータ記憶部230に格納される解析済みデータテーブル231には、図9に示すように、タイムスタンプが付加されるとともに、通信元アドレス、通信先アドレス、プロセス名、実行間隔の各項目を有するレコードが登録される。通信元アドレスの項目には、データ解析処理が実行されているノードのIPアドレスが登録される。通信先アドレス、プロセス名、実行間隔の各項目には、1つの分類済みデータファイルから抽出された規則性のある通信プロセスに関する情報が登録される。
図9に例示した分類済みデータファイル221a,221bおよび解析済みデータテーブル231は、2019年12月12日に実行されたデータ解析処理によって作成されたものである。
分類済みデータファイル221aには、プロセス名「ftp.exe」、通信先アドレス「5.5.5.5」、ポート番号「22,55」(通信元のポート番号が「22」、通信先のポート番号が「55」)が記述されている。また、分類済みデータファイル221aには、2019年12月10日1時45分55秒、2019年12月11日1時51分20秒、2019年12月12日1時50分5秒というタイムスタンプ(実行時刻)が記述されている。この場合、データ解析部132は、1日間隔の通信プロセスが実行されていると判定し、この通信プロセスについてのレコードを解析済みデータテーブル231に登録する。このレコードには、通信元アドレス「1.1.1.1」、通信先アドレス「5.5.5.5」、プロセス名「ftp.exe」、実行間隔「1日」と登録される。
また、分類済みデータファイル221bには、プロセス名「ftp.exe」、通信先アドレス「6.6.6.6」、ポート番号「22,55」が記述されている。また、分類済みデータファイル221bには、2019年12月10日1時46分5秒、2019年12月11日1時52分40秒、2019年12月12日1時51分35秒というタイムスタンプ(実行時刻)が記述されている。この場合、データ解析部132は、1日間隔の通信プロセスが実行されていると判定し、この通信プロセスについてのレコードを解析済みデータテーブル231に登録する。このレコードには、通信元アドレス「1.1.1.1」、通信先アドレス「6.6.6.6」、プロセス名「ftp.exe」、実行間隔「1日」と登録される。
なお、解析済みデータテーブル231の各レコードには、ポート番号の項目がさらに設けられてもよい。この場合、ポート番号の項目には、分類済みデータファイルに記述されたポート番号が登録される。
以上のようにして、解析済みデータテーブル231には、タイムスタンプが示すデータ解析日に解析された解析結果を示す解析済みデータテーブル231が格納される。データ送信部204は、ノード管理装置101からの要求に応じて、解析済みデータテーブル231に格納された解析済みデータテーブル231の内容をノード管理装置101に送信する。
次に、ノード管理装置101について説明する。
まず、図10は、機器リスト記憶部に記憶される管理対象機器リストの一例を示す図である。機器リスト記憶部140には、図10に示すような管理対象機器リスト141が記憶される。管理対象機器リスト141には、ノード管理装置101の管理対象の各ノードについての情報が登録される。
管理対象機器リスト141は、管理対象の各ノードに対応するレコードを備える。各レコードは、IPアドレス、シリアル番号、OS種別、ログインID、パスワードの各項目を含む。
IPアドレスは、ノードに付与されたIPアドレスを示す。シリアル番号は、ノードに付与されたシリアル番号(製造番号など)を示す。OS種別は、ノードで実行されているOSの種別を示す。ログインIDおよびパスワードは、ノードから解析結果を取得するためにノードにログインするために使用される情報である。ログインIDは、ノードにログインするための管理者側の識別情報を示す。パスワードは、ノードにログインするために入力されるパスワードを示す。
管理対象機器リスト141は、ノードの構成が変化するたびに管理者の入力操作に応じて更新されてもよい。しかしながら、ノードを正確に管理するためには、ノード管理装置101のデータ収集部131によって各ノードから自動的に収集されることが望ましい。この収集方法としては、例えば、SNMP(Simple Network Management Protocol)、SSH(Secure SHell)で規定された方法を利用可能である。
データ収集部131は、管理対象機器リスト141を参照して管理対象のノードを認識し、各ノードから解析結果を周期的に収集する。収集された解析結果は、解析済みデータ記憶部150の解析済みデータテーブルに登録される。
図11は、ノード管理装置のデータ収集部によるデータ収集処理手順を示すフローチャートの例である。図11の処理は、各ノードでのデータ解析処理の実行周期と同じく、1日(24時間)ごとに実行されるものとする。
[ステップS31]データ収集部131は、解析済みデータテーブルを作成して、解析済みデータ記憶部150に格納する。作成された解析済みデータテーブルには、現在の日時を示すタイムスタンプが付加される。本実施の形態では、ノード管理装置101によるデータ収集およびデータ解析は1日間隔で実行されるので、タイムスタンプとしては現在の日付が付加される。
[ステップS32]データ収集部131は、管理対象機器リスト141を参照して、管理対象のノードを1つ選択する。データ収集部131は、選択したノードのレコードから、そのノードにログインするための情報を読み込む。具体的には、IPアドレス、ログインIDおよびパスワードが読み込まれる。
[ステップS33]データ収集部131は、読み込んだ情報を用いてノードにログインし、解析結果の送信を要求する。ノードでは、データ送信部204が送信要求を受け付け、解析済みデータ記憶部230から直近のデータ解析処理で作成された解析済みデータテーブル231から各レコードの情報を読み出して、ノード管理装置101に送信する。
[ステップS34]データ収集部131は、ノードから送信された、解析済みデータテーブル231のレコードの情報(すなわち、解析結果)を受信する。データ収集部131は、受信した各レコードの情報を、ステップS31で作成された解析済みデータテーブルの各レコードに登録する。これにより、ノードの解析済みデータテーブル231の各レコードが、ノード管理装置101の解析済みデータテーブルにコピーされる。
[ステップS35]データ収集部131は、管理対象の全ノードを選択済みかを判定する。データ収集部131は、未選択のノードがある場合、処理をステップS32に進め、未選択のノードの中から1つを選択して処理を継続する。一方、データ収集部131は、管理対象の全ノードを選択済みの場合、データ収集処理を終了する。
以上の処理により、新たに作成された解析済みデータテーブルに対して、管理対象の各ノードで作成された最新の解析済みデータテーブル231の各レコードがコピーされる。
図12は、ノード管理装置に記憶される解析済みデータテーブルの一例を示す図である。図12に示す解析済みデータテーブル151は、解析済みデータ記憶部150に記憶される。
図12に示すように、解析済みデータテーブル151には、データ収集およびデータ解析の日時を示すタイムスタンプが付加される。図12の例では、2019年12月12日を示すタイムスタンプが付加されている。また、解析済みデータテーブル151の各レコードは、ノードの解析済みデータテーブル231と同じく、通信元アドレス、通信先アドレス、プロセス名、実行間隔の各項目を含む。なお、ノードの解析済みデータテーブル231がポート番号の項目を含む場合、解析済みデータテーブル151もポート番号の項目を含む。
データ解析部132は、以上のようにして作成された1つの解析済みデータテーブル151を用いて、同じような規則性がある同種類の通信が行われているノードをグループ化する。このグループ化では、通信元または通信先が同じで、かつ、実行間隔が同じで、かつ、プロセス名が同一または互いに関連している通信が行われているノードが、通信の内容を示す情報とともに1つのグループに分類される。この分類処理は、解析済みデータテーブル151内のレコードをグループ化することによって行われ、グループ化されたレコードは、グループを識別可能な状態で、グループデータ記憶部160のグループデータテーブルに登録される。
図13は、ノード管理装置のデータ解析部によるデータ解析処理手順を示すフローチャートの例である。
[ステップS41]データ解析部132は、解析済みデータ記憶部150に格納された最新の解析済みデータテーブル151を参照し、解析済みデータテーブル151内のレコードをプロセス名に基づいて分類する。
[ステップS42]データ解析部132は、分類されたレコード群のそれぞれについて、レコード群に含まれるレコードのうち、通信元または通信先が同じで、なおかつ実行間隔も同じレコードをグループ化する。
[ステップS43]データ解析部132は、ステップS42で分類されたグループを1つ選択する。
[ステップS44]データ解析部132は、選択したグループに含まれるレコードに登録されたノードの中から、代表ノードを決定する。例えば、通信元アドレスと通信先アドレスの項目において登録数が最も多いノードが、代表ノードに決定される。
[ステップS45]データ解析部132は、選択したグループに含まれるレコードの情報に対して、決定された代表ノードのIPアドレス(代表アドレス)と、参照先の解析済みデータテーブル151に付加されているタイムスタンプ(この例では日付)とを付加して、グループデータテーブルに登録する。グループデータテーブルには、グループに含まれる各レコードに対応するレコードが作成される。
[ステップS46]データ解析部132は、分類された全グループを選択済みかを判定する。データ解析部132は、未選択のグループがある場合、処理をステップS43に進めて、未選択のグループを1つ選択して処理を継続する。一方、データ解析部132は、全グループを選択済みの場合、データ解析処理を終了する。
図14は、グループデータテーブルに登録される情報についての第1の例を示す図である。グループデータテーブル161は、通信元アドレス、通信先アドレス、プロセス名、実行間隔、代表アドレス、日付、メイン識別子の各項目を含む。
これらの項目のうち、通信元アドレス、通信先アドレス、プロセス名、実行間隔の各項目には、解析済みデータテーブル151における同じ名称の項目のデータが登録される。代表アドレスの項目には、図13のステップS44で決定された代表ノードのアドレスが登録される。日付の項目には、参照先の解析済みデータテーブル151に付加されているタイムスタンプが登録される。この日付は、データ解析によってグループが作成された日付を示している。グループデータテーブル161においては、登録されているレコードのうち、プロセス名、実行間隔、代表アドレスおよび日付が同じレコードが、同じグループに属するレコードとして識別される。
メイン識別子の項目には、レコードが属するグループがあるノードについてのメイングループ(後述)である場合に、そのノードのIPアドレスが登録される。メイン識別子の項目には、初期状態ではIPアドレスが登録されない(例えばNULLが登録される)。
ここで、図14では、図13のステップS41,S42において第1のグループ化規則にしたがってグループ化が行われた場合について示す。第1のグループ化規則では、解析済みデータテーブル151内のレコードのうち、プロセス名が一致し、通信元または通信先のいずれかが一致し、実行間隔が一致するレコードがグループ化される。
例えば図14では、通信元アドレスが「1.1.1.1」であり、プロセス名が「ftp.exe」であり、実行間隔が「1日」であるレコードR1~R3が、同一のグループに分類される。また、通信元アドレスが「2.2.2.2」であり、プロセス名が「ftp.exe」であり、実行間隔が「60分」であるレコードR4、R5が、同一のグループに分類される。さらに、通信元アドレスが「7.7.7.7」であり、プロセス名が「httpd.exe」であり、実行間隔が「5秒」であるレコードR6、R7が、同一のグループに分類される。
図15は、グループデータテーブルに登録される情報についての第2の例を示す図である。図15では、図13のステップS41,S42において第2のグループ化規則にしたがってグループ化が行われた場合について示す。第2のグループ化規則では、第1のグループ化規則にしたがって分類されたグループの間で、プロセス名が関連し、実行間隔が同一で、通信元と通信先との対応関係が逆になっているグループが、1つのグループに統合される。「プロセス名が関連する」とは、例えば、通信の依頼者側プロセスと待ち受け側プロセスのように、それぞれのプロセス名が通信処理において対になるプロセス名であることを言う。
例えば図15では、第1のグループ化規則により、レコードR11~R13が同じグループ(第1のグループとする)に分類され、レコードR14~R16が別のグループ(第2のグループとする)に分類される。これらのグループの間では、第1のグループのプロセス名「ftpd.exe」が、第2のグループのプロセス名「ftp.exe」に対応する待ち受けプロセスの名称になっている。また、第1のグループと第2のグループとの間で、通信元アドレスと通信先アドレスとの対応関係が逆になっている。このため、第1のグループと第2のグループとが統合され、レコードR11~R16が同一のグループに分類される。
以上のデータ解析部132による処理により、関連性の高い通信処理を示すレコードがグループ化される。1つのレコードにおいて通信元および通信先として登録されているノード群は、関連性の高い通信処理が実行されているノード群であり、保守作業の際に作業に大きな影響が及び得るノード群であると推定される。例えば、このノード群は、同じ種類の通信処理が、同じ実行間隔で、重複するノードを用いて実行されている。このため、ノード群内の1つのノードについて保守作業を行った場合には、ノード群内の他のノードで通信処理のエラーが発生する可能性がある。また、ノード群内の1つのノードにおいてプログラムを更新した場合には、ノード群内の他のノードでもプログラムの更新が必要な場合が多くなる。
したがって、管理表出力部133が、グループ内のノードや通信プロセスに関する情報を管理者端末102に表示させることで、保守作業の大きな影響が及び得る複数のノードを管理者に対して正確に提示できる。特に、上記のデータ解析では、単に通信が行われていたノード同士をグループ化するのではなく、通信プロセスの種類や実行間隔に基づいてノードがグループ化される。これにより、保守作業の際に何らかの対処が必要となるような、関連性や依存度が高いノードのグループを高精度に推定できる。
管理者は、このようにして表示された情報を閲覧することで、保守作業の大きな影響が及び得る複数のノードを容易かつ確実に特定できる。これにより管理者は、より確実性の高い保守作業を実施できる。また、管理者は、異常発生の有無を確認する必要があるノードを容易に特定できる。
なお、ノード管理装置101は、データ解析部132によって分類されたグループの情報を、ノードの制御に利用することもできる。例えば、あるノードの保守作業が行われる場合に、ノード管理装置101は、そのノードが含まれるグループを特定し、特定されたグループに含まれる各ノードの動作を自動的に停止させてもよい。これにより、保守作業の影響によってノードに異常が発生する可能性を低減できる。
ここで、グループ化の具体例を示す。
図16は、グループ化の第1の例を示す図である。
図16では、ノードN1がバックアップサーバとして動作し、ノードN2,N3がバックアップサーバに対するクライアントとして動作する場合について例示している。ノードN2,N3では、ポート20を用いて通信するプロセス「ftp.exe」が動作し、ノードN1では、プロセス「ftp.exe」に対する待ち受けプロセスであるプロセス「ftpd.exe」が動作している。プロセス「ftpd.exe」は、ポート20を用いて通信を行う。そして、ノードN2,N3のプロセス「ftp.exe」と、ノードN1のプロセス「ftpd.exe」との間で、バックアップ処理のためのFTP(File Transfer Protocol)通信が周期的に実行されるとする。
また、ユーザ端末300では、ポート22を用いて通信するプロセス「sshd.exe」が動作し、ノードN1では、ポート22を用いて通信するプロセス「sshd.exe」が動作している。そして、ユーザ端末300のプロセス「sshd.exe」とノードN1のプロセス「sshd.exe」との間でSSH通信が実行されるとする。ただし、SSH通信は不規則なタイミングで実行される。
このようなケースでは、ノードN2,N3のプロセス「ftp.exe」とノードN1のプロセス「ftpd.exe」とがグループ化される。図16ではこのグループが「FTPグループ」として示されている。一方、ノードN1のプロセス「sshd.exe」は、規則的な通信が行われないため、グループに含められない。
このように、図16のケースでは、ノードN2,N3のプロセス「ftp.exe」とノードN1のプロセス「ftpd.exe」とが属するグループの情報が管理者端末102に表示されることで、管理者は保守作業の大きな影響が及び得るノードとしてノードN1,N2,N3を特定できる。
図17は、グループ化の第2の例を示す図である。図17では、図16の状態から保守作業が行われ、ノードN3で動作する、FTP通信のためのプロセスが、プロセス「ftp.exe」からプロセス「sftp.exe」に変更されたとする。ノードN3のプロセス「sftp.exe」とノードN1のプロセス「ftpd.exe」との間では、ノードN2のプロセス「ftp.exe」とノードN1のプロセス「ftpd.exe」との間と同じポートを用いて同じ時間間隔でFTP通信が行われているとする。
保守作業の実行から一定時間後にノード管理装置101でデータ収集およびデータ解析が行われた場合、ノードN2のプロセス「ftp.exe」とノードN1のプロセス「ftpd.exe」とが「FTPグループ」としてグループ化される。一方、このグループには、ノードN3のプロセス「sftp.exe」が含まれないようになる。なお、実際には、ノードN3のプロセス「sftp.exe」とノードN1のプロセス「ftpd.exe」が、別のグループに分類されることになる。
ここで、保守作業後において、ノードN2のプロセス「ftp.exe」とノードN1のプロセス「ftpd.exe」とを含むグループの情報が管理者端末102に表示された際に、このグループからノードN3が外れたことも表示されれば、管理者による確認作業のために有用である。例えば、保守作業によりノードN3に対して誤ってプロセス「sftp.exe」に対応するプログラムをインストールしてしまった場合、上記のようにグループからノードN3が外れたことが表示されれば、管理者はノードN3が意図通りに動作していないことに気付くことができる。
また、図示しないが、例えば、図16の状態から、ノードN3のプロセス「ftp.exe」の動作が異常により停止した場合にも、その後にノード管理装置101でデータ収集およびデータ解析が行われた場合、図17と同様にノードN3のプロセス「ftp.exe」は「FTPグループ」から外れる。さらに例えば、図16の状態からノードN3のプロセス「ftp.exe」が異常により定期的な通信を行わなくなった場合(例えば、通信の実行間隔が不規則になった場合)にも、図17と同様にノードN3のプロセス「ftp.exe」は「FTPグループ」から外れる。このようなケースでも、ノードN2のプロセス「ftp.exe」とノードN1のプロセス「ftpd.exe」とを含むグループからノードN3が外れたことが表示されれば、管理者はノードN3で異常が発生したことに気付くことができる。
また、保守作業後にノードN3のプロセス「ftp.exe」の動作に異常が発生したものの、外見上ではそのことが現れない場合もある。この場合でも、プロセス「ftp.exe」とノードN1のプロセス「ftpd.exe」とを含むグループからノードN3が外れたことが表示されれば、管理者がノードN3で異常が発生したことに気付くことが可能な場合がある。
そこで、ノード管理装置101の管理表出力部133は、データ解析部132による最新のデータ解析によるグループの情報を管理者端末102に表示させるだけでなく、過去のデータ解析によって作成されたグループとの間の差分を示す情報も同時に表示させる。以下、最新のデータ解析によって作成されたグループを「現在のグループ」と記載し、それより前のデータ解析によって作成されたグループを「過去のグループ」と記載する。また、最新のデータ解析より1日前のデータ解析によって作成されたグループを「前回のグループ」と記載する。
本実施の形態では例として、管理表出力部133は、現在のグループと過去のグループとの間で比較対象のペアを特定するために、ノードごとに、主たる通信プロセスが行われるグループを示す「メイングループ」が判定される。そして、管理表出力部133は、あるノードが属するグループの情報を管理者端末102に表示させる際、そのノードが属する現在のグループのうちのメイングループと、そのノードが属する過去のグループのうちのメイングループとを比較する。そして、管理表出力部133は、メイングループ間の差分を示す情報を管理者端末102に表示させる。
図18は、管理表出力部によるメイングループ判定処理手順を示すフローチャートの例である。図18の処理は、例えば、データ解析部132による図13のデータ解析処理が完了したときに、続けて実行されればよい。
[ステップS51]管理表出力部133は、機器リスト記憶部140に記憶された管理対象機器リスト141を参照して、管理対象のノードを1つ選択する。
[ステップS52]管理表出力部133は、最新のグループデータテーブル161から、選択されたノードが属するグループをすべて特定する。
[ステップS53]管理表出力部133は、特定されたグループを、連結されたノード(グループに属するノード)が最多のグループに絞り込む。なお、連結されたノードが最多のグループに絞り込む理由は、同じ種類の通信が実行されているノード数が多く、保守作業の際に影響が及ぶ範囲が最も広くなると考えられるからである。
[ステップS54]管理表出力部133は、ステップS53でグループが複数絞り込まれた場合、絞り込まれたグループを、実行間隔が最短のグループにさらに絞り込む。なお、実行間隔が最短のグループに絞り込む理由は、通信の実行頻度が高い方がノード間の関連性が高いと考えられるからである。
[ステップS55]ステップS53、S54によって1つに絞り込まれたグループが、選択されたノードに対応するメイングループに設定される。管理表出力部133は、グループデータテーブル161のレコードのうち、メイングループに対応する各レコードのメイン識別子の項目に、選択されたノードのIPアドレスを登録する。なお、メイン識別子の項目には、複数のノードのIPアドレスが登録される場合がある。
[ステップS56]管理表出力部133は、管理対象の全ノードを選択済みかを判定する。管理表出力部133は、未選択のノードがある場合、処理をステップS51に進め、未選択のノードの中から1つを選択して処理を継続する。一方、管理表出力部133は、管理対象の全ノードを選択済みの場合、メイングループ判定処理を終了する。
以上の処理により、ノードごとにメイングループが決定される。また、メイングループは、データ解析部132による1回のデータ解析処理ごとに(すなわち、1つのグループデータテーブル161ごとに)決定される。
図19、図20は、管理表出力部による情報表示処理手順を示すフローチャートの例である。
[ステップS61]管理表出力部133は、管理者端末102を介して、管理者からノードの指定を受け付ける。例えば、管理者がこれから保守作業を行おうとしているノードや、保守作業が完了したノード、またはこれらのノードに関係していると管理者が考えているノードが、管理者の操作によって指定される。
[ステップS62]管理表出力部133は、現在のグループの中から、指定されたノードに対応するメイングループを特定する。この処理では、タイムスタンプが最も遅い日付を示すグループデータテーブル161が参照され、メイン識別子の項目に指定されたノードのIPアドレスが登録されているグループが、メイングループとして特定される。以下、特定されたメイングループを「メイングループ(1)」と記載し、参照されたグループデータテーブル161を「グループデータテーブル(1)」と記載する。
[ステップS63]管理表出力部133は、前回のグループの中から、指定されたノードに対応するメイングループを特定する。この処理では、タイムスタンプが2番目に遅い日付を示すグループデータテーブル161が参照され、メイン識別子の項目に指定されたノードのIPアドレスが登録されているグループが、メイングループとして特定される。以下、特定されたメイングループを「メイングループ(2)」と記載し、参照されたグループデータテーブル161を「グループデータテーブル(2)」と記載する。
[ステップS64]管理表出力部133は、ステップS61で指定されたノードが、システムに新規に増設されたノードであるかを判定する。ステップS63でメイングループ(2)を特定できなかった場合、指定されたノードが新規に増設されたノードであると判定される。管理表出力部133は、新規に増設されたノードと判定した場合、処理を図20のステップS82に進め、新規に増設されたノードでないと判定した場合、処理をステップS65に進める。
[ステップS65]管理表出力部133は、メイングループ(1)の内容とメイングループ(2)の内容とが同一かを判定する。この判定では、グループデータテーブル(1)におけるメイングループ(1)に属する各レコードの内容と、グループデータテーブル(2)におけるメイングループ(2)に属する各レコードの内容とが比較される。管理表出力部133は、各グループの内容が完全に同一である場合、処理をステップS66に進め、各グループの内容の少なくとも一部が異なる場合、処理をステップS68に進める。
[ステップS66]管理表出力部133は、メイングループ(1)に含まれる各ノードについての資産表を作成する。この処理では、機器リスト記憶部140の管理対象機器リスト141が参照され、各ノードについての情報(IPアドレス、シリアル番号、OS種別、ログインID、パスワード)が読み出され、これらの情報を一覧表示する資産表が作成される。
[ステップS67]管理表出力部133は、グループデータテーブル(1)に基づいて、メイングループ(1)の情報を示すグループ表を作成する。管理表出力部133は、作成されたグループ表を、ステップS66で作成された資産表とともに管理者端末102の表示装置に表示させる。
ここで、図21は、グループ表および資産表の第1の表示例を示す図である。図19のステップS67では、例えば、図21に示すようなグループ表171aと資産表172aが管理者端末102の表示装置に表示される。
図21に示すグループ表171aには、プロセス名「ftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」、日付「20191212」で識別されるグループの情報が表示されている。グループの情報としては、グループデータテーブル(1)に登録された、グループに属する各レコードの情報が一覧表示される。
ここで、ステップS67が実行されるケースは、現在のグループの構成が前回のグループから変化していないケースである。すなわち、上記グループにIPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示される各ノードが含まれる点が、前回のデータ解析時から変化していない。この場合、グループ表171aには、グループに属する各レコードの情報が一覧表示されるのみであり、差分を示す情報は表示されない。
また、資産表172aには、グループ表171aに表示された上記各ノードについての情報が、管理対象機器リスト141から抽出されて表示される。
なお、このようなグループ表171aおよび資産表172aが表示されるケースとしては、図19のステップS61で、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示されるノードのいずれかが指定されるケースである。
管理者は、例えば、IPアドレス「7.7.7.7」で示されるノードの保守作業を行う前に、図21のようなグループ表171aを表示させる。これにより、管理者は、IPアドレス「7.7.7.7」で示されるノードの保守作業の大きな影響が及び得る他のノードとして、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」で示されるノードを容易かつ正確に特定できる。
以下、図19を用いて説明を続ける。
[ステップS68]管理表出力部133は、メイングループ(1)のプロセス名および実行間隔と、メイングループ(2)のプロセス名および実行間隔とが同一かを判定する。管理表出力部133は、同一と判定した場合、処理をステップS69に進め、同一でないと判定した場合(少なくともいずれかの項目の内容が異なる場合)、処理を図20のステップS81に進める。
[ステップS69]管理表出力部133は、差分情報を含むグループ表を作成する。
[ステップS70]管理表出力表133は、作成されたグループ表に含まれる各ノードについての情報を一覧表示する資産表を作成する。
[ステップS71]管理表出力部133は、ステップS69で作成されたグループ表を、ステップS70で作成された資産表とともに管理者端末102の表示装置に表示させる。
ここで、図22、図23を用いて、ステップS69~S71の処理について説明する。ステップS69~S71が実行されるケースとしては、あるグループにノードが追加されるケースと、あるグループからノードが削除されるケースとがある。前者のケースの例を図22に示し、後者のケースの例を図23に示す。
図22は、グループ表および資産表の第2の表示例を示す図である。
図22に示すグループ表171bには、プロセス名「ftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」、日付「20191212」で識別されるグループの情報が表示されている。また、グループ表171bでは、通信元アドレス「1.1.1.1」、通信先アドレス「8.8.8.8」を含むレコードR21が、追加された通信プロセスを示すレコードとして太字で囲んで表示されている。すなわち、このレコードR21が差分情報に相当する。また、レコードR21の差分の項目には、レコードR21が追加されたこと(レコードR21で示される通信プロセスが追加されたこと)を示す文字情報が表示されている。
図22のケースは、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示されるノードを含むグループに、IPアドレス「8.8.8.8」で示されるノードが追加されたケースである。この場合、図19の処理では、メイングループ(2)として、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示されるノードを含むグループが特定される。また、メイングループ(1)として、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」,「8.8.8.8」で示されるノードを含むグループが特定される。ただし、ステップS61では、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示されるノードのいずれかが指定されたケースとなる。
ステップS69では、メイングループ(1)のレコードのうち、メイングループ(2)に含まれていないレコード(通信元アドレス「1.1.1.1」、通信先アドレス「7.7.7.7」を含むレコード)の情報が、差分情報としてグループ表171bに表示される。ステップS70では、このようなグループ表171bに含まれる各ノードについての情報が、機器リスト記憶部140の管理対象機器リスト141から読み出されて資産表172bに表示される。
以上の図22の例では、グループ表171bが、IPアドレス「8.8.8.8」で示されるノードを追加する保守作業の完了後に表示されることにより、管理者は、このノードが追加されたことや、追加したノードの情報を容易に確認できる。また、管理者は、情報の内容確認により、追加したノードが意図通りに動作しているかも確認できる。
図23は、グループ表および資産表の第3の表示例を示す図である。
図23に示すグループ表171cには、プロセス名「ftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」、日付「20191212」で識別されるグループの情報が表示されている。図23のケースは、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示されるノードを含むグループから、IPアドレス「8.8.8.8」で示されるノードが削除されたケースである。ただし、ステップS61では、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」で示されるノードのいずれかが指定されたケースとなる。
この場合、図19の処理では、メイングループ(2)として、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示されるノードを含むグループが特定される。また、メイングループ(1)として、IPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」で示されるノードを含むグループが特定される。
ステップS69では、メイングループ(2)のレコードのうち、メイングループ(1)に含まれていないレコード(通信元アドレス「1.1.1.1」、通信先アドレス「7.7.7.7」を含むレコード)の情報が、差分情報としてグループ表171cに表示される。図23に示すように、グループ表171cでは、当該レコードの情報がレコードR22に表示されている。レコードR22は、差分情報(削除されたレコード)であることを示すために太い破線で囲んで表示されている。また、レコードR22の差分の項目には、レコードR22が削除されたこと(レコードR22で示される通信プロセスが削除されたこと)を示す文字情報が表示されている。
ステップS70では、このようなグループ表171cに含まれる各ノードについての情報が、機器リスト記憶部140の管理対象機器リスト141から読み出されて資産表172cに表示される。すなわち、資産表172cでは、現在のグループに含まれていたノードの情報だけでなく、前回の対応するグループに含まれていたノードの情報も表示される。
以上の図23の例では、グループ表171cが、IPアドレス「7.7.7.7」で示されるノードを削除する(廃却する)保守作業の完了後に表示されることにより、管理者は、このノードが削除されたことや、削除したノードの情報を容易に確認できる。また、管理者は、情報の内容確認により、ノード削除後のグループに含まれる各ノードが意図通りに動作しているかも確認できる。
以下、図20を用いて説明を続ける。
[ステップS81]管理表出力部133は、図19のステップS61で指定されたノードに対して、メイングループ(1)の処理プロセスに対応するプログラムが新規にインストールされたかを判定する。当該プログラムが新規にインストールされたというケースとは、ステップS61で指定されたノードはシステム内に組み込まれていたが、保守作業によってこのノードに新規のプログラムがインストールされたというケースである。この場合、メイングループ(1)としては、メイングループ(2)とは関係のないグループが特定され、ステップS68で「No」と判定されることになる。
ステップS81では、メイングループ(1)に含まれる他のいずれかのノードについての前回のメイングループが、グループデータテーブル(2)から特定される。以下、特定されたメイングループを「メイングループ(3)」と記載する。メイングループ(3)に、ステップS61で指定されたノードが含まれている場合には、このノードに対してメイングループ(1)の処理プロセスに対応するプログラムが新規にインストールされたと判定される。
管理表出力部133は、当該プログラムが新規にインストールされたと判定した場合、処理をステップS82に進め、そうでないと判定した場合、処理をステップS85に進める。
[ステップS82]管理表出力部133は、メイングループ(1)の情報を示すグループ表を作成する。このグループ表では、ステップS61で指定されたノードが登録されたレコードが、差分情報として表示される。例えば、図22のレコードR21のように、ステップS61で指定されたノードが登録されたレコードが太線で囲まれ、差分の項目に、レコードが追加されたことを示す情報が表示される。
[ステップS83]管理表出力表133は、作成されたグループ表に含まれる各ノードについての情報を一覧表示する資産表を作成する。
[ステップS84]管理表出力部133は、ステップS82で作成されたグループ表を、ステップS83で作成された資産表とともに管理者端末102の表示装置に表示させる。
[ステップS85]ステップS81で「No」と判定されるケースは、ステップS61で指定されたノードがメイングループ(2)から削除されたケースである。具体的には、ステップS61で指定されたノードから、メイングループ(2)の通信プロセスに対応するプログラムがアンインストールされたケースである。
この場合、管理表出力部133は、まず、メイングループ(2)の情報を示すグループ表を作成する。このグループ表では、ステップS61で指定されたノードが登録されたレコードが、差分情報として表示される。
[ステップS86]続いて、管理表出力部133は、メイングループ(1)の情報を示すグループ表を作成する。このグループ表では、差分情報は表示されない。
[ステップS87]管理表出力部133は、ステップS85で作成されたグループ表に含まれる各ノードについての情報と、ステップS86で作成されたグループ表に含まれる各ノードについての情報の両方を一覧表示する資産表を作成する。
[ステップS88]管理表出力部133は、ステップS85,S86で作成されたグループ表を、ステップS87で作成された資産表とともに管理者端末102の表示装置に表示させる。
図24は、グループ表および資産表の第4の表示例を示す図である。図24は、図20のステップS85~S88が実行された場合の表示例を示す。図24において、グループ表171d1は、ステップS85で作成されるグループ表の例であり、グループ表171d2は、ステップS86で作成されるグループ表の例であり、資産表172dは、ステップS87で作成される資産表の例である。
図24の例では、図19のステップS61で、IPアドレス「7.7.7.7」で示されるノードが指定される。また、メイングループ(2)としては、プロセス名「ftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」、日付「20191211」で識別されるグループが特定される。そして、保守作業により、メイングループ(2)の通信プロセスに対応するプログラムが、IPアドレス「7.7.7.7」で示されるノードからアンインストールされる。その結果、保守作業後において、IPアドレス「7.7.7.7」で示されるノードについてのメイングループ(1)として、プロセス名「sftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」、日付「20191212」で識別されるグループが特定される。
グループ表171d2には、メイングループ(1)についての情報が表示される。一方、グループ表171d1には、メイングループ(2)についての情報が、差分情報とともに表示される。グループ表171d1では、IPアドレス「7.7.7.7」を含むレコードR23が、差分情報(削除されるレコード)であることを示すために太い破線で囲んで表示されている。また、レコードR23の差分の項目には、レコードR23が削除されたこと(レコードR23で示される通信プロセスが削除されたこと)を示す文字情報が表示されている。
資産表172dには、グループ表171d1,171d2に含まれる各ノードについての情報が、機器リスト記憶部140の管理対象機器リスト141から読み出されて資産表172cに表示される。
以上の図24の例では、グループ表171d1が、IPアドレス「7.7.7.7」で示されるノードでのアンインストール作業の完了後に表示されることにより、管理者は、アンインストールされたプログラムに対応する処理がこのノードで動作していないことを容易に確認できる。すなわち、管理者は、保守作業後に、意図した通りにシステムが動作していることを容易かつ確実に確認できる。
以上説明したノード管理装置101の処理によれば、管理者はあるノードの保守作業を行う際、グループ表を視認することで、その作業の大きな影響が及び得る他のノードを容易かつ確実に特定できるようになる。また、管理者は、あるノードで異常が発生した場合に、そのノードを含むグループについてのグループ表を視認することで、異常の有無を確認すべき他のノードを特定できる。
また、グループ表に差分情報が表示されることで、管理者は、保守作業によって増減したノードや実行される処理の種類が変化したノードを、容易かつ確実に確認できるようになる。また、管理者は、差分情報を含むグループ表を視認することで、保守作業後にシステムが意図した動作を行っているかを判断するための有用な情報を得ることができる。また、管理者は、差分情報を含むグループ表を視認することで、保守作業後の障害発生原因を究明するための有用な情報を得ることができる。また、管理者は、差分情報を含むグループ表を視認することで、外見では判断できない異常の発生に気付ける可能性が生じる。
なお、図19、図20の処理は、次のように変形することができる。例えば、ステップS63では、管理表出力部133は、前回のメイングループを特定する代わりに、前回のグループの中からメイングループ(1)に類似するグループを特定してもよい。例えば、前回のグループのうち、プロセス名、実行間隔、代表アドレスがメイングループ(1)と同一であり、グループ間での重複ノード数が最も多いグループが、メイングループ(1)に類似するグループとして特定される。
また、図19、図20では、ノードの指定を受け付けて、このノードに関連する情報を表示しているが、例えば、現在のグループのそれぞれを管理者端末102に切り替えながら表示させてもよい。この場合、例えば、ステップS62以降の処理が現在のグループごとに実行され、ステップS62では、現在のグループの中から選択されたグループが特定され、ステップS63では、ステップS62で特定されたグループに類似する前回のグループが特定される。ステップS62以降の処理が現在のグループごとに実行されることで、グループごとにグループ表および資産表を含む表示画面が作成され、管理者の操作によって任意の表示画面が管理者端末102に表示される。
また、次の図25に示すように、グループごとに差分回数がカウントされ、差分回数が1以上の所定値に達した場合に、グループの構成に差分が発生したと判定し、グループ表に差分情報を表示するようにしてもよい。
図25は、差分回数を用いた差分発生の判定処理例を示す図である。グループデータテーブル161においては、各グループに対してさらに差分回数が登録される。差分回数は、グループの内容に変化が生じてから、データ解析部132によるデータ解析処理が何回実行されたかを示す。差分回数が1以上の所定の判定閾値に達した場合に、グループに差分が発生したと判定され、グループ表に差分情報が表示される。ここでは例として、判定閾値=2とする。
図25の表181は、データ解析処理が実行されたタイミングにおける、あるグループの情報を示している。このグループは、プロセス名「ftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」で識別される。表181によれば、グループにはIPアドレス「1.1.1.1」,「5.5.5.5」,「6.6.6.6」,「7.7.7.7」で示されるノードが含まれている。差分回数は「0」となっている。
次に、表182は、データ解析処理が次に実行されたタイミングにおける、あるグループの情報を示している。表182の内容は表181と同じであるので、表182が示すグループは表181が示すグループと同一であり、グループの構成に変化がない。したがってこの場合、表182の差分回数は「0」のままとなる。
次に、表183は、データ解析処理がさらに次に実行されたタイミングにおける、あるグループの情報を示している。ただし、このグループの情報は実線で囲まれた領域に表示されている。このグループは、プロセス名「ftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」で識別され、この点は、表182が示すグループと同一である。ただし、表183が示すグループでは、IPアドレス「7.7.7.7」で示されるノードとIPアドレス「1.1.1.1」で示されるノードとの間の通信プロセスについてのレコードがなくなっている。このノード間では、異なるプロセス名「sftp.exe」による通信が行われている。この場合、表183が示すグループの差分回数が「1」にカウントアップされる。
次に、表184は、データ解析処理がさらに次に実行されたタイミングにおける、あるグループの情報を示している。ただし、このグループの情報は実線で囲まれた領域に表示されている。このグループは、プロセス名「ftp.exe」、実行間隔「1日」、代表アドレス「1.1.1.1」で識別される。また、表183の内容は前回の表182と同じであるが、差分回数が「2」であるので、表183の内容と前々回の表182の内容とが比較される。これらの内容には差異があるので、表184が示すグループの差分回数は「2」にカウントアップされる。
この図25の例では、グループの構成に差分が生じてから(IPアドレス「7.7.7.7」のノードの通信プロセスが削除されてから)データ解析処理が2回行われた時点でも、グループの構成は変化したままで元に戻らなかったことになる。この場合に、管理表出力部133は、グループの構成に差分が発生したと判定し、表184が示すグループの情報を示すグループ表に、IPアドレス「7.7.7.7」で示されるノードについての差分情報を表示させる。このような処理により、グループの構成に差分が発生したことを確実に検出して、その差分の情報を管理者に提示できるようになる。
次に、図26~図28を用いて、データセンタにおける保守作業の例を説明する。なお、図26~図28では、保守作業の実施前ではノードN1~N6が管理対象になっているものとする。
図26は、保守作業の第1の例を示す図である。図26の例では、保守作業の実施前では、ノードN3がデータベースサーバとして動作し、ノードN1がそのクライアントとして動作している。この状態から、ノードN3に加えてノードN4にもデータベースサーバとして動作させるために、ノードN4にデータベースサーバ用のプログラムをインストールする、という保守作業を行うものとする。
保守作業の実施前では、図26の上側に示すように、ノードN1,N3が同一のグループ(「SQLグループ」とする)に含まれている。ノード管理装置101の処理により、SQLグループの情報が表示されることで、管理者は、動作を停止させるべきノードとしてノードN1,N3を特定できる。
一方、保守作業の実施後には、図26の下側に示すように、ノードN1,N3に加えてノードN4もSQLグループに含まれるようになる。ノード管理装置101でグループ化処理が再実行されると、ノード管理装置101の処理によって表示されるグループ表には、ノードN1,N3,N4を含むSQLグループの情報が表示されるとともに、ノードN4での通信プロセスの情報が差分情報として表示される。管理者は、このようなグループ表を視認することで、ノードN4が意図通りに正しく動作していることを確認できる。
図27は、保守作業の第2の例を示す図である。図27の例では、保守作業の実施前では、ノードN3,N4がWebサーバとして動作し、ノードN1がそのクライアントとして動作している。この状態から、ノードN4をノードN7に交換してWebサーバを入れ替える、という保守作業を行うものとする。
保守作業の実施前では、図27の上側に示すように、ノードN1,N3,N4が同一のグループ(「HTTPグループ」とする。HTTP:HyperText Transfer Protocol)に含まれている。ノード管理装置101の処理により、HTTPグループの情報が表示されることで、管理者は、動作を停止させるべきノードとしてノードN1,N3,N4を特定できる。
一方、保守作業が正しく実施された場合、ノードN1,N3、N7がHTTPグループに含まれるようになる。しかし、図27の例では、ノードN7に間違ったプログラムがインストールされ、ノードN7とクライアントであるノードN1との間で正しい通信が再開されなかったとする。この場合において、ノード管理装置101でグループ化処理が再実行されると、図27の下側に示すように、ノード管理装置101の処理によって表示されるグループ表には、ノードN1,N3を含むHTTPグループの情報が表示されるとともに、交換前におけるノードN4での通信プロセスの情報が差分情報として表示される。管理者は、このようなグループ表を視認することで、ノードN4の入れ替えが正しく行われなかったことを認識できる。
図28は、保守作業の第3の例を示す図である。図28の例では、保守作業の実施前では、ノードN3,N4がファイルサーバとして動作し、ノードN1がそのクライアントとして動作している。この状態から、ノードN4を切り離してファイルサーバを1台廃却する、という保守作業を行うものとする。
保守作業の実施前では、図28の上側に示すように、ノードN1,N3,N4が同一のグループ(「FTPグループ」とする)に含まれている。ノード管理装置101の処理により、FTPグループの情報が表示されることで、管理者は、動作を停止させるべきノードとしてノードN1,N3,N4を特定できる。
一方、保守作業の実施後には、図26の下側に示すように、ノードN1,N3のみがFTPグループに含まれるようになる。ノード管理装置101でグループ化処理が再実行されると、ノード管理装置101の処理によって表示されるグループ表には、ノードN1,N3を含むFTPグループの情報が表示されるとともに、ノードN4での通信プロセスの情報が差分情報として表示される。管理者は、このようなグループ表を視認することで、ノードN4が正しく廃却され、システムが意図通りに正しく動作していることを確認できる。
なお、上記の各実施の形態に示した装置(例えば、管理装置1、ノード管理装置101、ノードN1,N2,N3,N4,・・・)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。