[情報処理システム]
図1は,本実施の形態における情報処理システムSYSを説明するハードウェアブロック図の一例である。なお,以下の説明において,同一の機能を有する要素については,同一の符号を付して,前記要素の説明を適宜省略する。この実施の形態では,情報処理システムSYSは,クラウドシステムである。情報処理システムSYSは,ネットワークNに接続された,ルータRCと,ファイヤーウォールFWと,運用者管理サーバ群MCと,リージョン管理サーバ群RMと,第1のブロックA20aと,第2のブロックB20bと,管理装置4とを有する。ネットワークNは,例えばLAN (Local Area Network)である。なお,ブロックは,データセンタとも呼ばれる。
情報処理システムSYSは,クラウドシステムの利用者が操作する利用者端末USRとインターネットINを介して接続する。情報処理システムSYSは,利用者端末USRからのデータ処理要求に応答して,データ処理を実行し,処理結果を利用者端末USRに送信する。図1は,図示の都合上,1つの利用者端末USRのみを図示しているが,多数の利用者端末が,インターネットINを介して情報処理システムSYSに接続している。なお,一点鎖線を基準にして図1の上側を利用者側として示し,前記一点鎖線を基準にして図1の下側を情報処理システムSYS側として示している。
ルータRCは,インターネットINと情報処理システムSYS内のネットワークNとを相互接続する通信装置である。ファイヤーウォールFWは,情報処理システムSYS内のネットワークNに対する不正アクセスを防止する,いわゆるファイヤーウォール機能を有する装置である。運用者管理サーバ群MCは,情報処理システムSYSを運用するためのサーバ群であり,この運用処理を実行する複数のサーバを有する。
第1のブロックA20aは,既存の部分システムであり,ブロック管理サーバ群21と,利用者サーバ群22とを有する。利用者サーバ群22は,利用者端末USRからの要求に応答して各種データ処理を実行する複数のサーバを有する。ブロック管理サーバ群21は,利用者サーバ群22を管理する複数のサーバを有する。第1のブロックA20aにおけるブロック管理サーバ群21,利用者サーバ群22は,既に動作検証済みである。第1のブロックA20aは,動作検証済みの第1のブロックA20aや,構築済みの第1のブロックA20aとも呼ばれる。動作検証済みとは,サーバ群(例えば第1のブロックA20a)が,設計仕様に基づく適切な動作が実行されていることを検証する動作検証が済んでいることを示す。
第2のブロックB20bは,増設対象の部分システムであり,ブロック管理サーバ群23と,利用者サーバ群24とを有する。利用者サーバ群24は,利用者端末USRからの要求に応答して各種データ処理を実行する複数のサーバを有する。ブロック管理サーバ群23は,利用者サーバ群24を管理する複数のサーバを有する。第2のブロックB20bにおけるブロック管理サーバ群23,利用者サーバ群24については,動作検証済みではない。第2のブロックB20bは,動作検証対象の第2のブロックB20bや,未動作検証の第2のブロックB20bや,構築中の第2のブロックB20bとも呼ばれる。
リージョン管理サーバ群RMは,第1のブロックA20a,第2のブロックB20bを管理する装置であり,この管理処理を実行する複数のサーバを有する。
管理装置4は,動作検証対象の部分システムの動作検証を行う場合に,この動作検証全般を管理する装置である。
図2は,図1の運用者管理サーバ群MC,第1のブロックA20a,第2のブロックB20bを説明するハードウェアブロック図の一例である。運用者管理サーバ群MCは,ネットワークN1に接続される,ファイヤーウォール11と,WEBサーバ12と,メールサーバ13と,CMDB(Configuration Management Database)14と,個人認証サーバ15と,NTP(Network Time Protocol)サーバ16と,DNS(Domain Name System)サーバ17とを有する。
ファイヤーウォール11は,運用者管理サーバ群MC内のネットワークN1に対する不正アクセスを防止する,いわゆるファイヤーウォール機能を有する装置である。WEBサーバ12は,クライアントのウェブブラウザからの要求に応答して,HTML(HyperText Markup Language)で記述されたHTMLデータを提供する。メールサーバ13は,電子メールの送受信を実行し,例えば,SMTP(Simple Mail Transfer Protocol)サーバや,POP(Post Office Protocol)サーバとして機能する。
CMDB14は,情報処理システムSYSを構成する構成要素の構成情報を収集し,収集した構成情報を一元管理するためのデータベースである。構成要素としては,例えば,ハードウェアやソフトウェアである。なお,このハードウェアとしては,例えば,情報処理装置であるサーバや,ルータ,スイッチなどのネットワーク装置や,HDD(Hard Disk Drive)などのストレージ装置がある。個人認証サーバ15は,クラウドシステムの利用者を認証する。NTPサーバ16は,各サーバが持つ時間を正しい時間に同期する。DNS17は,例えば,情報処理システムSYS内のサーバのドメイン名と,このサーバに設定されたIPアドレスとの対応づけを管理するサーバである。
第1のブロックA20aの利用者サーバ群22は,ネットワークN3に接続される,ファイヤーウォール221と,VM用サーバ222とを有する。VMは,仮想マシン(VM:Virtual Machine)の略語である。なお,利用者サーバ群22において,図示の都合上,ファイヤーウォール221,VM用サーバ222を,1つずつしか図示していないが,利用者サーバ群22は,複数のファイヤーウォール221,複数のVM用サーバ222を有していてもよい。他にも,利用者サーバ群22は,ネットワーク装置や,ストレージ装置を有していてもよい。
ファイヤーウォール221は,利用者サーバ群22内のネットワークN3に対する不正アクセスを防止する,いわゆるファイヤーウォール機能を実行する装置である。VM用サーバ222は,自装置などのハードウェア資源を仮想化し,例えば,利用者からの要求に応答して各種データ処理を行うVM(仮想マシン)を実行する。なお,VM用サーバ222は,他にも,仮想ルータ(VR:Virtual Router)を実行しても良い。
ブロック管理サーバ群21は,ネットワークN2に接続される,ファイヤーウォール211と,イメージ管理サーバ212と,ネットワーク管理サーバ213と,ストレージ管理サーバ214とを有する。ファイヤーウォール211は,ブロック管理サーバ群21内のネットワークN2に対する不正アクセスを防止する,いわゆるファイヤーウォール機能を実行する装置である。
イメージ管理サーバ212は,利用者サーバ群22のVM用サーバ222が実行する仮想マシンのVMイメージを管理する。イメージ管理サーバ212は,例えば,利用者サーバ群22のVM用サーバ222が実行する各仮想マシンに割り当てるハードウェア資源の資源量を管理する。ネットワーク管理サーバ213は,利用者サーバ群22における通信装置や,通信装置の各種設定情報(IPアドレスなど)を管理する。例えば,ネットワーク管理サーバ213は,利用者サーバ群22のファイヤーウォール211,VM用サーバ222に設定するIPアドレスや,VM用サーバ222が実行する仮想マシンに設定するIPアドレスを管理する。
ストレージ管理サーバ214は,利用者サーバ群22のストレージ(図示しない)を管理する。例えば,ストレージ管理サーバ214は,VM用サーバ222が実行する仮想マシンに割り当てるストレージ(図示しない)の構成情報や,記憶容量などの性能情報を管理する。なお,ブロック管理サーバ群21は,他にも,例えば,WEBサーバ,メールサーバ,CMDB,DNSサーバなど各種サーバを有していてもよい。
第2のブロックB20bの利用者サーバ群24は,ネットワークN5に接続される,ファイヤーウォール241と,VM用サーバ242とを有する。なお,利用者サーバ群24において,図示の都合上,ファイヤーウォール241,VM用サーバ242を,1つずつしか図示していないが,利用者サーバ群24は,複数のファイヤーウォール241,複数のVM用サーバ242を有していてもよい。他にも,利用者サーバ群24は,ルータ,スイッチなどのネットワーク装置や,ストレージ装置を有していてもよい。
ファイヤーウォール241は,利用者サーバ群24内のネットワークN5に対する不正アクセスを防止する,いわゆるファイヤーウォール機能を実行する装置である。VM用サーバ242は,自装置などのハードウェア資源を仮想化し,例えば,利用者からの要求に応答して各種データ処理を行う仮想マシンを実行する。なお,VM用サーバ242は,他にも,仮想ルータ(VR:Virtual Router)を実行しても良い。
ブロック管理サーバ群23は,ネットワークN4に接続される,ファイヤーウォール231と,イメージ管理サーバ232と,ネットワーク管理サーバ233と,ストレージ管理サーバ234とを有する。ファイヤーウォール231は,ブロック管理サーバ群23内のネットワークN4に対する不正アクセスを防止する,いわゆるファイヤーウォール機能を実行する装置である。
イメージ管理サーバ232は,利用者サーバ群24のVM用サーバ242が実行する仮想マシンのVMイメージを管理する。イメージ管理サーバ232は,例えば,利用者サーバ群24のVM用サーバ242が実行する各仮想マシンに割り当てるハードウェア資源の資源量を管理する。ネットワーク管理サーバ233は,利用者サーバ群24における通信装置や,通信装置の各種設定情報(IPアドレスなど)を管理する。例えば,ネットワーク管理サーバ233は,利用者サーバ群24のファイヤーウォール241,VM用サーバ242に設定するIPアドレスや,VM用サーバ242が実行する仮想マシンに設定するIPアドレスを管理する。
ストレージ管理サーバ234は,利用者サーバ群24のストレージ(図示しない)を管理する。例えば,ストレージ管理サーバ234は,VM用サーバ242が実行する仮想マシンに割り当てるストレージ(図示しない)の構成情報や,記憶容量などの性能情報を管理する。なお,ブロック管理サーバ群23は,他にも,例えば,WEBサーバ,メールサーバ,CMDB,DNSサーバなど各種サーバを有していてもよい。
図1,図2に基づき,利用者がクラウドサービスを利用する場合に,情報処理システムSYSが実行する処理について説明する。クラウドサービスとは,情報処理システムSYSが実行する情報処理サービスである。利用者は,図1の利用者端末USRを操作して,情報処理システムSYSにアクセスする。具体的には,利用者は,利用者端末USRを操作して,例えば,利用者ID(識別子),パスワードを,図2の個人認証サーバ15に送信し,認証要求を行う。
認証サーバ15は,送信された利用者ID,パスワードに基づき,この利用者を認証する。認証サーバ15による認証が成功すると,例えば,図2のブロック管理サーバ群21のイメージ管理サーバ212は,この利用者用の仮想マシンを起動し実行するように,利用者サーバ群22のVM用サーバ222に指示する。VM用サーバ222は,この指示に応答して,この利用者用の仮想マシンを起動し動作状態にする。以後,利用者は,利用者端末USRを介して,この仮想マシンにアクセスし,各種データ処理を行う。
図1,図2で説明した情報処理システムSYSについて,さらに,説明を続ける。図3は,図1のリージョン管理サーバ群RMを説明するハードウェアブロック図の一例である。リージョン管理サーバ群RMは,リージョン管理サーバ群RM内のネットワークN6に接続する,ファイヤーウォール31と,イメージ管理サーバ32と,ネットワーク管理サーバ33と,WEBサーバ34とを有する。
ファイヤーウォール31は,リージョン管理サーバ群RM内のネットワークN6に対する不正アクセスを防止する,いわゆるファイヤーウォール機能を実行する装置である。イメージ管理サーバ32は,ブロック管理サーバ群21のイメージ管理サーバ212が実行する仮想マシンの構成情報や,ブロック管理サーバ群23のイメージ管理サーバ232が実行する仮想マシンの構成情報を管理するサーバである。他にも,イメージ管理サーバ32は,イメージ管理サーバ212のIPアドレスや,イメージ管理サーバ232のIPアドレスを管理する。
ネットワーク管理サーバ33は,ブロック管理サーバ群21のネットワーク管理サーバ213のIPアドレスや,ブロック管理サーバ群23のネットワーク管理サーバ233のIPアドレスを管理するサーバである。WEBサーバ34は,クライアントのウェブブラウザからの要求に応答して,HTMLで記述されたHTMLデータを提供する。
図4は,図1〜図3で説明した各種ハードウェアを説明するハードウェアブロック図の一例である。図4では,各種ハードウェアの一例として,サーバを示す。他にも,ファイヤーウォール,スイッチも,このサーバと同様の構成を有していてもよい。
サーバSVRは,データを処理する装置の一例であり,装置群の一装置である。サーバSVRは,例えばバスBを介して相互に接続された,CPU(Central Processing Unit)201と,メモリ202と,記憶装置203と,通信装置204と,操作制御部205と,表示制御部206と,記録媒体読み取り装置207とを有する。
CPU201は,サーバSVRの全体を制御するコンピュータ(制御部)である。メモリ202は,CPU201が実行する各種情報処理において処理されたデータや各種プログラムを一時的に記憶する。記憶装置203は,例えば,ハードディスクドライブ(HDD:Hard Disk Drive)などの磁気記憶装置や,不揮発性のメモリ(Non-volatile memory)である。記憶装置203は,後記する複数の通信履歴を記憶する。以下,通信履歴を通信ログと適宜記し,複数の通信ログを通信ログ群と適宜記す。そして,通信ログ群を図4の符号LGで示す。
通信装置204は,例えばネットワークインターフェイスカード(NIC:Network Interface Card)であり,ネットワークNに接続し,このネットワークNに接続している各種装置とのネットワーク通信を行う。なお,サーバSVRが設置される場所によっては,通信装置204は,他にも,ネットワークN1〜N6の何れかのネットワークに接続する場合もある。
操作制御部205は,操作装置205aから入力される操作指示に対して,操作指示に応じた各種処理を実行する。操作装置205aは,例えば,キーボードやマウスである。
表示制御部206は,表示装置206aに各種画像を表示する処理を実行する。ここで各種画像とは,例えば,IPアドレス,ポート番号の設定用画像である。表示装置206aは,例えば,液晶ディスプレイである。
記録媒体読み取り装置207は,記録媒体207aに記録されたデータを読み取る装置である。記録媒体207aは,例えば,CD-ROM(Compact Disc Read Only Memory),DVD(Digital Versatile Disc),USB(Universal Serial Bus)メモリなどの可搬型記録媒体である。なお,後記するプログラム(ソフトウェアとも呼ぶ)をこの記録媒体207aに記録してもよい。
メモリ202の特定処理用ソフト2021は,特定の処理(機能)を実行するソフトウェアである。サーバSVRが,DNSサーバの場合,特定処理用ソフト2021はドメイン名とIPアドレスとの対応付けを管理する,いわゆるDNS機能を実行する。サーバSVRが,メールサーバの場合,特定処理用ソフト2021はSMTP機能やPOP機能を実行する。また,サーバSVRが,イメージ管理サーバの場合,特定処理用ソフト2021は,イメージ管理機能を実行する。
通信用ソフト2022は,例えば,TCP/IP通信を実行するソフトウェアである。特定処理用ソフト2021は,通信用ソフト2022を利用して,他のサーバや仮想マシンが実行するソフトウェアとのネットワーク通信を実行する。通信用ソフト2022は,前記通信を実行した場合,この実行した通信に関係する各種情報を記録し,通信ログとして,記憶装置203に記憶する。この通信ログは,管理装置4が通信関連情報の設定ミスを自動検出する際に使用される。
例えば,特定処理用ソフト2021が,通信用ソフト2022を利用して,他のサーバ(図示しない)上で動作するソフトウェアと通信する場合を想定する。ここで,サーバSVRのIPアドレスは"x1.y1.z1.w1"で,特定処理用ソフト2021が使用するポート番号は"p1"であるとする。そして,他のサーバに設定されたIPアドレスは"x2.y2.z2.w2"で,他のサーバ上で動作するソフトウェアが使用するポート番号は"p2"であるとする。
管理者は,システムの増設時に,増設対象となるサーバSVRの操作装置205aを操作して,前記したIPアドレス("x1.y1.z1.w1")をサーバSVRに予め設定する。さらに,管理者は,サーバSVRの操作装置205aを操作して,通信相手のポート番号("p2")を送信先ポート番号として,特定処理用ソフト2021に予め設定する。なお,管理者は,サーバSVRの操作装置205aを操作して,特定処理用ソフト2021がポート番号"p1"を送信元のポート番号として使用するように予め特定処理用ソフト2021に設定している。また,管理者は,他のサーバの増設時に,前記したIPアドレス("x2.y2.z2.w2")を他のサーバに予め設定し,ポート番号("p2")を他のサーバが実行する特定処理用ソフト(図示しない)に予め設定している。
通信用ソフト2022は,送信元IPアドレスを"x1.y1.z1.w1",送信元ポート番号を"p1",送信先IPアドレスを"x2.y2.z2.w2",送信先ポート番号を"p2"とする通信パケットを作成する。そして,通信用ソフト2022は,この通信パケットに送信用データ(ペイロードとも呼ぶ)を含めて,他のサーバ宛に送信(データ送信とも呼ぶ)する。
通信用ソフト2022は,前記送信と同時に,送信元IPアドレスを"x1.y1.z1.w1",送信元ポート番号を"p1",送信先IPアドレスを"x2.y2.z2.w2",送信先ポート番号を"p2"として含む通信ログを作成し,記憶装置203に記憶する。このように,通信用ソフト2022は,通信の送信元および送信先を特定する特定情報を通信ログとして記録する。通信ログは,少なくとも通信の送信元および送信先を特定する特定情報を含むデータである。
なお,通信用ソフト2022は,データ送信に先立ち,他のサーバとコネクションを確立するが,このコネクションの確立が成功すると,状態として"OK"を前記通信ログに含める。一方,通信用ソフト2022は,他のサーバとコネクションが確立できなかった場合,状態として"応答無し"を記憶する。そして,通信用ソフト2022は,この"応答無し"の記憶に対応して,送信元IPアドレスを"x1.y1.z1.w1",送信元ポート番号を"p1",送信先IPアドレスを"x2.y2.z2.w2",送信先ポート番号を"p2"として含む通信ログを記憶する。また,通信用ソフト2022は,通信回数を記憶する。
さて,管理者は,構築中の第2のブロックB20bにおけるサーバに送信元IPアドレスを設定したり,さらに,このサーバ上で動作する特定処理用ソフトに,送信先ポート番号,送信元ポート番号,送信先IPアドレスを予め設定する。しかし,この設定時に設定ミスが発生する。そこで,管理者は,第2のブロックB20bについて動作検証を行い検証結果に基づいて,設定ミスを修正する必要がある。以下,設定ミスの自動検出を行う管理装置4について説明する。
[管理装置の第1の実施の形態]
(管理装置のハードウェアブロック図)
図5は,図1の管理装置4を説明するハードウェアブロック図の一例である。管理装置4は,例えばバスBを介して相互に接続された,CPU401と,メモリ402と,記憶装置403と,通信装置404と,操作制御部405と,表示制御部406と,記録媒体読み取り装置407とを有する。
CPU401は,管理装置4の全体を制御するコンピュータ(制御部)である。メモリ402は,CPU401が実行する各種情報処理において処理されたデータや各種プログラムを一時的に記憶する。記憶装置403は,例えば,ハードディスクドライブなどの磁気記憶装置や,不揮発性のメモリである。記憶装置403は,後記する通信ログデータベースDB1,サーバ対応データベースDB2を記憶する。
通信装置404は,例えばネットワークインターフェイスカードであり,ネットワークNに接続し,このネットワークNに接続している各種装置との通信を行う。
操作制御部405は,操作装置405aから入力される操作指示に対して,操作指示に応じた各種処理を実行する。操作装置405aは,例えば,キーボードやマウスである。
表示制御部406は,表示装置406aに各種画像を表示する処理を実行する。ここで各種画像とは,例えば,設定ミスに関連する各種情報を含む画像である。表示装置406aは,例えば,液晶ディスプレイである。
記録媒体読み取り装置407は,記録媒体407aに記録されたデータを読み取る装置である。記録媒体407aは,例えば,CD-ROM,DVD,USBメモリなどの可搬型記録媒体である。なお,図9で説明するプログラムをこの記録媒体407aに記録してもよい。
(通信ログデータベース)
図6は,図5の通信ログデータベースDB1を説明する第1のテーブルである。通信ログテーブルT1aは,管理装置4が第1のブロックA20aから取得した通信ログを記憶するテーブルの一例である。図5の通信ログデータベースDB1が,通信ログテーブルT1aを記憶している状態を図5の符号Toで示している。
通信ログテーブルT1aは,送信元IPアドレス欄と,送信元ポート番号欄と,送信先IPアドレス欄と,送信先ポート番号欄とを有する。通信ログテーブルT1aにおいて,1行毎に1つの通信ログを記憶している。なお,各欄の内容については,後述する。
図7は,図5の通信ログデータベースDB1を説明する第2のテーブルである。通信ログテーブルT1bは,管理装置4が第2のブロックB20bから取得した通信ログを記憶するテーブルの一例である。図5の通信ログデータベースDB1が,通信ログテーブルT1bを記憶している状態を図5の符号Tsで示している。
通信ログテーブルT1bは,送信元IPアドレス欄と,送信元ポート番号欄と,送信先IPアドレス欄と,送信先ポート番号欄と,状態欄とを有する。通信ログテーブルT1bにおいて,1行毎に1つの通信ログを記憶している。なお,各欄の内容については,後述する。
(サーバ対応データベース)
図8は,図5のサーバ対応データベースDB2を説明するテーブルである。図5のサーバ対応データベースDB2が,サーバ対応テーブルTR1を記憶している状態を図5の符号TRで示している。サーバ対応テーブルTR1は,IPアドレス欄(第1のブロックA)と,IPアドレス欄(第2のブロックB)とを有する。IPアドレス欄(第1のブロックA)は,第1のブロックA20aが有するサーバに設定されたIPアドレスを記憶する。IPアドレス欄(第2のブロックB)は,第2のブロックB20bが有するサーバに設定されたIPアドレスを記憶する。
サーバ対応テーブルTR1は,動作検証済みの第1の装置群の装置と,動作検証対象の第2の装置群の装置とをそれぞれ対応付けた対応情報の一例である。図5の記憶装置403は,この対応情報を記憶している。なお,図19で説明するように,サーバ対応テーブルTR1のIPアドレス(第2のブロックB)欄には,IPアドレス"12.0.3.7"が記憶されていない。
第1の装置群とは,例えば,図2の第1のブロックA20aである。第1の装置群の装置とは,例えば,第1のブロックA20aのサーバであり,イメージ管理サーバ212,VM用サーバ222などである。第2の装置群とは,例えば,図2の第2のブロックB20bである。第2の装置群の装置とは,例えば,第2のブロックB20bのサーバであり,イメージ管理サーバ232,VM用サーバ242などである。
図8において,同一行に記憶されたIPアドレスが設定された各サーバは,同機能のサーバである。ここでは,IPアドレス欄(第1のブロックA)が記憶するIPアドレス" 192.168.1.23"が設定されたサーバをサーバAと記す。このサーバAと,前記IPアドレス("192.168.1.23")と同一行における,IPアドレス欄(第2のブロックB)が記憶するIPアドレス" 192.168.1.23"が設定されたサーバ(以下,サーバBと記す)とは,同機能のサーバである。例えば,サーバAがDNSサーバの場合,サーバBもDNSサーバである。
すなわち,サーバ対応テーブルTR1は,動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定された各IPアドレスとを含んでいる。
管理者は,予め,操作装置405a(図5参照)を操作してサーバ対応テーブルTR1を作成し,図5のサーバ対応データベースDB2に記憶する。サーバ対応テーブルTR1が記憶するIPアドレスは,正しいIPアドレスである。なお,サーバ対応テーブルの作成方法は特に指定せず,手動または自動(機械的)で作成してもよい。
(管理装置のソフトウェアモジュールのブロック図)
図9は,図5の管理装置4のソフトウェアモジュールのブロック図である。なお,管理装置4において,ハードウェア要素である,記憶装置403,通信装置404を点線で図示している。
管理装置4は,第1の装置群と第2の装置群とがネットワークに接続された情報処理システムSYS(図1参照)における通信の送信元および送信先を特定する特定情報の設定誤りを検出する装置の一例である。ここで,特定情報は,送信元および送信先のIPアドレスと,送信元および送信先のポート番号とを含む。
前記した特定情報の設定誤りを検出し,通知するために,管理装置4は,通信ログ取得部41と,通信ログ整形部42と,通信ログ比較部43と,ミス検出部44と,通知部45とを有する。
通信ログ取得部41は,動作検証済みの第1の装置群(例えば,第1のブロックA20a)のネットワーク通信の第1の通信ログを取得する。さらに,通信ログ取得部41は,動作検証対象の第2の装置群(例えば,第2のブロックB20b)のネットワーク通信の第2の通信ログを取得する。なお,図4で説明したように,第2の通信ログは,ネットワーク通信が正常に実行されたこと(通信状態"OK")またはネットワーク通信が正常に実行されていないこと("応答無し")を示す通信状態情報を含む。
通信ログ整形部42は,通信ログ取得部41が取得した第1,第2の通信ログを,通信ログの記憶量を削減するために,整形して記憶する。通信ログ比較部43は,サーバ対応テーブルTR1を参照し,第1の通信ログの第1の特定情報と,第1の通信ログに対応する,第2の通信ログの第2の特定情報とを比較する。
ミス検出部44は,前記した第1の特定情報と第2の特定情報との比較結果に基づき,第2の装置群の装置(例えば,サーバ)に設定された特定情報の設定誤り(設定ミスとも呼ぶ)を検出する。通知部45は,ミス検出部44が検出した設定ミスを表示制御部406と表示装置406a(図5参照)とを介して,管理者に通知する。
通信ログ取得部41,通信ログ整形部42,通信ログ比較部43,ミス検出部44,通知部45は,いわゆるプログラムである。これらのプログラムは,例えば,記憶装置403に記憶されている。図5のCPU401は,起動時に,これらのプログラムを記憶装置403から読み出して,メモリ402に展開することにより,これらのプログラムをソフトウェアモジュールとして機能させる。
(ハードウェアの増設,動作検証)
図1,図2,図4に基づき,ハードウェアの増設について具体的に説明する。情報処理システムSYSの利用者が増加することによるリソース要求が増大すると,管理者は,例えば,前記した部分システム単位でハードウェアを増設する。
この部分システムとは,ブロック管理サーバ群21,ブロック管理サーバ群23でもよい。この場合,増設対象の部分システムが,ブロック管理サーバ群23であり,既存の部分システムが,ブロック管理サーバ群21である。
管理者は,この部分システム単位の増設では,増設対象の部分システムが有する第1の構成を,既存の部分システムが有する第2の構成と同一又はほぼ同一にする。前記した第1の構成および第2の構成とは,ハードウェア構成,ソフトウェア構成である。なお,このハードウェアとは,例えば,サーバや,ネットワーク装置や,ストレージ装置である。
第1,第2の構成がハードウェア構成の場合,第1の構成と第2の構成とが同一とは,次の場合を言う。すなわち,前記同一とは,既存の部分システムが有するハードウェア構成が第1〜第An(Anは2以上の整数)のサーバの場合,増設対象の部分システムが有するハードウェア構成も第1〜第Anのサーバである。また,第1,第2の構成がハードウェア構成の場合,第1の構成と第2の構成とがほぼ同一とは,次の場合を言う。すなわち,前記ほぼ同一とは,既存の部分システムが有するハードウェア構成が第1〜第Anのサーバの場合,増設対象の部分システムは,前記第1〜第Anのサーバの中の8割のサーバと同機能のサーバを有する。
第1,第2の構成がソフトウェア構成の場合,第1の構成と第2の構成とが同一とは,次の場合を言う。すなわち,前記同一とは,既存の部分システムの各サーバにおいて第1〜第Bn(Bnは2以上の整数)のソフトウェアが動作する場合,増設対象の部分システムの各サーバにおいても第1〜第Bnのソフトウェアが動作する。また,第1,第2の構成がソフトウェア構成の場合,第1の構成と第2の構成とがほぼ同一とは,次の場合を言う。すなわち,前記ほぼ同一とは,既存の部分システムの各サーバにおいて第1〜第Bnのソフトウェアが動作する場合,増設対象の部分システムは,自システムの各サーバにおいて,前記第1〜第Bnのソフトウェアの中の8割のソフトウェアを実行する。なお,前記した8割という数値は,あくまでも例示である。
管理者が,第1の構成と第2の構成とを同一又はほぼ同一にするのは以下の理由による。第1の理由とは,管理者が,例えば,既存の部分システムのハードウェアやソフトウェアに設定している各種設定情報などを,増設対象の部分システム用に一部のみカスタマイズして,増設対象の部分システムのハードウェアやソフトウェアに設定するためである。換言すれば,管理者が,既存の部分システムのハードウェアやソフトウェアに設定している各種設定情報を増設対象の部分システムで流用(使い回すとも呼ぶ)するためである。この流用により,管理者は,サーバの増設作業の工数を削減する。
また,第2の理由とは,管理者が,第1の構成と第2の構成とを同一又はほぼ同一にすることで,既存の部分システムの管理で培った経験を,増設対象の部分システムの管理において活用するためである。この活用により,管理者は,増設対象の部分システムを管理する負担が軽減する。
管理者が,ハードウェアを増設し,増設したハードウェアや,このハードウェアが実行するソフトウェアに各種設定を行う場合,通信関連情報の設定をミスすることがある。
例えば,前記したように,管理者は,部分システムを増設する際に,管理者が,既存の部分システムのハードウェアやソフトウェアに設定している各種設定情報を増設対象の部分システムで流用する。この各種設定情報とは,前記したIPアドレスやポート番号などの通信関連情報である。
管理者は,この通信関連情報の流用において,既存の部分システムで使用した通信関連情報の中のIPアドレスやポート番号を一部カスタマイズする。そして,管理者は,カスタマイズしたIPアドレスやポート番号を増設対象の部分システムのハードウェアやソフトウェアに設定する。
例えば,管理者は,ブロック管理サーバ群毎に定められた個別の仕様に対応するため,異なる管理サーバ群における同機能のサーバに対して異なるIPアドレスやポート番号を設定することがある。そのため,管理者は,前記カスタマイズを行う。
図2の例では,管理者は,第1のブロックA20aのイメージ管理サーバ212に設定したIPアドレスやポート番号をカスタマイズして,イメージ管理サーバ212と同機能の第2のブロックB20bのイメージ管理サーバ232に設定することがある。例えば,管理者が,第1のブロックA20aのイメージ管理サーバ212にIPアドレス"12.0.3.7"を設定した場合を想定する。この場合,管理者は,イメージ管理サーバ212と同機能である第2のブロックB20bのイメージ管理サーバ232には,IPアドレス"12.0.3.7"をカスタマイズしたIPアドレス"12.4.3.7"を設定する。
しかし,管理者は,部分システムを増設する作業工程において,IPアドレスなどの通信関連情報を適切にカスタマイズしないことや,通信関連情報のカスタマイズを忘れることによる,通信関連情報の設定ミスをおかすことがある。その結果,増設対象の部分システム(図2の例では,第2のブロックB20b)は,適切なデータ処理を行わないことがある。そこで,管理者は,増設対象の部分システムの運用に先立ち,増設対象の部分システムが適切に動作するか検証し,設定ミスを修正する。
(動作検証)
図1,図2,図4に基づき,増設対象の部分システムの動作検証について説明する。管理者は,例えば,動作検証として,第1のブロックA20aが実行する処理と同内容の処理を第2のブロックB20bに実行させる。第1のブロックA20aが実行する処理としては,利用者用の仮想マシンの起動,実行,起動した仮想マシンの停止がある。
具体的には,管理者は,第2のブロックB20bのイメージ管理サーバ232に動作検証用の仮想マシンの起動,実行指示を行う。イメージ管理サーバ232は,この指示に応答して,動作検証用の仮想マシンを起動,実行するためのネットワーク情報を送信するように指示するコマンドを含む通信パケット(以下,コマンドと略記する)をネットワーク管理サーバ233に送信する。ネットワーク管理サーバ233は,このコマンドに応答して,ネットワーク情報をイメージ管理サーバ232に送信する。同じく,イメージ管理サーバ232は,動作検証用の仮想マシンを起動,実行するためのストレージ情報を送信するように指示するコマンドをストレージ管理サーバ234に送信する。ストレージ管理サーバ234は,このコマンドに応答して,ストレージ情報をイメージ管理サーバ232に送信する。
イメージ管理サーバ232は,VM起動コマンドと共に,自装置が管理するVM起動用情報と受信したネットワーク情報とストレージ情報とを,利用者サーバ群24のVM用サーバ242に送信する。VM用サーバ242は,VM起動コマンドに応答して,受信したVM起動用情報と,ネットワーク情報と,ストレージ情報とに対応する仮想マシンを起動し,実行する。管理者は,VM用サーバ242が起動,実行している仮想マシンに対して各種情報処理を実行させ,適切な動作が行われているか確認する。
この確認が終了すると,管理者は,第2のブロックB20bのイメージ管理サーバ232に動作検証用の仮想マシンの停止指示を行う。イメージ管理サーバ232は,この指示に応答して,動作検証用の仮想マシンの停止を指示するコマンドをVM用サーバ242に送信する。VM用サーバ242は,このコマンドに応答して,実行している仮想マシンを停止する。前記した各サーバ間におけるコマンドなどの送受信に伴い,この各サーバは,通信ログを作成し,自装置に記憶する。
さて,第2のブロックB20bのハードウェアやソフトウェアに正しい通信関連情報が設定されている場合には,この検証の過程において,サーバ間通信が適切に実行される。しかし,第2のブロックB20bのハードウェアやソフトウェアに正しい通信関連情報が設定されていない場合には,サーバ間通信は適切に実行されない。
例えば,イメージ管理サーバ232のソフトウェア(特定処理用ソフト)が,ネットワーク
管理サーバ233と通信する場合を想定する。この場合,管理者は,第2のブロックB20bの増設時に,イメージ管理サーバ232のソフトウェアに,通信先のネットワーク管理サーバ233用の通信関連情報を正しく設定しなければならない。前記した通信関連情報としては,例えば,通信先のネットワーク管理サーバ233のIPアドレス,ネットワーク管理サーバ233が実行するサービス用のポート番号である。イメージ管理サーバ232に正しい通信関連情報が設定されていない場合,イメージ管理サーバ232は,ネットワーク管理サーバ233に対する通信が実行できず,その結果,前記した仮想マシンの起動,実行が行わなくなり,第2のブロックB20bの動作検証が失敗に終わる。動作検証が失敗に終わると,管理者は,動作検証の失敗原因を解析する。
さて,動作検証対象の第2のブロックB20bが有するハードウェア構成,ソフトウェア構成と,動作検証が既に実行され適切に動作している第1のブロックA20aが有するハードウェア構成,ソフトウェア構成とは,同一又はほぼ同一である。また,管理者は,第1のブロックA20aのサーバに設定した通信関連情報を一部カスタマイズして,第2のブロックB20bのサーバに設定している。
ここで,動作検証として,第1のブロックA20aが実行する処理と同内容の処理を第2のブロックB20bが実行した場合,動作検証対象の第2のブロックB20bにおいて通信処理が適切に動作すると仮定する。この仮定下において,動作検証済みの第1のブロックA20aに存在する通信ログに一致又は略一致する通信ログが,動作検証対象の第2のブロックB20bに存在する可能性が高くなると想定できる。
このとき,発明者は,動作検証済みの第1の装置群(例えば,第1のブロックA20a)においてのみ存在する通信ログに関連する通信関連情報に設定ミスがある可能性が高いことを見出した。
他にも,発明者は,動作検証対象の第2の装置群(例えば,第2のブロックB20b)に存在する通信ログの中で,動作検証済みの第1の装置群に存在する通信ログに一致する通信ログがあっても,この通信ログに関連する通信関連情報に設定ミスがある可能性が高いことを見出した。この理由として,後記するように,通信処理が偶然成功した場合がある。
他にも,動作検証対象の第2のブロックB20bにおける通信ログの中には,通信失敗を示す通信ログ(通信状態情報が"応答無し")が記録されることがある。このような通信ログも,同様に,この通信ログに関連する通信関連情報に設定ミスがある可能性が高い。以下,通信関連情報に設定ミスがある可能性が高い通信ログを設定ミス候補の通信ログと適宜記す。
そこで,管理装置4は,動作検証において,動作検証済みの第1の装置群において存在する通信ログと,動作検証対象の第2の装置群において存在する通信ログとを比較する。そして,管理装置4は,比較結果に基づき,設定ミス候補の通信ログを検出する。管理装置4は,検出した設定ミス候補の通信ログに関連する通信関連情報について設定ミスが発生したものと見なし,その旨を管理者に通知する。以下に,管理装置4が実行する通信ログの比較,設定ミスの検出,通知について詳細に説明する。
(通信ログの取得処理とマージ処理)
図9の管理装置4の通信ログ取得部41は,動作検証に先立ち,動作検証済みの第1の装置
群の通信ログを取得し,通信ログ整形部42は,取得した通信ログを適宜整形(マージとも呼ぶ)する。そして,動作検証において,通信ログ取得部41は,動作検証対象の第2の装置群の通信ログを取得し,通信ログ整形部42は,取得した通信ログを適宜マージする。
図10は,通信ログの取得処理とマージ処理の流れを説明するフロー図である。図10を参照し,図9の通信ログ取得部41,通信ログ整形部42が実行する処理の流れを説明する。
ステップS1:通信ログ取得部41は,動作検証済みの第1の装置群の通信ログ又は動作検証対象の第2の装置群の通信ログを取得する。すなわち,通信ログ取得部41は,動作検証済みの第1のブロックA20aの通信ログ又は動作検証対象の第2のブロックB20bの通信ログを取得する。通信ログ取得部41は,取得した通信ログを通信ログ整形部42に出力する。通信ログ取得部41は,第2のブロックB20bの動作検証の前に,動作検証済みの第1のブロックA20aに含まれるサーバの記憶装置が記憶する通信ログ群(図4の符号LG参照)から未取得の通信ログを取得する。また,通信ログ取得部41は,動作検証時に,動作検証対象の第2のブロックB20bに含まれるサーバの記憶装置が記憶する通信ログ群(図4の符号LG参照)から未取得の通信ログを取得する。
ステップS2:通信ログ整形部42は,取得した通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みか判定する。
具体的には,通信ログ整形部42は,通信ログ取得部41が,動作検証済みの第1のブロックA20aの通信ログを取得した場合,この通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログテーブルT1aに記憶済みか判定する。一方,通信ログ整形部42は,通信ログ取得部41が,動作検証対象の第2のブロックB20bの通信ログを取得した場合,この通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログテーブルT1bに記憶済みか判定する。
通信ログ整形部42は,取得した通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みでない場合(ステップS2/NO),ステップS3に移る。
ステップS3:通信ログ整形部42は,通信ログ取得部41が取得した通信ログを通信ログデータベースDB1に記憶する。具体的には,通信ログ整形部42は,通信ログ取得部41が,動作検証済みの第1のブロックA20aの通信ログを取得した場合,取得した通信ログの送信元IPアドレスと送信先IPアドレスと送信元ポート番号と送信先ポート番号とを通信ログテーブルT1aに記憶する。
一方,通信ログ整形部42は,ステップS2において,通信ログ取得部41が取得した通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みの場合(ステップS2/YES),ステップS4に移る。
ステップS4:通信ログ整形部42は,通信ログ取得部41が取得した通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが通信ログデータベースDB1に記憶済みか判定する。具体的には,通信ログ整形部42は,通信ログ取得部41が,第1のブロックA20aの通信ログを取得した場合,この通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが図6の通信ログテーブルT1aに記憶済みか判定する。一方,通信ログ整形部42は,通信ログ取得部41が,第2のブロックB20bの通信ログを取得した場合,この通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが図7の通信ログテーブルT1bに記憶済みか判定する。
ステップS4において,通信ログ取得部41が取得した通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが通信ログデータベースDB1に記憶済みの場合(ステップS4/YES),ステップS5に移る。以下,通信ログデータベースDB1に記憶済みの通信ログの中で,通信ログ取得部41が取得した通信ログの送信元及び送信先IPアドレスが共に一致し,さらに,この通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログをマージ元の通信ログと適宜記す。
ステップS5:通信ログ整形部42は,通信ログデータベースDB1に記憶済みのマージ元の通信ログと,通信ログ取得部41が取得した通信ログとをマージする。なお,ステップS5における2つの通信ログのマージについては,図19で具体的に説明する。
ステップS4において,通信ログ取得部41が取得した通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが通信ログデータベースDB1に記憶済みでない場合(ステップS4/NO),ステップS3に移る。
通信ログ整形部42は,ステップS1において、複数の通信ログを取得した場合,ループLP1〜LP2に示したように,ステップS1〜ステップS5の処理を,通信ログ取得部41が取得した各ログに対して実行する。
図11は,通信ログの取得処理とマージ処理を具体的に説明する図である。図11において,通信ログTM1aは,通信ログ取得部41が取得した第1のブロックA20aの通信ログである。
通信ログTM2aは,通信ログTM1aの取得後に,通信ログ取得部41が取得した第1のブロックA20aの通信ログである。なお,通信ログTM1a,通信ログTM2aについては,テーブル形式で示している。さらに,図11において,マージ通信ログTM3aは,通信ログ整形部42が通信ログTM1a,TM2aをマージした状態をテーブル形式で示した図である。
図6,図10,図11を参照して,図10の処理の流れを具体的に説明する。通信ログ取得部41は,例えば,第1のブロックA20aのブロック管理サーバ群21におけるあるサーバ(例えば,イメージ管理サーバ212)から第1,第2の通信ログを取得する(ステップS1)。
第1の通信ログは,例えば,図11の通信ログTM1aである。通信ログTM1aは,送信元IPアドレス"192.168.1.26",送信元ポート番号"58394",送信先IPアドレス"192.168.1.37",送信先ポート番号"25"を含む通信ログである。第2の通信ログは,例えば,図11の通信ログTM2aである。通信ログTM2aは,送信元IPアドレス"192.168.1.26",送信元ポート番号"58413",送信先IPアドレス"192.168.1.37",送信先ポート番号"25"を含む通信ログである。
ここで,通信ログTM1aの送信元IPアドレス"192.168.1.26",送信先IPアドレス"192.168.1.37"が共に一致する通信ログが,図9の通信ログデータベースDB1の通信ログテーブルT1aに記憶されていない場合(ステップS2/NO),通信ログ整形部42は,以下の処理を実行する。すなわち,通信ログ整形部42は,図11の通信ログTM1aに示したように,通信ログTM1aを
通信ログデータベースDB1の通信ログテーブルT1aに記憶する(ステップS3)。
次いで,ループLP2からループLP1に戻りステップS2に移る。通信ログ整形部42は,ステップS2において,通信ログTM2aの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みと判定し(ステップS2/YES),ステップS4に移る。この場合,通信ログTM1aがマージ元の通信ログとなる。
ステップS2でYESと判定されるのは,通信ログTM1a,TM2aの送信元IPアドレス("192.168.1.26")と,送信先IPアドレス("192.168.1.37")とは共に一致し,通信ログTM1aは,通信ログデータベースDB1に記憶済みだからである。
通信ログ整形部42は,ステップS4において,通信ログTM2aの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログは通信ログデータベースDB1に記憶済みと判定し(ステップS4/YES),ステップS5に移る。ステップS4でYESと判定されるのは,通信ログTM1a,TM2aの送信先ポート番号("25")が一致するからである。
通信ログ整形部42は,通信ログデータベースDB1に記憶済みの通信ログTM1aと,通信ロ
グTM2aをマージする(ステップS5)。通信ログ整形部42は,ステップS5では,通信ログTM1aの送信元ポート番号"58394"と,通信ログTM2aの送信元のポート番号"58413"とをマージする。マージした状態を,図11のマージ通信ログTM3aに示す。ここで,マージ通信ログTM3aにおける,送信元ポート番号欄の"*****"は,ポート番号をマージした状態を模式的に示している。そして,通信ログ整形部42は,図6の通信ログテーブルT1aの最上段に示すように,通信ログデータベースDB1に記憶する。
ステップS5におけるマージとは,図10のステップS2,ステップS4で説明した条件に合致(ステップS2,ステップS4でYES)する両通信ログをまとめて1つの通信ログとして統合することを意味している。
具体的には,ステップS5におけるマージとは,マージ元の通信ログの送信元ポート番号と,取得した通信ログの送信元ポート番号とが一致する場合,マージ元の通信ログの送信元ポート番号を任意の文字列(例えば"*****")に変換する。または,このマージとは,マージ元の通信ログの送信先ポート番号と,取得した通信ログの送信先ポート番号とが一致する場合,マージ元の通信ログの送信先ポート番号を任意の文字列に変換する。これらの文字列の替わりに任意の数値(例えば,0xFFFFF(16進数))にしても良い。
図10,図11で説明したように,通信ログ整形部42は,以下の条件を満たす場合,2つの第1の通信ログ(第1のブロックA20aの通信ログ)を統合して1つの第1の通信ログとして記憶装置24に記憶する。この条件とは,すなわち,2つの第1の通信ログに含まれる送信元および送信先IPアドレスが一致し,さらに,2つの第1の通信ログに含まれる送信元ポート番号または送信先ポート番号が一致する場合である。
また,図10,図11で説明したように,通信ログ整形部42は,以下の条件を満たす場合,2つの第2の通信ログ(第2のブロックB20bの通信ログ)を統合して1つの第2の通信ログとして記憶装置24に記憶する。この条件とは,すなわち,2つの第2の通信ログに含まれる送信元および送信先IPアドレスが一致し,さらに,2つの第2の通信ログに含まれる送信元ポート番号または送信先ポート番号が一致する場合である。
以下に,通信ログをマージする理由を説明する。その理由とは,データベースに記憶する通信ログの量を削減するためである。例えば,あるサーバが実行する第1,第2のソフトウェアが,他のサーバが実行する第3のソフトウェアにデータ処理(サービスとも呼ぶ)を依頼するとする。ここで,第3のソフトウェアは,SMTPによる電子メールの転送処理を実行するソフトウェアであり,第1,第2のソフトウェアと通信を行う。
第1のソフトウェアは,例えば送信元のポート番号"58394",送信先のポート番号"25"を利用して,第3のソフトウェアに電子メールの転送依頼を行う。また,第2のソフトウェアは,例えば送信元のポート番号"58413",送信先のポート番号"25"を利用して,第3のソフトウェアに電子メールの転送依頼を行う。
通信処理時において,サービス依頼先のソフトウェアは,特定のポート番号(前記の例では"25")を利用してサービスの依頼を待ち受けるので,送信先ポート番号は固定される。一方,サービス依頼元のソフトウェアは,通常,複数のソフトウェアであり,これら複数のソフトウェアが利用するポート番号は,それぞれ異なる。また,同じソフトウェアが,サービスを依頼する場合であっても,サービスを依頼する度に異なるポート番号を利用することがある。換言すれば,送信元ポート番号が頻繁に変更される。
また,サービス依頼先のソフトウェアが,それぞれ異なるサービス依頼元のソフトウェアに応答メッセージを送信する場合がある。なお,この応答メッセージも通信ログとして記録される。このように,サービス依頼先のソフトウェアが,それぞれ異なるサービス依頼元のソフトウェアに応答メッセージを送信する場合,送信元ポート番号は同じであるが,送信先ポート番号はそれぞれ異なる。
このように,送信元ポート番号として不特定のポート番号を利用し,送信先ポート番号として特定のポート番号を利用する通信処理が発生する。また,送信元ポート番号として特定のポート番号を利用し,送信先ポート番号として不特定のポート番号を利用する通信処理が発生することがある。そこで,通信ログのマージにおいて,この不特定のポート番号をマージした状態で,通信ログを通信ログデータベースDB1に記憶する。このマージにより,通信ログデータベースDB1に記憶する通信ログのデータ量を削減できる。また,後記する通信ログの比較において,比較処理を迅速に実行することができる。
次いで,通信ログ比較部43が通信ログの比較を実行し,ミス検出部44が通信関連の設定ミスの検出を実行する。
(通信ログのIPアドレスの変換)
通信ログ比較部43は,通信関連の設定ミスの検出の前に,設定ミスの検出を高精度に実行すべく,図8のサーバ対応テーブルTR1に基づき,通信ログのIPアドレスの変換を実行する。
サーバ対応テーブルTR1は,前記したように動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定された各IPアドレスを含んでいる。
動作検証において,通信ログ比較部43は,動作検証済みの第1の装置群において存在する第1の通信ログと,動作検証対象の第2の装置群において存在する第2の通信ログとを比較して,第1,第2の通信ログが同内容か判定する。通信ログ比較部43は,この比較の前段階において,第1の通信ログに含まれるIPアドレスと第2の通信ログに含まれるIPアドレスとを比較して,両IPアドレスが一致するか判定する。
この両IPアドレスが一致するか判定する場合,動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定されたIPアドレスが一対一に対応すれば,前記判定を高精度に実行できる。前記動作検証済みの第1の装置群の装置に設定されたIPアドレスと前記動作検証対象の第2の装置群の装置に設定されたIPアドレスとが一対一に対応するとは,例えば,これら両IPアドレスが一致することである。
しかし前記したように,管理者は,カスタマイズした各種設定情報(例えば,IPアドレス)などを,動作検証対象の第2の装置群の装置などに設定する。すなわち,前記動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能な装置である,前記動作検証対象の第2の装置群の装置に設定されたIPアドレスとが一致しないことがある。
そのため,動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定されたIPアドレスが一対一に対応するように,通信ログ比較部43は,以下のIPアドレスの変換処理を実行する。
すなわち,通信ログ比較部43は,第1の通信ログの送信元および送信先のIPアドレスを,サーバ対応テーブルTR1に基づき,この送信元および送信先のIPアドレスに対応する動作検証対象の第2の装置群の装置に設定されたIPアドレスに変換する。この変換処理を,図12を用いて具体的に説明する。なお,通信ログ比較部43は,第2の通信ログの送信元および送信先のIPアドレスを,サーバ対応テーブルTR1に基づき,この送信元および送信先のIPアドレスに対応する動作検証済みの第1の装置群の装置に設定されたIPアドレスに変換してもよい。
図12は,通信ログの変換処理について説明するテーブルである。図6,図8,図12に基づき,通信ログの変換処理を説明する。通信ログ比較部43は,まず,図6の通信ログテーブルを複製し,送信先ポート番号欄の右側に,フラグを記憶する一致有無欄を作成する。この一致有無欄を有するテーブルを,図12のマスタ通信ログテーブルT1mとして示す。図5の通信ログデータベースDB1が,図12のマスタ通信ログテーブルT1mを記憶している状態を図5の符号Tmで示している。
次いで,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mにおける送信元IPアドレス欄が記憶する送信元IPアドレスの中から変換対象のIPアドレスを図面上から1つずつ選択する。通信ログ比較部43は,図8のサーバ対応テーブルTR1のIPアドレス(第1のブロックA)欄が記憶するIPアドレスの中から,選択したIPアドレスに一致するIPアドレスを検索する。
そして,通信ログ比較部43は,図8のサーバ対応テーブルTR1のIPアドレス(第2のブロックB)欄が記憶するIPアドレスの中から,検索したIPアドレスと同一行のIPアドレスを特定する。すなわち,通信ログ比較部43は,検索したIPアドレスに対応する,IPアドレス(第2のブロックB)欄内のIPアドレスを特定する。そして,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mにおいて選択したIPアドレスを特定したIPアドレスに変換する。例えば,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mの送信元IPアドレス欄において,"12.4.3.6(変換前:12.0.3.6)"のように,IPアドレスの変換を実行する。
通信ログ比較部43は,前記したIPアドレスの選択処理,検索処理,特定処理,変換処理を,送信元IPアドレス欄が記憶する全送信元IPアドレスに対して実行する。なお,選択したIPアドレスと特定したIPアドレスとが同一IPアドレスの場合には,通信ログ比較部43は,前記した変換を実行しなくてもよい。
さらに,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mにおける送信先IPアドレス欄が記憶する送信先IPアドレスの中から変換対象のIPアドレスを図面上から1つずつ選択する。通信ログ比較部43は,図8のサーバ対応テーブルTR1のIPアドレス(第1のブロックA)欄が記憶するIPアドレスの中から,選択したIPアドレスに一致するIPアドレスを検索する。そして,通信ログ比較部43は,図8のサーバ対応テーブルTR1のIPアドレス(第2のブロックB)欄が記憶するIPアドレスの中から,検索したIPアドレスと同一行のIPアドレスを特定する。そして,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mにおいて選択したIPアドレスを特定したIPアドレスに変換する。例えば,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mの送信先IPアドレス欄において,"12.4.0.5(変換前:12.0.0.5)","12.0.3.7(変換前:12.4.3.7)"のように,IPアドレスの変換を実行する。
通信ログ比較部43は,前記したIPアドレスの選択処理,検索処理,特定処理,変換処理を,送信先IPアドレス欄が記憶する全送信先IPアドレスに対して実行する。図12の一致有無欄が記憶するフラグ"有り"については,図16,図17で説明する。なお,通信ログ比較部43は,変換処理による処理負荷の増大を抑制するために,前記した変換の実行を行わなくてもよい。
(一致有無欄の追加)
図13は,図7の通信ログテーブルT1bに一致有無欄を追加した通信ログテーブルを説明する図である。通信ログ比較部43は,図7の通信ログテーブルT1bの状態欄の右側にフラグを記憶する一致有無欄を作成する。この一致有無欄を有するテーブルを,図13の通信ログテーブルT11bとして示す。ここで,一致有無欄の作成時点では,フラグ"有り"は記憶されていない。なお,一致有無欄が記憶するフラグ"有り"については,図16,図17で説明する。図5の通信ログデータベースDB1が,通信ログテーブルT11bを記憶している状態を図5の符号Tsで示している。
(設定誤り検出処理)
図14は,通信ログの比較処理,設定ミスの検出処理の全体の流れを説明する第1のフロー図である。
ステップS11:通信ログ比較部43は,通信ログデータベースDB1から比較処理のマスタ(基準)となる全通信ログを読み出す。以下,マスタとなる通信ログをマスタ通信ログと適宜記す。具体的には,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mが記憶する全通信ログの特定情報(送信元および送信先IPアドレス,送信元および送信先ポート番号)を読み出す。
ステップS12:通信ログ比較部43は,通信ログデータベースDB1から動作検証対象の通信ログを読み出す。動作検証対象の通信ログは,第2のブロックB20bの通信ログである。具体的には,通信ログ比較部43は,図13の通信ログテーブルT11bが記憶する通信ログの特定情報の中で未だ読み出していない通信ログの特定情報を読み出す。
ステップS13:通信ログ比較部43は,ステップS12で読み出した動作検証対象の通信ログと,各マスタ通信ログとを比較して,両通信ログが一致することを示すフラグを両通信ログに設定する。ステップS13の処理については,図15で詳細に説明する。通信ログ比較部43は,ステップS12で読み出した動作検証対象の通信ログと,各マスタ通信ログとの比較処理を,全マスタ通信ログについて実行する(ループLP21〜LP22)。
ステップS14:ミス検出部44は,通信関連の設定ミスを検出し,通知部45は,ミス検出部44が検出した通信関連の設定ミスを通知する。
通信ログ比較部43は,ステップS12において図13の通信ログテーブルT11bから全ての通信ログを読み出すまで,ステップS12,ステップS13の処理を実行する(ループLP11〜LP12)。
図15は,図14のステップS13における通信ログの比較,設定ミスの検出を説明するフロー図である。
ステップS131:通信ログ比較部43は,マスタ通信ログの送信元IPアドレスおよび送信先IPアドレスと,動作検証対象の通信ログの送信元IPアドレスおよび送信先IPアドレスとが共に一致するか判定する。一致しない場合(S131/NO),図14のループLP22に移る。一致する場合(ステップS131/YES),ステップS132に移る。
ステップS132:通信ログ比較部43は,マスタ通信ログの送信元ポート番号及び動作検証対象の通信ログの送信元ポート番号がマージされているか,又は,マスタ通信ログの送信先ポート番号及び動作検証対象の通信ログの送信先ポート番号がマージされているか判定する。
以下,マスタ通信ログの送信元ポート番号及び動作検証対象の通信ログの送信元ポート番号がマージされている場合を,第1の場合と記す。また,マスタ通信ログの送信先ポート番号及び動作検証対象の通信ログの送信先ポート番号がマージされている場合を第2の場合と記す。
ここで,第2の場合(ステップS132/送信先ポートのみがマージ),ステップS133に移る。第1の場合(ステップS132/送信元ポートのみがマージ),ステップS134に移る。第1の場合でなく,かつ,第2の場合でない第3の場合,ステップS133に移る。第1〜第3の場合の何れかにも該当しない場合には,図14のループLP22に移る。
ステップS133:通信ログ比較部43は,マスタ通信ログの送信元ポート番号と,動作検証対象の通信ログの送信元ポート番号とが一致するか判定する。一致する場合(S133/YES),ステップS135に移る。一致しない場合(S133/NO),ステップS134に移る。
ステップS134:通信ログ比較部43は,マスタ通信ログの送信先ポート番号と,動作検証対象の通信ログの送信先ポート番号とが一致するか判定する。一致しない場合(S134/NO)
,図14のループLP22に移る。一致する場合(S134/YES),ステップS135に移る。
ステップS135:通信ログ比較部43は,一致する通信ログがある旨を示すフラグを,一致する通信ログに対して設定する。この一致する通信ログとは,ステップS131の条件を満たし(ステップS131/YES),ステップS133またはステップS134の条件を満たす(ステップS133/YESまたはステップS134/YES),マスタ通信ログおよび動作検証対象の通信ログである。
(フラグの設定)
図16,図17を参照して,図15で説明したフラグの設定について説明する。図16は,送信元ポート番号,送信先ポート番号の両方が,マージされている状態における通信ログの一致,不一致を説明する図である。
通信ログTC31aは,図12の符号P1に示したマスタ通信ログである。通信ログTC31bは,図13の符号P1に示した動作検証対象の通信ログである。通信ログTC32aは,図12の符号P2に示したマスタ通信ログである。通信ログTC32bは,図13の符号P2に示した動作検証対象の通信ログである。通信ログTC33aは,図12の符号P3に示したマスタ通信ログである。通信ログTC33bは,図13の符号P3に示した動作検証対象の通信ログである。
通信ログ比較部43は,例えば,通信ログTC31aと,通信ログTC31bとを比較する。ここで,通信ログTC31aに含まれる送信元IPアドレス("192.168.1.26")および送信先IPアドレス("192.168.1.37")と,通信ログTC31bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。また,通信ログTC31aおよび通信ログTC31bに含まれる送信元ポート番号がマージ("*****")されている。そして,通信ログTC31aに含まれる送信先ポート番号("25")と通信ログTC31bに含まれる送信先ポート番号("25")とが一致する。従って,通信ログ比較部43は,前記した両通信ログの比較において,図15のステップS131でYES,ステップS132で送信元ポートのみがマージ,ステップS134でYESと判定し,ステップS135に移る。
通信ログ比較部43は,図12のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC31a(図12の符号P1参照)に対応する行に,フラグ"有り"を記憶する(ステップS135)。
そして,通信ログ比較部43は,図13の通信ログテーブルT11bの一致有無欄において,通信ログTC31b(図13の符号P1参照)に対応する行に,フラグ"有り"を記憶する(ステップS135)。
次に,通信ログ比較部43は,例えば,通信ログTC32aと,通信ログTC32bとを比較する。通信ログ比較部43は,前記した両通信ログの比較において,図15のステップS131でYES,S132で送信先ポートのみがマージ,ステップS133でYESと判定し,ステップS135に移る。
通信ログ比較部43は,図12のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC32a(図12の符号P2参照)に対応する行に,フラグ"有り"を記憶する(ステップS135)。
そして,通信ログ比較部43は,図13の通信ログテーブルT11bの一致有無欄において,通信ログTC32b(図13の符号P2参照)に対応する行に,フラグ"有り"を記憶する(ステップS135)。
このような比較処理が繰り返し実行され(図14のLP11〜LP12参照),その結果,通信ログ比較部43は,例えば,通信ログTC33aと,通信ログTC33bとを比較する。ここで,通信ログTC33aに含まれる送信先IPアドレス(12.4.3.7)と,通信ログTC33bに含まれる送信先IPアドレス(12.0.3.7)とは一致しない。従って,通信ログ比較部43は,前記した両通信ログの比較において,図15のステップS131でNOと判定し,ステップS135の処理を実行しない。その結果,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC33a(図12の符号P3参照)に対応する行に,フラグ"有り"を記憶しない(空欄)。
通信ログ比較部43は,図13の通信ログテーブルT11bの一致有無欄において,通信ログTC33b(図13の符号P3参照)に対応する行に,フラグ"有り"を記憶しない(空欄)。
図17は,送信元ポート番号,送信先ポート番号の両方が,マージされていない状態における通信ログの一致,不一致を説明する図である。
通信ログTC41a〜TC43aは,マスタ通信ログの一例である。通信ログTC41b〜TC43bは,動作検証対象の通信ログの一例である。
通信ログ比較部43は,例えば,通信ログTC41aと,通信ログTC41bとを比較する。ここで,通信ログTC41aに含まれる送信元IPアドレス("192.168.1.37")および送信先IPアドレス("192.168.1.35")と,通信ログTC41bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。そして,通信ログTC41aに含まれる送信元ポート番号("53641")および送信先ポート番号("80")と,通信ログTC41bに含まれる送信元ポート番号および送信先ポート番号とが一致する。従って,通信ログ比較部43は,前記した両通信ログの比較において,図15のステップS131でYES,ステップS132でNO,ステップS133でYESと判定し,ステップS135に移る。
通信ログ比較部43は,図12のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC41aに対応する行(図示しない)に,フラグ"有り"を記憶する(ステップS135)。そして,通信ログ比較部43は,図13の通信ログテーブルT11bの一致有無欄において,通信ログTC41bに対応する行(図示しない)に,フラグ"有り"を記憶する(ステップS135)。
通信ログ比較部43は,例えば,通信ログTC42aと,通信ログTC42bとを比較する。ここで,通信ログTC42aに含まれる送信元IPアドレス("192.168.1.37")および送信先IPアドレス("192.168.1.35")と,通信ログTC42bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。一方,通信ログTC42aに含まれる送信元ポート番号("53641")と通信ログTC42bに含まれる送信元ポート番号("53645")とは不一致である。しかし,通信ログTC42aに含まれる送信先ポート番号("80")と通信ログTC42bに含まれる送信先ポート番号("80")とが一致する。
従って,通信ログ比較部43は,前記した両通信ログの比較において,図15のステップS131でYES,ステップS132,S133でNO,ステップS134でYESと判定し,ステップS135に移る。なお,ステップS135の処理は,通信ログTC42aと通信ログTC42bとの比較で説明したので省略する。
通信ログ比較部43は,例えば, 通信ログTC43aと,通信ログTC43bとを比較する。ここで,通信ログTC43aに含まれる送信元IPアドレス("192.168.1.37")および送信先IPアドレス("192.168.1.35")と,通信ログTC43bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。しかし,通信ログTC43aに含まれる送信元ポート番号("53641")と通信ログTC42bに含まれる送信元ポート番号("53645")とは不一致である。さらに,通信ログTC43aに含まれる送信先ポート番号("80")と通信ログTC43bに含まれる送信先ポート番号("443")とは不一致である。
従って,通信ログ比較部43は,前記した両通信ログの比較において,図15のステップS131でYES,ステップS132〜S134でNOと判定し,ステップS135の処理を実行しない。
以上説明したように,通信ログ比較部43は,前記したマスタ通信ログと,動作検証対象の通信ログとの比較を繰り返し行う。具体的には,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mが記憶する全マスタ通信ログを読み出す。そして,通信ログ比較部43は,読み出したマスタ通信ログと,図13の通信ログテーブルT11bが記憶する各通信ログとを比較する。そして,通信ログ比較部43は,両通信ログが一致した場合に,通信ログテーブルT1m,T11bの一致有無欄において,一致した通信ログに対応する行に,フラグ"有り"を記憶する。
(設定ミス候補の抽出)
図14のステップS11〜ステップS13の処理の実行により,通信ログ比較部43は,図12のマスタ通信ログテーブルT1mの一致有無欄にフラグを記憶し,さらに,図13の通信ログテーブルT11bの一致有無欄にフラグを記憶する。そして,図14のループLP12からステップS14に移る。
ミス検出部44は,図12のマスタ通信ログテーブルT1m,図13の通信ログテーブルT11bに基づき,設定ミス候補を抽出する。設定ミス候補の通信ログは,図12のマスタ通信ログテーブルT1m,図13の通信ログテーブルT11bの一致有無欄において,フラグ"有り"が記憶されていない(空白)行に記憶された通信ログである。また,設定ミス候補の通信ログは,図13の通信ログテーブルT11bの状態欄において,"応答なし"が記憶されている行に記憶された通信ログである。
ミス検出部44は,抽出した設定ミス候補に基づき,設定ミスを検出すると共に,設定ミスの原因を解析する。そして,通知部45は,設定ミスの内容,設定ミスの原因を管理者に通知する。まず,図18に基づき,設定ミス候補の抽出を説明する。
図18は,図14のステップS14で実行する設定ミス候補の抽出を説明する図である。
ミス検出部44は,設定ミスの検出の前段階として,設定ミス候補を抽出する。ミス検出部44は,複数の第1の通信ログの中(図12参照)から,複数の第2の通信ログ(図13参照)に含まれる第2の特定情報と一致しない通信ログを設定誤りの通信ログとして検出する。
具体的には,ミス検出部44は,複数の第1の通信ログの中から,複数の第2の通信ログに含まれる送信元および送信先IPアドレスが一致しない通信ログを第1の設定誤りの通信ログとして検出する。または,ミス検出部44は,複数の第1の通信ログの中から,複数の第2の通信ログに含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信ログを第1の設定誤りの通信ログとして検出する。以下,第1の設定誤りの通信ログを,第1の設定ミス候補の通信ログと適宜記す。
図12の例では,ミス検出部44は,図12のマスタ通信ログテーブルT1mが記憶する通信ログ群の中から,第1の設定ミス候補の通信ログを抽出する。第1の設定ミス候補の通信ログは,一致有無欄にフラグ"有り"が記憶されていていない通信ログである。図18の符号TE1aは,ミス検出部44が抽出した2つの第1の設定ミス候補の通信ログを示すテーブルである。
さらに,ミス検出部44は,複数の第2の通信ログの中から,複数の第1の通信ログに含まれる送信元および送信先IPアドレスが一致しない通信ログを第2の設定誤りの通信ログとして検出する。または,ミス検出部44は,複数の第2の通信ログの中から,複数の第1の通信ログに含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信ログを第2の設定誤りの通信ログとして検出する。以下,第2の設定誤りの通信ログを,第2の設定ミス候補の通信ログと適宜記す。
図13の例では,ミス検出部44は,図13の通信ログテーブルT11bが記憶する通信ログ群の中から,第2の設定ミス候補の通信ログを抽出する。第2の設定ミス候補の通信ログは,一致有無欄にフラグ"有り"が記憶されていていない通信ログである。さらに,ミス検出部44は,通信状態情報が正常に実行されていないことを示す通信情報を含む第2の通信ログ,例えば状態欄に"応答無し"が記憶されている通信ログを検出(抽出とも呼ぶ)する。
図18の符号TE1bは,ミス検出部44が抽出した第2の設定ミス候補の通信ログ,通信状態情報が正常に実行されていないことを示す通信情報を含む第2の通信ログを示すテーブルである。
そして,ミス検出部44は,第2の装置群の装置における,第1および第2の設定誤りの通信ログに関連する送信元および送信先を特定する特定情報の設定ミスを検出する。
図19〜図21は,図14のステップS14で実行する設定ミスの検出処理を説明する第1〜第3の図である。
ミス検出部44は,第1〜第3の異なる検出処理を実行して設定ミスの検出を行う。まず,第1の検出処理を説明する。
第1の検出処理にあたり,以下を前提とする。管理者は,動作検証済みの第1の装置群(例えば,第1のブロックA20a)におけるサーバ(以下,サーバS1と記す)に,送信元IPアドレス"12.3.0.142"を設定している。さらに管理者は,サーバS1が実行する通信用ソフトに対して送信先IPアドレスとして"12.0.3.7"を設定している。ここで,送信先IPアドレス"12.0.3.7"が設定された,送信先のサーバをサーバD1と記す。
そして,管理者は,サーバS1と同機能を有する,動作検証対象の第2の装置群(例えば,第2のブロックB20b)におけるサーバ(以下,サーバS2と記す)に,送信元IPアドレス"12.3.0.142"を設定する。そして,管理者は,送信先IPアドレス"12.0.3.7"をカスタマイズしたIPアドレス"12.4.3.7"を,サーバS2が実行する通信用ソフトに対して設定しなければならないとする。しかし,実際には,管理者は,前記カスタマイズを行わずに,IPアドレス"12.4.3.7"ではなく,送信先IPアドレス"12.0.3.7"を誤設定している。ここで,送信先IPアドレス"12.4.3.7"が設定された,送信先のサーバをサーバD2と記す。
図8のサーバ対応テーブルTR1によれば,IPアドレス(第1のブロックA)欄と,IPアドレス(第2のブロックB)欄における同一行には,それぞれ,IPアドレス"12.0.3.7",IPアドレス"12.4.3.7"が記憶されている。換言すれば,サーバD1とサーバD2とは同機能のサーバである。
さて,管理者が,動作検証対象の第2の装置群に対して動作検証を実行すると,サーバS2の通信ソフトは,通信パケットを作成し,送信する。この通信パケットは,例えば,送信元IPアドレス"12.3.0.142",送信元ポート番号"9000",送信先IPアドレス"12.0.3.7"(誤設定),所定の送信先ポート番号を含む。この通信パケットの送信先IPアドレス"12.0.3.7"(誤設定)は,図8のサーバ対応テーブルTR1のIPアドレス(第2のブロックB)には記憶されていない。そのため,この通信パケットは,第2のブロックB20b以外のブロック(例えば,第1のブロックA20a)に転送され,このブロックのサーバが受信することになる。そして,この通信パケットを受信したサーバが,肯定応答パケット(ACKパケットとも呼ぶ)をサーバS2の通信ソフトに返信する。その結果,サーバS2の通信用ソフトは,送信元IPアドレス"12.3.0.142",送信元ポート番号"9000",送信先IPアドレス"12.0.3.7"(誤設定),所定の送信先ポート番号,通信状態"OK"を含む通信ログを記憶する(図18の符号TE1b参照)。
このような通信は,IPアドレスの誤設定に起因するものなので,このIPアドレスの誤設定を修正する必要がある。そこで,管理装置4のミス検出部44は,以下の処理を実行する。
ミス検出部44は,第1の設定誤りの通信ログおよび第2の設定誤りの通信ログの中から,送信元IPアドレスおよび送信元ポート番号が一致する通信ログを第3の設定誤りの通信ログとして検出する。または,ミス検出部44は,送信先IPアドレスおよび送信先ポート番号が一致する通信ログを第4の設定誤りの通信ログとして検出する。
そして,ミス検出部44は,第2の装置群の装置における,第3および第4の設定誤りの通信ログに関連する送信元および送信先IPアドレスの設定誤りを検出する。そして,通知部45は,ミス検出部44が検出した設定誤りを通知する。
以下に,具体的に説明する。ミス検出部44は,第1の設定ミス候補の通信ログと,第2の設定ミス候補の通信ログとを比較する。そして,ミス検出部44は,第1,第2の設定ミス候補の通信ログの中から,送信元IPアドレスと送信元ポート番号とが一致する通信ログ,又は,送信先IPアドレスと送信先ポート番号とが一致する通信ログを抽出する。図18で例示した場合,ミス検出部44は,送信元IPアドレスと送信元ポート番号とが一致する通信ログとして,送信元IPアドレスが"12.3.0.142",送信元ポート番号が"9000"を有する通信ログを,第1,第2の設定ミス候補の通信ログの中から抽出する。
具体的には,ミス検出部44は,符号TE1aに示す2つの通信ログの中から,図19の通信ログTM1aを抽出する。通信ログTM1aは,送信元IPアドレスが"12.3.0.142",送信元ポート番号が"9000",送信先IPアドレスが"12.4.3.7",送信先ポート番号が"*****"を含む。さらに,ミス検出部44は,符号TE1bに示す2つの通信ログの中から,図19の通信ログTM1bを抽出する。通信ログTM1bは,送信元IPアドレス"12.3.0.142",送信元ポート番号"9000",送信先IPアドレス"12.0.3.7",送信先ポート番号"*****"を含む。
さて,図19の通信ログTM1bに含まれる送信先IPアドレス"12.0.3.7"は,前記したように,図8のサーバ対応テーブルTR1のIPアドレス(第2のブロックB)欄には記憶されていない。このように,ミス検出部44は,図19の通信ログTM1bに含まれるIPアドレスの中で,図8のIPアドレス(第2のブロックB)欄に記憶されていないIPアドレスがある場合には,このIPアドレスに関連した設定ミスが発生したと推定する。設定ミスが発生したと推定したIPアドレスは,送信先IPアドレス"12.0.3.7である。
そのため,ミス検出部44は,通信ログTM1bの送信元IPアドレス"12.3.0.142"が設定されたサーバにおける通信関連情報の設定時に誤りがあったと推定する。さらに,送信先IPアドレス"12.0.3.7"は,図8のサーバ対応テーブルTR1のIPアドレス(第1のブロックA)欄には記憶されているので,このIPアドレスに対応するIPアドレス"12.4.3.7"が正しいIPアドレスと推定する。
そして,通知部45は,送信元IPアドレス"12.3.0.142"が設定されたサーバにおける通信関連情報の設定時に誤りがあったこと,正しいIPアドレスが"12.4.3.7"であることを管理者に通知する。
次に,第2の検出処理を説明する。ミス検出部44は,第1の設定誤りの通信ログの中から,第3,第4の設定誤りの通信ログ以外の第5の設定誤りの通信ログを検出する。通知部45は,第2の装置群の装置における,第5の設定誤りの通信ログに関連する送信元IPアドレスの設定誤りを検出し,検出した設定誤りを通知する。
具体的に説明する。ミス検出部44は,動作検証済みの第1の装置群(例えば,第1のブロックA20a)においてのみ存在する通信ログの有無を検出する。前記したように,動作検証対象の第2の装置群(例えば,第2のブロックB20b)が有するハードウェア構成,ソフトウェア構成と,第1のブロックA20aが有するハードウェア構成,ソフトウェア構成とは,同一又はほぼ同一である。とすれば,第1のブロックA20aと第2のブロックB20bとにおいては,送信元,送信先を同一と見なすことができる通信が実行されている可能性が非常に高い。
そのため,第1のブロックA20aにおいてのみ存在する通信ログがある場合,この通信ログに関連した通信が,第2のブロックB20bにおいて実行されていない可能性が高い。詳しくは,第2のブロックB20bにおいてこの通信ログに関連する通信を実行する送信元のサーバで,このサーバが提供しなければならないサービスを実行するソフトウェアが稼働していない可能性が高い。他にも,このサーバに通信設定情報が何ら設定されていないなどの設定ミスが発生した可能性が高い。
第1のブロックA20aにおいてのみ存在する通信ログの有無を検出する具体的な処理を説明する。ミス検出部44は,図18の符号TE1aで示した2つの通信ログの中から,第1の検出処理で抽出した通信ログ以外の通信ログを抽出する。この抽出された通信ログは,第5の設定誤りの通信ログの一例であり,図20の通信ログTM11aである。通信ログTM11aは,送信元IPアドレスが"192.168.0.12",送信元ポート番号が"*****",送信先IPアドレスが"192.168.1.23",送信先ポート番号が"9002"を含む通信ログである。
この通信ログは,第1のブロックA20aにおいてのみ存在する通信ログである。
通知部45は,ミス検出部44が検出した通信ログに関連して設定ミスが発生したことを管理者に通知する。通知部45は,第2のブロックB20bにおいてこの通信ログに関連する通信を実行する送信元IPアドレス"192.168.0.12"が設定されたサーバでこのサーバが提供しなければならないサービスを実行するソフトウェアが稼働しているかを確認するように管理者に通知する。または,通知部45は,このサーバや,このサーバが実行するソフトウェアに設定されている通信用設定情報が正しいかを確認するように,管理者に通知する。
次に,第3の検出処理を説明する。ミス検出部44は,状態欄に"応答無し"が記憶されている,第2の設定ミス候補の通信ログを抽出する。"応答無し"の通信ログは,送信元サーバから,通信パケットを送信先サーバに送信したが,この通信パケットが送信先サーバに到達しなかった可能性が高い。その原因としては,例えば,送信元サーバと送信先サーバとの間におけるネットワーク上に設けられたファイヤーウォールが,前記した通信パケットをブロックした場合が考えられる。他にも,その原因としては,前記したネットワーク上に設けられたルータに設けられたルーティングテーブルの設定ミスが考えられる。
具体的には,ミス検出部44は,図18の符号TE1bで示した2つの通信ログの中から,状態欄に"応答無し"が記憶されている通信ログを抽出する。この抽出された通信ログは,図21の通信ログTM11bである。通信ログTM11bは,送信元IPアドレス"192.168.1.37",送信元ポート番号"*****",送信先IPアドレス"192.168.1.35",送信先ポート番号"9004"を含む。
状態欄に"応答無し"が記憶されている通信ログによれば,送信元IPアドレス"192.168.1.37"が設定された送信元サーバから送信先IPアドレス"192.168.1.35"が設定された送信先サーバのポート番号"9004"へ向けて送信された通信パケットが,ブロックされている可能性があると推定できる。
そこで,通知部45は,前記送信元サーバから前記送信先サーバへのネットワーク(通信経路)上に設置されているファイヤーウォールなどの設定が正しいか確認するように,管理者に通知する。
以上説明したように,本実施の形態の管理装置によれば,通信関連情報の設定ミスを自動検出し管理者に通知するだけでなく,その設定ミスの原因をも推定し管理者に通知している。従って,管理者は,設定ミスの特定,原因解析が容易になり,管理者の利便性が高まる。また,設定ミスの修正工程,修正時間も削減され,動作検証を迅速に終了できる。その結果,情報処理システムの利用者の利便性が向上するだけでなく,事業者の経済的利益をも向上する。
また,本実施の形態の管理装置は,サーバの通信ソフトが実行する通信処理で記録する通信ログのIPアドレス,ポート番号,通信状態を利用して,設定ミスの検出処理を実行している。
そのため,管理装置の他に,設定ミスの検出のため別途複雑なソフトウェアを導入する必要がなく,システムの複雑化や,システム構築のための費用増加を抑制できる。他にも,サーバ上で通信ログを記録するだけなので,サーバにおける処理負荷の増大を抑制できる。また,管理装置においても,通信ログを取得し,取得した通信ログに対して簡易な比較処理を実行しているだけなので,処理負荷の増大を抑制できる。
また,本実施の形態の管理装置は,通信ログの比較におけるマスタとなる通信ログを,動作中の第1のブロックA20aから取得している。そのため,管理装置は,通信ログの比較において,第1のブロックA20aの動作を中断することなく,第2のブロックB20bの動作検証が可能になる。そのため,第2のブロックB20bの動作検証中にも,第1のブロックA20aが動作して,クラウドシステムの利用者に対してサービスの提供を継続できる。
なお,管理装置4は,第1のブロックA20aのネットワークにおいて送受信される通信パケットのヘッダ情報から,通信の送信元および送信先を特定する特定情報を第1のブロックA20aの通信ログとして取得してもよい。同じく,管理装置4は,第2のブロックB20bのネットワークにおいて送受信される通信パケットのヘッダ情報から,通信の送信元および送信先を特定する特定情報を第2のブロックB20bの通信ログとして取得してもよい。
[管理装置の第2の実施の形態]
第1の実施の形態では,動作検証済みの第1の装置群は,1つ装置群(第1のブロックA20a)であった。第2の実施の形態では,動作検証済みの装置群が複数の場合に,管理装置4が実行する設定ミスの検出処理を説明する。管理装置4は,多数の設定ミスを検出した場合には,優先度に従って設定ミスを管理者に通知することが好ましい。換言すれば,重要度が高い設定ミスを先に管理者に通知することが好ましい。
そこで,管理装置4は,複数の動作検証済みの第1の装置群から取得した通信ログに対して確度値(以下,確度と適宜記す)を含める。より詳しくは,通信ログ比較部43は,複数の第1の装置群の第1の通信ログに,複数の第1の装置群におけるこの第1の通信ログの出現頻度を示す確度値を含める。管理装置4は,この確度に基づき優先度を決定し,決定した優先度に基づき,設定ミスの通知の順序を決定する。詳細について以下に説明する。
(情報処理システムSYS'のハードウェアブロック図)
図22は,複数の動作検証済みの第1の装置群を有する情報処理システムSYS'のハードウェアブロック図の一例である。図22は,図1で説明した情報処理システムSYSに対して,第3のブロックC20c,第4のブロックD20dを追加した構成を示している。ここで,第1のブロックA20a,第2のブロックB20b,第3のブロックC20cは,動作検証済みの第1の装置群(構築済みの第1の装置群とも呼ぶ)である。第4のブロックD20dは,動作検証対象の第2の装置群(構築中の第2の装置群とも呼ぶ)である。
第2の実施の形態においても,第1の実施の形態で説明したように,各ブロックのハードウェア構成,ソフトウェア構成は,相互に同一又はほぼ同一である。具体的には,第1のブロックA20aのハードウェア構成,ソフトウェア構成は,第2のブロックB20b,第3のブロックC20c,第4のブロックD20dのハードウェア構成,ソフトウェア構成とそれぞれ同一又はほぼ同一である。第2のブロックB20bのハードウェア構成,ソフトウェア構成は,第3のブロックC20c,第4のブロックD20dのハードウェア構成,ソフトウェア構成とそれぞれ同一又はほぼ同一である。第3のブロックC20cのハードウェア構成,ソフトウェア構成は,第4のブロックD20dのハードウェア構成,ソフトウェア構成と同一又はほぼ同一である。
第2の実施の形態において,第3のブロックC20cのブロック管理サーバ群25,第4のブロックD20dのブロック管理サーバ群27は,第1のブロックA20aのブロック管理サーバ群21,又は,第2のブロックB20bのブロック管理サーバ群23と同一又はほぼ同一のサーバを有する。そして,第3のブロックC20cの利用者サーバ群26,第4のブロックD20dの利用者サーバ群28は,第1のブロックA20aの利用者サーバ群22,又は,第2のブロックB20bの利用者サーバ群24と同一又はほぼ同一のサーバを有する。
以下に,本実施の形態における管理装置4の動作を説明する。管理装置4は,図5で説明したハードウェア構成,図9で説明したソフトウェアモジュール構成を有する。
(サーバ対応テーブル)
図23は,本実施の形態におけるサーバ対応データベースDB2を説明するテーブルである。図5のサーバ対応データベースDB2が,サーバ対応テーブルTR2を記憶している状態を図5の符号TRで示している。サーバ対応テーブルTR2は,図8のサーバ対応テーブルTR1に相当するテーブルである。
サーバ対応テーブルTR2は,IPアドレス欄(第1のブロックA)と,IPアドレス欄(第2のブロックB)と,IPアドレス欄(第3のブロックC)と,IPアドレス欄(第4のブロックD)とを有する。IPアドレス欄(第1のブロックA)は,第1のブロックA20aが有するサーバに設定されたIPアドレスを記憶し,IPアドレス欄(第2のブロックB)は,第2のブロックB20bが有するサーバに設定されたIPアドレスを記憶する。IPアドレス欄(第3のブロックC)は,第3のブロックC20cが有するサーバに設定されたIPアドレスを記憶し,IPアドレス欄(第4のブロックD)は,第4のブロックD20dが有するサーバに設定されたIPアドレスを記憶する。
サーバ対応テーブルTR2は,動作検証済みの複数の第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定されたIPアドレスとを含む対応情報の一例である。
複数の第1の装置群とは,例えば,図22の第1のブロックA20a〜第3のブロックC20cである。第1の装置群の装置とは,例えば,ブロック管理サーバ群21に含まれるサーバや,ブロック管理サーバ群23に含まれるサーバや,ブロック管理サーバ群25に含まれるサーバである。他にも,第1の装置群の装置とは,例えば,利用者サーバ群22に含まれるサーバや,利用者サーバ群24に含まれるサーバや,利用者サーバ群26に含まれるサーバである。
動作検証対象の第2の装置群とは,例えば,図22の第4のブロックD20dである。第2の装置群の装置とは,例えば,ブロック管理サーバ群27に含まれるサーバや,利用者サーバ群28に含まれるサーバである。
図23において,図8で説明したように,同一行に記憶された,各IPアドレス欄(第1のブロックA〜第4のブロックD)が記憶するIPアドレスが設定された各サーバは,ぞれぞれ同機能のサーバである。
ここでは,IPアドレス欄(第1のブロックA)が記憶するIPアドレス"12.0.0.5"が設定されたサーバをサーバA1と記す。このサーバA1のIPアドレス("12.0.0.5")と同一行における,IPアドレス欄(第2のブロックB)が記憶するIPアドレス"12.4.0.5"が設定されたサーバ(以下,サーバB1と記す)とは,同機能のサーバである。サーバA1と,サーバA1のIPアドレス"12.0.0.5"と同一行における,IPアドレス欄(第3のブロックC)が記憶するIPアドレス"12.8.0.5"が設定されたサーバ(以下,サーバC1と記す)とは,同機能のサーバである。さらに,サーバA1と,サーバA1のIPアドレス"12.0.0.5"と同一行における,IPアドレス欄(第4のブロックD)が記憶するIPアドレス"12.12.0.5"が設定されたサーバ(以下,サーバD1と記す)とは,同機能のサーバである。
例えば,サーバA1がDNSサーバの場合,サーバB1,サーバC1,サーバD1もDNSサーバである。
管理者は,予め,サーバ対応テーブルTR2を作成し,図5のサーバ対応データベースDB2に記憶する。サーバ対応テーブルTR2が記憶するIPアドレスは,正しいIPアドレスであるとする。なお,サーバ対応テーブルTR2の作成方法は特に指定せず,手動または自動(機械的)で作成してもよい。
(マスタ用の通信ログの取得)
図10,図24〜図26に基づき,通信ログの取得,取得した通信ログのマージについて説明する。
図24は,第1のブロックA20aの通信ログがマージされ,IPアドレスが適宜変換された状態を示すテーブルの一例である。通信ログ取得部41は,図10で説明したように,第1のブロックA20aから通信ログを取得し,通信ログ整形部42は,通信ログ取得部41が取得した通信ログを図24の通信ログテーブルT21aに記憶する。通信ログ整形部42は,前記記憶の際に,図11で説明したように,マージ処理を適宜行う。
例えば,通信ログ整形部42は,通信ログ取得部41が取得した通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが図24の通信ログテーブルT21aに記憶済みか判定する(ステップS2)。記憶済みでない場合(ステップS2/NO),通信ログ整形部42は,通信ログ取得部41が取得した通信ログを図24の通信ログテーブルT21aに記憶する(ステップS3)。
記憶済みの場合(ステップS2/YES),通信ログ整形部42は,通信ログ取得部41が取得した通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが図24の通信ログテーブルT21aに記憶済みか判定する(ステップS4)。記憶済みの場合(ステップS4/YES),通信ログ整形部42は,図24の通信ログテーブルT21aに記憶済みのマージ元の通信ログと,通信ログ取得部41が取得した通信ログとをマージする。なお,記憶済みでない場合(ステップS4/NO),ステップS3に移る。
さらに,前記マージ終了後,通信ログ比較部43は,図24の通信ログテーブルT21aにおける送信元IPアドレス欄および送信先IPアドレス欄が記憶するIPアドレスを,図23のサーバ対応テーブルTR2に基づき,動作検証対象の第2の装置群(例えば,第4のブロックD)に対応するIPアドレスに変換する。
具体的には,通信ログ比較部43は,図24の通信ログテーブルT21aにおける送信元IPアドレス欄および送信先IPアドレス欄が記憶するIPアドレスの中から変換対象のIPアドレスを選択する。通信ログ比較部43は,図23のサーバ対応テーブルTR2のIPアドレス(第1のブロックA)欄が記憶するIPアドレスの中から,選択したIPアドレスに一致する,IPアドレスを検索する。
そして,通信ログ比較部43は,図23のサーバ対応テーブルTR2のIPアドレス(第4のブロックD)欄が記憶するIPアドレスの中から,検索したIPアドレスと同一行のIPアドレスを特定する。そして,通信ログ比較部43は,図24の通信ログテーブルT21aにおいて選択したIPアドレスを特定したIPアドレスに変換する。なお,選択したIPアドレスと特定したIPアドレスとが同一IPアドレスの場合には,通信ログ比較部43は,前記した変換を実行しない。
例えば,通信ログ比較部43は,図24の通信ログテーブルT21aの符号P11に示す通信ログの送信元IPアドレスは,変換前では"12.0.3.6"であるとする。この場合,通信ログ比較部43は,図23のサーバ対応テーブルTR2に基づき,IPアドレス"12.0.3.6"をIPアドレス"12.12.3.6"に変換する。
図25は,第2のブロックB20bの通信ログがマージされ,IPアドレスが適宜変換された状態を示すテーブルの一例である。通信ログ取得部41は,図10で説明したように,第2のブロックB20bから通信ログを取得し,通信ログ整形部42は,通信ログ取得部41が取得した通信ログを図25の通信ログテーブルT21bに記憶する。通信ログ整形部42は,前記記憶の際に,図11で説明したように,マージ処理を適宜行う。
さらに,前記マージ終了後,通信ログ比較部43は,図25の通信ログテーブルT21bにおける送信元IPアドレス欄および送信先IPアドレス欄が記憶するIPアドレスを,図23のサーバ対応テーブルTR2に基づき,動作検証対象の第2の装置群(例えば,第4のブロックD)に対応するIPアドレスに変換する。
前記した,通信ログの取得処理,記憶処理,マージ処理,さらに,IPアドレスの変換処理については,図24で詳細に説明したので,その説明を省略する。
図26は,第3のブロックC20cの通信ログがマージされ,IPアドレスが適宜変換された状態を示すテーブルの一例である。通信ログ取得部41は,図10で説明したように,第3のブロックC20cから通信ログを取得し,通信ログ整形部42は,通信ログ取得部41が取得した通信ログを図26の通信ログテーブルT21cに記憶する。通信ログ整形部42は,前記記憶の際に,図11で説明したように,マージ処理を適宜行う。
さらに,前記マージ終了後,通信ログ比較部43は,図26の通信ログテーブルT21cにおける送信元IPアドレス欄および送信先IPアドレス欄が記憶するIPアドレスを,図23のサーバ対応テーブルTR2に基づき,動作検証対象の第2の装置群(例えば,第4のブロックD)に対応するIPアドレスに変換する。前記した,通信ログの取得処理,記憶処理,マージ処理,さらに,IPアドレスの変換処理については,図24で詳細に説明したので,その説明を省略する。
なお,図5の通信ログデータベースDB1が,通信ログテーブルT21a,T21b,T21cを記憶している状態を図5の符号Toで示している。
以上説明したように,通信ログ比較部43は,複数の第1の装置群の第1の通信ログの送信元および送信先のIPアドレスを,図23のサーバ対応テーブルTR2に基づき,この送信元および送信先のIPアドレスに対応する第2の装置群の装置に設定されたIPアドレスに変換する。
(マスタ用の通信ログテーブルの作成)
図27は,マスタ用の通信ログを記憶した状態を示すテーブルの一例である。マスタ用通信ログテーブルT21mは,送信元IPアドレス欄と,送信元ポート番号欄と,送信先IPアドレス欄と,送信先ポート番号欄と,ブロック数(以下,DC数と記す)欄と,確度欄とを有する。
マスタ用通信ログテーブルT21mは,比較元の通信ログを記憶するテーブルである。マスタ用通信ログテーブルT21mは,各通信ログと共に,各通信ログの確度を記憶する。なお,図5の通信ログデータベースDB1が,マスタ用通信ログテーブルT21mを記憶している状態を図5の符号Tmで示している。マスタ用通信ログテーブルT21mの作成について,以下に説明
する。
通信ログ比較部43は,図24の通信ログテーブルT21aを複製し,複製したテーブルにおける送信先ポート番号欄の右側に,DC数欄と,確度欄とを作成する。ここで,通信ログ比較部43は,DC数欄に,各通信ログに対応して"1"を記憶する。このDC数欄と確度欄とを有するテーブルが,第1の作成途中のマスタ用通信ログテーブルである(図示しない)。
次いで,通信ログ比較部43は,図25の通信ログテーブルT21b,図26の通信ログテーブルT21cの中から全通信ログを取り出す。通信ログ比較部43は,全通信ログの中の一致する通信ログを,1つの通信ログとして,マスタ用通信ログテーブルT21mに記憶する。さらに,通信ログ比較部43は,この一致する通信ログが存在したブロックの個数を,この一致する通信ログに対応するマスタ用通信ログテーブルT21mのDC数欄に記憶する。
ここで,一致する通信ログとは,送信元IPアドレス,送信先IPアドレス,送信元ポート番号,送信先ポート番号の全てが相互に一致する通信ログである。他にも,一致する通信ログとは,以下の第1の要件と第2の要件とを満たす通信ログである。第1の要件は,送信元IPアドレス,送信先IPアドレスが相互に一致する通信ログであること。第2の要件とは,送信元ポート番号がマージされている場合,送信先ポート番号が相互に一致する通信ログであること,または,送信先ポート番号がマージされている場合,送信元ポート番号が相互に一致する通信ログであることである。
また,通信ログ比較部43は,全通信ログの中の一致しない通信ログを,マスタ用通信ログテーブルT21mに記憶する。さらに,通信ログ比較部43は,一致しない通信ログに対応するマスタ用通信ログテーブルT21mのDC数欄に数値の1を記憶する。
例えば,図24〜図26の場合,符号P1a,符号P1b,符号P1cで示す各通信ログは,送信元IPアドレス"192.168.1.26",送信元ポート番号"*****",送信先IPアドレス"192.168.1.37",送信先ポート番号"25"である。従って,この各通信ログは,第1の要件と第2の要件とを満たす通信ログである。そこで,通信ログ比較部43は,図27の符号P1mに示すように,前記した通信ログを図27のマスタ用通信ログテーブルT21mに記憶する。さらに,前記した通信ログが存在したブロックは,第1のブロックA20a,第2のブロックB20b,第3のブロックC20cの3つのブロック(ブロックの個数が3)である。従って,通信ログ比較部43は,前記した通信ログに対応するマスタ用通信ログテーブルT21mのDC数欄に3を記憶する。
また,例えば,図24,図25の場合,符号P2a,符号P2bで示す各通信ログは,送信元IPアドレス"192.168.1.37",送信元ポート番号"*****",送信先IPアドレス"192.168.1.31",送信先ポート番号"2952"である。従って,この各通信ログは,第1の要件と第2の要件とを満たす通信ログである。そこで,通信ログ比較部43は,図27の符号P2mに示すように,前記した通信ログを図27のマスタ用通信ログテーブルT21mに記憶する。さらに,前記した通信ログが存在したブロックは,第1のブロックA20a,第2のブロックB20bの2つのブロック(ブロックの個数が2)である。従って,通信ログ比較部43は,前記した通信ログに対応するマスタ用通信ログテーブルT21mのDC数欄に2を記憶する。
また,例えば,図26の場合,符号P3cで示す通信ログは,送信元IPアドレス"192.168.1.37",送信元ポート番号"*****",送信先IPアドレス"192.168.1.31",送信先ポート番号"2685"である。図24,図25から明らかなように,この通信ログに一致する通信ログは,通信ログテーブルT21a,通信ログテーブルT21bに記憶されていない。換言すれば,この通信ログは,全通信ログの中の一致しない通信ログである。そこで,通信ログ比較部43は,図27の符号P3mに示すように,この通信ログを図27のT21mに記憶する。さらに,通信ログ比較部43は,この通信ログに対応するマスタ用通信ログテーブルT21mのDC数欄に数値の1を記憶する。
以上説明した,通信ログ比較部43が実行する記憶処理により,マスタ用通信ログテーブルT21mの送信元IPアドレス欄,送信元ポート番号欄,送信先IPアドレス欄,送信先ポート番号欄に通信ログが記憶され, DC数欄に数値が記憶される。
通信ログ比較部43は,前記した通信ログ,数値の記憶処理が終了すると確度計算を行う。詳しくは,通信ログ比較部43は,マスタ用通信ログテーブルT21mのDC数欄が記憶する数値に対応する確度欄の行に,前記数値を動作検証済みの全ブロック数で除算した値を記憶する。なお,動作検証済みの全ブロック数は,動作検証済みの第1の装置群の総数でもある。
図24〜図26の例では,動作検証済みの全ブロック数は3である。従って,通信ログ比較部43は,マスタ用通信ログテーブルT21m のDC数欄が記憶する数値が3の場合,この数値に対応する確度欄の行に,1(3(DC数欄の数値)/3(動作検証済みの全ブロック数))を記憶する。他にも,通信ログ比較部43は,マスタ用通信ログテーブルT21m のDC数欄が記憶する数値が2の場合,この数値に対応する確度欄の行に,2/3(2(DC数欄の数値)/3(動作検証済みの全ブロック数))を記憶する。
なお,図24〜図26で説明した確度の記憶処理が終了した時点では,一致有無欄には何も記憶されていない状態(空白)である。
(第4のブロックD20dの動作検証)
図24〜図26で説明した確度の記憶処理が終了すると,管理者は,第1の実施の形態で説明したように,第4のブロックD20dの運用に先立ち,第4のブロックD20dが適切に動作するか検証する。第4のブロックD20dの各サーバは,この動作検証により,各種通信ログを自装置に記憶する。管理装置4の通信ログ取得部41は,図10で説明したように,第4のブロックD20dから通信ログを取得する。そして,通信ログ整形部42は,通信ログ取得部41が取得した通信ログを通信ログテーブルに記憶する。通信ログ整形部42は,前記記憶の際に,図11で説明したように,マージ処理を適宜行う。
図28は,第4のブロックD20dの通信ログがマージされた状態を示すテーブルである。図28の通信ログテーブルT21dは,図13で説明した通信ログテーブルと同じ欄を有する。通信ログテーブルT21dは,例えば,符号P1dに示したように,送信元IPアドレス欄に"192.168.1.26"を記憶し,送信元ポート番号欄に"*****"を記憶し,送信先IPアドレス欄に"192.168.1.37"を記憶し,送信先ポート番号に"25"を記憶する。さらに,通信ログテーブルT21dは,符号P1dに示したように,状態欄に"OK"を記憶する。なお,図5の通信ログデータベースDB1が,通信ログテーブルT21dを記憶している状態を図5の符号Tsで示している。
次いで,通信ログ比較部43が通信ログの比較を実行し,ミス検出部44が通信関連の設定ミスの検出を実行する。なお,設定ミスの検出前の時点では,一致有無欄には何も記憶されていない状態(空白)である。
(設定誤り検出処理)
図29は,通信ログの比較処理,設定ミスの検出処理の全体の流れを説明する第2のフロー図である。図29において,ステップS21〜ステップS23の処理は,図14で説明したステップS11〜ステップS13の処理と同様である。
ステップS21: 通信ログ比較部43は,通信ログデータベースDB1から比較処理のマスタ(基準)となる全通信ログを読み出す。具体的には,通信ログ比較部43は,図27のマスタ用通信ログテーブルT21mが記憶する全通信ログの特定情報(送信元および送信先IPアドレス,送信元および送信先ポート番号)を読み出す。
ステップS22: 通信ログ比較部43は,通信ログデータベースDB1から動作検証対象の通信ログを読み出す。動作検証対象の通信ログは,第4のブロックD20dの通信ログである。具体的には,通信ログ比較部43は,図28の通信ログテーブルT21dが記憶する通信ログの特定情報の中で未だ読み出していない通信ログの特定情報を読み出す。
ステップS23: 通信ログ比較部43は,ステップS22で読み出した動作検証対象の通信ログと,各マスタ通信ログとを比較して,両通信ログが一致することを示すフラグを両通信ログに設定する。ステップS23の処理は,図14のステップS13に相当するステップであり,このステップの詳細は,図15で説明したので説明を省略する。
ステップS24: ミス検出部44は,通信関連の設定ミスを検出し,通知部45は,ミス検出部44が検出した通信関連の設定ミスを優先度に従って通知する。前記通知において,通知部45は,設定ミスの通知の際に,確度が大きい通信ログに関する通信関連の設定ミスを優先的に管理者に通知する。
通信ログ比較部43は,ステップS22において図28の通信ログテーブルT21dから全ての通信ログを読み出すまで,ステップS22,ステップS23の処理を実行する(ループLP11〜LP12)。
図27,図28を参照して,フラグの設定処理(ステップS23)を具体的に説明する。例えば,図27の符号P1mに示した通信ログと,図28の符号P1dに示した通信ログとは,図16で説明したように一致する。従って,通信ログ比較部43は,この通信ログの一致有無欄にフラグ"有り"を記憶する。
一方,符号P2mに示した通信ログについては,この通信ログの送信元IPアドレス("192.168.1.37")と送信先IPアドレス("192.168.1.31")と送信先ポート番号("2952")が共に一致
する通信ログは,図28の通信ログテーブルT21dに記憶されていない。従って,通信ログ比較部43は,この通信ログの一致有無欄にフラグ"有り"を記憶しない(空白)。
以上説明した,フラグの設定処理が終了すると,ミス検出部44は,第1の実施の形態で説明した設定ミスの検出処理(第1〜第3の検出処理参照)に移る。
具体的には,ミス検出部44は,複数の第1の通信ログの中から,複数の第2の通信ログに含まれる送信元および送信先IPアドレスが一致しない通信ログを設定ミスの通信ログとして検出する。または,ミス検出部44は,複数の第1の通信ログの中から,複数の第2の通信ログに含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信ログを設定ミスの通信ログとして検出する。さらに,ミス検出部44は,複数の第2の通信ログの中から,複数の第1の通信ログに含まれる送信元および送信先IPアドレスが一致しない通信ログを設定ミスの通信ログとして検出する。または,ミス検出部44は,複数の第2の通信ログの中から,複数の第1の通信ログに含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信ログを設定ミスの通信ログとして検出する。
なお,第1の通信ログは,例えば,動作検証済みの第1の装置群(第1のブロックA20a〜第3のブロックC20c)のネットワーク通信の通信ログである。第2の通信ログは,例えば,動作検証対象の第2の装置群(第4のブロックD20d)のネットワーク通信の通信ログである。
ミス検出部44は,第2の装置群の装置における,設定ミスの通信ログに関連する特定情報の設定ミスを検出する。
以下,設定ミスの検出処理,通知処理について説明する。本実施の形態では,第1の実施の形態で説明した第2の検出処理のみについて説明する。図27,図28の例では,ミス検出部44は,動作検証済みの第1の装置群(第1のブロックA20a〜第3のブロックC20c)においてのみ実行されている通信の有無を検出する処理(第2の検出処理)を実行する。換言すれば,ミス検出部44は,動作検証済みの第1の装置群にのみ存在する通信ログを設定ミスの通信ログとして検出する。
ミス検出部44は,第2の検出処理により,図27の符号P2m,符号P4mに示す複数の通信ログを,動作検証済みの第1の装置群においてのみ存在する通信ログとして検出する。
通知部45は,第1の実施の形態で説明したように,図27の符号P2m,符号P4mに示す通信
ログに関連して設定ミスが発生したことを管理者に通知する。具体的には,通知部45は,ミス検出部44が複数の設定ミスの通信ログを検出した場合,各々の設定ミスの通信ログ(符号P2m,P4m参照)に関連する特定情報の設定ミスがある旨を各々の設定ミスの通信ログ毎に順次通知する。なお,通知内容の具体例については,第1の実施の形態で説明したので省略する。
このように複数の設定ミスが発生した場合には,重要度が高いすなわち確度が高い通信ログに関連する設定ミスを管理者に優先的に通知することが好ましい。詳しく説明すると,動作検証済みの第1の装置群の通信ログに対応して記憶された確度は,動作検証済みの全ブロックに対する,この通信ログの出現頻度を示している。出現頻度が高い通信ログ,換言すれば確度が高い通信ログ(マスタ通信ログ)と,動作検証対象の通信ログとの比較結果に基づき,設定エラーが検出された場合,この設定エラーの修正を迅速に行う必要があるとみなす。そして,管理装置4は,確度が高い通信ログに関連する設定ミスを管理者に優先的に通知する。
そこで,通知部45は,各々の設定ミスの通信ログ毎に順次通知する場合において,各々の設定ミスの通信ログにそれぞれ対応する第1の通信ログの確度に基づき,順次通知する順序を変更する。図27,図28の例では,各々の設定ミスの通信ログにそれぞれ対応する第1の通信ログは,図27の符号P2m,符号4mに示す通信ログである。
例えば,符号P2mに示す通信ログの確度は"2/3"であり,符号P4mに示す通信ログの確度は"1"である。すなわち,符号P4mに示す通信ログの確度は,符号P2mに示す通信ログの確度の確度よりも高い。従って,通知部45は,符号P4mに示す通信ログに関連して設定ミスが発生したことを管理者に通知した後に,符号P2mに示す通信ログに関連して設定ミスが発生したことを管理者に通知する。
本実施の形態の管理装置によれば,多数の設定ミスを検出した場合には,優先度に従って設定ミスを管理者に通知できる。そのため,管理者は,自らが設定ミスの修正順序を決定する必要がなく,管理装置により通知された優先度に従って設定ミスを修正できる。
[管理装置の第3の実施の形態]
第3の実施の形態における管理装置は,第2の実施の形態で説明した第1の通信ログの確度に対して,この通信ログに関連する通信の実行回数を示す通信回数(使用回数とも呼ぶ)を反映させる。なお,通信回数の意義については後述する。第3の実施の形態の説明では,第2の実施の形態で説明した,図22のハードウェアブロック図,図23のサーバ対応テーブルTR2を前提に説明する。
まず,図4に基づき,通信回数について説明する。図4のサーバSVRの通信用ソフト2022は,送信元IPアドレスを"x1.y1.z1.w1",送信元ポート番号を"p1",送信先IPアドレスを"x2.y2.z2.w2",送信先ポート番号を"p2"とする通信パケットを作成する。そして,通信用ソフト2022は,通信パケットを送信先IPアドレス"x2.y2.z2.w2"が設定された他のサーバに送信する。通信用ソフト2022は,この通信パケットを送信した回数を通信回数としてカウントし,通信ログに含めて記憶する。例えば,通信用ソフト2022は,この通信パケットを100個送信した場合,通信回数を100とカウントする。なお,他のサーバからサーバSVRに返信パケットが送信された場合,その返信パケットの個数を通信回数に含めても良い。
他にも,例えば,サーバSVRの通信用ソフト2022と,他のサーバの通信用ソフトとの間においてセッションを確立した回数を通信回数としてもよい。例えば,サーバSVRの通信用ソフト2022と,他のサーバの通信用ソフトとの間で,10回セッションを確立した場合,その回数を通信回数とする。
管理装置4は,第2の実施の形態で説明したように,通信ログの取得,取得した通信ログのマージを実行する。管理装置4の通信ログ整形部42は,Cn個(Cnは2以上の整数)の通信ログをマージして1つの通信ログとした場合,Cn個の通信ログの通信回数の総和を,マージした1つの通信ログの通信回数とカウントする。
図30は,第1のブロックA20aの通信ログがマージされ,IPアドレスが適宜変換された状
態を示すテーブルの他の例である。図30の通信ログテーブルT31aは,図24の通信ログテーブルT21aに,通信回数欄を追加したものである。
通信ログ取得部41は,図10で説明したように,第1のブロックA20aから通信ログを取得する。
ここで,第1のブロックA20aのサーバの通信用ソフト(図示しない)が,送信元IPアドレス"192.168.1.26",送信元ポート番号"58394",送信先IPアドレス"192.168.1.37",送信先ポート番号"25",通信回数8回を含む第1の通信ログを作成したとする。さらに,第1のブロックA20aのサーバの通信用ソフト(図示しない)が,送信元IPアドレス"192.168.1.26",送信元ポート番号"58413",送信先IPアドレス"192.168.1.37",送信先ポート番号"25",通信回数4回を含む第2の通信ログを作成したとする。
通信ログ整形部42は,図11,図24で説明したように,第1,第2の通信ログをマージして,図30の符号P1aに示したように図30の通信ログテーブルT31aに記憶する。この記憶において,通信ログ整形部42は,図30の符号P1aに示したように,通信ログを図30の通信ログテーブルT31aに記憶するが,このとき,通信ログテーブルT31aの通信回数欄に12(=8+4)
を記憶する。
さらに,前記マージ終了後,通信ログ比較部43は,図24の通信ログテーブルT21aにおける送信元IPアドレス欄および送信先IPアドレス欄が記憶するIPアドレスを,図23のサーバ対応テーブルTR2に基づき,動作検証対象の第2の装置群(例えば,第4のブロックD)に対応するIPアドレスに変換する。なお,この変換の詳細については,図24で説明したので省略する。
図31は,第2のブロックB20bの通信ログがマージされ,IPアドレスが適宜変換された状態を示すテーブルの他の例である。通信ログ取得部41は,図10で説明したように,第2のブロックB20bから通信ログを取得する。そして,通信ログ整形部42は,取得した通信ログの記憶処理およびマージ処理,IPアドレスの変換処理を行い,例えば,図31の通信ログテーブルT31bを作成する。
図32は,第3のブロックC20cの通信ログがマージされ,IPアドレスが適宜変換された状態を示すテーブルの他の例である。通信ログ取得部41は,図10で説明したように,第3のブロックC20cから通信ログを取得する。そして,通信ログ整形部42は,取得した通信ログの記憶処理およびマージ処理,IPアドレスの変換処理を行い,例えば,図32の通信ログテーブルT31cを作成する。
なお,図30〜図32で説明した使用回数の記憶処理が終了した時点では,一致有無欄には何も記憶されていない状態(空白)である。図5の通信ログデータベースDB1が,通信ログテーブルT31a,T31b,T31cを記憶している状態を図5の符号Toで示している。
(マスタ用の通信ログテーブルの作成)
図33は,マスタ用の通信ログを記憶した状態を示すテーブルの一例である。マスタ用通信ログテーブルT31mは,図27のマスタ用通信ログテーブルT21mに通信回数欄を追加したテーブルである。
ここで,通信ログ比較部43は,図27で説明した処理により,図33のマスタ用通信ログテーブルT31mにおける通信回数欄および一致有無欄以外の各欄にデータを記憶する。ここで,第1のブロックA20a〜第3のブロックC20cの通信ログの中で,図27で説明した一致する複数の通信ログがある場合,一致する複数の通信ログの通信回数の総和を演算する。そして,通信ログ比較部43は,図27で説明したように,一致する通信ログをマージし,マージした通信ログを図33のマスタ用通信ログテーブルT31mに記憶する。通信ログ比較部43は,この記憶において,この通信ログと共に,前記演算した総和をマスタ用通信ログテーブルT31mの通信回数欄に記憶する。
なお,第1のブロックA20a〜第3のブロックC20cの通信ログの中で,図27で説明した一致しない通信ログがある場合は,通信ログ比較部43は,この通信ログを図33のマスタ用通信ログテーブルT31mに記憶する際に,この通信ログの通信回数をマスタ用通信ログテーブルT31mの通信回数欄に記憶する。
最後に,通信ログ比較部43は,図33のマスタ用通信ログテーブルT31mにおいて,確度欄が記憶する確度と,この確度と同一行に記憶された通信回数欄の通信回数とを乗算し,乗算値を,前記確度欄が記憶する確度に上書きする。図33のマスタ用通信ログテーブルT31mの確度欄における括弧内の数値は上書き前の数値である。
例えば,図30〜図32の場合,符号P1a,符号P1b,符号P1cで示す各通信ログは,送信元IPアドレス"192.168.1.26",送信元ポート番号"*****",送信先IPアドレス"192.168.1.37",送信先ポート番号"25"である。従って,この各通信ログは,第1の要件と第2の要件(図27の説明参照)とを満たす通信ログである。そこで,通信ログ比較部43は,図33の符号P1mに示すように,前記した通信ログを図33のマスタ用通信ログテーブルT31mに記憶する。さらに,前記した通信ログが存在したブロックは,第1のブロックA20a,第2のブロックB20b,第3のブロックC20cの3つのブロック(ブロックの個数が3)である。従って,通信ログ比較部43は,前記した通信ログに対応するマスタ用通信ログテーブルT21mのDC数欄に3を記憶する。そして,通信ログ比較部43は,このスタ用通信ログテーブルT21mの確度欄に1(3(DC数欄の数値)/3(動作検証済みの全ブロック数))を記憶する。さらに,通信ログ比較部43は,前記した各通信ログの通信回数は,それぞれ"12","15","11"なので,その総和である38を前記した通信ログに対応するマスタ用通信ログテーブルT21mの通信回数欄に記憶する。
そして,通信ログ比較部43は,通信回数"38"と確度"1"とを乗算し,この確度"1"に乗算値"38"を上書きする。なお,図33で説明した確度の上書き処理が終了した時点では,一致有無欄には何も記憶されていない状態(空白)である。
(第4のブロックD20dの動作検証)
図30〜図32で説明した確度の記憶処理が終了すると,管理者は,第1,第2の実施の形態で説明したように,第4のブロックD20dの運用に先立ち,第4のブロックD20dが適切に動作するか検証する。第4のブロックD20dの各サーバは,この動作検証により,各種通信ログを自装置に記憶する。管理装置4の通信ログ取得部41は,図10で説明したように,第4のブロックD20dから通信ログを取得する。そして,通信ログ整形部42は,通信ログ取得部41が取得した通信ログを通信ログテーブルに記憶する。通信ログ整形部42は,前記記憶の際に,図11で説明したように,マージ処理を適宜行う。その結果,通信ログ整形部42は,図28で説明した,通信ログテーブルT21dを作成する。
次いで,通信ログ比較部43が通信ログの比較を実行し,ミス検出部44が通信関連の設定ミスの検出を実行する。この検出処理については,第2の実施の形態で詳細に説明したので省略する。
本実施の形態の管理装置によれば,通信ログの確度に対して,この通信ログの通信回数も反映させている。その結果,優先度をより細かく決定できる。
[管理装置の第4の実施の形態]
第4の実施の形態における管理装置は,管理者が設定ミスの原因調査を効率よく行うため,設定ミス候補の通信ログをクラスタリングして,管理者に表示する。以下に詳しく説明する。大規模なデータセンタを増設する場合,複数の機器(例えば,サーバやスイッチ)に対して,同じアプリケーションやミドルウェアを設定することがある。
この設定効率を高めるため,管理者は,この設定用のスクリプトファイルを作成し,作成した設定用のスクリプトファイルを実行し,複数の機器に一括して前記アプリケーションやミドルウェアを設定することがある。他にも,この設定効率を高めるため,管理者は,予め作成されたこの設定用の手順書を参照して,各機器に前記アプリケーションやミドルウェアを設定することがある。
ここで,設定用のスクリプトファイルや手順書において一部の記述が間違っている場合を想定する。管理者が,この記述が間違っている設定用のスクリプトファイルを実行して,または,この手順書を参照して,複数の機器に対して前記アプリケーションやミドルウェアを設定すると,同様な原因による通信関連情報の設定ミスがこの複数の機器に発生することがある。
例えば,20個の機器にポート番号161を利用するアプリケーション(以下,アプリケーションXと記す)を設定するスクリプトファイル(以下,スクリプトファイルXと記す)がある。しかし,記述ミスによりスクリプトファイルXにおいて,例えばIPアドレス"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12"が1個ずつ設定されている4個の機器にアプリケーションXを設定する命令コマンドが割愛されていた場合を想定する。
このような場合,管理者が,第2の装置群(例えば,図2の第2のブロックB20b)の機器に,スクリプトファイルXを実行した場合,前記した4個の機器に対するアプリケーションXの設定が行われない。
以下,2つの状態を想定する。第1の状態は,動作検証済みの第1の装置群(例えば,図2の第1のブロックA20a)において,前記した4個の機器に対しては,アプリケーションXの設定が行われて,適切に動作している状態である。第2の状態は,前記したように,図2の第2のブロックB20bにおいて,前記した4個の機器に対するアプリケーションXの設定が行われていないので,前記した4個の機器は,アプリケーションXの実行をしていない状態である。
前記した2つの状態において,第1の実施の形態で説明した動作検証が実行されると,図2の第1のブロックA20a において,前記4つの機器が他の機器と通信を実行した場合,これらの通信のログが前記4つの機器で記録される。なお,他の機器とは,例えば,例えば,IPアドレス"12.0.3.7"が設定されている機器である。
その結果として,第1の実施の形態で説明したように,設定ミス候補の通信ログとして,これらの通信のログが管理者に通知される。
管理者は,これらの通信ログを見ながら,前記した4つの機器の各々における通信関連情報の設定ミスの原因を見つけ修正する。このような場合,管理装置4が,同じ原因による通信関連情報の設定ミスを纏めて管理者に表示すれば,管理者は,前記した4つの機器の各々ではなく,前記した4つの機器について纏めて通信関連情報の設定ミスの原因を見つけることができ,設定ミスの原因調査を効率よく実行できる。以下,かかる管理装置について説明する。
(管理装置のハードウェア,ソフトウェアモジュールのブロック図)
図34は,管理装置4を説明するハードウェアブロック図の一例である。図34の管理装置4は,図1の管理装置4の記憶装置403にTe,Tf,Tnを追加したものである。図35は,図34の管理装置4のソフトウェアモジュールのブロック図の一例である。ミス検出部44は,第1の実施の形態で説明したように,通信ログの比較結果を参照し,設定誤りの特定情報を含む設定ミス候補の通信ログを検出する。そして,ミス検出部44は,検出した設定ミス候補の通信ログをクラスタリング部46に出力する。
クラスタリング部46は,ミス検出部44が検出した設定ミス候補の通信ログ(設定ミスの通信ログとも呼ぶ)に含まれる特定情報の類似度に従って,検出された設定ミス候補の通信ログを区分け(クラスタリングとも呼ぶ)する。第4,第5の実施の形態における,前記した特定情報は,換言すれば,通信内容を特定できる情報である。通信内容を特定できる情報とは,例えば,ポート番号,通信回数,通信データ量などの情報である。以下,通信内容を特定できる情報としては,ポート番号を例示する。ポート番号の場合,ポート番号と,このポート番号を利用するアプリケーション,ミドルウェアなどのサービスが対応するので,ポート番号から通信の内容を特定できる。
換言すれば,クラスタリング部46は,通信内容について共通の特徴を有する設定ミス候補の通信ログを集約する。なお,通信内容を特定する情報は,取得に複雑な処理が必要な情報でないことが好ましい。
クラスタリング部46は,前記したクラスタリングを行う前段階として,ミス検出部44から入力された設定ミス候補の通信ログを整形する。ミス検出部44から入力された設定ミス候補の通信ログは,少なくとも送信元IPアドレスと,送信元ポート番号と,送信先IPアドレスと,送信先ポート番号とを含む。
以下,設定ミス候補の通信ログに含まれる送信元IPアドレスまたは送信先IPアドレスが設定されたサーバの中の1つのサーバを対象サーバと適宜記す。この対象サーバは,例えば,IPアドレス"12.0.3.7"が設定されたサーバである。
(設定ミス候補の通信ログ)
図36は,対象サーバのIPアドレスを含む設定ミス候補の通信ログを示すテーブルである。
図36の設定ミス候補テーブルTe11は,対象サーバのIPアドレス"12.0.3.7"を含む設定ミス候補の通信ログを示すテーブルである。設定ミス候補テーブルTe11に記憶されている設定ミス候補の通信ログは,例えば,管理装置の第1の実施の形態で説明した,第1のブロックA20aにおいてのみ存在する通信ログである。
設定ミス候補テーブルTe11は,送信元IPアドレス欄と,送信元ポート番号欄と,送信先IPアドレス欄と,送信先ポート番号欄とを有する。送信元IPアドレス欄は,設定ミス候補の通信ログに含まれる送信元IPアドレスを記憶し,送信元ポート番号欄は,この設定ミス候補の通信ログに含まれる送信元ポート番号を記憶する。送信先IPアドレス欄は,この設定ミス候補の通信ログに含まれる送信先IPアドレスを記憶し,送信先ポート番号欄は,この設定ミス候補の通信ログに含まれる送信先ポート番号を記憶する。
設定ミス候補テーブルTe11においては,1行に,1個の設定ミス候補の通信ログに含まれる送信元IPアドレスと,送信元ポート番号と,送信先IPアドレスと,送信先ポート番号とが記憶されている。
例えば,符号P31に示す設定ミス候補の通信ログは,送信元のIPアドレス"12.0.3.7",送信元のポート番号"*****",送信先のIPアドレス"12.0.0.3",送信先のポート番号"161"を含む通信ログである。ここで"*****"は,図11で説明したように,ポート番号がマージされた状態を模式的に示している。
なお,図34の通信ログデータベースDB1が,設定ミス候補テーブルTe11を記憶している状態を図34の符号Teで示している。
図37は,前記したクラスタリングを説明する際に使用する用語を説明する図の一例である。以下,対象サーバの通信相手のサーバを相手サーバと適宜記す。
図37は,対象サーバSVRtと相手サーバSVRpとが通信パケットを送受信している状態を模式的に示している。対象サーバSVRtにはIPアドレス"12.0.3.7"が設定されている。
相手サーバSVRpが,対象サーバSVRtが送信した通信パケットを受信(図37の図面左から右の矢印"受信"参照)した第1の場合を想定する。第1の場合,対象サーバSVRtが通信パケットを送信した場合に使用したポート番号を,受信時送信元ポート番号とする。そして,この第1の場合,相手サーバSVRpがこの通信パケットを受信した場合に使用したポート番号を,受信時送信先ポート番号とする。
さらに,相手サーバSVRpが,対象サーバSVRtに通信パケットを送信し(図37の図面右から左の矢印の"送信"参照),対象サーバSVRtがこの通信パケットを受信した第2の場合を想定する。第2の場合,相手サーバSVRpが通信パケットを送信した場合に使用したポート番号を,送信時送信元ポート番号とする。そして,この第2の場合,対象サーバSVRtがこの通信パケットを受信した場合に使用したポート番号を,送信時送信先ポート番号とする。
(設定ミス候補の通信ログの整形)
相手サーバSVRpと対象サーバSVRtとの間で通信を行った場合,図36の設定ミス候補テーブルTe11には,以下の第1,第2の種類の通信ログが含まれる。第1の種類は,相手サーバSVRpが対象サーバSVRtへ通信パケットを送信した際に記憶される通信ログである。第2の種類は,対象サーバSVRtが相手サーバSVRpへ通信パケットを送信した際に記憶される通信ログである。すなわち,図36の設定ミス候補テーブルTe11には,相手サーバSVRpと対象サーバSVRtとの間の通信における通信ログが,2重に記憶されていることになる。
例えば,対象サーバSVRtにIPアドレス"12.0.3.7"が設定され,相手サーバSVRpにIPアドレス"12.0.0.3"が設定されているとする。この場合において,対象サーバSVRt,相手サーバSVRpは,動作検証済みの第1の装置群(例えば,図2の第1のブロックA20a)内の装置(サーバ)である。そして,図2の第1のブロックA20aにおける対象サーバSVRt,相手サーバSVRpにおいて通信が実行され,その通信が成功したとする。
また,動作検証対象の第2の装置群の装置(例えば,図2の第2のブロックB20b)において,前記した対象サーバSVRt,相手サーバSVRpと同機能のサーバでは,通信関連情報の設定ミスにより,前記通信が実行されていないとする。
図2の第1のブロックA20aにおける相手サーバSVRpと対象サーバSVRtとの間における通信が成功した場合,設定ミス候補テーブルTe11には,通信ログP31と,通信ログP35とが記憶される。
通信ログP31は,対象サーバSVRtが相手サーバSVRpに通信パケットを送信した際に記憶される通信ログである。通信ログP35は,相手サーバSVRpが対象サーバSVRtに通信パケットを送信した際に記憶される通信ログである。
なお,通信ログP35は,送信元IPアドレス"12.0.0. 3",送信元ポート番号"161",送信先IPアドレス"12.0.3.7",送信先ポート番号"*****"を含む。
次に,対象サーバSVRtにIPアドレス"12.0.3.7"が設定され,相手サーバSVRpにIPアドレス"12.0.0.5"が設定されているとする。この場合において,対象サーバSVRt,相手サーバSVRpは,図2の第1のブロックA20a内のサーバである。
相手サーバSVRpから対象サーバSVRへの通信が成功したが,対象サーバSVRから相手サーバSVRpへの通信が失敗した場合,設定ミス候補テーブルTe11には,通信ログP32のみが記憶される。ここで,図2の第2のブロックB20bにおいて,前記した対象サーバSVRt,相手サーバSVRpと同機能のサーバでは,通信関連情報の設定ミスにより,前記通信が実行されていないとする。
以下,サーバ間通信において,第1のサーバから第2のサーバへの通信が成功したが,第2のサーバから第1のサーバへの通信が失敗した場合を,片側通信のみの成功と適宜記す。
クラスタリング部46は,例えばポート番号の類似度に従って設定ミス候補の通信ログをクラスタリングするために,このクラスタリングを実行する前段階として以下の処理を行う。
クラスタリング部46は,ミス検出部44が検出した設定ミス候補の通信ログの中から対象サーバSVRtと相手サーバSVRpとの通信により記憶された通信ログを抽出し,対象サーバSVRtを基準に,抽出した通信ログを相手サーバSVRpに設定されたIPアドレス毎に纏める。
具体的には,クラスタリング部46は,2重に記憶されている設定ミス候補の通信ログを1つのログに纏めて1つのログとする。また,クラスタリング部46は,片側通信のみの成功の場合,その旨を記憶する。以下,2重に記憶されている設定ミス候補の通信ログを1つのログに纏めて1つのログとすること,片側通信のみの成功の場合,その旨を記憶することを通信ログの整形と適宜記す。
図38,図39は,クラスタリング部46が実行する整形処理を説明する第1,第2のフロー図である。図40は,整形された設定ミス候補の通信ログを記憶するテーブルの一例を示す図である。すなわち,図40は,前記した抽出した通信ログが相手サーバSVRpに設定されたIPアドレス毎に纏められてテーブル形式で記憶された状態を示している。
図40の整形ログテーブルTf1は,相手側IPアドレス欄と,送信時送信元ポート番号欄と,送信時送信先ポート番号欄と,受信時送信元ポート番号欄と,受信時送信先ポート番号欄とを有する。
相手側IPアドレス欄は,対象サーバSVRt(図37参照)の通信相手である相手サーバSVRp(図37参照)に設定されたIPアドレスを記憶する。送信時送信元ポート番号欄は,相手サーバSVRpの送信時送信元ポート番号を記憶し,送信時送信先ポート番号欄は,対象サーバSVRtの送信時送信先ポート番号を記憶する。受信時送信元ポート番号欄は,対象サーバSVRtの受信時送信元ポート番号を記憶し,受信時送信先ポート番号欄は,相手サーバSVRpの受信時送信先ポート番号を記憶する。
図38〜図40を参照し,クラスタリング部46が実行する整形処理を説明する。なお,図38のステップS31を開始する時点では,図40の整形ログテーブルTf1における欄に,IPアドレス,ポート番号が記憶されていない。
図38のステップS31:クラスタリング部46は,ミス検出部44が出力した設定ミス候補の通信ログから未選択のIPアドレスを選択する。クラスタリング部46は,ミス検出部44が出力した設定ミス候補の通信ログから,選択したIPアドレスを含む設定ミス候補の通信ログを記憶装置403(図5)に記憶する。例えば,未選択のIPアドレスが"12.0.3.7"の場合,クラスタリング部46は,IPアドレス"12.0.3.7"を含む設定ミス候補の通信ログを記憶装置403に記憶する。このIPアドレス"12.0.3.7"を含む設定ミス候補の通信ログを記憶したテーブルが,例えば,図36の設定ミス候補テーブルTe11である。
ステップS32:クラスタリング部46は,図36の設定ミス候補テーブルTe11から1つの設定ミス候補の通信ログを取り出し,メモリ402に記憶する。以下,ステップS32で取り出した1つの設定ミス候補の通信ログを対象通信ログと適宜記す。
クラスタリング部46は,ステップS32を実行する度に,例えば,設定ミス候補テーブルTe11において,最上段に記憶されている設定ミス候補の通信ログP31から下段に向けて1つずつ設定ミス候補の通信ログを取り出し,メモリ402に記憶する。
ステップS33:クラスタリング部46は,対象通信ログに含まれる送信元IPアドレスとステップS31で選択したIPアドレスが一致するか判定する。ステップS33において一致する場合(ステップS33/YES),ステップS34に移る。
ステップS34:クラスタリング部46は,図40の整形ログテーブルTf1の相手側IPアドレス欄に,対象通信ログに含まれる送信先IPアドレスが記憶されているか判定する。ステップS34において記憶されていない場合(ステップS34/NO),ステップS35に移る。
ステップS35:クラスタリング部46は,図40の整形ログテーブルTf1の相手側IPアドレス欄に,対象通信ログに含まれる送信先IPアドレスを記憶する。
ここで,ステップS34において記憶されている場合(ステップS34/YES),または,ステップS35処理の終了後,ステップS36に移る。
ステップS36:クラスタリング部46は,整形ログテーブルTf1の受信時送信先ポート番号欄に,対象通信ログに含まれる送信先ポート番号を記憶する。具体的には,ステップS34でYESと判定された場合,クラスタリング部46は,整形ログテーブルTf1において,受信時送信先ポート番号欄の列と対象通信ログに含まれる送信先IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信先ポート番号を記憶する。なお,クラスタリング部46は,このセルに既にポート番号("*****"も含む)が記憶されていた場合,ポート番号に換えて"*****"を記憶する。
一方,クラスタリング部46は,ステップS35を実行した場合,整形ログテーブルTf1において,受信時送信先ポート番号欄の列とステップS35で送信先IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信先ポート番号を記憶する。
ステップS37:クラスタリング部46は,整形ログテーブルTf1の受信時送信元ポート番号欄に,対象通信ログに含まれる送信元ポート番号を記憶する。具体的には,ステップS34でYESと判定された場合,クラスタリング部46は,整形ログテーブルTf1において,受信時送信元ポート番号欄の列と対象通信ログに含まれる送信先IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信元ポート番号を記憶する。なお,クラスタリング部46は,このセルに既にポート番号("*****"も含む)が記憶されていた場合,ポート番号に換えて"*****"を記憶する。
一方,クラスタリング部46は,ステップS35を実行した場合,整形ログテーブルTf1において,受信時送信元ポート番号欄の列とステップS35で送信先IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信元ポート番号を記憶する。
ステップS33において,対象通信ログに含まれる送信元IPアドレスとステップS31で選択したIPアドレスが一致しないと判定された場合(ステップS33/NO),図39のステップS38に進む。
図39のステップS38:クラスタリング部46は,図40の整形ログテーブルTf1の相手側IPアドレス欄に,対象通信ログに含まれる送信元IPアドレスが記憶されているか判定する。ステップS38において記憶されていない場合(ステップS38/NO),ステップS39に移る。
ステップS39:クラスタリング部46は,図40の整形ログテーブルTf1の相手側IPアドレス欄に,対象通信ログに含まれる送信元IPアドレスを記憶する。
ステップS40:クラスタリング部46は,整形ログテーブルTf1の送信時送信元ポート番号欄に,対象通信ログに含まれる送信元ポート番号を記憶する。具体的には,ステップS38でYESと判定された場合,クラスタリング部46は,整形ログテーブルTf1において,送信時送信元ポート番号欄の列と対象通信ログに含まれる送信元IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信元ポート番号を記憶する。なお,クラスタリング部46は,このセルに既にポート番号("*****"も含む)が記憶されていた場合,ポート番号に換えて"*****"を記憶する。
一方,クラスタリング部46は,ステップS39を実行した場合,整形ログテーブルTf1において,送信時送信元ポート番号欄の列とステップS39で送信元IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信元ポート番号を記憶する。
ステップS41:クラスタリング部46は,整形ログテーブルTf1の送信時送信先ポート番号欄に,対象通信ログに含まれる送信先ポート番号を記憶する。具体的には,ステップS38でYESと判定された場合,クラスタリング部46は,整形ログテーブルTf1において,送信時送信先ポート番号欄の列と対象通信ログに含まれる送信元IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信先ポート番号を記憶する。なお,クラスタリング部46は,このセルに既にポート番号("*****"も含む)が記憶されていた場合,ポート番号に換えて"*****"を記憶する。
一方,クラスタリング部46は,ステップS39を実行した場合,整形ログテーブルTf1において,送信時送信先ポート番号欄の列とステップS39で送信元IPアドレスが記憶されたセルの行とが交わるセルに,対象通信ログに含まれる送信先ポート番号を記憶する。
全ての設定ミス候補の通信ログに対する図38のステップS37,図39のステップS41の処理が終了しない場合(ループLP42の未完),ループLP42からループLP41に移り,再度,クラスタリング部46は,ステップS32以下を実行する。
クラスタリング部46は,ステップS32以下を繰り返し実行し,ステップS31で選択したIPアドレスを含む設定ミス候補の通信ログに対してステップS33以下の処理の実行を終了すると(ループLP42の完了),ステップS42に移る。具体的には,クラスタリング部46は,設定ミス候補テーブルTe11が記憶する複数の設定ミス候補の通信ログの中から全ての設定ミス候補の通信ログを取り出し,ステップS33以下の処理の実行を終了すると,ステップS42に移る。
ステップS42:クラスタリング部46は,図40の整形ログテーブルTf1において,ポート番号が記憶されていないセルに"-"(ハイフン)を記憶する。このハイフンの記憶が,クラスタリング部46による片側通信のみが成功した旨の記憶である。
クラスタリング部46は,ステップS31以下を繰り返し実行し,ミス検出部44が出力した設定ミス候補の通信ログに含まれる全IPアドレスを選択していない場合(ループLP32の未完),ループLP32からループLP31に移り,再度,クラスタリング部46は,ステップS31以下を実行する。
一方,クラスタリング部46は,ミス検出部44が出力した設定ミス候補の通信ログに含まれる全IPアドレスを選択した場合(ループLP32の完了),処理を終了する。
(設定ミス候補の通信ログの整形の具体例)
図36〜図40を参照して,設定ミス候補の通信ログの整形の具体例を説明する。ステップS31を実行する前には,図36で示したテーブルには何らのデータも記憶されていない。
クラスタリング部46は,ステップS31を実行して,例えば,ミス検出部44が出力した設定ミス候補の通信ログからIPアドレス"12.0.3.7"を選択する(ステップS31)。このIPアドレス"12.0.3.7"は,図37の対象サーバSVRtに設定されたIPアドレスである。
クラスタリング部46は,ステップS32を実行して,例えば符号P31で示す設定ミス候補の通信ログを取り出しメモリ402に記憶する(ステップS32)。対象通信ログP31に含まれる送信元IPアドレス"12.0.3.7"とステップS31で選択したPアドレス"12.0.3.7"は一致するので,クラスタリング部46は,ステップS33でYESと判定し,ステップS34を実行する。
図40の整形ログテーブルTf1の相手側IPアドレス欄には,対象通信ログP31に含まれる送信先IPアドレス"12.0.0.3"が記憶されていないので,ステップS34でNOと判定し,ステップS35を実行する。クラスタリング部46は,整形ログテーブルTf1の相手側IPアドレス欄に,符号P51に示すように対象通信ログP31に含まれる送信先IPアドレス"12.0.0.3"を記憶する(ステップS35)。
そして,クラスタリング部46は,整形ログテーブルTf1において,受信時送信先ポート番号欄の列とステップS35で送信先IPアドレス"12.0.0.3"が記憶されたセルの行とが交わるセルに,符号P51に示すように,対象通信ログP31の送信先ポート番号"161"を記憶する(ステップS36)。
そして,クラスタリング部46は,整形ログテーブルTf1において,受信時送信元ポート番号欄の列とステップS35で送信先IPアドレス"12.0.0.3"が記憶されたセルの行とが交わるセルに,符号P51に示すように,対象通信ログP31の送信元ポート番号"*****"を記憶する(ステップS37)。
そして,クラスタリング部46は,図36の符号P32の設定ミス候補の通信ログから符号P33で示した設定ミス候補の通信ログまでの7個の設定ミス候補の通信ログについて,ステップS32〜ステップS37を実行する。その結果,クラスタリング部46は,図40における受信時送信元ポート番号欄と受信時送信先ポート番号欄とに,7個の設定ミス候補の通信ログに含まれる送信元ポート番号と送信先ポート番号とをそれぞれ記憶する(図40の符号P52〜符号P53で示したクラスタ用ログを参照)。
次に,クラスタリング部46は,ステップS32を実行して,例えば図36の符号P34で示す設定ミス候補の通信ログを取り出しメモリ402に記憶する(ステップS32)。対象通信ログP34に含まれる送信元IPアドレス"12.0.3.6"とステップS31で選択したIPアドレス"12.0.3.7"は一致しないで,クラスタリング部46は,ステップS33でNOと判定し,図39のステップS38を実行する。
図40の整形ログテーブルTf1の相手側IPアドレス欄には,対象通信ログP34に含まれる送信元IPアドレス"12.0.3.6"が記憶されていないので,ステップS38でNOと判定し,ステップS39を実行する。クラスタリング部46は,整形ログテーブルTf1の相手側IPアドレス欄に,符号P54に示すように対象通信ログP34に含まれる送信先IPアドレス"12.0.3.6"を記憶する(ステップS39)。
そして,クラスタリング部46は,整形ログテーブルTf1において,送信時送信元ポート番号欄の列とステップS39で送信元IPアドレス"12.0.3.6"が記憶されたセルの行とが交わるセルに,符号P54に示すように,対象通信ログP34の送信元ポート番号"*****"を記憶する(ステップS40)。
そして,クラスタリング部46は,整形ログテーブルTf1において,送信時送信先ポート番号欄の列とステップS39で送信元IPアドレス"12.0.3.6"が記憶されたセルの行とが交わるセルに,符号P54に示すように,対象通信ログP34の送信先ポート番号"56241"を記憶する(ステップS41)。
次に,クラスタリング部46は,図38のステップS32に戻り,例えば符号P35で示す設定ミス候補の通信ログを取り出しメモリ402に記憶する(ステップS32)。対象通信ログP35に含まれる送信元IPアドレス"12.0.0.3"とステップS31で選択したIPアドレス"12.0.3.7"は一致しないで,クラスタリング部46は,ステップS33でNOと判定し,ステップS38を実行する。
図40の整形ログテーブルTf1の相手側IPアドレス欄には,対象通信ログP35に含まれる送信元IPアドレス"12.0.0.3"が記憶されているので(図40の符号P51参照),ステップS38でYESと判定し,ステップS40を実行する。
クラスタリング部46は,整形ログテーブルTf1において,送信時送信元ポート番号欄の列と送信元IPアドレス"12.0.0.3"が記憶されたセルの行(符号P51参照)とが交わるセルに,符号P51に示すように,対象通信ログP35の送信元ポート番号"161"を記憶する(ステップS40)。
クラスタリング部46は,整形ログテーブルTf1において,送信時送信先ポート番号欄の列と送信元IPアドレス"12.0.0.3"が記憶されたセルの行とが交わるセルに,符号P51に示すように,対象通信ログP35の送信先ポート番号"*****"を記憶する(ステップS41)。
クラスタリング部46は,図38,図39で説明した通信ログの整形処理を,ミス検出部44が出力した設定ミス候補の通信ログに含まれる全てのIPアドレスに対して実行する。
以下,クラスタリング部46が,図36の設定ミス候補テーブルTe11が記憶する全通信ログに対して実行した結果,作成した図40の整形ログテーブルTf1について説明する。なお,図34の通信ログデータベースDB1が,整形ログテーブルTf1を記憶している状態を図34の符号Tfで示している。
(クラスタリング)
クラスタリング部46は,整形ログテーブルTf1の各行に記憶されたログ(以下,クラスタリング用ログと適宜記す)を,ポート番号を類似度の基準にして,クラスタリングする。換言すれば,クラスタリング部46は,類似度が高いクラスタリング用ログ同士を纏め,すなわち,同一のポート番号を含むクラスタリング用を纏める。
図41は,クラスタリング処理の流れを説明するフロー図の一例である。以下に記載するクラスタリング用ログの通信要素は,例えば,ポート番号である。また,通信要素項目は,例えば,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号である。なお,図41の説明の後に,クラスタリングの具体例を説明する。
ステップS51:クラスタリング部46は,クラスタリング用ログが記憶されたテーブル(例えば,図40の整形ログテーブルTf1)に含まれる通信要素項目の中から出現頻度が最も高い通信要素を含む通信要素項目を選択する。そして,クラスタリング部46は,選択した通信要素項目をメモリ402に記憶する。
ステップS52:クラスタリング部46は,ステップS51で選択した1つの通信要素項目に含まれる各通信要素に従って,各通信要素を含むクラスタリング用ログに含まれるIPアドレスをクラスタリングする。そして,クラスタリング部46は,クラスタリングしたIPアドレスを,クラスタリングした単位でメモリ402に記憶する。このクラスタリングは,IPアドレスを纏める処理とも呼ばれる。
以下,クラスタリング部46は,クラスタリングされたIPアドレスを含むクラスタリング用ログに対して,ステップS53〜ステップS55を繰り返し行う(ループLP51〜LP52)。以下,クラスタリングされたIPアドレスを,それぞれ第1〜第N(Nは2以上の整数)クラスタ済みIPアドレスと記す。
ステップS53:クラスタリング部46は,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象にして,未選択の通信要素項目の中から出現頻度が最も高い通信要素を含む通信要素項目を選択する。そして,クラスタリング部46は,選択した通信要素項目をメモリ402に記憶する。
ステップS54:クラスタリング部46は,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象にして,ステップS53で選択した1つの通信要素項目に含まれる各ポート番号に従って,各ポート番号を含むクラスタリング用ログに含まれるIPアドレスをクラスタリングする。そして,クラスタリング部46は,クラスタリングしたIPアドレスを,クラスタリングした単位でメモリ402に記憶する。
ステップS55:クラスタリング部46は,未選択の通信要素項目があるか判定する。未選択の通信要素項目ある場合(ステップS55/YES),ステップS53に戻る(ループLP52からループLP51)。未選択の通信要素項目がない場合(ステップS55/NO),処理を終了する。
クラスタリング部46は,ステップS51〜ステップS55までの処理を対象サーバ毎に実行する。
(クラスタリングの第1の具体例)
図40〜図42を参照して,クラスタリングの第1の具体例を説明する。
図42は,クラスタリングの第1の具体例を模式的に説明する図の一例である。図42は,ポート番号,IPアドレスの関係を木構造で示す図である。根ノードN1は,対象サーバに設定されたIPアドレス"12.0.3.7"を示す。また,実線の枠で示したノードN2〜N9は,ポート番号を示す。また,点線の枠で示したノードは,相手側サーバに設定されたIPアドレスを示す。
クラスタリング部46は,図41のステップS51を実行する。クラスタリング部46は,ステップS51において,図40の整形ログテーブルTf1に含まれる送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号(4つの通信要素項目)におけるポート番号毎の出現頻度を算出する。そして,クラスタリング部46は,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号において出現頻度が最も高いポート番号と,その出現頻度をメモリ402に記憶する。そして,クラスタリング部46は,4つの通信要素項目の中から,算出した出現頻度が最も高いポート番号を含む通信要素項目を1つ選択し,メモリ402に記憶する。
ステップS51で説明する送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号におけるポート番号毎の出現頻度は,以下の値である。
すなわち,前記ポート番号毎の出現頻度は,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号における同一ポート番号の個数を,図40の整形ログテーブルTf1に記憶されたクラスタリング用ログの総数で除算した値である。なお,前記総数は,図40の例では,10個である。
図40の例では,送信時送信元ポート番号におけるポート番号"161"の出現頻度は,送信時送信元ポート番号におけるポート番号"161"の個数は4個なので,4/10である。
図40の例では,送信時送信元ポート番号において出現頻度が最も高いポート番号は"161"(4/10),送信時送信先ポート番号において出現頻度が最も高いポート番号は"*****"(6/10)である。図40の例では,受信時送信元ポート番号において出現頻度が最も高いポート番号は"*****"(8/10),受信時送信先ポート番号において出現頻度が最も高いポート番号は"161"(6/10)である。この場合,算出した出現頻度が最も高いポート番号"*****"(8/10))を含む通信要素項目は,受信時送信元ポート番号である。従って,クラスタリング部46は,受信時送信元ポート番号を選択し,メモリ402に記憶する。
クラスタリング部46は,ステップS52を実行する。ここで,図40の例では,選択された受信時送信元ポート番号に含まれるポート番号(各通信要素)は"*****","56241","162"である。受信時送信元ポート番号に含まれるポート番号"*****"を図42のノードN2で示す。受信時送信元ポート番号に含まれるポート番号"56241"を図42のノードN3で示す。受信時送信元ポート番号に含まれるポート番号"162"を図42のノードN4で示す。
クラスタリング部46は,ノードN1の子ノードがノードN2〜ノードN4であることを示す情報をメモリ402に記憶する。
前記した受信時送信元ポート番号に含まれるポート番号"*****"を含むクラスタリング用ログに含まれる相手側IPアドレスは,以下の8個のIPアドレスである。すなわち,図42の符号G1で示す一点鎖線で囲んだ"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12","12.0.0.5","12.0.0.9","12.1.2.61","12.3.0.142"である。クラスタリング部46は,ノードN2に属するIPアドレスが,前記8個のIPアドレス(符号G1)であることを示す情報をメモリ402に記憶する。
また,受信時送信元ポート番号に含まれるポート番号"56241"を含むクラスタリング用ログに含まれるIPアドレスは,図42の符号G2で示す一点鎖線で囲んだ"12.0.3.6"である。
また,受信時送信元ポート番号に含まれるポート番号"162"を含むクラスタリング用ログに含まれるIPアドレスは,図42の符号G3で示す一点鎖線で囲んだ"12.1.2.14"である。
クラスタリング部46は,ノードN3の子ノード(葉ノード)が符号G2で示すノード,ノードN4の子ノードが符号G3で示すノードであることを示す情報をメモリ402に記憶する。
クラスタリング部46は,ステップS52において,図40の整形ログテーブルTf1に記憶されたクラスタリング用ログに含まれるIPアドレスを3つにクラスタリングする(図42の符号G1〜G3参照)。ここで,クラスタリングされた前記した8個のIPアドレス(図42の符号G1参照)が第1のクラスタ済みIPアドレスである。そして,クラスタリングされた1個のIPアドレス"12.0.3.6"が第2のクラスタ済みIPアドレスである(図42の符号G2参照)。そして,クラスタリングされた1個のIPアドレス"12.1.2.14"が第3のクラス済みIPアドレスである(図42の符号G3参照)。
クラスタリング部46は,1回目のステップS53を実行する。クラスタリング部46は,ステップS53の実行において,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象にして,未選択の通信要素項目におけるポート番号毎の出現頻度を算出する。そして,クラスタリング部46は,未選択の通信要素項目毎における出現頻度が最も高いポート番号と,その出現頻度をメモリ402に記憶する。そして,クラスタリング部46は,未選択通信要素項目の中から,算出した出現頻度が最も高いポート番号を含む通信要素項目を1つ選択し,メモリ402に記憶する。
ステップS53で説明する未選択通信要素項目毎におけるポート番号毎の出現頻度は,未選択通信要素項目毎の同一ポート番号の個数を,クラスタリングされたIPアドレスを含むクラスタリング用ログの総数で除算した値である。
図40の例では,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象とする未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信先ポート番号である。そして,前記したクラスタリングされたIPアドレスを含むクラスタリング用ログ(第1のクラスタリング済みIPアドレスを含むクラスタ用ログ)の総数は8個である。以下,第1のクラスタリング済みIPアドレスを含むクラスタ用ログに含まれるポート番号の出現頻度を説明する。
図40の例では,送信時送信元ポート番号において出現頻度が最も高いポート番号は"161"(4/8),送信時送信先ポート番号において出現頻度が最も高いポート番号は"*****"(6/8)である。図40の例では,受信時送信先ポート番号において出現頻度が最も高いポート番号は"161"(6/8)である。この場合,出現頻度が最も高いポート番号("*****"(6/8),"161"(6/8))を含む通信要素項目は,送信時送信先ポート番号,受信時送信先ポート番号である。このように,出現頻度が最も高いポート番号が複数ある場合,クラスタリング部46は,ポート番号がマージされていない,すなわち,ポート番号が"*****"以外のポート番号を含む通信要素項目を選択し,メモリ402に記憶する。前記の例の場合,クラスタリング部46は,受信時送信先ポート番号を選択する。
クラスタリング部46は,1回目のステップS54を実行する。ここで,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象にして,1回目のステップS53で選択された受信時送信先ポート番号に含まれる各ポート番号は"161","*****","9000"である。受信時送信先ポート番号に含まれるポート番号"161"を図42のノードN5で示し,受信時送信先ポート番号に含まれるポート番号"*****"を図42のノードN6で示し,受信時送信先ポート番号に含まれるポート番号"9000"を図42のノードN7で示す。
クラスタリング部46は,ノードN2の子ノードがノードN5〜ノードN7であることを示す情報をメモリ402に記憶する。
図40において,受信時送信先ポート番号に含まれるポート番号"161"を含むクラスタリング用ログに含まれるIPアドレスは,以下の6個のIPアドレスである。すなわち,図42の符号G4で示す一点鎖線で囲んだ"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12","12.0.0.5","12.0.0.9"である。ここで,クラスタリングされた前記6個のIPアドレスが第4のクラスタ済みIPアドレスである。
クラスタリング部46は,ノードN5に属するIPアドレスが,前記6個のIPアドレス(符号G4)であることを示す情報をメモリ402に記憶する。
また,受信時送信先ポート番号に含まれるポート番号"******"を含むクラスタリング用ログに含まれるIPアドレスは,図42の符号G5で示す一点鎖線で囲んだ"12.1.2.61"である。また,受信時送信先ポート番号に含まれるポート番号"9000"を含むクラスタリング用ログに含まれるIPアドレスは,図42の符号G6で示す一点鎖線で囲んだ"12.3.0.142"である。
クラスタリング部46は,ノードN6の子ノードが符号G5で示すノード,ノードN7の子ノードが符号G6で示すノードであることを示す情報をメモリ402に記憶する。
ここで,既に選択された通信要素項目は,受信時送信元ポート番号,受信時送信先ポート番号であるので,未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号の2つがある。従って,クラスタリング部46は,未選択の通信要素項目があると判定し(ステップS55/NO),ステップS53に戻る。
クラスタリング部46は,2回目のステップS53を実行する。図40の例では,2回目のステップS53において,未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号である。そして,第4のクラスタ済みIPアドレスについては,このIPアドレスを含むクラスタリング用ログの総数は6個である。
図40の例では,送信時送信元ポート番号において出現頻度が最も高いポート番号は"161"(4/6),送信時送信先ポート番号において出現頻度が最も高いポート番号は"*****"(4/6)である。図40の例では,この場合,算出した出現頻度が最も高いポート番号("*****"(4/6),"161"(4/6))を含む通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号である。このように,出現頻度が最も高いポート番号が複数ある場合(図40の例では,送信時送信元ポート番号,送信時送信先ポート番号),クラスタリング部46は,ポート番号がマージされていない,すなわち,ポート番号が"*****"以外のポート番号を含む通信要素項目を選択する。前記の例の場合,クラスタリング部46は,送信時送信元ポート番号を選択し,メモリ402に記憶する。
クラスタリング部46は,2回目のステップS54を実行する。ここで,1回目のステップS54においてクラスタリングされたIPアドレスを含むクラスタリング用ログ(第4のクラスタ済みIPアドレスを含むクラスタリング用ログ)を対象にして,2回目のステップS53で選択された送信時送信元ポート番号に含まれる各ポート番号は"161","-"である。送信時送信元ポート番号に含まれるポート番号"161"を図42のノードN8で示し,送信時送信元ポート番号に含まれるポート番号"-"を図42のノードN9で示す。
クラスタリング部46は,ノードN5の子ノードがノードN8,ノードN9であることを示す情報をメモリ402に記憶する。
図40において,送信時送信元ポート番号に含まれるポート番号"161"を含むクラスタリング用ログに含まれるIPアドレスは,以下の4個のIPアドレスである。すなわち,図42の符号G7で示す一点鎖線で囲んだ"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12"である。また,送信時送信元ポート番号に含まれるポート番号"-"を含むクラスタリング用ログに含まれるIPアドレスは,以下の2個のIPアドレスである。すなわち,図42の符号G8で示す一点鎖線で囲んだ"12.0.0.5","12.0.0.9"である。
クラスタリング部46は,ノードN8の子ノードが符号G7で示すノード,ノードN9の子ノードが符号G8で示すノードであることを示す情報をメモリ402に記憶する。
前記した2回目のステップS53の実行において,クラスタリング部46は,送信時送信元ポート番号,送信時送信先ポート番号の中から1つの送信時送信元ポート番号を選択した。そのため,未選択の通信要素項目がないとみなし(ステップS55/NO),クラスタリング部46は,クラスタリング処理を終了する。
なお,クラスタリング部46は,クラスタリングされた1つのIPアドレスを含むクラスタリング用に対しては,ステップS53を実行しない。図40,図42の例では,クラスタリング部46は,例えば,クラスタリングされた1個のIPアドレス"12.0.3.6"(図42の符号G2参照)を含むクラスタリング用ログや,クラスタリングされた1個のIPアドレス"12.1.2.14"(図42の符号G3参照)を含むクラスタリング用ログに対しては,ステップS53を実行しない。
以上,説明したクラスタリング処理により,図40の整形ログテーブルTf1に含まれるIPアドレスは,図42の符号G2,G3,G5〜G8で示すように,6つにクラスタリングされる。
図43は,図40の整形ログテーブルTf1に含まれるIPアドレスをクラスタリングした状態をテーブル形式で示した図の一例である。絞り込み結果テーブルTn1は,整形ログテーブルTf1の相手側IPアドレス欄の左側に項番欄を設けたテーブルである。図43においては,図40の整形ログテーブルTf1に記憶しているクラスタリング用ログを6つにクラスタリングした状態を示している。
例えば,項番1の行には,図42の符号G7で示す一点鎖線で囲んだIPアドレス"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12"を含むクラスタリング用ログを記憶している。例えば,項番2の行には,図42の符号G8で示す一点鎖線で囲んだIPアドレス"12.0.0.5","12.0.0.9"を含むクラスタリング用ログを記憶している。
図43の絞り込み結果テーブルTn1から明らかなように,クラスタリング部46は,同一のポート番号を含むクラスタリング用を纏めている。例えば,クラスタリング部46は,同一の送信時送信元ポート番号"161",送信時送信先ポート番号"*****",受信時送信元ポート番号"*****",受信時送信先ポート番号"161"を含むクラスタリング用ログを項番1に示すように,1つに纏めている。
なお,図34の通信ログデータベースDB1が,絞り込み結果テーブルTn1を記憶している状態を図34の符号Tnで示している。
クラスタリング部46は,図43の絞り込み結果テーブルTn1を通知部45に出力する。通知部45は,図43の絞り込み結果テーブルTn1を,表示制御部406と表示装置406a(図5参照)とを介して,管理者に表示する。
図36の設定ミス候補テーブルTe11では,設定ミス候補の通信ログは20個である。クラスタリング部46は,この20個の設定ミス候補の通信ログを図43の絞り込み結果テーブルTn1に示すように,対象サーバに対応して6項目に集約している。
管理者は,各項番に対応する相手側IPアドレス欄に記憶されたIPアドレスが設定された1つの機器についての通信関連情報の設定を確認すれば,その項番に対応する相手側IPアドレス欄に記憶された他のIPアドレスが設定された機器についても同様の通信関連情報の設定ミスが高確率で発生していると判断できる。
例えば,項番1の場合,項番1に対応する相手方IPアドレス欄に記憶されたIPアドレスは,"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12"である。ここで,これらのクラスタ済みログのもとは,動作検証済みの第1のブロックA20aにおいてのみ存在する通信ログであることからすれば以下の判断が可能になる。すなわち,管理者は,例えば"12.0.0.3"が設定されている機器において161番ポートを利用するアプリケーション(サービスとも呼ぶ)の設定が忘れられている可能性があると判断できる。
そして,管理者は,他の機器,すなわちIPアドレス"12.0.0.6","12.1.2.11","12.1.2.12"がそれぞれ設定されている3個の機器においても同様に,161番ポートを利用するアプリケーションの設定が忘れられている可能性が高いと判断できる。
また,管理者は,対象サーバで,この161番ポートを利用するアプリケーションを利用するアプリケーションの設定が間違っていると判断できる。
以上説明したように,管理者は,纏められたログを見て設定ミスの原因調査を行えはよいので,効率よく設定ミスの原因を見つけることができる。その結果,設定ミスの原因調査,修正作業の工数を削減できる。
(クラスタリングの第2の具体例)
通信内容を特定できる情報として通信回数を利用することもできる。例えば,HTTP (Hypertext Transfer Protocol)を利用する通信の場合,ポート番号"80"が利用される。このようなポート番号"80"を利用するアプリケーションが実行する通信は,通常,頻繁に行われ,単位時間当たりの通信回数が多い。このように,通信回数が多い通信は,例えばHTTPを利用する通信であるとして通信内容を特定可能である。
図44は,通信回数を含むクラスタリング用ログを記憶したテーブルの一例である。図44は,図40の整形ログテーブルTf1における受信時送信先ポート番号欄の右側に通信回数欄を設けたテーブルである。
なお,図44の整形ログテーブルTf2におけるIPアドレス,ポート番号と,図40の整形ログテーブルTf1におけるIPアドレス,ポート番号とは,一部相違する。
クラスタリング部46は,通信回数を含む設定ミス候補の通信ログに対して,図38のフロー図で説明した整形処理を実行し,2重に記憶されている設定ミス候補の通信ログを纏めて1つのクラスタリング用ログを生成する。クラスタリング部46は,設定ミス候補の通信ログを纏める際に2重に記憶されている第1の設定ミス候補の通信ログの回数と,第2の設定ミス候補の通信ログの回数とを加算して,前記した1つのクラスタリング用ログに含める。
以下の説明においては,図36の設定ミス候補テーブルTe11の送信先ポート番号欄の左側に通信回数欄が設けられ,通信回数欄に通信ログの回数が記憶されているとする。例えば,図36の設定ミス候補の通信ログP31は,通信回数2562を含み,設定ミス候補の通信ログP35は,通信回数2562を含むとする。
クラスタリング部46は,通信回数を含む設定ミス候補の通信ログに対して,図38のフロー図で説明した整形処理を実行し,例えば,図44の整形ログテーブルTf2を作成する。
クラスタリング部46は,前記した通信回数が含まれる設定ミス候補の通信ログP31と通信回数が含まれる設定ミス候補の通信ログP35と纏めた場合,以下の処理を実行する。すなわち,クラスタリング部46は,この設定ミス候補の通信ログP31に含まれる通信回数2562とこの設定ミス候補の通信ログP35に含まれる通信回数2562とを加算して(加算後の通信回数は5124),図44の通信回数欄に記憶する。前記の例では,クラスタリング部46は,前記した設定ミス候補の通信ログP31と設定ミス候補の通信ログP35と纏めた場合,図44の符号P61に示すように,この纏めた通信ログをクラスタリング用ログとして記憶する。
第1の具体例ではポート番号に従ってIPアドレスをクラスタリングしたが(図41参照),第2の具体例では,ポート番号,さらには通信回数に従ってIPアドレスをクラスタリングする。
通信回数は,当然のことながら,ばらばらな数値であり,同じ通信回数を含むクラスタ用ログが図44の整形ログテーブルTf2に記憶される可能性は少ない。そのため,ばらばらな通信回数に従ってクラスタリングを行っても管理者にとって有用なクラスタリングを行うことは困難である。
そこで,管理者にとって有用なクラスタリングを行うため,通信回数を所定数のグループに分ける。例えば,通信回数を3つのグループ(例えば,"多","中","小")に分ける。3つのグループに分けた場合,例えば,通信回数が1000回未満の回数を"少",通信回数が1000回以上で2999回以下の回数を"中",通信回数が3000回以上の回数を"多"とする。
図45は,図44において通信回数をグループ化した状態を示したテーブルの一例である。
クラスタリング部46は,図45の整形ログテーブルTf3に示したように,図44において,3000回以上の通信回数を"多"に置き換え,1000回以上で2999回以下の通信回数を"中"に置き換え,1000回未満の通信回数を"少"に置き換える。前記の例では,クラスタリング部46は,符号P71に示すクラスタリング用ログにおける通信回数を"多"とする。そして,クラスタリング部46は,図40で説明したクラスタリングを実行する。
なお,図34の通信ログデータベースDB1が,図45の整形ログテーブルTf3を記憶している状態を図34の符号Tfで示している。
(クラスタリングの第2の具体例)
図41,図45,図46を参照して,クラスタリングの第2の具体例を説明する。図46は,ポート番号,通信回数,IPアドレスの関係を木構造で示す図である。根ノードN11は,対象サーバに設定されたIPアドレス"12.0.3.7"を示す。また,実線の枠で示したノードN12〜N19は,ポート番号,通信回数を示す。また,点線の枠で示したノードは,相手側サーバに設定されたIPアドレスを示す。
クラスタリング部46は,図41のステップS51を実行する。クラスタリング部46は,ステップS51において,図45の整形ログテーブルTf3に含まれる送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号(4つの通信要素項目)におけるポート番号毎の出現頻度を算出する。そしてクラスタリング部46は,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号毎において出現頻度が最も高いポート番号と,その出現頻度をメモリ402に記憶する。さらに,クラスタリング部46は,ステップS51において,図45の整形ログテーブルTf3に含まれる通信回数 (1つの通信要素項目)における通信回数毎の出現頻度を算出する。そしてクラスタリング部46は,出現頻度が最も高い通信回数と,その出現頻度をメモリ402に記憶する。
そして,クラスタリング部46は,5つの通信要素項目の中から,出現頻度が最も高い通信要素を含む通信要素項目を1つ選択し,メモリ402に記憶する。
ステップS51で説明する送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号におけるポート番号毎の出現頻度は,以下の値である。
すなわち,前記ポート番号毎の出現頻度は,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号における同一ポート番号の個数を,図45の整形ログテーブルTf3に記憶されたクラスタリング用ログの総数で除算した値である。なお,前記総数は,図45の例では,9個である。
図45の例では,送信時送信元ポート番号におけるポート番号"161"の出現頻度は,送信時送信元ポート番号におけるポート番号"161"の個数は5個なので,5/9である。また,ステップS51で説明する通信回数毎の出現頻度は,同一通信回数の個数を,図45の整形ログテーブルTf3に記憶されたクラスタリング用ログの総数(図45の例では,9個)で除算した値である。
図45の例では,送信時送信元ポート番号において出現頻度が最も高いポート番号は"161"(5/9),送信時送信先ポート番号において出現頻度が最も高いポート番号は"*****"(6/9)である。図45の例では,受信時送信元ポート番号において出現頻度が最も高いポート番号は"*****"(8/9),受信時送信先ポート番号において出現頻度が最も高いポート番号は"161"(7/9)である。また,図45の例では,出現頻度が最も高い通信回数は"多"(7/9)である。
この場合,出現頻度が最も高い通信要素は,受信時送信元ポート番号におけるポート番号"*****"(8/9)であるので,クラスタリング部46は,出現頻度が最も高いポート番号"*****"(8/9)を含む通信要素項目である受信時送信元ポート番号を選択し,メモリ402に記憶する。
クラスタリング部46は,ステップS52を実行する。ここで,図45の例では,選択された受信時送信元ポート番号に含まれるポート番号は"*****","162"である。受信時送信元ポート番号に含まれるポート番号"*****"を図46のノードN12で示す。受信時送信元ポート番号に含まれるポート番号"162"を図46のノードN13で示す。
クラスタリング部46は,ノードN11の子ノードがノードN12,ノードN13であることを示す情報をメモリ402に記憶する。
前記した受信時送信元ポート番号に含まれるポート番号"*****"を含むクラスタリング用ログに含まれる相手側IPアドレスは,以下の8個のIPアドレスである。すなわち,図46の符号G11で示す一点鎖線で囲んだ"12.0.0.3","12.0.0.5","12.0.0.6","12.0.0.9","12.1.2.11","12.1.2.12","12.1.2.61","12.0.3.6"である。クラスタリング部46は,ノードN12に属するIPアドレスが,前記8個のIPアドレス(符号G11)であることを示す情報をメモリ402に記憶する。
また,受信時送信元ポート番号に含まれるポート番号"162"を含むクラスタリング用ログに含まれるIPアドレスは,図46の符号G12で示す一点鎖線で囲んだ"12.1.2.14"である。クラスタリング部46は,ノードN13の子ノードが符号G12で示すノードであることを示す情報をメモリ402に記憶する。
クラスタリング部46は,ステップS52において,図45の整形ログテーブルTf3に記憶されたクラスタリング用ログに含まれるIPアドレスを2つにクラスタリングする(図46の符号G11,G12参照)。ここで,クラスタリングされた前記した8個のIPアドレス(図46の符号G11参照)が第11のクラスタ済みIPアドレスである。そして,クラスタリングされた1個のIPアドレス"12.1.2.14"が第12のクラスタ済みIPアドレスである(図46の符号G12参照)。
クラスタリング部46は,1回目のステップS53を実行する。クラスタリング部46は,1回目のステップS53の実行において,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象にして,未選択の通信要素項目(前記の例では,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信先ポート番号,通信回数)における通信要素(ポート番号,または,出現回数)毎の出現頻度を算出する。そして,クラスタリング部46は,未選択通信要素項目毎における出現頻度が最も高い通信要素と,その出現頻度をメモリ402に記憶する。
そして,クラスタリング部46は,未選択通信要素項目の中から,出現頻度が最も高い通信要素を含む通信要素項目を1つ選択する。
ステップS53で説明する未選択通信要素項目毎におけるポート番号毎の出現頻度は,未選択通信要素項目毎の同一ポート番号の個数を,クラスタリングされたIPアドレスを含むクラスタリング用ログの総数で除算した値である。また,ステップS53で説明する未選択通信要素項目毎における通信回数毎の出現頻度は,同一通信回数の個数を,クラスタリングされたIPアドレスを含むクラスタリング用ログの総数で除算した値である。
図45の例では,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象とする未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信先ポート番号,通信回数である。そして,前記したクラスタリングされたIPアドレスを含むクラスタリング用ログ(例えば,第11のクラスタリング済みIPアドレスを含むクラスタ用ログ)の総数は8個である。以下,第11のクラスタリング済みIPアドレスを含むクラスタ用ログに含まれるポート番号または通信回数の出現頻度を説明する。
図45の例では,送信時送信元ポート番号において出現頻度が最も高いポート番号は"161"(5/8),送信時送信先ポート番号において出現頻度が最も高いポート番号は"*****"(6/8)である。図45の例では,受信時送信先ポート番号において出現頻度が最も高いポート番号は"161"(7/8)である。図45の例では,通信回数において出現頻度が最も高い通信回数は"多"(6/8)である。
この場合,出現頻度が最も高い通信要素は,受信時送信先ポート番号におけるポート番号"161"(7/8)であるので,クラスタリング部46は,出現頻度が最も高いポート番号"161"(7/8)を含む通信要素項目である受信時送信先ポート番号を選択し,メモリ402に記憶する。
クラスタリング部46は,1回目のステップS54を実行する。ここで,ステップS52においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象にして,1回目のステップS53で選択された受信時送信先ポート番号に含まれる各ポート番号は"161","*****"である。受信時送信先ポート番号に含まれるポート番号"161"を図46のノードN14で示し,受信時送信先ポート番号に含まれるポート番号"*****"を図46のノードN15で示す。
クラスタリング部46は,ノードN12の子ノードがノードN14,ノードN15の子ノードが符号G14で示すノードであることを示す情報をメモリ402に記憶する。
図45において,受信時送信先ポート番号に含まれるポート番号"161"を含むクラスタリング用ログに含まれるIPアドレスは,以下の7個のIPアドレスである。すなわち,図46の符号G13で示す一点鎖線で囲んだ"12.0.0.3","12.0.0.5","12.0.0.6","12.0.0.9","12.1.2.11","12.1.2.12", "12.0.3.6"である。また,受信時送信先ポート番号に含まれるポート番号"*****"を含むクラスタリング用ログに含まれるIPアドレスは,図46の符号G14で示す一点鎖線で囲んだ"12.1.2.61"である。
ここで,クラスタリングされた前記7個のIPアドレスが第13のクラスタ済みIPアドレスである。
クラスタリング部46は,ノードN14に属するIPアドレスが,前記7個のIPアドレス(符号G13)であることを示す情報をメモリ402に記憶する。
ここで,既に選択された通信要素項目は,受信時送信元ポート番号,受信時送信先ポート番号であるので,未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号,通信回数の3つがある。従って,クラスタリング部46は,未選択の通信要素項目があると判定し(ステップS55/NO),ステップS53に戻る。
クラスタリング部46は,2回目のステップS53を実行する。図45の例では,1回目のステップS54においてクラスタリングされたクラスタリング用ログを対象とする未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号,通信回数である。そして,第13のクラスタ済みIPアドレスについては,このIPアドレスを含むクラスタリング用ログの総数は7個である。
図45の例では,送信時送信元ポート番号において出現頻度が最も高いポート番号は"161"(4/7),送信時送信先ポート番号において出現頻度が最も高いポート番号は"*****"(5/7)である。出現頻度が最も高い通信回数は"多"(6/7)である。
この場合,出現頻度が最も高い通信要素は,通信回数"多"(6/7)であるので,クラスタリング部46は,出現頻度が最も高いポート番号"多"(6/7)を含む通信要素項目である通信回数を選択し,メモリ402に記憶する。
クラスタリング部46は,2回目のステップS54を実行する。ここで,1回目のステップS54においてクラスタリングされたIPアドレスを含むクラスタリング用ログ(第13のクラスタ済みIPアドレスを含む通信ログ)を対象にして,2回目のステップS53で選択された通信回数に含まれる各通信回数は"多","中"である。通信回数"多"を図46のノードN16で示し,通信回数"中"を図46のノードN17で示す。
クラスタリング部46は,ノードN14の子ノードがノードN16,ノードN17であることを示す情報をメモリ402に記憶する。
図45において,通信回数に含まれる通信回数"多"を含むクラスタリング用ログに含まれるIPアドレスは,以下の6個のIPアドレスである。すなわち,図46の符号G15で示す一点鎖線で囲んだ"12.0.0.3","12.0.0.5","12.0.0.6","12.0.0.9","12.1.2.11","12.1.2.12"である。ここで,クラスタリングされた前記6個のIPアドレスが第14のクラスタ済みIPアドレスである。
クラスタリング部46は,ノードN16に属するIPアドレスが,前記6個のIPアドレス(符号G15)であることを示す情報をメモリ402に記憶する。
また,通信回数に含まれる通信回数"中"を含むクラスタリング用ログに含まれるIPアドレスは,図46の符号G16で示す一点鎖線で囲んだ"12.0.3.6"である。
クラスタリング部46は,ノードN17の子ノードが符号G16で示すノードであることを示す情報をメモリ402に記憶する。
ここで,既に選択された通信要素項目は,受信時送信元ポート番号,受信時送信先ポート番号,通信回数であるので,未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号の2つがある。従って,クラスタリング部46は,未選択の通信要素項目があると判定し(ステップS55/NO),ステップS53に戻る。
クラスタリング部46は,3回目のステップS53を実行する。図45の例では,2回目のステップS54においてクラスタリングされたクラスタリング用ログを対象とする未選択の通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号である。そして,第14のクラスタ済みIPアドレスについては,このIPアドレスを含むクラスタリング用ログの総数は6個である。
図45の例では,送信時送信元ポート番号において出現頻度が最も高いポート番号は"161"(4/6),送信時送信先ポート番号において出現頻度が最も高いポート番号は"*****"(4/6)である。この場合,出現頻度が最も高いポート番号("*****"(4/6),"161"(4/6))を含む通信要素項目は,送信時送信元ポート番号,送信時送信先ポート番号である。このように,出現頻度が最も高いポート番号が複数ある場合(図45の例では,送信時送信元ポート番号,送信時送信先ポート番号),クラスタリング部46は,ポート番号がマージされていない,すなわち,ポート番号が"*****"以外のポート番号を含む通信要素項目を選択する。前記の例の場合,クラスタリング部46は,送信時送信元ポート番号を選択し,メモリ402に記憶する。
クラスタリング部46は,3回目のステップS54を実行する。ここで,2回目のステップS54においてクラスタリングされたIPアドレスを含むクラスタリング用ログを対象にして,3回目のステップS53で選択された送信時送信元ポート番号に含まれる各ポート番号は"161","-"である。送信時送信元ポート番号に含まれるポート番号"161"を図46のノードN18で示し,送信時送信元ポート番号に含まれるポート番号"-"を図46のノードN19で示す。
クラスタリング部46は,ノードN16の子ノードがノードN18,N19であることを示す情報をメモリ402に記憶する。
図45において,送信時送信元ポート番号に含まれるポート番号"161"を含むクラスタリング用ログに含まれるIPアドレスは,以下の4個のIPアドレスである。すなわち,図46の符号G17で示す一点鎖線で囲んだ"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12"である。また,送信時送信元ポート番号に含まれるポート番号"-"を含むクラスタリング用ログに含まれるIPアドレスは,以下の2個のIPアドレスである。すなわち,図46の符号G18で示す一点鎖線で囲んだ"12.0.0.5","12.0.0.9",である。
クラスタリング部46は,ノードN18の子ノードが符号G17で示すノード,ノードN19の子ノードが符号G18で示すノードであることを示す情報をメモリ402に記憶する。
前記した3回目のステップS53の実行において,クラスタリング部46は,送信時送信元ポート番号,送信時送信先ポート番号の中から1つの送信時送信元ポート番号を選択した。そのため,未選択の通信要素項目ないとみなし(ステップS55/NO),クラスタリング部46は,クラスタリング処理を終了する。
以上,説明したクラスタリング処理により,図45の整形ログテーブルTf3に含まれるIPアドレスは,図46の符号G12,G14,G16,G17,G18で示すように,5つにクラスタリングされる。
図47は,図45の整形ログテーブルTf3に含まれるIPアドレスをクラスタリングした状態をテーブル形式で示した図の一例である。絞り込み結果テーブルTn2は,整形ログテーブルTf3の相手側IPアドレス欄の左側に項番欄を設け,さらに,受信時送信先ポート番号欄の右側に通信回数欄を設けたテーブルである。
図47においては,図45の整形ログテーブルTf3に記憶しているクラスタリング用ログを5つにクラスタリングした状態を示している。
例えば,項番1の行には,図46の符号G17で示す一点鎖線で囲んだIPアドレス"12.0.0.3","12.0.0.6","12.1.2.11","12.1.2.12"を含むクラスタリング用ログを記憶している。そして,項番5の行には,図46の符号G16で示す一点鎖線で囲んだIPアドレス"12.0.3.6"を含むクラスタリング用ログを記憶している。
図47の絞り込み結果テーブルTn2から明らかなように,クラスタリング部46は,同一のポート番号,通信回数を含むクラスタリング用を纏めている。例えば,クラスタリング部46は,同一の送信時送信元ポート番号"161",送信時送信先ポート番号"*****",受信時送信元ポート番号"*****",受信時送信先ポート番号"161",通信回数"多"を含むクラスタリング用ログを項番1に示すように,1つに纏めている。
なお,図34の通信ログデータベースDB1が,絞り込み結果テーブルTn2を記憶している状態を図34の符号Tnで示している。
クラスタリング部46は,図47の絞り込み結果テーブルTn2を通知部45に出力する。通知部45は,図47の絞り込み結果テーブルTn2を,表示制御部406と表示装置406a(図5参照)とを介して,管理者に表示する。
図48は,通信回数を類似度の基準として参照せずに,図44の整形ログテーブルTf2に含まれるIPアドレスをクラスタリングした状態をテーブル形式で示した図の一例である。絞り込み結果テーブルTn3は,整形ログテーブルTf3の相手側IPアドレス欄の左側に項番欄を設けたテーブルである。
図47の絞り込み結果テーブルTn2と,図48の絞り込み結果テーブルTn3とを比較し,相違点を説明する。すなわち,相違点は,図48の絞り込み結果テーブルTn3の項番1の行と相手側IPアドレス欄とが交わるセルに記憶されたIPアドレス"12.0.3.6"を含むクラスタリング用ログが,図47の項番5の行に記憶されている点である。
管理者は,図48の絞り込み結果テーブルTn3を見た場合,項番1における相手側IPアドレスが設定された5つの機器の設定ミスを確認する。しかし,一律に5つの機器の設定ミスを確認するのではなく,通信回数が多い通信ログを記録している機器(すなわち,頻繁に通信する機器)について優先的に設定ミスを確認することが好ましい。
図47の絞り込み結果テーブルTn2によれば,図48の例では1つの項番に纏められていた,IPアドレス"12.0.3.6"を含むクラスタリング用ログが,図47の項番5の行に記憶されている。そのため,管理者は,IPアドレス"12.0.3.6"が設定されている機器(通信回数が"中"の通信を実行する)については,確認順序の優先度を下げた上で,この機器について設定ミスを確認すればよい。そのため,通信回数が多い通信ログを記録している機器について優先的に設定ミスを確認できる。
[管理装置の第5の実施の形態]
第5の実施の形態における管理装置は,管理者が設定ミスの原因調査をより効率的に行うために,第4の実施の形態で説明したクラスタリング後のIPアドレスに対して構成情報を参照して再度のクラスタリングを行う。この構成情報は,管理装置4とネットワーNを介して接続する運用者管理サーバ群MC(図1)のCMDB14(図2)が記憶している。以下,前記した再度のクラスタリングを再クラスタリングと適宜記す。
クラスタリング部46は,第4の実施の形態で説明した区分け(クラスタリングとも呼ぶ)した設定ミス候補の通信ログ(設定ミスの通信ログとも呼ぶ)に含まれる通信の送信元と送信先との関係を示す情報の類似度に従って,区分けした設定ミスの通信ログを区分けする。
ここで,設定ミスの通信履歴に含まれる通信の送信元と送信先は,例えば,IPアドレスである。そして,通信の送信元と送信先との関係を示す情報は,例えば,CMDB14(図2)が記憶する前記した構成情報である。すなわち,設定ミスの通信履歴は,通信の送信元と送信先を含み,通信の送信元と送信先との関係を示す情報を含まない。
管理装置4は,このクラスタリングを行うことにより,例えば,共通のネットワーク接続構成を有する機器や,同じ設置場所にある機器に関連する設定ミス候補の通信ログを集約する。
(構成管理データベース)
図1で示したCMDB14は,構成管理データベース(CMDB: Configuration Management Database)であり,情報処理システムSYSの運用管理に関する構成情報を格納するデータベースである。
CMDB14は,情報処理システムSYSに含まれる機器(例えば,サーバ,スイッチ)に関する情報や,この機器が実行するソフトウェアに関する情報を有する構成要素 (CI(Configuration Item)とも呼ぶ)と,構成要素間の関係を示す関係要素情報(Relationshipとも呼ぶ)とを記憶する。
クラスタリング部46は,CMDB14が格納する構成要素,関係要素情報を利用すれば,第1の構成要素に関係する第2の構成要素を検索することができる。
図49は,構成要素と,関係要素情報と,構成要素間の関係を模式的に示した第1の図である。図49(A),図49(B)は,構成要素を模式的に示し,図49(C)は,関係要素情報を模式的に示し,図49(D)は,構成要素間の関係を模式的に示している。図49(D)では,識別子VServer005で識別される仮想サーバが,識別子Server001で識別される物理サーバで実行されることを示している。図49(D)において,仮想サーバが物理サーバで実行されることをDom0で示す矢印で示している。
図49(A)の構成要素C1のタグ<item id=“VServer005” type=“VServer”>において,"type="以下の“VServer”は,構成要素C1が仮想サーバであり,"item id"以下の“VServer005”は,この仮想サーバの識別子が"VServer005"であることを示している。
図49(B)の構成要素C2のタグ<item id=“Server001” type=“Server”>において,"type="以下の“Server”は,構成要素C2が物理サーバであり,"item id"以下の“Server001”は,この物理サーバの識別子が"Server001"であることを示している。
以下,タグ<name>とタグ</name>とで挟まれた文字列は,構成要素の名前を示す。タグ<cpu>とタグ</cpu>とで挟まれた文字列は,構成要素のCPUの動作クロック数を示す。タグ<memory>とタグ</memory>とで挟まれた文字列は,構成要素のメモリ容量を示す。タグ<ipAddress>と</ipAddress>とで挟まれた文字列は,構成要素に設定されたIPアドレスを示す。タグ<status>とタグ</status>とで挟まれた文字列は,構成要素の状態を示す。
図49(C)の関係要素情報R1のタグ<relationship id=“Rel405” type=“Dom0”>において,"type="以下の“Dom0”は,ソースとなる構成要素(仮想サーバ)が,ターゲットとなる構成要素(物理サーバ)で実行されることを示している。
以下,タグ<sourceItem>とタグ</sourceItem>との間で挟まれた文字列は,ソースとなる構成要素を識別する識別子を示している。タグ<targetItem>とタグ</targetItem>との間で挟まれた文字列は,ターゲットとなる構成要素を識別する識別子を示している。
クラスタリング部46は,構成要素C1,C2,関係要素情報R1を参照することにより,構成要素C1に関係する構成要素C2を検索することができる。さらに,クラスタリング部46は,構成要素C1と構成要素C2とが,図49(D)に示した関係にあることを決定できる。
図50は,構成要素と,関係要素情報と,構成要素間の関係を模式的に示した第2の図である。図50(A)は,構成要素を模式的に示し,図50(B)は,関係要素情報を模式的に示し,図50(C)は,構成要素間の関係を模式的に示している。図50(C)は,識別子Switch001で識別されるスイッチと,識別子Server001で識別される物理サーバとがネットワーク接続されていることを示している。図50(C)において,物理サーバとスイッチとがネットワーク接続していることをLinkToで示す矢印で示している。
なお,構成要素間のネットワーク接続は,物理サーバとスイッチとのネットワーク接続に限らない。例えば,スイッチ間や,物理サーバ間や,仮想サーバ間でネットワーク接続していてもよい。また,仮想サーバと物理サーバとがネットワーク接続していてもよい。
図50(A)の構成要素C3のタグ<item id=“Switch001” type=“Switch”>において,"type="以下の“Switch”は,構成要素C3がスイッチであり,"item id"以下の“Switch001”は,このスイッチの識別子が"Switch001"であることを示している。
以下,タグ<manufacture>とタグ</manufacture>とで挟まれた文字列は,構成要素の製造元を示す。タグ<model>とタグ</model>とで挟まれた文字列は,構成要素の型番を示す。タグ<ipAddress>と</ipAddress>とで挟まれた文字列は,構成要素に設定されたIPアドレスを示す。
図50(B)の関係要素情報R2のタグ<relationship id=“Rel001” type=“LinkTo”>において,"type="以下の“LinkTo”は,ソースとなる構成要素(スイッチ)と,ターゲットとなる構成要素(物理サーバ)とがネットワーク接続していることを示している。この物理サーバの構成要素は,図49(B)の構成要素C2である。
クラスタリング部46は,構成要素C2,C3,関係要素情報R2を参照することにより,構成要素C2に関係する構成要素C3を検索することができる。さらに,クラスタリング部46は,構成要素C2と構成要素C3とが,図50(C)に示した関係にあることを決定できる。
なお,図示はしないが,タグ<relationship id=“Re1002” type=“ManagedBy”>を含む関係要素情報は,ソースとなる構成要素が,ターゲットとなる構成要素に管理されているという情報を含む。他にも,構成要素の設置場所を示す情報を関係要素情報に含めてもよい。
(ネットワーク構成の具体例)
図51は,第4の実施の形態における図35で説明した送信元IPアドレス,送信先IPアドレスが設定された機器や仮想サーバのネットワーク構成を示す図である。このネットワーク構成は,例えば,図2の第1のブロックA20aにおけるネットワーク構成である。
図51におけるブロック内の"Server"は,このブロックが物理サーバであることを示し,"Server"の下の"X1,X2,X3,X4"(X1,X2,X3,X4は0〜255)は,この物理サーバに設定されたIPアドレスを示す。例えば,物理サーバSVR10において,この物理サーバにIPアドレス"12.0.0.1"が設定されていることを示している。
図51における物理サーバの第1のブロック内に設けられた第2のブロック内の"VM"は,第2のブロックが仮想サーバであることを示し,"VM"の下の"X1,X2,X3,X4"は,この仮想サーバに設定されたIPアドレスを示す。例えば,仮想サーバVM10において,この仮想サーバにIPアドレス"12.0.3.7"が設定されていることを示している。
図51におけるブロック内の"Switch"は,このブロックがスイッチであることを示し,"Switch"の下の"X1,X2,X3,X4"は,このスイッチに設定されたIPアドレスを示す。例えば,スイッチSW10において,このスイッチにIPアドレス"12.0.0.220"が設定されていることを示している。
図51におけるブロック間の実線は,このブロック間のネットワーク接続を模式的に示している。
CMDB14は,図51に示したスイッチ,物理サーバ,仮想サーバそれぞれに対する構成要素を記憶し,さらに,構成要素間の関係要素情報を記憶している。
(グルーピング)
クラスタリング部46は,第4の実施の形態で説明したクラスタリング後のIPアドレスに対して構成情報を参照してクラスタリングを行う前段階として,以下の処理を実行する。すなわち,クラスタリング部46は,対象サーバから相手サーバまでの関係が一致する複数の相手サーバの各々に設定されたIPアドレスを抽出し,抽出した複数のIPアドレスをグルーピングする。
図52は,前記したIPアドレスのグルーピングを説明するフロー図の一例である。
ステップS61:クラスタリング部46は,CMDB14が記憶する構成要素,関係要素情報を参照し,構成要素間の関係を抽出し,抽出した構成要素間の関係を参照し,対象サーバから相手サーバまでの関係を抽出し,メモリ402に記憶する。
ステップS62:クラスタリング部46は,対象サーバから相手サーバまでの関係が一致する複数の相手サーバの各々に設定されたIPアドレスを抽出し,抽出した複数のIPアドレスをグルーピングし,グルーピングしたIPアドレスをグループに区分けしてメモリ402に記憶する。
クラスタリング部46は,ステップS61,ステップS62までの処理を対象サーバ毎に実行する。
次に,図53,図54を参照し,図52のIPアドレスのグルーピングを説明する。図53は,対象サーバから相手サーバまでの関係を模式的に示した図である。
楕円は,構成要素(例えば,スイッチ,物理サーバ,仮想サーバ)を模式的に示す。楕円内のIPアドレス"X1,X2,X3,X4"は,構成要素に設定されたIPアドレスを示す。楕円間の直線は,楕円で示される構成要素間の関係を示す。そして,この直線上に記載された"Dom0","LinkTo","Managed by"は,各構成要素間の関係の内容を示している。"Dom0","LinkTo","Managed by"については,図49,図50で説明した。
図53では,対象サーバは,IPアドレス"12.0.3.7"が設定されたサーバを示す。また,相手サーバは,図40の整形ログテーブルTf1の相手側IPアドレス欄に記憶された相手側IPアドレスが設定されたサーバである。
図53では,符号RLS1〜符号RLS10で示す10個の関係で,IPアドレス"12.0.3.7"が設定された対象サーバと,図40の整形ログテーブルTf1の相手側IPアドレス欄に記憶された相手側IPアドレスが設定されたサーバとの関係を示している。
まず,関係RLS1について具体的に説明する。IPアドレス"12.0.3.7"が設定された対象サーバ(図51のVM10)が,IPアドレス"12.0.0.1"が設定された物理サーバ(図51のSVR10)で実行される関係("Dom0"参照)にある。そして,IPアドレス"12.0.0.1"が設定された物理サーバとIPアドレス"12.0.0.220"が設定されたスイッチとがネットワーク接続している関係("LinkTo"参照)にある。IPアドレス"12.0.0.220"が設定されたスイッチとIPアドレス"12.0.0.3"が設定された物理サーバとがネットワーク接続している関係("LinkTo"参照)にある。
関係RLS2〜関係RLS4(詳しくは,IPアドレス"12.0.3.7"が設定された対象サーバとIPアドレス"12.0.0.5","12.0.0.6","12.0.0.9"が設定された3つの物理サーバとの間の関係)は,RLS1と一致する関係(換言すれば,同じ関係)である。
次に,関係RLS5について具体的に説明する。IPアドレス"12.0.3.7"が設定された対象サーバ(図51のVM10)が,IPアドレス"12.0.0.1"が設定された物理サーバ(図51のSVR10)で実行される関係("Dom0"参照)にある。そして,IPアドレス"12.0.0.1"が設定された物理サーバとIPアドレス"12.1.2.11"が設定されたスイッチ(図51参照)とがネットワーク接続している関係("LinkTo"参照)にある。
関係RLS6,関係RLS7(詳しくは,IPアドレス"12.0.3.7"が設定された対象サーバとIPアドレス"12.1.2.12","12.1.2.61"が設定された2つのスイッチ(図51参照)との間の関係)は,関係RLS5と一致する関係である。
以下,関係RLS8〜関係RLS10については,以下に説明するグルーピングと直接関係しないので,その説明を省略する。
図53において,関係RLS1〜関係RLS10において,図面の一番左に示した楕円内のIPアドレスが設定されたサーバが対象サーバ(IPアドレス"12.0.3.7")で,図面の一番右に示した楕円内のIPアドレス(例えば,IPアドレス"12.0.0.3")が設定されたサーバが相手サーバである。
以上の図53で説明した構成要素間の関係に対応する構成要素および関係要素情報がCMDB14に記憶されている。クラスタリング部46は,この構成要素と関係要素情報とを参照して,対象サーバに関係する構成要素を辿って,対象サーバから相手サーバまでの関係を抽出する(ステップS61)。そして,クラスタリング部46は,抽出した構成要素間の関係をメモリ402に記憶する(ステップS61)。
図53の例では,クラスタリング部46は,抽出した構成要素間の関係が符号RLS1〜RLS10の関係にあることを示す情報をメモリ402に記憶する。
ここで,この対象サーバは,例えば,第4の実施の形態で説明した区分けした設定ミス候補の通信ログに含まれる通信の送信元IPアドレスが設定されたサーバである。そして,この相手サーバは,前記設定ミス候補の通信ログに含まれる通信の送信先IPアドレスが設定されたサーバである。
図54は,対象サーバから相手サーバまでの関係が一致する複数の相手サーバの各々に設定されたIPアドレスをグルーピングする処理を模式的に説明する図である。図54においては,図53において,関係が一致している構成要素を1つに纏めている。
クラスタリング部46は,ステップS61でメモリ402に記憶された構成要素間の関係を参照し,対象サーバから相手サーバまでの関係が一致する複数の相手サーバの各々に設定されたIPアドレスを抽出する(ステップS62)。
図54の例では,IPアドレス"12.0.3.7"が設定された対象サーバから相手サーバまでの関係が一致する複数の相手サーバの各々に設定されたIPアドレスは,符号G21,符号G22で示す一点鎖線で囲んだIPアドレスである。
ここで,符号G21で示す一点鎖線で囲んだIPアドレスは,4つのIPアドレス"12.0.0.3","12.0.0.5","12.0.0.6","12.0.0.9"である。そして,符号G22で示す一点鎖線で囲んだIPアドレスは,3つのIPアドレス"12.1.2.11","12.1.2.12","12.1.2.61"である。
クラスタリング部46は,メモリ402に記憶された構成要素間の関係を参照し,対象サーバから相手サーバまでの関係が一致する複数の相手サーバの各々に設定された,前記4つのIPアドレスと前記3つのIPアドレスとを抽出する。
クラスタリング部46は,抽出した複数のIPアドレスをグルーピングし,グルーピングしたIPアドレスをグループに区分けしてメモリ402に記憶する。具体的には, クラスタリング部46は,前記4つのIPアドレスと共に,前記4つのIPアドレスが同一グループに属することを示すフラグをメモリ402に記憶する。そして,クラスタリング部46は,前記3つのIPアドレスと共に,前記3つのIPアドレスが同一グループに属することを示すフラグをメモリ402に記憶する。
(再クラスタリング)
図55は,再クラスタリングを説明するフロー図の一例である。
ステップS71:クラスタリング部46は,クラスタリング済みのIPアドレスの中から,グループ化したIPアドレスを特定する。
ステップS72:クラスタリング部46は,グループ化したIPアドレス単位で,特定したIPアドレスが属する2つ以上のノードの親ノードが同じか判定する。同じ場合(ステップS72/YES),ステップS73に移る。
ステップS73:クラスタリング部46は,再クラスタリングの前段階で作成した絞り込み結果テーブルに記憶したクラスタリング用ログにおいて,同じ親ノードに属するIPアドレスを含むクラスタリング用ログを集約する。
クラスタリング部46は,ステップS72,S73の処理を,グループ毎に実行する。
クラスタリング部46は,ステップS71〜ステップS73までの処理を対象サーバ毎に実行する。
(再クラスタリングの具体例)
図55,図56を参照して,再クラスタリングの具体例を説明する。図56,図57は,再クラスタリングの具体例を模式的に説明する第1,第2の図の一例である。図56は,図42と同じく,ポート番号,IPアドレスの関係を木構造で示す図である。図56のノード構成は,図42のノード構成と同じである。ここで,既に,クラスタリングの第1の具体例で説明したようにIPアドレスのクラスタリングが既に終了しているとする。
すなわち,管理装置の第4の実施の形態で説明したように,クラスタリング部46は,根ノードN1の子ノードがノードN2〜ノードN4であること,ノードN2の子ノードがノードN5〜ノード7であること,ノードN5の子ノードがノードN8,ノードN9であることを示すノード情報を記憶している。
さらに,クラスタリング部46は,ノードN3の子ノードが符号G2で示すノードであること,ノードN4の子ノードが符号G3で示すノードであること,ノードN8の子ノードが符号G7で示すノードであることを示すノード情報を記憶している。クラスタリング部46は,ノードN9の子ノードが符号G8で示すノードであること,ノードN6の子ノードが符号G5で示すノードであること,ノードN7の子ノードが符号G6で示すノードであることを示すノード情報を記憶している。
また,図54で説明したIPアドレスのグルーピングが終了している。すなわち,メモリ402は,図54の符号G21で示す一点鎖線で囲んだ4つのIPアドレス"12.0.0.3","12.0.0.5","12.0.0.6","12.0.0.9"が同一グループに属することを示すフラグを記憶している。そして,メモリ402は,図54の符号G22で示す一点鎖線で囲んだ3つのIPアドレス"12.1.2.11","12.1.2.12","12.1.2.61"が同一グループに属することを示すフラグを記憶している。
クラスタリング部46は,メモリ402が記憶するクラスタリング済みのIPアドレスの中から,図54で説明したグループ化したIPアドレスを特定する(ステップS71)。図56の例の場合,符号G21,G22で示すIPアドレスを特定する。ここで,符号G21で示す4個のIPアドレスのグループを第1グループ,符号G22で示す2個のIPアドレスのグループを第2グループと適宜記す。
クラスタリング部46は,グループ化したIPアドレス単位で,特定したIPアドレスが属する2つ以上のノードの親ノードが同じか判定する(ステップS72)。第1のグループにおいて,特定された4個のIPアドレスが属する2つのノードN8,N9の親ノードは同じ親ノードN5である。従って,クラスタリング部46は,第1のグループにおいて,ステップS72でYESと判定する。
ここで,ノードN5に属するIPアドレスは,符号G21および符号G22(符号G4)で示す6つのIPアドレスである。
クラスタリング部46は,同じ親ノードN5に属する6つのIPアドレスを纏め,再クラスタリングの前段階で作成した図43の絞り込み結果テーブルTn1に記憶したクラスタリング用ログにおいて,同じ親ノードN5に属する6つのIPアドレスを含むクラスタリング用ログを集約する(ステップS73)。
一方,第2のグループにおいて,特定された3個のIPアドレスにおいて,2個のIPアドレス"12.1.2.11","12.1.2.12"が属する1つのノードN8の親ノードはノードN5であり,1個のIPアドレス"12.1.2.61"が属する1つのノードN6の親ノードはノードN2である。すなわち,3個のIPアドレスが属する3つのノードN8,N9,N6の親ノードは異なる親ノードである。従って,クラスタリング部46は,第2のグループについてはステップS72でNOと判定し,ステップS73の処理は行わない。
図57は,図56の木構造で示すノードにおいて,同じ親ノードN5に属する6つのIPアドレスを集約した状態を模式的に示す図である。
図57において,図56に示すノードN8,ノードN9に属するIPアドレスが,ノードN5に属するように纏められている。
図58は,図43の絞り込み結果テーブルTn1に示したクラスタリング用ログにおいて,同じ親ノードN5に属する6つのIPアドレスを含むクラスタリング用ログを集約した状態を模式的に示す図である。
クラスタリング部46は,図58の絞り込み結果テーブルTn4の項番1に示したように,6つのIPアドレス"12.0.0.3","12.0.0.5","12.0.0.6","12.0.0.9","12.1.2.11","12.1.2.12"を含むクラスタリング用ログを1つ(1行)に集約する(ステップS73)。すなわち,クラスタリング部46は,図43の絞り込み結果テーブルTn1において,項番1,項番2の行に記憶されたクラスタリング用ログを1つの行(図58の項番1参照)に纏めている。
そして,クラスタリング部46は,送信時送信元ポート番号,送信時送信先ポート番号,受信時送信元ポート番号,受信時送信先ポート番号のポート番号をマージする。クラスタリング部46は,このマージにおいて,図43の絞り込み結果テーブルTn1における送信時送信元ポート番号欄,送信時送信先ポート番号欄,受信時送信元ポート番号欄,受信時送信先ポート番号欄の各欄において異なるポート番号が記憶されている場合には,以下の処理を実行する。すなわち,クラスタリング部46は,異なるポート番号が記憶されている欄において,異なるポート番号を1つの項番の行に記憶し,異なるポート番号の間に"or"を記憶する。
例えば,図43の絞り込み結果テーブルTn1において,項番1の行と送信時送信元ポート番号欄とが交わるセルには"161"が記憶され,項番2の行と送信時送信元ポート番号欄とが交わるセルには"-"が記憶されている。従って,クラスタリング部46は,図58の絞り込み結果テーブルTn4において,項番1の行と送信時送信元ポート番号欄とが交わるセルにおいて,"161 or -"を記憶する。
一方,クラスタリング部46は,このポート番号のマージにおいて,図43の絞り込み結果テーブルTn1における送信時送信元ポート番号欄,送信時送信先ポート番号欄,受信時送信元ポート番号欄,受信時送信先ポート番号欄の各欄において同じポート番号が記憶されている場合には,この同じポート番号を記憶する(ポート番号のマージを行わない)。
例えば,図43の絞り込み結果テーブルTn1において,項番1の行と受信時送信先ポート番号欄とが交わるセルには"161"が記憶され,項番2の行と受信時送信先ポート番号欄とが交わるセルには"161"が記憶されている。従って,クラスタリング部46は,図58の絞り込み結果テーブルTn4において,項番1の行と受信時送信先ポート番号欄とが交わるセルにおいて,"161"を記憶する。
以上説明したように,クラスタリング部46は,既にクラスタリングした設定ミス候補の通信ログに含まれる通信の送信元と送信先との関係を示す情報(図53,図54で説明した構成要素間の関係を示す情報)の類似度に従って,既にクラスタリングした設定ミスの通信ログを再クラスタリングする。すなわち,クラスタリング部46は,送信元と送信先との関係が一致しているIPアドレスを含むクラスタリング用ログを1つに纏めている。
図58の絞り込み結果テーブルTn4では,項番1の行において,6個の相手側IPアドレスを含むクラスタリング用ログを纏めている。第4の実施の形態におけるクラスタリングの第1の具体例で説明したように,管理者は,例えば"12.0.0.3"が設定されている機器において161番ポートを利用するアプリケーションの設定が忘れられている可能性があると判断できる。
そして,管理者は,他の機器,すなわちIPアドレス"12.0.0.5","12.0.0.6","12.0.0.9","12.1.2.11","12.1.2.12"がそれぞれ設定されている5個の機器においても同様に,161番ポートを利用するアプリケーションの設定が忘れられている可能性があると判断できる。
この機器の数は,第4の実施の形態におけるクラスタリングの第1の具体例で,図43の絞り込み結果テーブルTn1を参照して説明した例示に比べて2台分多い。そのため,管理装置4は,同一原因と思われる設定ミスが発生している可能性が高い機器をより多く管理者に表示できる。その結果,管理者が設定ミスの原因調査をより効率的に行うことができる。
図34の通信ログデータベースDB1が,絞り込み結果テーブルTn4を記憶している状態を図34の符号Tnで示している。
なお,クラスタリング部46は,あるグループ(以下,グループGXと略記)において,特定したIPアドレスが属する2つ以上のノードの親ノードが同じと判定(ステップS72/YES)しても,特定したIPアドレスを含むクラスタリング用ログの内容が通信内容を特徴付けていない場合,クラスタリング用ログの集約(ステップS73)を実行しない。
具体的には,グループGXにおいて,特定したIPアドレスから根ノードN1までの全ノードにおけるポート番号が"*****"または"-"の場合,クラスタリング部46は,前記したステップS72でYESと判定しても,グループGXについては,ステップS73の処理を実行しない。
図59は,あるグループにおいて,クラスタリング用ログの集約が実行されない場合を模式的に示した図の一例である。
符号GXに示すIPアドレスから根ノードN1までの全てのノードN21〜N24においては,ポート番号は"*****"または"-"である。"*****"または"-"のポート番号は,どのようなポート番号か不明である。
符号GXに示すIPアドレスを含むクラスタリング用ログについては,ポート番号の内容が不明であり,サービスの内容を特定できないので,クラスタリング用ログを集約しても,集約後のクラスタリング用ログから設定誤りを見つけることは困難である。そのため,前記したクラスタリング用ログの集約を実行しない。
なお,対象サーバから相手サーバまでの関係が1つだけではなく2つ以上の関係が検出されることがある。このような場合,例えば,ネットワーク接続構成を優先するなどして,2つ以上の関係の中から,他の関係と一致する関係を検出することが好ましい。そのため,対象サーバから相手サーバまでの関係において,対象サーバから相手サーバが最短の関係,換言すれば,対象サーバの構成要素と相手サーバの構成要素との間における構成要素が最小の関係になる必要はない。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
第1の装置群と第2の装置群とが接続されたシステムにおける管理装置であって,
前記第1の装置群の装置と,前記第2の装置群の装置とを対応付けた対応情報を記憶する記憶装置と,
前記第1の装置群の第1の通信履歴と,前記第2の装置群の第2の通信履歴とを取得し,前記対応情報を参照し,前記第1の通信履歴の通信の送信元および送信先を特定する第1の特定情報と前記第2の通信履歴の通信の送信元および送信先を特定する第2の特定情報とを比較し,比較結果に基づいて,前記第2の装置群の装置に設定された前記第2の特定情報の設定誤りを検出する制御部と,
を有することを特徴とする管理装置。
(付記2)
付記1において,
前記制御部は,
複数の前記第1の通信履歴に含まれる前記第1の特定情報と,複数の前記第2の通信履歴に含まれる前記第2の特定情報とを比較し,比較結果に基づいて,前記複数の前記第1の通信履歴の中から,前記複数の前記第2の通信履歴に含まれる第2の特定情報と一致しない通信履歴を設定誤りの通信履歴として検出し,
前記第2の装置群の装置における,前記設定誤りの通信履歴に関連する前記特定情報の設定誤りを検出する
ことを特徴とする管理装置。
(付記3)
付記1において,
前記特定情報は,送信元および送信先のIP(インターネットプロトコル)アドレスと,送信元および送信先のポート番号とを含み,
前記制御部は、前記第1の通信履歴の送信元および送信先のIPアドレスとポート番号と,前記第2の通信履歴の送信元および送信先のIPアドレスとポート番号とを比較する
ことを特徴とする管理装置。
(付記4)
付記3において,
前記対応情報は,第1の装置群の各装置に設定された各IPアドレスと,前記各装置と同機能の機能を有する,第2の装置群の各装置に設定された各IPアドレスとを含み,
前記制御部は,
前記第1の通信履歴の送信元および送信先のIPアドレスを,前記対応情報に基づき,当該送信元および送信先のIPアドレスに対応する第2の装置群の装置に設定されたIPアドレスに変換した第1の通信履歴を作成し,
前記変換した複数の前記第1の通信履歴の中から,前記複数の前記第2の通信履歴に含まれる送信元および送信先IPアドレスが一致しない通信履歴,または,前記複数の前記第2の通信履歴に含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信履歴を第1の設定誤りの通信履歴として検出し,さらに,
前記複数の前記第2の通信履歴の中から,前記変換した複数の前記第1の通信履歴に含まれる送信元および送信先IPアドレスが一致しない通信履歴,または,前記変換した複数の前記第1の通信履歴に含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信履歴を第2の設定誤りの通信履歴として検出する
ことを特徴とする管理装置。
(付記5)
付記3において,
前記対応情報は,第1の装置群の各装置に設定された各IPアドレスと,前記各装置と同機能の機能を有する,第2の装置群の各装置に設定された各IPアドレスとを含み,
前記制御部は,
前記第2の通信履歴の送信元および送信先のIPアドレスを,前記対応情報に基づき,当該送信元および送信先のIPアドレスに対応する第1の装置群の装置に設定されたIPアドレスに変換した第2の通信履歴を作成し,
前記複数の前記第1の通信履歴の中から,前記変換した複数の前記第2の通信履歴に含まれる送信元および送信先IPアドレスが一致しない通信履歴,または,前記変換した複数の前記第2の通信履歴に含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信履歴を第1の設定誤りの通信履歴として検出し,さらに,
前記変換した複数の前記第2の通信履歴の中から,前記複数の前記第1の通信履歴に含まれる送信元および送信先IPアドレスが一致しない通信履歴,または,前記複数の前記第1の通信履歴に含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信履歴を第2の設定誤りの通信履歴として検出する
ことを特徴とする管理装置。
(付記6)
付記4において,
前記制御部は,前記第1の設定誤りの通信履歴および前記第2の設定誤りの通信履歴の中から,送信元IPアドレスおよび送信元ポート番号が一致する通信履歴を第3の設定誤りの通信履歴として検出し,または,送信先IPアドレスおよび送信先ポート番号が一致する通信履歴を第4の設定誤りの通信履歴として検出し,さらに,前記第2の装置群の装置における,前記第3および第4の設定誤りの通信履歴に関連する送信元および送信先IPアドレスの設定誤りを検出し,検出した設定誤りを通知する
ことを特徴とする管理装置。
(付記7)
付記6において,
前記制御部は,前記第1の設定誤りの通信履歴の中から,前記第3,第4の設定誤りの通信履歴以外の第5の設定誤りの通信履歴を検出し,前記第2の装置群の装置における,前記第5の設定誤りの通信履歴に関連する送信元IPアドレスの設定誤りを検出し,検出した設定誤りを通知する
ことを特徴とする管理装置。
(付記8)
付記3において,
前記制御部は,
2つの前記第1の通信履歴に含まれる送信元および送信先IPアドレスが一致し,さらに,前記2つの前記第1の通信履歴に含まれる送信元ポート番号または送信先ポート番号が一致する場合,前記2つの通信履歴を統合して1つの前記第1の通信履歴として前記記憶装置に記憶し,前記統合した前記第1の通信履歴から前記特定情報を取得し,
2つの前記第2の通信履歴に含まれる送信元および送信先IPアドレスが一致し,さらに,前記2つの前記第2の通信履歴に含まれる送信元ポート番号または送信先ポート番号が一致する場合,前記2つの通信履歴を統合して1つの前記第2の通信履歴として前記記憶装置に記憶し,前記統合した前記第2の通信履歴から前記特定情報を取得する
ことを特徴とする管理装置。
(付記9)
付記1において,
前記特定情報は,送信元および送信先のIP(インターネットプロトコル)アドレスと,送信元および送信先のポート番号とを含み,
前記対応情報は,複数の第1の装置群の装置に設定されたIPアドレスと,前記装置と同機能の機能を有する,第2の装置群の装置に設定されたIPアドレスとを含み,
前記制御部は,
前記複数の前記第1の装置群の第1の通信履歴に,前記複数の第1の装置群における当該第1の通信履歴の出現頻度を示す確度値を含め,
前記複数の前記第1の装置群の第1の通信履歴の送信元および送信先のIPアドレスを,前記対応情報に基づき,当該送信元および送信先のIPアドレスに対応する第2の装置群の装置に設定されたIPアドレスに変換する
ことを特徴とする管理装置。
(付記10)
付記9において,
前記制御部は,
前記複数の前記第1の通信履歴の中から,前記複数の前記第2の通信履歴に含まれる送信元および送信先IPアドレスが一致しない通信履歴,または,前記複数の前記第2の通信履歴に含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信履歴を設定誤りの通信履歴として検出し,
前記複数の前記第2の通信履歴の中から,前記複数の前記第1の通信履歴に含まれる送信元および送信先IPアドレスが一致しない通信履歴,または,前記複数の前記第1の通信履歴に含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信履歴を前記設定誤りの通信履歴として検出し,
前記第2の装置群の装置における,前記設定誤りの通信履歴に関連する前記特定情報の設定誤りを検出する
ことを特徴とする管理装置。
(付記11)
付記1において,
前記制御部は,前記比較結果を参照し,設定誤りの特定情報を含む設定誤りの通信履歴を検出し,検出した前記設定誤りの通信履歴に含まれる前記特定情報の類似度に従って,検出した前記設定誤りの通信履歴を区分けすることを特徴とする管理装置。
(付記12)
付記11において,
前記制御部は,区分けした前記設定誤りの通信履歴に含まれる通信の送信元と送信先との関係を示す情報の類似度に従って,区分けした前記設定誤りの通信履歴を区分けすることを特徴とする管理装置。
(付記13)
第1の装置群と第2の装置群とが接続されたシステムにおける管理装置で実行される管理方法であって,
前記管理装置は,
前記第1の装置群の第1の通信履歴と,前記第2の装置群の第2の通信履歴とを取得し,
前記第1の装置群の装置と前記第2の装置群の装置とを対応付けた対応情報を参照し,前記第1の通信履歴の通信の送信元および送信先を特定する第1の特定情報と前記第2の通信履歴の通信の送信元および送信先を特定する第2の特定情報とを比較し,比較結果に基づいて,前記第2の装置群の装置に設定された前記第2の特定情報の設定誤りを検出する
ことを特徴とする管理方法。
(付記14)
付記13において,
前記特定情報の設定誤りの検出において,
前記複数の前記第1の通信履歴の中から,前記複数の前記第2の通信履歴に含まれる第2の特定情報と一致しない通信履歴を設定誤りの通信履歴として検出し,
前記第2の装置群の装置における,前記設定誤りの通信履歴に関連する前記特定情報の設定誤りを検出する
ことを特徴とする管理方法。
(付記15)
付記13において,
前記比較結果を参照し,
設定誤りの特定情報を含む設定誤りの通信履歴を検出し,検出した前記設定誤りの通信履歴に含まれる前記特定情報の類似度に従って,検出した前記設定誤りの通信履歴を区分けする
ことを特徴とする管理方法。
(付記16)
付記15において,
区分けした前記設定誤りの通信履歴に含まれる通信の送信元と送信先との関係を示す情報の類似度に従って,区分けした前記設定誤りの通信履歴を区分けする
ことを特徴とする管理方法。
(付記17)
第1の装置群と第2の装置群とが接続されたシステムにおける管理装置で実行されるプログラムであって,
前記第1の装置群の第1の通信履歴と,前記第2の装置群の第2の通信履歴とを取得し,
前記第1の装置群の装置と前記第2の装置群の装置とを対応付けた対応情報を参照し,前記第1の通信履歴の通信の送信元および送信先を特定する第1の特定情報と前記第2の通信履歴の通信の送信元および送信先を特定する第2の特定情報とを比較し,比較結果に基づいて,前記第2の装置群の装置に設定された前記第2の特定情報の設定誤りを検出する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記18)
付記17において,
前記特定情報の設定誤りの検出において,
前記複数の前記第1の通信履歴の中から,前記複数の前記第2の通信履歴に含まれる第2の特定情報と一致しない通信履歴を設定誤りの通信履歴として検出し,
前記第2の装置群の装置における,前記設定誤りの通信履歴に関連する前記特定情報の設定誤りを検出する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記19)
付記18において,
前記比較結果を参照し,
設定誤りの特定情報を含む設定誤りの通信履歴を検出し,検出した前記設定誤りの通信履歴に含まれる前記特定情報の類似度に従って,検出した前記設定誤りの通信履歴を区分けする
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記20)
付記19において,
区分けした前記設定誤りの通信履歴に含まれる通信の送信元と送信先との関係を示す情報の類似度に従って,区分けした前記設定誤りの通信履歴を区分けする
処理をコンピュータに実行させる
ことを特徴とするプログラム。