[情報処理システム]
図1は,本実施の形態における情報処理システムSYSを説明するハードウェアブロック図の一例である。なお,以下の説明において,同一の機能を有する要素については,同一の符号を付して,前記要素の説明を適宜省略する。この実施の形態では,情報処理システムSYSは,クラウドシステムである。情報処理システムSYSは,ネットワークNに接続された,ルータRCと,ファイヤーウォールFWと,運用者管理サーバ群MCと,リージョン管理サーバ群RMと,第1のブロックA20aと,第2のブロックB20bと,管理装置(検索装置)4とを有する。ネットワークNは,例えばLAN (Local Area Network)である。なお,ブロックは,データセンタとも呼ばれる。以下,管理装置(検索装置)4を,管理装置4と略記する。
情報処理システム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は,通信回数を記憶する。
(ハードウェアの増設,動作検証)
図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の構成とを同一又はほぼ同一にすることで,既存の部分システムの管理で培った経験を,増設対象の部分システムの管理において活用するためである。この活用により,管理者は,増設対象の部分システムを管理する負担が軽減する。
管理者は,構築中の第2のブロックB20bにおけるサーバ(すなわち,増設対象の部分システムにおけるサーバ)に送信元IPアドレスを設定したり,さらに,このサーバ上で動作する特定処理用ソフトに,送信先ポート番号,送信元ポート番号,送信先IPアドレスを予め設定する。
管理者が,ハードウェアを増設し,増設したハードウェアや,このハードウェアが実行するソフトウェアに各種設定を行う場合,通信関連情報の設定をミスすることがある。
例えば,前記したように,管理者は,部分システムを増設する際に,管理者が,既存の部分システムのハードウェアやソフトウェアに設定している各種設定情報を増設対象の部分システムで流用する。この各種設定情報とは,前記した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が実行する通信ログの比較,設定ミスの検出,通知について詳細に説明する。
[管理装置の第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メモリなどの可搬型記録媒体である。なお,図19で説明するプログラムをこの記録媒体407aに記録してもよい。
(管理装置のソフトウェアモジュールのブロック図)
図6は,図5の管理装置4のソフトウェアモジュールのブロック図である。なお,管理装置4において,ハードウェア要素である,記憶装置403,通信装置404を点線で図示している。
管理装置4は,第1の装置群と第2の装置群とがネットワークに接続された情報処理システムSYS(図1参照)における通信の送信元および送信先を特定する特定情報の設定誤りを検出する装置の一例である。ここで,特定情報は,送信元および送信先のIPアドレスと,送信元および送信先のポート番号とを含む。
前記した特定情報の設定誤りを検出し,通知するために,管理装置4は,通信ログ取得部41と,第1の通信ログ比較部42と,対応付け生成部43と,通信ログ整形部44と,第2の通信ログ比較部45と,ミス検出部46と,通知部47とを有する。
通信ログ取得部41は,動作検証済みの第1の装置群(例えば,第1のブロックA20a)内のブロック管理サーバ群21における装置(例えば,サーバ)間で実行された通信の送信元および送信先を特定する特定情報を含む第1の通信ログを取得する。さらに,通信ログ取得部41は,動作検証対象の第2の装置群(例えば,第2のブロックB20b)内のブロック管理サーバ群23におけるサーバ間で実行された通信の送信元および送信先を特定する特定情報を含む第2の通信ログを取得する。なお,図4で説明したように,第2の通信ログは,ネットワーク通信が正常に実行されたこと(通信状態"OK")またはネットワーク通信が正常に実行されていないこと("応答無し")を示す通信状態情報を含む。
第1の通信ログ比較部42は,第1の通信ログと第2の通信ログとを比較し,比較結果に基づき,同機能のサーバである,第1の装置群におけるサーバと第2の装置群におけるサーバとを検索する。この検索は,確定とも呼ばれる。以下,この検索を確定と適宜記す。
ここで,第1,第2の通信ログは,前記した通信の送信元のサーバに設定された送信元IPアドレスと,前記した通信の送信先のサーバに設定された送信先IPアドレスおよび送信先ポート番号とを含む。
第1の通信ログ比較部42は,前記した比較において,第1の通信ログの送信先ポート番号と第2の通信ログの送信先ポート番号とを比較し,第1の通信ログの送信先ポート番号と第2の通信ログの送信先ポート番号とが一致するか判定する。
そして,第1の通信ログ比較部42は,前記した検索において,一致する送信先ポート番号を含む第1の通信ログの送信元IPアドレス,送信先IPアドレスと,一致する送信先ポート番号を含む第2の通信ログの送信元IPアドレス,送信先IPアドレスとに基づき,同機能のサーバを検索する。
対応付け生成部43は,同機能の,第1の装置群におけるサーバに設定されたIPアドレスと第2の装置群におけるサーバに設定されたIPアドレスとを対応付けて記憶装置403のサーバ対応データベースDB2に記憶する。
通信ログ整形部44は,通信ログ取得部41が取得した第1,第2の通信ログを,通信ログの記憶量を削減するために,整形して記憶する。第2の通信ログ比較部45は,例えばサーバ対応テーブルTR2(図21参照)を参照し,第1の通信ログの第1の特定情報と,第1の通信ログに対応する,第2の通信ログの第2の特定情報とを比較する。
ミス検出部46は,前記した第1の特定情報と第2の特定情報との比較結果に基づき,第2の装置群の装置(例えば,サーバ)に設定された特定情報の設定誤り(設定ミスとも呼ぶ)を検出する。通知部47は,ミス検出部46が検出した設定ミスを表示制御部406と表示装置406a(図5参照)とを介して,管理者に通知する。
通信ログ取得部41,第1の通信ログ比較部42,対応付け生成部43,通信ログ整形部44,第2の通信ログ比較部45,ミス検出部46,通知部47は,いわゆるプログラムである。これらのプログラムは,例えば,記憶装置403に記憶されている。図5のCPU401は,起動時に,これらのプログラムを記憶装置403から読み出して,メモリ402に展開することにより,これらのプログラムをソフトウェアモジュールとして機能させる。
(同機能サーバ)
第2の通信ログ比較部45は,動作検証済みの第1の装置群において存在する第1の通信ログと,動作検証対象の第2の装置群において存在する第2の通信ログとを比較して,第1,第2の通信ログが同内容か判定する。第2の通信ログ比較部45は,この比較の前段階において,第1の通信ログに含まれるIPアドレスと第2の通信ログに含まれるIPアドレスとを比較して,両IPアドレスが一致するか判定する。
この第1,第2の通信ログが同内容か判定する場合,動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定されたIPアドレスが一対一に対応すれば,前記判定を高精度に実行できる。前記動作検証済みの第1の装置群の装置に設定されたIPアドレスと前記動作検証対象の第2の装置群の装置に設定されたIPアドレスとが一対一に対応するとは,例えば,これら両IPアドレスが一致することである。
しかし前記したように,管理者は,カスタマイズした各種設定情報(例えば,IPアドレス)などを,動作検証対象の第2の装置群の装置などに設定する。すなわち,前記動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能な装置(例えば,サーバ)である,前記動作検証対象の第2の装置群の装置に設定されたIPアドレスとが一致しないことがある。
そのため,動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定されたIPアドレスが一対一に対応するように,第2の通信ログ比較部45は,以下のIPアドレスの変換処理を実行する。
さて,前記したIPアドレスの変換処理を実行するためには,同機能の,動作検証済みの第1の装置群のサーバと動作検証対象の第2の装置群のサーバとを確定(検索とも呼ぶ)する。すなわち,管理装置4は,同機能のサーバを確定する必要がある。なお,同機能のサーバとは,同等の役割を持つサーバとも呼ばれる。
以下,同機能のサーバを確定する処理について説明する。ここで,同機能のサーバを確定する処理を行う前提として,以下の3つの仮定を想定する。第1の仮定は,動作検証済みの第1のブロックA20aが有するサーバの数と,動作検証対象の第2のブロックB20bが有するサーバの数とは一致しなくても良い。なお,前記一致しない場合には,同機能のサーバとして確定されないサーバが,第1のブロックA20a,第2のブロックB20bの何れか1または両者に残る。
第2の仮定は,第1のブロックA20aおよび第2のブロックB20bには,同機能のサーバが必ず存在すること。ただし,第1のブロックA20a,第2のブロックB20bの何れか1または両者に,同機能サーバが複数存在してもよい。例えば,ある機能を有するサーバが第1のブロックA20aにNa台(Naは2以上の整数)存在し,この機能と同機能を有するサーバが第2のブロックB20bにNb台(NbはNaと異なる整数)存在してもよい。
第3の仮定は,動作検証済みの第1のブロックA20aが有するサーバに設定された特定情報の設定誤り(設定ミスとも呼ぶ)は存在しないが(設定ミスの修正済み),動作検証対象の第2のブロックB20bが有するサーバに設定された特定情報の設定ミスは存在する。
ところで,通信ログに含まれるポート番号は,サーバなどの情報処理装置が通信を行う際に,通信先のサーバ上で動作するアプリケーション(プログラム,サービス,コンポーネントとも呼ぶ)を特定するための番号である。また,通信先のサーバ上で動作するアプリケーション毎に異なるポート番号が割り振られている。
ここで,1つのアプリケーションが,1つの機能を実行する場合を想定する。この場合,1つのアプリケーションに割り当てられた1つのポート番号により,前記1つのアプリケーションを動作させているサーバの機能を識別することが可能である。換言すれば,ポート番号により,サーバが実行する機能を特定することができる。例えば,1つのポート番号"53"が割り当てられたアプリケーションを動作させているサーバは,DNS機能を実行するDNSサーバであることがわかる。
そこで,動作検証済みの第1のブロックA20aが有する第1のサーバ上で動作するアプリケーションに割り当てられたポート番号と,動作検証対象の第2のブロックB20bが有する第2のサーバ上で動作するアプリケーションに割り当てられたポート番号とが一致する場合,以下の確定処理を実行する。すなわち, 第1の通信ログ比較部42は,これら第1,第2のサーバで動作するサーバを同機能のサーバとして確定する。
(同機能サーバを確定する処理の流れ)
図7は,同機能サーバを確定する処理の流れを説明するフロー図である。
ステップS1:通信ログ取得部41は,動作検証済みの第1の装置群の通信ログや,動作検証対象の第2の装置群の通信ログを取得する。なお,ステップS1については,図8で説明する。
ステップS2:第1の通信ログ比較部42は,待ち受けポート番号のリストアップを行う。なお,ステップS2については,図9で説明する。
ステップS3:第1の通信ログ比較部42は,特定ポート番号に基づき同機能サーバを確定する。ステップS3の処理は,単独使用ポートルールの適用による同機能サーバの確定処理とも呼ばれる。なお,ステップS3については,図10で説明する。
ステップS4:第1の通信ログ比較部42は,送信先IPアドレスと,送信元IPアドレスと,ポート番号とに基づき,同機能サーバを確定する。ステップS4の処理は,送信元対応付け済みルールの適用による同機能サーバの確定処理とも呼ばれる。なお,ステップS4については,図11で説明する。
ステップS5:第1の通信ログ比較部42は,未確定のサーバに対して,特定ポート番号に基づき同機能のサーバを確定する。ステップS5の処理は,残り単独使用ポートルールの適用による同機能サーバの確定処理とも呼ばれる。なお,ステップS5については,図12,図13で説明する。
ステップS6:第1の通信ログ比較部42は,ステップS4,ステップS5で同機能サーバを確定したか判定し,同機能サーバを確定した場合(ステップS6/YES),再び,ステップS4に戻る。一方,第1の通信ログ比較部42は,同機能サーバを確定しない場合(ステップS6/NO),ステップS7に移る。
ステップS7:第1の通信ログ比較部42は,同機能サーバ類推モードがオンか判定する。同機能サーバ類推モードとは,ステップS3〜ステップS5の処理を実行しても,同機能のサーバを確定できない場合,未確定のサーバの待ち受けポート番号を利用して,同機能のサーバを類推するモードである。同機能サーバ類推モードがオンの場合とは,記憶装置403が記憶する同機能サーバ類推フラグがオンの場合である。管理者は,操作装置405aを操作して,記憶装置403が記憶する同機能サーバ類推フラグにオン(例えば,"1")またはオフ(例えば,"0")を設定する。
同機能サーバ類推モードがオフの場合(ステップS7/NO),処理を終了する。同機能サーバ類推モードがオンの場合(ステップS7/YES),ステップS8に移る。
ステップS8:第1の通信ログ比較部42は,同機能サーバを類推する。なお,ステップS8については,図14〜図17で説明する。
以下,図8〜図17を参照して,図7の各ステップの内容を詳細に説明する。
(通信ログの取得)
通信ログ取得部41は,動作検証済みの第1の装置群の通信ログや,動作検証対象の第2の装置群の通信ログを取得し,第1の通信ログ比較部42と通信ログ整形部44に出力する(ステップS1)。
具体的には,通信ログ取得部41は,動作検証済みの第1のブロックA20aの通信ログや,動作検証対象の第2のブロックB20bの通信ログを取得する。通信ログ取得部41は,取得した通信ログを通信ログ整形部44と第1の通信ログ比較部42に出力する。通信ログ取得部41は,第2のブロックB20bの動作検証の前に,動作検証済みの第1のブロックA20aに含まれるサーバの記憶装置が記憶する通信ログ群(図4の符号LG参照)から未取得の通信ログを取得する。また,通信ログ取得部41は,動作検証時に,動作検証対象の第2のブロックB20bに含まれるサーバの記憶装置が記憶する通信ログ群(図4の符号LG参照)から未取得の通信ログを取得する。
第1の通信ログ比較部42は,通信ログ取得部41から入力された第1のブロックA20aの通信ログや,第2のブロックB20bの通信ログを図5の通信ログデータベースDB1に記憶する。
図8は,図5の通信ログデータベースDB1を説明する第1のテーブルである。通信ログテーブルT1は,管理装置4が第1のブロックA20aから取得した通信ログを記憶するテーブルの一例である。図5の通信ログデータベースDB1が,通信ログテーブルT1を記憶している状態を図5の符号Toで示している。
通信ログテーブルT1は,送信元IPアドレス欄と,送信元ポート番号欄と,送信先IPアドレス欄と,送信先ポート番号欄と,通信回数欄とを有する。通信ログテーブルT1において,1行毎に1つの通信ログを記憶している。
前記したように,通信ログは,送信元IPアドレスと,送信元ポート番号と,送信先IPアドレスと,送信先ポート番号と,通信回数とを含む。
第1の通信ログ比較部42は,例えば,第1のブロックA20aにおけるサーバ間で実行された通信の通信ログである,送信元IPアドレス"192.168.1.26"と,送信元ポート番号"55337"と,送信先IPアドレス"192.168.1.37"と,送信先ポート番号"25"と,通信回数"1"とを含む通信ログを,通信ログテーブルT1に記憶する(符号P1参照)。
第1の通信ログ比較部42は,通信ログ取得部41から入力された第2のブロックB20bの通信ログについても同様に,図8に示したテーブル形式で記憶装置403に記憶する。なお,第1の通信ログ比較部42は,第1のブロックA20aの通信ログと,第2のブロックB20bの通信ログを別のテーブルに記憶する。
(待ち受けポート番号のリストアップ)
第1の通信ログ比較部42は,待ち受けポート番号のリストアップを行う(ステップS2)。待ち受けポート番号について説明する。図4で説明したように,第1のサーバSVRが実行する特定処理用ソフト2021が,通信用ソフト2022を利用して,第2のサーバ(図示しない)上で動作するソフトウェアと通信する場合を想定する。ここで,サーバSVRのIPアドレスは"x1.y1.z1.w1"で,特定処理用ソフト2021が使用するポート番号は"p1"である。そして,第2のサーバに設定されたIPアドレスは"x2.y2.z2.w2"で,第2のサーバ上で動作するソフトウェアが使用するポート番号は"p2"である。
通信用ソフト2022は,送信元IPアドレスを"x1.y1.z1.w1",送信元ポート番号を"p1",送信先IPアドレスを"x2.y2.z2.w2",送信先ポート番号を"p2"とする通信パケット(以下,通信パケットPと適宜記す)を作成する。そして,通信用ソフト2022は,通信パケットPに送信用データを含めて,第2のサーバ宛に送信する。
前記した通信における待ち受けポート番号は,通信パケットの送信先である第2のサーバ上で動作するソフトウェアが使用するポート番号"p2"である。
第1の通信ログ比較部42は,第1のブロックA20aと第2のブロックB20bとから取得した全ての通信ログについて待ち受けポート番号を抽出し,抽出した待ち受けポート番号を含む通信ログに含まれる送信元IPアドレスと送信先IPアドレスを抽出する。そして,第1の通信ログ比較部42は,抽出した待ち受けポート番号に対応付けて抽出した送信元IPアドレスと送信先IPアドレスを記憶する。
第1の通信ログ比較部42が実行する,抽出した待ち受けポート番号に対応付けて抽出した送信元IPアドレスと送信先IPアドレスとを記憶する処理が,待ち受けポート番号のリストアップである。
第1の通信ログ比較部42は,例えば,図8の通信ログテーブルT1に記憶された全ての通信ログについて待ち受けポート番号のリストアップを実行する。図8の符号P1に示した通信ログの場合,待ち受けポート番号は,送信先ポート番号欄に記憶された送信先ポート番号の"25"である。
第1の通信ログ比較部42は,通信ログP1から送信先ポート番号"25"を待ち受けポート番号として抽出し,通信ログP1に含まれる送信元IPアドレス"192.168.1.26"と送信先IPアドレス"192.168.1.37"とを抽出する。そして,第1の通信ログ比較部42は,待ち受けポート番号"25"と対応付けて,送信元IPアドレス"192.168.1.26"と送信先IPアドレス"192.168.1.37"とを,例えば,テーブル形式で記憶する。
この待ち受けポート番号により,この待ち受けポート番号が設定されているサーバの機能を特定することができる。
以下,抽出された待ち受けポート番号と,この待ち受けポート番号に対応する,抽出された送信元IPアドレスと送信先IPアドレスとを含むログを待ち受けポート番号ログと適宜記す。
図9は,待ち受けポート番号がリストアップされた状態を模式的に示すテーブルの一例である。ポート番号テーブルT2は,送信元IPアドレス欄と,送信先IPアドレス欄と,待ち受けポート番号欄とを有する。符号P11は,第1の通信ログ比較部42が図8の通信ログP1から抽出した待ち受けポート番号ログを示す。
第1の通信ログ比較部42は,前記したように抽出した待ち受けポート番号"25"を待ち受けポート番号欄に記憶し,待ち受けポート番号"25"と対応付けて,送信元IPアドレス"192.168.1.26"と送信先IPアドレス"192.168.1.37"とを,それぞれ,送信元IPアドレス欄と送信先IPアドレス欄とに記憶する。
以後,第1の通信ログ比較部42は,第1のブロックA20aから全ての通信ログについて待ち受けポート番号のリストアップを実行し,例えば図9のポート番号テーブルT2に記憶する。
ここで,第1の通信ログ比較部42は,複数の待ち受けポート番号ログの中で,同一の送信元IPアドレスおよび送信先IPアドレスを有する待ち受けポート番号ログについては,ポート番号テーブルの同一行に記憶する。
例えば,第1の待ち受けポート番号ログに,送信元IPアドレス"192.168.1.37"と送信先IPアドレス"192.168.1.31"と待ち受けポート番号"25"とが含まれる。そして,第2の待ち受けポート番号ログに,送信元IPアドレス"192.168.1.37"と送信先IPアドレス"192.168.1.31"と待ち受けポート番号"2952"とが含まれる。この場合,第1の通信ログ比較部42は,図9の符号P12に示すように,同一行に,第1,第2の待ち受けポート番号ログを記憶する。具体的には,第1の通信ログ比較部42は,符号P12で示す行と送信元IPアドレス欄とが交わるセルに,送信元IPアドレス"192.168.1.37"を記憶する。そして,第1の通信ログ比較部42は,符号P12で示す行と送信先IPアドレス欄とが交わるセルに,送信先IPアドレス"192.168.1.31"を記憶する。そして,第1の通信ログ比較部42は,符号P12で示す行と待ち受けポート番号欄とが交わるセルに,ポート番号"25","2952"を記憶する。
第1の通信ログ比較部42は,第1のブロックA20aの通信ログから待ち受けポート番号ログを生成し,例えば,図9に示したテーブル形式で,通信ログデータベースDB1に記憶する。また,第1の通信ログ比較部42は,第2のブロックB20bの通信ログから待ち受けポート番号ログを生成し,例えば,図9に示したテーブル形式で,通信ログデータベースDB1に記憶する。
図10は,第1のブロックA20a,第2のブロックB20bの通信ログから生成された待ち受けポート番号ログを記憶するテーブルの一例である。
ポート番号テーブルT2aは,第1のブロックA20aの通信ログから生成された待ち受けポート番号ログを記憶するテーブルの一例である。ポート番号テーブルT2bは,第2のブロックB20bの通信ログから生成された待ち受けポート番号ログを記憶するテーブルの一例である。図5の通信ログデータベースDB1が,ポート番号テーブルT2a,ポート番号テーブルT2bを記憶している状態を図5の符号Tpで示している。以後,第1の通信ログ比較部42は,ポート番号テーブルT2a,ポート番号テーブルT2bを参照して,同機能のサーバを確定する。
(特定ポート番号に基づく同機能サーバの確定)
第1の通信ログ比較部42は,特定ポート番号に基づき同機能サーバを確定する(ステップS3)。
具体的には,第1の通信ログ比較部42は,前記した判定において,1以上の第1の通信ログの送信先ポート番号および1以上の第2の通信ログの送信先ポート番号の中で,一致する送信先ポート番号が1つあるか判定する。なお,第1の通信ログは,例えば,第1のブロックA20aの通信ログである。第2の通信ログは,例えば,第2のブロックB20bの通信ログである。
第1の通信ログ比較部42は,前記一致する送信先ポート番号が1つあると判定した場合,以下の処理を行う。すなわち,第1の通信ログ比較部42は,一致する送信先ポート番号を含む第1の通信ログの送信元IPアドレスが設定されたサーバと,一致する送信先ポート番号を含む第2の通信ログの送信元IPアドレスが設定されたサーバとを同機能のサーバとして確定(検索)する。そして,第1の通信ログ比較部42は,一致する送信先ポート番号を含む第1の通信ログの送信先IPアドレスが設定されたサーバと,一致する送信先ポート番号を含む第2の通信ログの送信先IPアドレスが設定されたサーバとを同機能のサーバとして確定する。
例えば,第1の通信ログ比較部42は,ある特定のポート番号を利用する通信が,第1のブロックA20aに1単位,第2のブロックB20bに1単位しかない場合(以下,第1の場合と記す),以下の確定を行う。すなわち,第1の通信ログ比較部42は,第1の場合,第1のブロックA20aにおける,この1単位の通信の通信ログに含まれる送信元IPアドレスが設定されているサーバと,第2のブロックB20bにおける,この1単位の通信の通信ログに含まれる送信元IPアドレスが設定されているサーバとを同機能のサーバと確定する。そして,第1の通信ログ比較部42は,第1の場合,第1のブロックA20aにおける,この1単位の通信の通信ログに含まれる送信先IPアドレスが設定されているサーバと,第2のブロックB20bにおける,この1単位の通信の通信ログに含まれる送信先IPアドレスが設定されているサーバとを同機能のサーバと確定する。
第1の場合とは,換言すれば,図10のポート番号テーブルT2aの待ち受けポート番号欄および図10のポート番号テーブルT2bの待ち受けポート番号欄に同じ待ち受けポート番号が1つしか記憶されていない場合である。図10の例では,点線まるで囲んだ待ち受けポート番号"2952"が,第1の場合における前記した1つの同じ待ち受けポート番号である。
第1の通信ログ比較部42は,第1の場合,ポート番号テーブルT2aにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信元IPアドレスが設定されたサーバと,ポート番号テーブルT2bにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信元IPアドレスが設定されたサーバとを同機能のサーバと確定する。
前記例の場合,ポート番号テーブルT2aにおける,ポート番号"2952"を含む待ち受けポート番号ログの送信元IPアドレス"192.168.1.37"が設定されたサーバと,ポート番号テーブルT2bにおける,ポート番号"2952"を含む待ち受けポート番号ログの送信元IPアドレス"192.168.5.37"が設定されたサーバとを同機能のサーバと確定する(符号AR1参照)。
さらに,第1の通信ログ比較部42は,第1の場合,ポート番号テーブルT2aにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信先IPアドレスが設定されたサーバと,ポート番号テーブルT2bにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信先IPアドレスが設定されたサーバとを同機能のサーバと確定する。
前記例の場合,ポート番号テーブルT2aにおける,ポート番号"2952"を含む待ち受けポート番号ログの送信先IPアドレス"192.168.1.31"が設定されたサーバと,ポート番号テーブルT2bにおける,ポート番号"2952"を含む待ち受けポート番号ログの送信先IPアドレス"192.168.5.31"が設定されたサーバとを同機能のサーバと確定する(符号AR2参照)。
(送信先IPアドレス,送信元IPアドレス,ポート番号に基づく同機能サーバの確定)
第1の通信ログ比較部42は,送信先IPアドレスと,送信元IPアドレスと,ポート番号とに基づき,同機能サーバを確定する(ステップS4)。なお,具体例については,図11で説明する。
ステップS4の実行において,第1の通信ログ比較部42は,複数の第1の通信ログを参照し,同機能のサーバとして確定(検索)された第1の装置群におけるサーバが通信する通信先の複数のサーバの中で,同機能のサーバとして確定されていない第1のサーバが1つあるか判定する。第1の装置群は,例えば,第1のブロックA20aである。
そして,第1の通信ログ比較部42は,複数の第2の通信ログを参照し,同機能のサーバとして確定された第2の装置群におけるサーバが通信する通信先の複数のサーバの中で,同機能のサーバとして確定されていない第2のサーバが1つあるか判定する。第2の装置群は,例えば,第2のブロックB20bである。
第1の通信ログ比較部42は,第1のサーバが1つあると判定し,第2のサーバが1つあると判定した場合,さらに,以下の判定を行う。すなわち,第1の通信ログ比較部42は,1つの第1のサーバに設定されたIPアドレスを送信先IPアドレスとして含む第1の通信ログの送信先ポート番号(待ち受けポート番号)と,1つの第2のサーバに設定されたIPアドレスを送信先IPアドレスとして含む第2の通信ログの送信先ポート番号とが一致するか判定する。
そして,第1の通信ログ比較部42は,一致すると判定した場合,1つの第1のサーバと,1つの第2のサーバとを同機能のサーバとして確定する。
例えば,第1の通信ログ比較部42は,以下の第1〜第3の条件を満たす場合(第2の場合と記す),以下の確定を行う。まず,第1〜第3の条件を説明する。
第1の条件とは,第1のブロックA20aが有するサーバと,第2のブロックB20bが有するサーバとが同機能のサーバとして確定済みであること。
第2の条件とは,前記確定済みのサーバが通信パケットを送信している複数の送信先(通信先)サーバの中で,同機能のサーバとして確定されていないサーバが1台しか存在しないこと。以下,同機能のサーバとして確定されていないサーバを未確定サーバと適宜記す。
第3の条件とは,第1のブロックA20aにおいて前記した1台の未確定サーバ上で動作するソフトウェアが使用するポート番号(すなわち,待ち受けポート番号)と,第2のブロックB20bにおいて前記した1台の未確定サーバ上で動作するソフトウェアが使用する待ち受けポート番号とが同じであること。
第1の通信ログ比較部42は,この第1〜第3の条件を満たす場合,第1のブロックA20aにおける前記1台の未確定サーバと,第2のブロックB20bにおける前記1台の未確定サーバとを同機能のサーバとして確定する。
図11は,送信先IPアドレス,送信元IPアドレス,ポート番号に基づく同機能サーバの確定を具体的に説明する図の一例である。図11において実線の矢印は,通信パケットの送信を模式的に示している。図10,図11を参照して,第1〜第3の条件について説明する。
図10の符号P21aからわかるように,IPアドレス"192.168.1.37"(図11の符号Ad1参照)が設定されたサーバ(以下,サーバA1と記す)は,IPアドレス"192.168.1.31"(図11の符号Ad2参照)が設定されたサーバ(以下,サーバA2と記す)に通信パケットを送信している。そして,図10の符号P22aからわかるように,サーバA1は,IPアドレス"192.168.1.35"(図11の符号Ad3参照)が設定されたサーバ(以下,サーバA3と記す)に通信パケットを送信している。
図10の符号P21bからわかるように,IPアドレス"192.168.5.37"(図11の符号Bd1参照)が設定されたサーバ(以下,サーバB1と記す)は,IPアドレス"192.168.5.31"(図11の符号Bd2参照)が設定されたサーバ(以下,サーバB2と記す)に通信パケットを送信している。そして,図10の符号P22bからわかるように,サーバB1は,IPアドレス"192.168.5.35"(図11の符号Bd3参照)が設定されたサーバ(以下,サーバB3と記す)に通信パケットを送信している。
なお,サーバA1は,図10のポート番号テーブルT2aから明らかなように,サーバA2,サーバA3以外のサーバに通信パケットを送信していない。サーバB1は,図10のポート番号テーブルT2bから明らかなように,サーバB2,サーバB3以外のサーバに通信パケットを送信していない。
図10,図11の例において,第1の条件〜第3の条件を検討する。まず,第1の条件について検討する。図10で説明したように,特定のサーバA1とサーバB1とは同機能のサーバとして確定済みである。従って,第1の条件を満たす。
次に,第2の条件について検討する。ここで,サーバA2とサーバB2とは同機能のサーバとして確定済みである。そして,サーバA1が通信パケットを送信している2台のサーバA2,サーバA3の中で未確定サーバは1台のサーバA3しか存在しない。さらに,サーバB1が通信パケットを送信している2台のサーバB2,サーバB3の中で未確定サーバは1台のサーバB3しか存在しない。従って,第2の条件を満たす。
次に,第3の条件について検討する。図10の符号P22aからわかるように,1台のサーバA3(IPアドレス"192.168.1.35"が設定)上で動作するソフトウェアが使用する待ち受けポート番号は"9004"である。そして,図10の符号P22bからわかるように,1台のサーバB3(IPアドレス"192.168.5.35"が設定)で動作するソフトウェアが使用する待ち受けポート番号は前記した同じ待ち受けポート番号"9004"である。従って,第3の条件を満たす。
以上より,第1の通信ログ比較部42は,図11に示すように,第1のブロックA20aにおける1台の未確定サーバA3(符号Ad3参照)と,第2のブロックB20bにおける1台の未確定サーバB3(符号Bd3参照)とを同機能のサーバとして確定する(符号AR3参照)。
(未確定のサーバに対する,特定ポート番号に基づく同機能のサーバの確定)
第1の通信ログ比較部42は,未確定のサーバに対する,特定ポート番号に基づき同機能のサーバを確定する(ステップS5)。
図12は,未確定のサーバに対する,特定ポート番号に基づく同機能のサーバの確定を説明する第1のテーブルの一例である。
図12のポート番号テーブルT2aに記憶されているIPアドレスおよびポート番号と,図10のポート番号テーブルT2aに記憶されているIPアドレスおよびポート番号とは同じである。そして,図12のポート番号テーブルT2bに記憶されているIPアドレスおよびポート番号と,図10のポート番号テーブルT2bに記憶されているIPアドレスおよびポート番号とは同じである。
以下の説明のため,図12において,同機能のサーバとして既に確定されている確定済み送信元サーバに設定されているIPアドレスや,確定済み送信先サーバに設定されているIPアドレスに点線の取消線を付す。また,確定済み送信元サーバと確定済み送信先サーバとが実行している通信において,確定済み送信先サーバ上で動作するソフトウェアが使用するポート番号(以下,確定済みポート番号と適宜記す)に点線の取消線を付す。
第1の通信ログ比較部42は,確定済み送信元サーバと確定済み送信先サーバとが実行している通信を除いた,ある特定のポート番号を利用する通信(以下,通信Xと記す)が第1のブロックA20aに1単位,第2のブロックB20bに1単位しかない場合(以下,第3の場合と記す),以下の確定を行う。
第1のブロックA20aにおける通信Xの通信ログは,複数の第1の通信ログの中から,第1のブロックA20aにおいて同機能のサーバとして確定された2つのサーバにそれぞれ設定されたIPアドレスを送信元IPアドレスおよび送信先IPアドレスとして含む第1の通信ログを除いた第1の除外通信ログである。
第2のブロックB20bにおける通信Xの通信ログは,複数の第2の通信ログの中から,第2のブロックB20bにおいて同機能のサーバとして確定された2つのサーバにそれぞれ設定されたIPアドレスを送信元IPアドレスおよび送信先IPアドレスとして含む第2の通信ログを除いた第2の除外通信ログである。
第1の通信ログ比較部42は,第1,第2の除外通信ログを抽出する。
ここで,未確定送信元サーバに設定されたIPアドレスと未確定送信先サーバに設定されたIPアドレスとを含む待ち受けポート番号ログを完全未確定待ち受けポート番号ログと記す。図12のポート番号テーブルT2aの例では,完全未確定待ち受けポート番号ログは,符号P23a〜符号P25aで示す待ち受けポート番号ログである。図12のポート番号テーブルT2bの例では,完全未確定待ち受けポート番号ログは,符号P23b〜符号P25bで示す待ち受けポート番号ログである。
第3の場合とは,換言すれば,図12のポート番号テーブルT2aおよび図12のポート番号テーブルT2bにおいて,完全未確定待ち受けポート番号ログを対象として,図10のポート番号テーブルT2aの待ち受けポート番号欄および図10のポート番号テーブルT2bの待ち受けポート番号欄に同じ待ち受けポート番号が1つしか記憶されていない場合である。
図12の点線まるで囲んだ待ち受けポート番号"9004"は,図12のポート番号テーブルT2aおよび図12のポート番号テーブルT2bにおいて,完全未確定待ち受けポート番号ログを対象として,待ち受けポート番号欄に同じ待ち受けポート番号として1つだけ記憶されている。
第1の通信ログ比較部42は,第3の場合,以下の2つのサーバ同士を同機能のサーバと確定する。換言すれば,第1の通信ログ比較部42は,1以上の第1の除外通信ログの送信先ポート番号(待ち受けポート番号)および1以上の第2の除外通信ログの送信先ポート番号の中で,一致する送信先ポート番号が1つあると判定した場合(第3の場合),以下の確定処理を行う。
第1の通信ログ比較部42は,一致する送信先ポート番号を含む第1の通信ログの送信元IPアドレスが設定されたサーバと,一致する送信先ポート番号を含む第2の通信ログの送信元IPアドレスが設定されたサーバとを同機能のサーバとして確定する。さらに,第1の通信ログ比較部42は,一致する送信先ポート番号を含む第1の通信ログの送信先IPアドレスが設定されたサーバと,一致する送信先ポート番号を含む第2の通信ログの送信先IPアドレスが設定されたサーバとを同機能のサーバとして確定する。
例えば,第1の通信ログ比較部42は,以下の2つのサーバ同士を同機能のサーバと確定する。
第1のサーバは,ポート番号テーブルT2aにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信元IPアドレスが設定されたサーバである。第2のサーバは,ポート番号テーブルT2bにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信元IPアドレスが設定されたサーバである。
前記例の場合,第1の通信ログ比較部42は,ポート番号テーブルT2aにおける,ポート番号"9004"を含む待ち受けポート番号ログの送信元IPアドレス"12.3.0.142"が設定されたサーバと,ポート番号テーブルT2bにおける,ポート番号"9004"を含む待ち受けポート番号ログの送信元IPアドレス"12.5.0.142"が設定されたサーバとを同機能のサーバと確定する(符号AR4参照)。
さらに,第1の通信ログ比較部42は,第3の場合,以下の2つのサーバ同士を同機能のサーバとして確定する。第1のサーバは,ポート番号テーブルT2aにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信先IPアドレスが設定されたサーバである。第2のサーバは,ポート番号テーブルT2bにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの送信先IPアドレスが設定されたサーバである。
前記例の場合,第1の通信ログ比較部42は,ポート番号テーブルT2aにおける,ポート番号"9004"を含む待ち受けポート番号ログの送信先IPアドレス"12.0.3.7"が設定されたサーバと,ポート番号テーブルT2bにおける,ポート番号"9004"を含む待ち受けポート番号ログの送信先IPアドレス"12.2.3.7"が設定されたサーバとを同機能のサーバと確定する(符号AR5参照)。
図13は,未確定のサーバに対する,特定ポート番号に基づく同機能のサーバの確定を説明する第2のテーブルの一例である。
図13のポート番号テーブルT2aに記憶されているIPアドレスおよびポート番号と,図10のポート番号テーブルT2aに記憶されているIPアドレスおよびポート番号とは同じである。そして,図13のポート番号テーブルT2bに記憶されているIPアドレスおよびポート番号と,図10のポート番号テーブルT2bに記憶されているIPアドレスおよびポート番号とは同じである。
以下の説明のため,図13において,同機能のサーバとして既に確定されている確定済み送信元サーバに設定されているIPアドレスや,確定済み送信先サーバに設定されているIPアドレスに点線の取消線を付す。また,確定済みポート番号に点線の取消線を付す。
第1の通信ログ比較部42は,第4の場合,以下の確定を行う。第4の場合とは,確定済み送信元サーバと未確定送信先サーバとが実行している通信や,未確定送信元サーバと確定済み送信先サーバとが実行している通信を除いた,ある特定のポート番号を利用する通信(以下,通信Yと記す)が第1のブロックA20aに1単位,第2のブロックB20bに1単位しかない場合である。
第1のブロックA20aにおける通信Yの通信ログは,複数の第1の通信ログの中から,第1のブロックA20aにおいて同機能のサーバとして確定されたサーバに設定されたIPアドレスを送信元IPアドレス(または送信先IPアドレス)として含む第1の通信ログを除いた第1の除外通信ログである。
第2のブロックB20bにおける通信Yの通信ログは,複数の第2の通信ログの中から,第2のブロックB20bにおいて同機能のサーバとして確定されたサーバに設定されたIPアドレスを送信元IPアドレス(または送信先IPアドレス)として含む第2の通信ログを除いた第2の除外通信ログである。
第1の通信ログ比較部42は,第1,第2の除外通信ログを抽出する。
ここで,未確定送信元サーバに設定されたIPアドレスと確定済み送信先サーバに設定されたIPアドレスを含む待ち受けポート番号ログを一部未確定待ち受けポート番号ログと記す。同じく,確定済み送信元サーバに設定されたIPアドレスと未確定送信先サーバに設定されたIPアドレスを含む待ち受けポート番号ログを一部未確定待ち受けポート番号ログと記す。図13のポート番号テーブルT2aの例では,一部未確定待ち受けポート番号ログは,符号P26aで示す待ち受けポート番号ログである。図13のポート番号テーブルT2bの例では,一部未確定待ち受けポート番号ログは,符号P26bで示す待ち受けポート番号ログである。
第4の場合とは,換言すれば,図13のポート番号テーブルT2aおよび図13のポート番号テーブルT2bにおいて,一部未確定待ち受けポート番号ログを対象として,図10のポート番号テーブルT2aの待ち受けポート番号欄および図10のポート番号テーブルT2bの待ち受けポート番号欄に同じ待ち受けポート番号が1つしか記憶されていない場合である。
図13の点線まるで囲んだ待ち受けポート番号"25"は,図13のポート番号テーブルT2aおよび図13のポート番号テーブルT2bにおいて,一部未確定待ち受けポート番号ログを対象として,図13のポート番号テーブルT2aの待ち受けポート番号欄および図13のポート番号テーブルT2bの待ち受けポート番号欄に同じ待ち受けポート番号として1つだけ記憶されている。
第1の通信ログ比較部42は,第4の場合,以下の2つのサーバ同士を同機能のサーバと確定する。換言すれば,第1の通信ログ比較部42は,1以上の第1の除外通信ログの送信先ポート番号および1以上の第2の除外通信ログの送信先ポート番号の中で,一致する送信先ポート番号が1つあると判定した場合(第4の場合),以下の確定処理を行う。
第1の通信ログ比較部42は,一致する送信先ポート番号を含む第1の通信ログの送信先IPアドレス(または送信元IPアドレス)が設定されたサーバと,一致する送信先ポート番号を含む第2の通信ログの送信先IPアドレス(または送信元IPアドレス)が設定されたサーバとを同機能のサーバとして確定する。
例えば,第1の通信ログ比較部42は,以下の2つのサーバ同士を同機能のサーバと確定する。
第1のサーバは,ポート番号テーブルT2aにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの未確定サーバである。第2のサーバは,ポート番号テーブルT2bにおける前記した同じ待ち受けポート番号を含む待ち受けポート番号ログの未確定サーバである。なお,未確定サーバは,図13において,取消線が付されていないIPアドレスが設定されたサーバである。
前記例の場合,第1の通信ログ比較部42は,ポート番号テーブルT2aにおける,ポート番号"25"を含む待ち受けポート番号ログの取消線が付されていないIPアドレス"192.168.1.26"が設定されたサーバと,ポート番号テーブルT2bにおける,ポート番号"25"を含む待ち受けポート番号ログの取消線が付されていないIPアドレス"192.168.5.26"が設定されたサーバとを同機能のサーバと確定する(符号AR6参照)。
第1の通信ログ比較部42は,上記で説明したステップS4,ステップS5で同機能サーバを確定したか判定する(ステップS6)。第1の通信ログ比較部42は,同機能サーバを確定した場合(ステップS6/YES),再び,ステップS4に戻る。
同機能サーバを確定した後に,ステップS4,ステップS5における確定処理を再度実行すると,前回の確定処理により確定できなかった同機能サーバを確定できる場合がある。そこで,同機能サーバの確定処理を再度行うため,ステップS4に戻る。
一方,第1の通信ログ比較部42は,同機能サーバを確定しない場合(ステップS6/NO),ステップS7に移る。
第1の通信ログ比較部42は,同機能サーバ類推モードがオンか判定する(ステップS7)。第1の通信ログ比較部42は,同機能サーバ類推モードがオンの場合(ステップS7/YES),同機能サーバを類推する(ステップS8)。
(同機能サーバの類推)
図14〜図17を参照して,図7のステップS8における同機能サーバの類推方法について説明する。以下の説明において,同機能サーバの類推方法を簡明に説明するため,図10,図12,図13で説明した待ち受けポート番号ログとは異なるログを示す。
図14は,同機能サーバの類推方法を説明するための,第1のブロックA20a,第2のブロックB20bで実行された通信を模式的に説明する図の一例である。図14において実線の矢印は,通信パケットの送信を模式的に示している。
第1のブロックA20aにおけるIPアドレス" X1.Y1.Z1.W1"(図14の符号Ad11参照)が設定されたサーバ(以下,サーバA5と記す)は,以下の3つのサーバに通信パケットを送信している。
第1のサーバは, IPアドレス" X12.Y12.Z12.W12"(図14の符号Ad12参照)が設定されたサーバ(以下,サーバA6と記す)である。第2のサーバは,IPアドレス" X13.Y13.Z13.W13"(図14の符号Ad13参照)が設定されたサーバ(以下,サーバA7と記す)である。第3のサーバは,IPアドレス" X14.Y14.Z14.W14"(図14の符号Ad14参照)が設定されたサーバ(以下,サーバA8と記す)である。なお,この3つのサーバは,第1のブロックA20aが有するサーバである。
第2のブロックB20bにおけるIPアドレス" X1'.Y1'.Z1'.W1'"(図14の符号Bd11参照)が設定されたサーバ(以下,サーバB5と記す)は,以下の3つのサーバに通信パケットを送信している。
第1のサーバは, IPアドレス" X12'.Y12'.Z12'.W12'"(図14の符号Bd12参照)が設定されたサーバ(以下,サーバB6と記す)である。第2のサーバは,IPアドレス" X13'.Y13'.Z13'.W13'"(図14の符号Bd13参照)が設定されたサーバ(以下,サーバB7と記す)である。第3のサーバは,IPアドレス" X14'.Y14'.Z14'.W14'"(図14の符号Bd14参照)が設定されたサーバ(以下,サーバB8と記す)である。なお,この3つのサーバは,動作検証対象の20b内のサーバである。なお,図14の符号Gについては後記する。
図15は,図14で説明した通信内容を含む,第1のブロックA20a,第2のブロックB20bの通信ログに基づきリストアップされた待ち受けポート番号ログを記憶するテーブルの例である。
ポート番号テーブルT3aは,図14で説明した通信内容を含む,第1のブロックA20aの通信ログに基づきリストアップされた待ち受けポート番号ログを記憶するテーブルである。ポート番号テーブルT3bは,図14で説明した通信内容を含む,第2のブロックB20bの通信ログに基づきリストアップされた待ち受けポート番号ログを記憶するテーブルである。
第1の通信ログ比較部42は,ポート番号テーブルT3a,ポート番号テーブルT3bのそれぞれに記憶された複数の待ち受けポート番号ログに対して,同機能サーバの確定処理(ステップS3〜ステップS6)を実行する。
ここで,特定のポート番号"50000"を利用する通信が,第1のブロックA20aに1単位,第2のブロックB20bに1単位しかない。そこで,第1の通信ログ比較部42は,ステップS3の実行により,サーバA5とサーバB5とを同機能のサーバとして確定する。さらに,第1の通信ログ比較部42は,ステップS3の実行により,サーバA6とサーバB6とを同機能のサーバとして確定する。図15において,同機能のサーバとして確定されたサーバに設定されているIPアドレスに点線の取消線を付す。
なお,サーバA7,A8,B7,B8については,ステップS4,S5の処理を実行しても同機能サーバとしては確定されないので,未確定サーバである。
以下,同機能サーバの類推処理について説明する。具体的には,第1の通信ログ比較部42は,複数の第1の通信ログを参照し,同機能のサーバとして確定(検索)された第1の装置群におけるサーバが通信する通信先の複数のサーバの中で,同機能のサーバとして確定されていない複数の第1のサーバがあるか判定する。
そして,第1の通信ログ比較部42は,複数の第2の通信ログを参照し,同機能のサーバとして確定された第2の装置群におけるサーバが通信する通信先の複数のサーバの中で,同機能のサーバとして確定されていない複数の第2のサーバがあるか判定する。
第1の通信ログ比較部42は,前記複数の第1のサーバおよび前記複数の第2のサーバがある場合,以下の処理を実行する。すなわち,第1の通信ログ比較部42は,さらに,同機能のサーバとして確定されていない複数の第1のサーバにそれぞれ設定された送信先ポート番号と,同機能のサーバとして確定されていない複数の第2のサーバにそれぞれ設定された送信先ポート番号との類似度を算出する。
そして,第1の通信ログ比較部42は,類似度が最も高い送信先ポート番号を含む第1の通信ログの送信先IPアドレスが設定されたサーバと,類似度が最も高い送信先ポート番号を含む第2の通信ログの送信先IPアドレスが設定されたサーバとを同機能のサーバとして確定する。
例えば,第1の通信ログ比較部42は,確定済み送信元サーバと通信している未確定送信先サーバを一致候補のサーバとして決定する。第1の通信ログ比較部42は,図14の例では,符号Gで示す破線で囲った4つのサーバ,すなわち,サーバA7,A8,B7,B8を一致候補のサーバとして決定する。
次いで,第1の通信ログ比較部42は,第1のブロックA20aが有する一致候補の各サーバにおける待ち受けポート番号と,第2のブロックB20bが有する一致候補の各サーバにおける待ち受けポート番号との類似度(一致度とも呼ぶ)を算出する。そして,第1の通信ログ比較部42は,類似度が最も高い待ち受けポート番号が設定されている,第1のブロックA20aが有する一致候補のサーバと第2のブロックB20bが有する一致候補のサーバとを同機能のサーバとして確定する。
図14,図15の例では,まず,第1の通信ログ比較部42は,サーバA7における待ち受けポート番号と,サーバB7,B8における待ち受けポート番号との類似度を算出する。さらに,第1の通信ログ比較部42は,サーバA8における待ち受けポート番号と,サーバB7,B8における待ち受けポート番号との類似度を算出する。
第1の通信ログ比較部42は,前記類似度の算出において,例えば,以下の(式1)を利用して行う。
(式1)について説明する。例えば,サーバaの待ち受けポート番号とサーバbの待ち受けポート番号との類似度を算出する場合を想定する。この場合,nは,サーバaの待ち受けポート番号と,サーバbの待ち受けポート番号とにおいて,一致している待ち受けポート番号の数を示す。naは,サーバaの待ち受けポート番号の数を示す。nbは,サーバbの待ち受けポート番号の数を示す。
(式1)を用いて,サーバA7における待ち受けポート番号と,サーバB7における待ち受けポート番号との類似度(以下,類似度Xと記す)を算出する場合を例示する。サーバA7の待ち受けポート番号と,サーバB7の待ち受けポート番号とにおいて,一致している待ち受けポート番号は,"25","80","443","8080"の4つである。従って,類似度Xの算出において,(式1)のnは,4である。
そして,サーバA7における待ち受けポート番号の数は,4であるので,(式1)のnaは,4である。サーバB7における待ち受けポート番号の数は,4であるので,(式1)のnbは,4である。従って,類似度Xの算出において,(式1)にn=4,na=4,nb=4を代入すれば,類似度Xは1になる。
図16は,サーバA7,A8における各待ち受けポート番号と,サーバB7,B8における各待ち受けポート番号との類似度の算出結果を示す第1のテーブルである。
図16において,各行と各列とが交わるセルに,各行に示されるサーバ(サーバB7,B8)の待ち受けポート番号と,各列に示されるサーバ(サーバA7,A8)の待ち受けポート番号との類似度が示されている。
第1の通信ログ比較部42は,図16の類似度テーブルT4を,記憶装置403に記憶する。第1の通信ログ比較部42は,以上説明した類似度の算出処理により,サーバA7の待ち受けポート番号と,サーバB8の待ち受けポート番号との類似度を"0.75"と算出する。第1の通信ログ比較部42は,サーバA8の待ち受けポート番号と,サーバB7の待ち受けポート番号との類似度を"0.58"と算出する。第1の通信ログ比較部42は,サーバA8の待ち受けポート番号と,サーバB8の待ち受けポート番号との類似度を"0.83"と算出する。そして,第1の通信ログ比較部42は,算出結果を,各サーバに対応した図16の類似度テーブルT4のセル内に記憶する。
第1の通信ログ比較部42は,算出した類似度の中で,最も高い類似度に関連する2つのサーバを同機能のサーバとして確定する。図14〜図16の例では,最も高い類似度("1")に関連する2つのサーバは,類似度Xの算出におけるサーバA7,サーバB7である。従って,第1の通信ログ比較部42は,サーバA7と,サーバB7とを同機能のサーバとして確定する。
なお,類似度の算出においては,(式2)により定義される,集合間の類似度を示すJaccard係数を利用しても良い。
(式2)におけるCiは,第1のブロックA20aが有する一致候補のサーバiにおける待ち受けポート番号の集合を示す。また,(式2)におけるCjは,第2のブロックB20bが有する一致候補のサーバjにおける待ち受けポート番号の集合を示す。
図14,図15の例では,C1は,サーバA7における待ち受けポート番号の集合である{25,80,443,8080}である。C2は,サーバB7における待ち受けポート番号の集合である{25,80,443,8080}である。C3は,サーバA8における待ち受けポート番号の集合である{80,123,8080}である。C4は,サーバB8における待ち受けポート番号の集合である{80,8080}である。第1の通信ログ比較部42は,(式2)を利用して,以下の類似度の算出処理を行う。
すなわち,第1の通信ログ比較部42は,サーバA7の待ち受けポート番号(集合C1)と,サーバB7の待ち受けポート番号(集合C2)との類似度を"1.00"(4/4)と算出する。
そして,第1の通信ログ比較部42は,サーバA7の待ち受けポート番号(集合C1)と,サーバB8の待ち受けポート番号(集合C3)との類似度を"0.50"(2/4)と算出する。
そして,第1の通信ログ比較部42は,サーバA8の待ち受けポート番号(集合C3)と,サーバB7の待ち受けポート番号(集合C2)との類似度を"0.40"(2/5)と算出する。
そして,第1の通信ログ比較部42は,サーバA8の待ち受けポート番号(集合C3)と,サーバB8の待ち受けポート番号(集合C4)との類似度を"0.67"(2/3)と算出する。
図17は,サーバA7,A8における各待ち受けポート番号と,サーバB7,B8における各待ち受けポート番号との類似度の算出結果を示す第2のテーブルである。
第1の通信ログ比較部42は,前記した算出結果を,各サーバに対応した図17の類似度テーブルT5のセル内に記憶する。第1の通信ログ比較部42は,算出した類似度の中で,最も高い類似度に関連する2つのサーバを同機能のサーバとして確定する。図14,図15,図17の例では,最も高い類似度("1.00")に関連する2つのサーバは,サーバA7,サーバB7である。従って,第1の通信ログ比較部42は,サーバA7と,サーバB7とを同機能のサーバとして確定する。
この類推処理により,ステップS3〜ステップS5の処理でも,同機能のサーバとして確定できなかったサーバを同機能サーバとして確定することができる。そのため,通信関連情報の設定ミスを自動検出する際に必要な情報である,より多くのIPアドレスを含んだIPアドレス対応テーブルを作成することができる。
(同機能サーバのIPアドレスの記録処理)
対応付け生成部43は,図7のフロー図で説明した同機能サーバの確定処理により,確定した同機能サーバに設定されているIPアドレスや同機能のサーバとして確定できなかったサーバ(不確定サーバ)に設定されているIPアドレスを,例えばテーブル形式で記憶装置403に記憶する。
図18は,確定した同機能サーバを記憶したテーブル,不確定サーバを記憶したテーブルの一例を示す図である。サーバ対応テーブルTR1は,確定した同機能サーバを記憶したテーブルの一例である。未確定サーバテーブルTNは,確定できなかったサーバを記憶したテーブルの一例である。
サーバ対応テーブルTR1は,IPアドレス欄(第1のブロックA)と,IPアドレス欄(第2のブロックB)とを有する。IPアドレス欄(第1のブロックA)は,第1のブロックA20aが有するサーバに設定されたIPアドレスを記憶する。IPアドレス欄(第2のブロックB)は,第2のブロックB20bが有するサーバに設定されたIPアドレスを記憶する。
図18のサーバ対応テーブルTR1において,同一行に記憶されたIPアドレスが設定された各サーバは,同機能のサーバである。ここでは,IPアドレス欄(第1のブロックA)が記憶するIPアドレス" 192.168.1.37"が設定されたサーバをサーバA10と記す。このサーバA10と,前記IPアドレス("192.168.1.37")と同一行における,IPアドレス欄(第2のブロックB)が記憶するIPアドレス"192.168.5.37"が設定されたサーバとは,同機能のサーバである。
図18の未確定サーバテーブルTNは,IPアドレス欄(第1のブロックA)と,IPアドレス欄(第2のブロックB)とを有する。IPアドレス欄(第1のブロックA)は,第1のブロックA20aが有する不確定サーバに設定されたIPアドレスを記憶する。IPアドレス欄(第1のブロックA)は,第2のブロックB20bが有する不確定サーバに設定されたIPアドレスを記憶する。
なお,通知部47が,図18のサーバ対応テーブルTR1を,"確定済みのサーバは以下の通りです"という文字列と共に表示装置406aに表示してもよい。そして,通知部47が,図18の未確定サーバテーブルTNを,"未確定サーバは以下の通りです"という文字列と共に表示装置406aに表示してもよい。
以上説明した,同機能サーバの確定処理によれば,通信関連情報の設定ミスを自動検出する際に必要な情報であるサーバ対応テーブルを自動生成することができる。その結果,管理者は,手動でサーバ対応テーブルを作成する必要がなくなり,動作検証の工数,時間を削減することができる。
(設定ミスの検出)
以下,設定ミスの検出処理を説明する。図19は,図5の通信ログデータベースDB1を説明する第2のテーブルである。通信ログテーブルT1aは,管理装置4が第1のブロックA20aから取得した通信ログを記憶するテーブルの一例である。図5の通信ログデータベースDB1が,通信ログテーブルT1aを記憶している状態を図5の符号Toで示している。
通信ログテーブルT1aは,送信元IPアドレス欄と,送信元ポート番号欄と,送信先IPアドレス欄と,送信先ポート番号欄とを有する。通信ログテーブルT1aにおいて,1行毎に1つの通信ログを記憶している。なお,各欄の内容については,後述する。
図20は,図5の通信ログデータベースDB1を説明する第3のテーブルである。通信ログテーブルT1bは,管理装置4が第2のブロックB20bから取得した通信ログを記憶するテーブルの一例である。図5の通信ログデータベースDB1が,通信ログテーブルT1bを記憶している状態を図5の符号Tsで示している。
通信ログテーブルT1bは,送信元IPアドレス欄と,送信元ポート番号欄と,送信先IPアドレス欄と,送信先ポート番号欄と,状態欄とを有する。通信ログテーブルT1bにおいて,1行毎に1つの通信ログを記憶している。なお,各欄の内容については,後述する。
(サーバ対応データベース)
図21は,図5のサーバ対応データベースDB2を説明するテーブルである。図5のサーバ対応データベースDB2が,サーバ対応テーブルTR2を記憶している状態を図5の符号TRで示している。サーバ対応テーブルTR2は,図18で説明したサーバ対応テーブルTR1と同様のテーブル構成を有する。なお,サーバ対応テーブルTR2のセルに記憶されたIPアドレスと,サーバ対応テーブルTR1のセルに記憶されたIPアドレスとは説明の便宜のため異なる。
サーバ対応テーブルTR2は,IPアドレス欄(第1のブロックA)と,IPアドレス欄(第2のブロックB)とを有する。IPアドレス欄(第1のブロックA)は,第1のブロックA20aが有するサーバに設定されたIPアドレスを記憶する。IPアドレス欄(第2のブロックB)は,第2のブロックB20bが有するサーバに設定されたIPアドレスを記憶する。
サーバ対応テーブルTR2は,動作検証済みの第1の装置群の装置と,動作検証対象の第2の装置群の装置とをそれぞれ対応付けた対応情報の一例である。図5の記憶装置403は,この対応情報を記憶している。なお,図31で説明するように,サーバ対応テーブルTR2のIPアドレス(第2のブロックB)欄には,IPアドレス"12.0.3.7"が記憶されていない。
第1の装置群とは,例えば,図2の第1のブロックA20aのブロック管理サーバ群21である。第1の装置群の装置とは,例えば,イメージ管理サーバ212などである。第2の装置群とは,例えば,図2の第2のブロックB20bのブロック管理サーバ群23である。第2の装置群の装置とは,例えば,第2のブロックB20bのサーバであり,イメージ管理サーバ232などである。
図21において,同一行に記憶された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サーバである。
すなわち,サーバ対応テーブルTR2は,動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定された各IPアドレスとを含んでいる。
(通信ログの取得処理とマージ処理)
図19の管理装置4の通信ログ取得部41は,動作検証に先立ち,図7のステップ1で説明したように,動作検証済みの第1の装置群の通信ログを取得する。通信ログ取得部41は,取得した通信ログを,第1の通信ログ比較部42,通信ログ整形部44に出力する。そして,動作検証において,通信ログ取得部41は,動作検証対象の第2の装置群の通信ログを取得する。通信ログ取得部41は,取得した通信ログを,第1の通信ログ比較部42,通信ログ整形部44に出力する。
第1の通信ログ比較部42は,動作検証済みの第1の装置群の通信ログと,動作検証対象の第2の装置群の通信ログとに基づき,同機能サーバの確定処理を実行する。そして,対応付け生成部43は,同機能サーバに設定された各IPアドレスを対応付けたサーバ対応テーブルを作成し,サーバ対応データベースDB2に記憶する。サーバ対応テーブルは,例えば,図21のサーバ対応テーブルTR2である。
また,通信ログ整形部44は,入力された動作検証済みの第1の装置群の通信ログを適宜整形(マージとも呼ぶ)する。同じく,通信ログ整形部44は,入力された動作検証済みの第1の装置群の通信ログを適宜マージする。
図22は,通信ログの取得処理とマージ処理の流れを説明するフロー図である。図22を参照し,図19の通信ログ取得部41,通信ログ整形部44が実行する処理の流れを説明する。
ステップS11:通信ログ取得部41は,動作検証済みの第1の装置群の通信ログや動作検証対象の第2の装置群の通信ログを取得する。なお,ステップS11は,図7のステップS1と同様の処理を行うので,その説明を省略する。ここで,第1の通信ログ比較部42は,取得された動作検証済みの第1の装置群の通信ログと動作検証対象の第2の装置群の通信ログを参照し,前記した同機能サーバの確定処理を実行する。対応付け生成部43は,確定した同機能サーバに設定されたIPアドレスを参照し,サーバ対応テーブルを作成し,サーバ対応データベースDB2に記憶する。前記したサーバ対応テーブルは,例えば,図21のサーバ対応テーブルTR2であるとする。
ステップS12:通信ログ整形部44は,取得した通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みか判定する。
具体的には,通信ログ整形部44は,通信ログ取得部41が,動作検証済みの第1のブロックA20aの通信ログを取得した場合,この通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログテーブルT1aに記憶済みか判定する。一方,通信ログ整形部44は,通信ログ取得部41が,動作検証対象の第2のブロックB20bの通信ログを取得した場合,この通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログテーブルT1bに記憶済みか判定する。
通信ログ整形部44は,取得した通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みでない場合(ステップS12/NO),ステップS13に移る。
ステップS13:通信ログ整形部44は,通信ログ取得部41が取得した通信ログを通信ログデータベースDB1に記憶する。具体的には,通信ログ整形部44は,通信ログ取得部41が,動作検証済みの第1のブロックA20aの通信ログを取得した場合,取得した通信ログの送信元IPアドレスと送信先IPアドレスと送信元ポート番号と送信先ポート番号とを通信ログテーブルT1aに記憶する。
一方,通信ログ整形部44は,ステップS12において,通信ログ取得部41が取得した通信ログの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みの場合(ステップS12/YES),ステップS14に移る。
ステップS14:通信ログ整形部44は,通信ログ取得部41が取得した通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが通信ログデータベースDB1に記憶済みか判定する。具体的には,通信ログ整形部44は,通信ログ取得部41が,第1のブロックA20aの通信ログを取得した場合,この通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが図19の通信ログテーブルT1aに記憶済みか判定する。一方,通信ログ整形部44は,通信ログ取得部41が,第2のブロックB20bの通信ログを取得した場合,この通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが図20の通信ログテーブルT1bに記憶済みか判定する。
ステップS14において,通信ログ取得部41が取得した通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが通信ログデータベースDB1に記憶済みの場合(ステップS14/YES),ステップS15に移る。以下,通信ログデータベースDB1に記憶済みの通信ログの中で,通信ログ取得部41が取得した通信ログの送信元及び送信先IPアドレスが共に一致し,さらに,この通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログをマージ元の通信ログと適宜記す。
ステップS15:通信ログ整形部44は,通信ログデータベースDB1に記憶済みのマージ元の通信ログと,通信ログ取得部41が取得した通信ログとをマージする。なお,ステップS15における2つの通信ログのマージについては,図31で具体的に説明する。
ステップS14において,通信ログ取得部41が取得した通信ログの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログが通信ログデータベースDB1に記憶済みでない場合(ステップS14/NO),ステップS13に移る。
通信ログ整形部44は,ステップS11において、複数の通信ログを取得した場合,ループLP1〜LP2に示したように,ステップS11〜ステップS15の処理を,通信ログ取得部41が取得した各ログに対して実行する。
図23は,通信ログの取得処理とマージ処理を具体的に説明する図である。図23において,通信ログTM1aは,通信ログ取得部41が取得した第1のブロックA20aの通信ログである。
通信ログTM2aは,通信ログTM1aの取得後に,通信ログ取得部41が取得した第1のブロックA20aの通信ログである。なお,通信ログTM1a,通信ログTM2aについては,テーブル形式で示している。さらに,図23において,マージ通信ログTM3aは,通信ログ整形部44が通信ログTM1a,TM2aをマージした状態をテーブル形式で示した図である。
図19,図22,図23を参照して,図22の処理の流れを具体的に説明する。通信ログ取得部41は,例えば,第1のブロックA20aのブロック管理サーバ群21におけるあるサーバ(例えば,イメージ管理サーバ212)から第1,第2の通信ログを取得する(ステップS11)。
第1の通信ログは,例えば,図23の通信ログTM1aである。通信ログTM1aは,送信元IPアドレス"192.168.1.26",送信元ポート番号"58394",送信先IPアドレス"192.168.1.37",送信先ポート番号"25"を含む通信ログである。第2の通信ログは,例えば,図23の通信ログ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"が共に一致する通信ログが,図19の通信ログデータベースDB1の通信ログテーブルT1aに記憶されていない場合(ステップS12/NO),通信ログ整形部44は,以下の処理を実行する。すなわち,通信ログ整形部44は,図23の通信ログTM1aに示したように,通信ログTM1aを通信ログデータベースDB1の通信ログテーブルT1aに記憶する(ステップS13)。
次いで,ループLP2からループLP1に戻りステップS12に移る。通信ログ整形部44は,ステップS12において,通信ログTM2aの送信元IPアドレスと送信先IPアドレスとが共に一致する通信ログが通信ログデータベースDB1に記憶済みと判定し(ステップS12/YES),ステップS14に移る。この場合,通信ログTM1aがマージ元の通信ログとなる。
ステップS12でYESと判定されるのは,通信ログTM1a,TM2aの送信元IPアドレス("192.168.1.26")と,送信先IPアドレス("192.168.1.37")とは共に一致し,通信ログTM1aは,通信ログデータベースDB1に記憶済みだからである。
通信ログ整形部44は,ステップS14において,通信ログTM2aの送信元ポート番号,送信先ポート番号の何れかが一致する通信ログは通信ログデータベースDB1に記憶済みと判定し(ステップS14/YES),ステップS15に移る。ステップS14でYESと判定されるのは,通信ログTM1a,TM2aの送信先ポート番号("25")が一致するからである。
通信ログ整形部44は,通信ログデータベースDB1に記憶済みの通信ログTM1aと,通信ロ
グTM2aをマージする(ステップS15)。通信ログ整形部44は,ステップS15では,通信ログTM1aの送信元ポート番号"58394"と,通信ログTM2aの送信元のポート番号"58413"とをマージする。マージした状態を,図23のマージ通信ログTM3aに示す。ここで,マージ通信ログTM3aにおける,送信元ポート番号欄の"*****"は,ポート番号をマージした状態を模式的に示している。そして,通信ログ整形部44は,図19の通信ログテーブルT1aの最上段に示すように,通信ログデータベースDB1に記憶する。
ステップS15におけるマージとは,図22のステップS12,ステップS14で説明した条件に合致(ステップS12,ステップS14でYES)する両通信ログをまとめて1つの通信ログとして統合することを意味している。
具体的には,ステップS15におけるマージとは,マージ元の通信ログの送信元ポート番号と,取得した通信ログの送信元ポート番号とが一致する場合,マージ元の通信ログの送信元ポート番号を任意の文字列(例えば"*****")に変換する。または,このマージとは,マージ元の通信ログの送信先ポート番号と,取得した通信ログの送信先ポート番号とが一致する場合,マージ元の通信ログの送信先ポート番号を任意の文字列に変換する。これらの文字列の替わりに任意の数値(例えば,0xFFFFF(16進数))にしても良い。
図22,図23で説明したように,通信ログ整形部44は,以下の条件を満たす場合,2つの第1の通信ログ(第1のブロックA20aの通信ログ)を統合して1つの第1の通信ログとして記憶装置24に記憶する。この条件とは,すなわち,2つの第1の通信ログに含まれる送信元および送信先IPアドレスが一致し,さらに,2つの第1の通信ログに含まれる送信元ポート番号または送信先ポート番号が一致する場合である。
また,図22,図23で説明したように,通信ログ整形部44は,以下の条件を満たす場合,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に記憶する通信ログのデータ量を削減できる。また,後記する通信ログの比較において,比較処理を迅速に実行することができる。
次いで,第2の通信ログ比較部45が通信ログの比較を実行し,ミス検出部46が通信関連の設定ミスの検出を実行する。
(通信ログのIPアドレスの変換)
第2の通信ログ比較部45は,通信関連の設定ミスの検出の前に,設定ミスの検出を高精度に実行すべく,図21のサーバ対応テーブルTR2に基づき,通信ログのIPアドレスの変換を実行する。
サーバ対応テーブルTR2は,前記したように動作検証済みの第1の装置群の装置に設定されたIPアドレスと,この装置と同機能の機能を有する,動作検証対象の第2の装置群の装置に設定された各IPアドレスを含んでいる。
第2の通信ログ比較部45は,第1の通信ログの送信元および送信先のIPアドレスを,サーバ対応テーブルTR2に基づき,この送信元および送信先のIPアドレスに対応する動作検証対象の第2の装置群の装置に設定されたIPアドレスに変換する。この変換処理を,図24を用いて具体的に説明する。なお,第2の通信ログ比較部45は,第2の通信ログの送信元および送信先のIPアドレスを,サーバ対応テーブルTR2に基づき,この送信元および送信先のIPアドレスに対応する動作検証済みの第1の装置群の装置に設定されたIPアドレスに変換してもよい。
図24は,通信ログの変換処理について説明するテーブルである。図19,図21,図24に基づき,通信ログの変換処理を説明する。第2の通信ログ比較部45は,まず,図19の通信ログテーブルを複製し,送信先ポート番号欄の右側に,フラグを記憶する一致有無欄を作成する。この一致有無欄を有するテーブルを,図24のマスタ通信ログテーブルT1mとして示す。図5の通信ログデータベースDB1が,図24のマスタ通信ログテーブルT1mを記憶している状態を図5の符号Tmで示している。
次いで,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mにおける送信元IPアドレス欄が記憶する送信元IPアドレスの中から変換対象のIPアドレスを図面上から1つずつ選択する。第2の通信ログ比較部45は,図21のサーバ対応テーブルTR2のIPアドレス(第1のブロックA)欄が記憶するIPアドレスの中から,選択したIPアドレスに一致するIPアドレスを検索する。
そして,第2の通信ログ比較部45は,図21のサーバ対応テーブルTR2のIPアドレス(第2のブロックB)欄が記憶するIPアドレスの中から,検索したIPアドレスと同一行のIPアドレスを特定する。すなわち,第2の通信ログ比較部45は,検索したIPアドレスに対応する,IPアドレス(第2のブロックB)欄内のIPアドレスを特定する。そして,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mにおいて選択したIPアドレスを特定したIPアドレスに変換する。例えば,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mの送信元IPアドレス欄において,"12.4.3.6(変換前:12.0.3.6)"のように,IPアドレスの変換を実行する。
第2の通信ログ比較部45は,前記したIPアドレスの選択処理,検索処理,特定処理,変換処理を,送信元IPアドレス欄が記憶する全送信元IPアドレスに対して実行する。なお,選択したIPアドレスと特定したIPアドレスとが同一IPアドレスの場合には,第2の通信ログ比較部45は,前記した変換を実行しなくてもよい。
さらに,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mにおける送信先IPアドレス欄が記憶する送信先IPアドレスの中から変換対象のIPアドレスを図面上から1つずつ選択する。第2の通信ログ比較部45は,図21のサーバ対応テーブルTR2のIPアドレス(第1のブロックA)欄が記憶するIPアドレスの中から,選択したIPアドレスに一致するIPアドレスを検索する。そして,第2の通信ログ比較部45は,図21のサーバ対応テーブルTR2のIPアドレス(第2のブロックB)欄が記憶するIPアドレスの中から,検索したIPアドレスと同一行のIPアドレスを特定する。そして,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mにおいて選択したIPアドレスを特定したIPアドレスに変換する。例えば,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mの送信先IPアドレス欄において,"12.4.0.5(変換前:12.0.0.5)","12.0.3.7(変換前:12.4.3.7)"のように,IPアドレスの変換を実行する。
第2の通信ログ比較部45は,前記したIPアドレスの選択処理,検索処理,特定処理,変換処理を,送信先IPアドレス欄が記憶する全送信先IPアドレスに対して実行する。図24の一致有無欄が記憶するフラグ"有り"については,図28,図29で説明する。なお,第2の通信ログ比較部45は,変換処理による処理負荷の増大を抑制するために,前記した変換の実行を行わなくてもよい。
(一致有無欄の追加)
図25は,図20の通信ログテーブルT1bに一致有無欄を追加した通信ログテーブルを説明する図である。第2の通信ログ比較部45は,図20の通信ログテーブルT1bの状態欄の右側にフラグを記憶する一致有無欄を作成する。この一致有無欄を有するテーブルを,図25の通信ログテーブルT11bとして示す。ここで,一致有無欄の作成時点では,フラグ"有り"は記憶されていない。なお,一致有無欄が記憶するフラグ"有り"については,図28,図29で説明する。図5の通信ログデータベースDB1が,通信ログテーブルT11bを記憶している状態を図5の符号Tsで示している。
(設定誤り検出処理)
図26は,通信ログの比較処理,設定ミスの検出処理の全体の流れを説明する第1のフロー図である。
ステップS21:第2の通信ログ比較部45は,通信ログデータベースDB1から比較処理のマスタ(基準)となる全通信ログを読み出す。以下,マスタとなる通信ログをマスタ通信ログと適宜記す。具体的には,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mが記憶する全通信ログの特定情報(送信元および送信先IPアドレス,送信元および送信先ポート番号)を読み出す。
ステップS22:第2の通信ログ比較部45は,通信ログデータベースDB1から動作検証対象の通信ログを読み出す。動作検証対象の通信ログは,第2のブロックB20bの通信ログである。具体的には,第2の通信ログ比較部45は,図25の通信ログテーブルT11bが記憶する通信ログの特定情報の中で未だ読み出していない通信ログの特定情報を読み出す。
ステップS23:第2の通信ログ比較部45は,ステップS22で読み出した動作検証対象の通信ログと,各マスタ通信ログとを比較して,両通信ログが一致することを示すフラグを両通信ログに設定する。ステップS23の処理については,図27で詳細に説明する。第2の通信ログ比較部45は,ステップS22で読み出した動作検証対象の通信ログと,各マスタ通信ログとの比較処理を,全マスタ通信ログについて実行する(ループLP21〜LP22)。
ステップS24:ミス検出部46は,通信関連の設定ミスを検出し,通知部47は,ミス検出部46が検出した通信関連の設定ミスを通知する。
第2の通信ログ比較部45は,ステップS22において図25の通信ログテーブルT11bから全ての通信ログを読み出すまで,ステップS22,ステップS23の処理を実行する(ループLP11〜LP12)。
図27は,図26のステップS23における通信ログの比較,設定ミスの検出を説明するフロー図である。
ステップS231:第2の通信ログ比較部45は,マスタ通信ログの送信元IPアドレスおよび送信先IPアドレスと,動作検証対象の通信ログの送信元IPアドレスおよび送信先IPアドレスとが共に一致するか判定する。一致しない場合(S231/NO),図26のループLP22に移る。一致する場合(ステップS231/YES),ステップS232に移る。
ステップS232:第2の通信ログ比較部45は,マスタ通信ログの送信元ポート番号及び動作検証対象の通信ログの送信元ポート番号がマージされているか,又は,マスタ通信ログの送信先ポート番号及び動作検証対象の通信ログの送信先ポート番号がマージされているか判定する。
以下,マスタ通信ログの送信元ポート番号及び動作検証対象の通信ログの送信元ポート番号がマージされている場合を,第1の場合と記す。また,マスタ通信ログの送信先ポート番号及び動作検証対象の通信ログの送信先ポート番号がマージされている場合を第2の場合と記す。
ここで,第2の場合(ステップS232/送信先ポートのみがマージ),ステップS233に移る。第1の場合(ステップS232/送信元ポートのみがマージ),ステップS234に移る。第1の場合でなく,かつ,第2の場合でない第3の場合,ステップS233に移る。第1〜第3の場合の何れかにも該当しない場合には,図26のループLP22に移る。
ステップS233:第2の通信ログ比較部45は,マスタ通信ログの送信元ポート番号と,動作検証対象の通信ログの送信元ポート番号とが一致するか判定する。一致する場合(S233/YES),ステップS235に移る。一致しない場合(S233/NO),ステップS234に移る。
ステップS234:第2の通信ログ比較部45は,マスタ通信ログの送信先ポート番号と,動作検証対象の通信ログの送信先ポート番号とが一致するか判定する。一致しない場合(S234/NO),図26のループLP22に移る。一致する場合(S234/YES),ステップS235に移る。
ステップS235:第2の通信ログ比較部45は,一致する通信ログがある旨を示すフラグを,一致する通信ログに対して設定する。この一致する通信ログとは,ステップS231の条件を満たし(ステップS231/YES),ステップS233またはステップS234の条件を満たす(ステップS233/YESまたはステップS234/YES),マスタ通信ログおよび動作検証対象の通信ログである。
(フラグの設定)
図28,図29を参照して,図27で説明したフラグの設定について説明する。図28は,送信元ポート番号,送信先ポート番号の両方が,マージされている状態における通信ログの一致,不一致を説明する図である。
通信ログTC31aは,図24の符号P31に示したマスタ通信ログである。通信ログTC31bは,図25の符号P31に示した動作検証対象の通信ログである。通信ログTC32aは,図24の符号P32に示したマスタ通信ログである。通信ログTC32bは,図25の符号P32に示した動作検証対象の通信ログである。通信ログTC33aは,図24の符号P33に示したマスタ通信ログである。通信ログTC33bは,図25の符号P33に示した動作検証対象の通信ログである。
第2の通信ログ比較部45は,例えば,通信ログTC31aと,通信ログTC31bとを比較する。ここで,通信ログTC31aに含まれる送信元IPアドレス("192.168.1.26")および送信先IPアドレス("192.168.1.37")と,通信ログTC31bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。また,通信ログTC31aおよび通信ログTC31bに含まれる送信元ポート番号がマージ("*****")されている。そして,通信ログTC31aに含まれる送信先ポート番号("25")と通信ログTC31bに含まれる送信先ポート番号("25")とが一致する。従って,第2の通信ログ比較部45は,前記した両通信ログの比較において,図27のステップS231でYES,ステップS232で送信元ポートのみがマージ,ステップS234でYESと判定し,ステップS235に移る。
第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC31a(図24の符号P31参照)に対応する行に,フラグ"有り"を記憶する(ステップS235)。
そして,第2の通信ログ比較部45は,図25の通信ログテーブルT11bの一致有無欄において,通信ログTC31b(図25の符号P31参照)に対応する行に,フラグ"有り"を記憶する(ステップS235)。
次に,第2の通信ログ比較部45は,例えば,通信ログTC32aと,通信ログTC32bとを比較する。第2の通信ログ比較部45は,前記した両通信ログの比較において,図27のステップS231でYES,S232で送信先ポートのみがマージ,ステップS233でYESと判定し,ステップS235に移る。
第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC32a(図24の符号P32参照)に対応する行に,フラグ"有り"を記憶する(ステップS235)。
そして,第2の通信ログ比較部45は,図25の通信ログテーブルT11bの一致有無欄において,通信ログTC32b(図25の符号P32参照)に対応する行に,フラグ"有り"を記憶する(ステップS235)。
このような比較処理が繰り返し実行され(図26のLP11〜LP12参照),その結果,第2の通信ログ比較部45は,例えば,通信ログTC33aと,通信ログTC33bとを比較する。ここで,通信ログTC33aに含まれる送信先IPアドレス(12.4.3.7)と,通信ログTC33bに含まれる送信先IPアドレス(12.0.3.7)とは一致しない。従って,第2の通信ログ比較部45は,前記した両通信ログの比較において,図27のステップS231でNOと判定し,ステップS235の処理を実行しない。その結果,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC33a(図24の符号P33参照)に対応する行に,フラグ"有り"を記憶しない(空欄)。第2の通信ログ比較部45は,図25の通信ログテーブルT11bの一致有無欄において,通信ログTC33b(図25の符号P33参照)に対応する行に,フラグ"有り"を記憶しない(空欄)。
図29は,送信元ポート番号,送信先ポート番号の両方が,マージされていない状態における通信ログの一致,不一致を説明する図である。
通信ログTC41a〜TC43aは,マスタ通信ログの一例である。通信ログTC41b〜TC43bは,動作検証対象の通信ログの一例である。
第2の通信ログ比較部45は,例えば,通信ログTC41aと,通信ログTC41bとを比較する。ここで,通信ログTC41aに含まれる送信元IPアドレス("192.168.1.37")および送信先IPアドレス("192.168.1.35")と,通信ログTC41bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。そして,通信ログTC41aに含まれる送信元ポート番号("53641")および送信先ポート番号("80")と,通信ログTC41bに含まれる送信元ポート番号および送信先ポート番号とが一致する。従って,第2の通信ログ比較部45は,前記した両通信ログの比較において,図27のステップS231でYES,ステップS232でNO,ステップS233でYESと判定し,ステップS235に移る。
第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mの一致有無欄において,通信ログTC41aに対応する行(図示しない)に,フラグ"有り"を記憶する(ステップS235)。そして,第2の通信ログ比較部45は,図25の通信ログテーブルT11bの一致有無欄において,通信ログTC41bに対応する行(図示しない)に,フラグ"有り"を記憶する(ステップS235)。
第2の通信ログ比較部45は,例えば,通信ログTC42aと,通信ログTC42bとを比較する。ここで,通信ログTC42aに含まれる送信元IPアドレス("192.168.1.37")および送信先IPアドレス("192.168.1.35")と,通信ログTC42bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。一方,通信ログTC42aに含まれる送信元ポート番号("53641")と通信ログTC42bに含まれる送信元ポート番号("53645")とは不一致である。しかし,通信ログTC42aに含まれる送信先ポート番号("80")と通信ログTC42bに含まれる送信先ポート番号("80")とが一致する。
従って,第2の通信ログ比較部45は,前記した両通信ログの比較において,図27のステップS231でYES,ステップS232,S233でNO,ステップS234でYESと判定し,ステップS235に移る。なお,ステップS235の処理は,通信ログTC42aと通信ログTC42bとの比較で説明したので省略する。
第2の通信ログ比較部45は,例えば, 通信ログTC43aと,通信ログTC43bとを比較する。ここで,通信ログTC43aに含まれる送信元IPアドレス("192.168.1.37")および送信先IPアドレス("192.168.1.35")と,通信ログTC43bに含まれる送信元IPアドレスおよび送信先IPアドレスとが一致する。しかし,通信ログTC43aに含まれる送信元ポート番号("53641")と通信ログTC42bに含まれる送信元ポート番号("53645")とは不一致である。さらに,通信ログTC43aに含まれる送信先ポート番号("80")と通信ログTC43bに含まれる送信先ポート番号("443")とは不一致である。
従って,第2の通信ログ比較部45は,前記した両通信ログの比較において,図27のステップS231でYES,ステップS232〜S234でNOと判定し,ステップS235の処理を実行しない。
以上説明したように,第2の通信ログ比較部45は,前記したマスタ通信ログと,動作検証対象の通信ログとの比較を繰り返し行う。具体的には,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mが記憶する全マスタ通信ログを読み出す。そして,第2の通信ログ比較部45は,読み出したマスタ通信ログと,図25の通信ログテーブルT11bが記憶する各通信ログとを比較する。そして,第2の通信ログ比較部45は,両通信ログが一致した場合に,通信ログテーブルT1m,T11bの一致有無欄において,一致した通信ログに対応する行に,フラグ"有り"を記憶する。
(設定ミス候補の抽出)
図26のステップS21〜ステップS23の処理の実行により,第2の通信ログ比較部45は,図24のマスタ通信ログテーブルT1mの一致有無欄にフラグを記憶し,さらに,図25の通信ログテーブルT11bの一致有無欄にフラグを記憶する。そして,図26のループLP12からステップS24に移る。
ミス検出部46は,図24のマスタ通信ログテーブルT1m,図25の通信ログテーブルT11bに基づき,設定ミス候補を抽出する。設定ミス候補の通信ログは,図24のマスタ通信ログテーブルT1m,図25の通信ログテーブルT11bの一致有無欄において,フラグ"有り"が記憶されていない(空白)行に記憶された通信ログである。また,設定ミス候補の通信ログは,図25の通信ログテーブルT11bの状態欄において,"応答なし"が記憶されている行に記憶された通信ログである。
ミス検出部46は,抽出した設定ミス候補に基づき,設定ミスを検出すると共に,設定ミスの原因を解析する。そして,通知部47は,設定ミスの内容,設定ミスの原因を管理者に通知する。まず,図30に基づき,設定ミス候補の抽出を説明する。
図30は,図26のステップS24で実行する設定ミス候補の抽出を説明する図である。
ミス検出部46は,設定ミスの検出の前段階として,設定ミス候補を抽出する。ミス検出部46は,複数の第1の通信ログの中(図24参照)から,複数の第2の通信ログ(図25参照)に含まれる第2の特定情報と一致しない通信ログを設定誤りの通信ログとして検出する。
具体的には,ミス検出部46は,複数の第1の通信ログの中から,複数の第2の通信ログに含まれる送信元および送信先IPアドレスが一致しない通信ログを第1の設定誤りの通信ログとして検出する。または,ミス検出部46は,複数の第1の通信ログの中から,複数の第2の通信ログに含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信ログを第1の設定誤りの通信ログとして検出する。以下,第1の設定誤りの通信ログを,第1の設定ミス候補の通信ログと適宜記す。
図24の例では,ミス検出部46は,図24のマスタ通信ログテーブルT1mが記憶する通信ログ群の中から,第1の設定ミス候補の通信ログを抽出する。第1の設定ミス候補の通信ログは,一致有無欄にフラグ"有り"が記憶されていていない通信ログである。図30の符号TE1aは,ミス検出部46が抽出した2つの第1の設定ミス候補の通信ログを示すテーブルである。
さらに,ミス検出部46は,複数の第2の通信ログの中から,複数の第1の通信ログに含まれる送信元および送信先IPアドレスが一致しない通信ログを第2の設定誤りの通信ログとして検出する。または,ミス検出部46は,複数の第2の通信ログの中から,複数の第1の通信ログに含まれる送信元および送信先IPアドレスが一致しても送信元ポート番号および送信先ポート番号が一致しない通信ログを第2の設定誤りの通信ログとして検出する。以下,第2の設定誤りの通信ログを,第2の設定ミス候補の通信ログと適宜記す。
図25の例では,ミス検出部46は,図25の通信ログテーブルT11bが記憶する通信ログ群の中から,第2の設定ミス候補の通信ログを抽出する。第2の設定ミス候補の通信ログは,一致有無欄にフラグ"有り"が記憶されていていない通信ログである。さらに,ミス検出部46は,通信状態情報が正常に実行されていないことを示す通信情報を含む第2の通信ログ,例えば状態欄に"応答無し"が記憶されている通信ログを検出(抽出とも呼ぶ)する。
図30の符号TE1bは,ミス検出部46が抽出した第2の設定ミス候補の通信ログ,通信状態情報が正常に実行されていないことを示す通信情報を含む第2の通信ログを示すテーブルである。
そして,ミス検出部46は,第2の装置群の装置における,第1および第2の設定誤りの通信ログに関連する送信元および送信先を特定する特定情報の設定ミスを検出する。
図31〜図33は,図26のステップS24で実行する設定ミスの検出処理を説明する第1〜第3の図である。
ミス検出部46は,第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と記す。
図21のサーバ対応テーブルTR2によれば,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"(誤設定)は,図21のサーバ対応テーブルTR2のIPアドレス(第2のブロックB)には記憶されていない。そのため,この通信パケットは,第2のブロックB20b以外のブロック(例えば,第1のブロックA20a)に転送され,このブロックのサーバが受信することになる。そして,この通信パケットを受信したサーバが,肯定応答パケット(ACKパケットとも呼ぶ)をサーバS2の通信ソフトに返信する。その結果,サーバS2の通信用ソフトは,送信元IPアドレス"12.3.0.142",送信元ポート番号"9000",送信先IPアドレス"12.0.3.7"(誤設定),所定の送信先ポート番号,通信状態"OK"を含む通信ログを記憶する(図30の符号TE1b参照)。
このような通信は,IPアドレスの誤設定に起因するものなので,このIPアドレスの誤設定を修正する必要がある。そこで,管理装置4のミス検出部46は,以下の処理を実行する。
ミス検出部46は,第1の設定誤りの通信ログおよび第2の設定誤りの通信ログの中から,送信元IPアドレスおよび送信元ポート番号が一致する通信ログを第3の設定誤りの通信ログとして検出する。または,ミス検出部46は,送信先IPアドレスおよび送信先ポート番号が一致する通信ログを第4の設定誤りの通信ログとして検出する。
そして,ミス検出部46は,第2の装置群の装置における,第3および第4の設定誤りの通信ログに関連する送信元および送信先IPアドレスの設定誤りを検出する。そして,通知部47は,ミス検出部46が検出した設定誤りを通知する。
以下に,具体的に説明する。ミス検出部46は,第1の設定ミス候補の通信ログと,第2の設定ミス候補の通信ログとを比較する。そして,ミス検出部46は,第1,第2の設定ミス候補の通信ログの中から,送信元IPアドレスと送信元ポート番号とが一致する通信ログ,又は,送信先IPアドレスと送信先ポート番号とが一致する通信ログを抽出する。図30で例示した場合,ミス検出部46は,送信元IPアドレスと送信元ポート番号とが一致する通信ログとして,送信元IPアドレスが"12.3.0.142",送信元ポート番号が"9000"を有する通信ログを,第1,第2の設定ミス候補の通信ログの中から抽出する。
具体的には,ミス検出部46は,符号TE1aに示す2つの通信ログの中から,図31の通信ログTM1aを抽出する。通信ログTM1aは,送信元IPアドレスが"12.3.0.142",送信元ポート番号が"9000",送信先IPアドレスが"12.4.3.7",送信先ポート番号が"*****"を含む。さらに,ミス検出部46は,符号TE1bに示す2つの通信ログの中から,図31の通信ログTM1bを抽出する。通信ログTM1bは,送信元IPアドレス"12.3.0.142",送信元ポート番号"9000",送信先IPアドレス"12.0.3.7",送信先ポート番号"*****"を含む。
さて,図31の通信ログTM1bに含まれる送信先IPアドレス"12.0.3.7"は,前記したように,図21のサーバ対応テーブルTR2のIPアドレス(第2のブロックB)欄には記憶されていない。このように,ミス検出部46は,図31の通信ログTM1bに含まれるIPアドレスの中で,図21のIPアドレス(第2のブロックB)欄に記憶されていないIPアドレスがある場合には,このIPアドレスに関連した設定ミスが発生したと推定する。設定ミスが発生したと推定したIPアドレスは,送信先IPアドレス"12.0.3.7である。
そのため,ミス検出部46は,通信ログTM1bの送信元IPアドレス"12.3.0.142"が設定されたサーバにおける通信関連情報の設定時に誤りがあったと推定する。さらに,送信先IPアドレス"12.0.3.7"は,図21のサーバ対応テーブルTR2のIPアドレス(第1のブロックA)欄には記憶されているので,このIPアドレスに対応するIPアドレス"12.4.3.7"が正しいIPアドレスと推定する。
そして,通知部47は,送信元IPアドレス"12.3.0.142"が設定されたサーバにおける通信関連情報の設定時に誤りがあったこと,正しいIPアドレスが"12.4.3.7"であることを管理者に通知する。
次に,第2の検出処理を説明する。ミス検出部46は,第1の設定誤りの通信ログの中から,第3,第4の設定誤りの通信ログ以外の第5の設定誤りの通信ログを検出する。通知部47は,第2の装置群の装置における,第5の設定誤りの通信ログに関連する送信元IPアドレスの設定誤りを検出し,検出した設定誤りを通知する。
具体的に説明する。ミス検出部46は,動作検証済みの第1の装置群(例えば,第1のブロックA20a)においてのみ存在する通信ログの有無を検出する。前記したように,動作検証対象の第2の装置群(例えば,第2のブロックB20b)が有するハードウェア構成,ソフトウェア構成と,第1のブロックA20aが有するハードウェア構成,ソフトウェア構成とは,同一又はほぼ同一である。とすれば,第1のブロックA20aと第2のブロックB20bとにおいては,送信元,送信先を同一と見なすことができる通信が実行されている可能性が非常に高い。
そのため,第1のブロックA20aにおいてのみ存在する通信ログがある場合,この通信ログに関連した通信が,第2のブロックB20bにおいて実行されていない可能性が高い。詳しくは,第2のブロックB20bにおいてこの通信ログに関連する通信を実行する送信元のサーバで,このサーバが提供しなければならないサービスを実行するソフトウェアが稼働していない可能性が高い。他にも,このサーバに通信設定情報が何ら設定されていないなどの設定ミスが発生した可能性が高い。
第1のブロックA20aにおいてのみ存在する通信ログの有無を検出する具体的な処理を説明する。ミス検出部46は,図30の符号TE1aで示した2つの通信ログの中から,第1の検出処理で抽出した通信ログ以外の通信ログを抽出する。この抽出された通信ログは,第5の設定誤りの通信ログの一例であり,図32の通信ログTM11aである。通信ログTM11aは,送信元IPアドレスが"192.168.0.12",送信元ポート番号が"*****",送信先IPアドレスが"192.168.1.23",送信先ポート番号が"9002"を含む通信ログである。
この通信ログは,第1のブロックA20aにおいてのみ存在する通信ログである。
通知部47は,ミス検出部46が検出した通信ログに関連して設定ミスが発生したことを管理者に通知する。通知部47は,第2のブロックB20bにおいてこの通信ログに関連する通信を実行する送信元IPアドレス"192.168.0.12"が設定されたサーバでこのサーバが提供しなければならないサービスを実行するソフトウェアが稼働しているかを確認するように管理者に通知する。または,通知部47は,このサーバや,このサーバが実行するソフトウェアに設定されている通信用設定情報が正しいかを確認するように,管理者に通知する。
次に,第3の検出処理を説明する。ミス検出部46は,状態欄に"応答無し"が記憶されている,第2の設定ミス候補の通信ログを抽出する。"応答無し"の通信ログは,送信元サーバから,通信パケットを送信先サーバに送信したが,この通信パケットが送信先サーバに到達しなかった可能性が高い。その原因としては,例えば,送信元サーバと送信先サーバとの間におけるネットワーク上に設けられたファイヤーウォールが,前記した通信パケットをブロックした場合が考えられる。他にも,その原因としては,前記したネットワーク上に設けられたルータに設けられたルーティングテーブルの設定ミスが考えられる。
具体的には,ミス検出部46は,図30の符号TE1bで示した2つの通信ログの中から,状態欄に"応答無し"が記憶されている通信ログを抽出する。この抽出された通信ログは,図33の通信ログTM11bである。通信ログTM11bは,送信元IPアドレス"192.168.1.37",送信元ポート番号"*****",送信先IPアドレス"192.168.1.35",送信先ポート番号"9004"を含む。
状態欄に"応答無し"が記憶されている通信ログによれば,送信元IPアドレス"192.168.1.37"が設定された送信元サーバから送信先IPアドレス"192.168.1.35"が設定された送信先サーバのポート番号"9004"へ向けて送信された通信パケットが,ブロックされている可能性があると推定できる。
そこで,通知部47は,前記送信元サーバから前記送信先サーバへのネットワーク(通信経路)上に設置されているファイヤーウォールなどの設定が正しいか確認するように,管理者に通知する。
以上説明したように,本実施の形態の管理装置によれば,通信関連情報の設定ミスを自動検出し管理者に通知するだけでなく,その設定ミスの原因をも推定し管理者に通知している。従って,管理者は,設定ミスの特定,原因解析が容易になり,管理者の利便性が高まる。また,設定ミスの修正工程,修正時間も削減され,動作検証を迅速に終了できる。その結果,情報処理システムの利用者の利便性が向上するだけでなく,事業者の経済的利益をも向上する。
また,本実施の形態の管理装置は,サーバの通信ソフトが実行する通信処理で記録する通信ログのIPアドレス,ポート番号,通信状態を利用して,設定ミスの検出処理を実行している。
そのため,管理装置の他に,設定ミスの検出のため別途複雑なソフトウェアを導入する必要がなく,システムの複雑化や,システム構築のための費用増加を抑制できる。他にも,サーバ上で通信ログを記録するだけなので,サーバにおける処理負荷の増大を抑制できる。また,管理装置においても,通信ログを取得し,取得した通信ログに対して簡易な比較処理を実行しているだけなので,処理負荷の増大を抑制できる。
また,本実施の形態の管理装置は,通信ログの比較におけるマスタとなる通信ログを,動作中の第1のブロックA20aから取得している。そのため,管理装置は,通信ログの比較において,第1のブロックA20aの動作を中断することなく,第2のブロックB20bの動作検証が可能になる。そのため,第2のブロックB20bの動作検証中にも,第1のブロックA20aが動作して,クラウドシステムの利用者に対してサービスの提供を継続できる。
なお,管理装置4は,第1のブロックA20aのネットワークにおいて送受信される通信パケットのヘッダ情報から,通信の送信元および送信先を特定する特定情報を第1のブロックA20aの通信ログとして取得してもよい。同じく,管理装置4は,第2のブロックB20bのネットワークにおいて送受信される通信パケットのヘッダ情報から,通信の送信元および送信先を特定する特定情報を第2のブロックB20bの通信ログとして取得してもよい。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
第1の装置群と第2の装置群とが接続されたシステムにおける検索装置が実行する検索方法であって,
前記第1の装置群における装置間で実行された通信の送信元および送信先を特定する第1の履歴と,前記第2の装置群における装置間で実行された通信の送信元および送信先を特定する第2の履歴とを取得し,
前記第1の履歴と前記第2の履歴とを比較し,比較結果に基づき,同機能の装置である,前記第1の装置群における装置と前記第2の装置群における装置とを検索する
処理を実行することを特徴とする検索方法。
(付記2)
付記1において,
前記第1,第2の履歴は,前記通信の送信元の装置に設定された送信元IP(インターネットプロトコル)アドレスと,前記通信の送信先の装置に設定された送信先IPアドレスおよびポート番号とを含み,
前記比較において,前記第1の履歴のポート番号と前記第2の履歴のポート番号とを比較し,前記第1の履歴のポート番号と前記第2の履歴のポート番号とが一致するか判定し,
前記検索において,一致するポート番号を含む前記第1の履歴の送信元IPアドレス,送信先IPアドレスと,前記一致するポート番号を含む前記第2の履歴の送信元IPアドレス,送信先IPアドレスとに基づき,前記同機能の装置を検索する検索方法。
(付記3)
付記2において,
前記判定において,1以上の前記第1の履歴のポート番号および1以上の前記第2の履歴のポート番号の中で,一致するポート番号が1つあると判定した場合,
前記検索において,一致する前記ポート番号を含む前記第1の履歴の前記送信元IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信元IPアドレスが設定された装置とを同機能の装置として検索することを特徴とする検索方法。
(付記4)
付記2において,
前記判定において,1以上の前記第1の履歴のポート番号および1以上の前記第2の履歴のポート番号の中で,一致するポート番号が1つあると判定した場合,
前記検索において,一致する前記ポート番号を含む前記第1の履歴の前記送信先IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信先IPアドレスが設定された装置とを同機能の装置として検索することを特徴とする検索方法。
(付記5)
付記2において,
前記判定において,1以上の前記第1の履歴のポート番号および1以上の前記第2の履歴のポート番号の中で,一致するポート番号が1つあると判定した場合,
前記検索において,一致する前記ポート番号を含む前記第1の履歴の前記送信元IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信元IPアドレスが設定された装置とを同機能の装置として検索し,一致する前記ポート番号を含む前記第1の履歴の前記送信先IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信先IPアドレスが設定された装置とを同機能の装置として検索することを特徴とする検索方法。
(付記6)
付記5において,
前記判定において,さらに,
前記複数の前記第1の履歴を参照し,同機能の装置として検索された前記第1の装置群における装置が通信する通信先の複数の装置の中で,同機能の装置として検索されていない第1の装置が1つあるか判定し,
前記複数の前記第2の履歴を参照し,同機能の装置として検索された前記第2の装置群における装置が通信する通信先の複数の装置の中で,同機能の装置として検索されていない第2の装置が1つあるか判定し,
1つの前記第1の装置に設定されたIPアドレスを送信先IPアドレスとして含む前記第1の履歴のポート番号と,1つの前記第2の装置に設定されたIPアドレスを送信先IPアドレスとして含む前記第2の履歴のポート番号とが一致すると判定した場合,
前記検索において,さらに,前記1つの第1の装置と,前記1つの第2の装置とを同機能の装置として検索することを特徴とする検索方法。
(付記7)
付記6において,
前記判定において,さらに,
前記複数の第1の履歴の中から,前記第1の装置群において同機能の装置として検索された2つの装置にそれぞれ設定されたIPアドレスを送信元IPアドレスおよび送信先IPアドレスとして含む前記第1の履歴を除いた第1の除外履歴を抽出し,
前記複数の第2の履歴の中から,前記第2の装置群において同機能の装置として検索された2つの装置にそれぞれ設定されたIPアドレスを送信元IPアドレスおよび送信先IPアドレスとして含む前記第2の履歴を除いた第2の除外履歴を抽出し,
1以上の前記第1の除外履歴のポート番号および1以上の前記第2の除外履歴のポート番号の中で,一致するポート番号が1つあると判定した場合,
前記検索において,さらに,
一致する前記ポート番号を含む前記第1の履歴の前記送信元IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信元IPアドレスが設定された装置とを同機能の装置として検索し,一致する前記ポート番号を含む前記第1の履歴の前記送信先IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信先IPアドレスが設定された装置とを同機能の装置として検索することを特徴とする検索方法。
(付記8)
付記6において,
前記判定において,さらに,
前記複数の第1の履歴の中から,前記第1の装置群において同機能の装置として検索された装置に設定されたIPアドレスを送信元IPアドレスとして含む前記第1の履歴を除いた第1の除外履歴を抽出し,
前記複数の第2の履歴の中から,前記第2の装置群において同機能の装置として検索された装置に設定されたIPアドレスを送信元IPアドレスとして含む前記第2の履歴を除いた第2の除外履歴を抽出し,
1以上の前記第1の除外履歴のポート番号および1以上の前記第2の除外履歴のポート番号の中で,一致するポート番号が1つあると判定した場合,
前記検索において,さらに,
一致する前記ポート番号を含む前記第1の履歴の前記送信先IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信先IPアドレスが設定された装置とを同機能の装置として検索することを特徴とする検索方法。
(付記9)
付記6において,
前記判定において,さらに,
前記複数の第1の履歴の中から,前記第1の装置群において同機能の装置として検索された装置に設定されたIPアドレスを送信先IPアドレスとして含む前記第1の履歴を除いた第1の除外履歴を抽出し,
前記複数の第2の履歴の中から,前記第2の装置群において同機能の装置として検索された装置に設定されたIPアドレスを送信先IPアドレスとして含む前記第2の履歴を除いた第2の除外履歴を抽出し,
1以上の前記第1の除外履歴のポート番号および1以上の前記第2の除外履歴のポート番号の中で,一致するポート番号が1つあると判定した場合,
前記検索において,さらに,
一致する前記ポート番号を含む前記第1の履歴の前記送信元IPアドレスが設定された装置と,前記一致する前記ポート番号を含む前記第2の履歴の前記送信元IPアドレスが設定された装置とを同機能の装置として検索することを特徴とする検索方法。
(付記10)
付記3において,
前記判定において,さらに,
前記複数の前記第1の履歴を参照し,同機能の装置として検索された前記第1の装置群における装置が通信する通信先の複数の装置の中で,同機能の装置として検索されていない複数の第1の装置があるか判定し,
前記複数の前記第2の履歴を参照し,同機能の装置として検索された前記第2の装置群における装置が通信する通信先の複数の装置の中で,同機能の装置として検索されていない複数の第2の装置があるか判定し,
前記検索において,さらに,同機能の装置として検索されていない複数の第1の装置にそれぞれ設定されたポート番号と,同機能の装置として検索されていない複数の第2の装置にそれぞれ設定されたポート番号との類似度を算出し,類似度が最も高いポート番号を含む前記第1の履歴の前記送信先IPアドレスが設定された装置と,類似度が最も高いポート番号を含む前記第2の履歴の前記送信先IPアドレスが設定された装置とを同機能の装置として検索することを特徴とする検索方法。
(付記11)
付記1において,
さらに,同機能の,前記第1の装置群における装置に設定されたIPアドレスと前記第2の装置群における装置に設定されたIPアドレスとを対応付けて記憶装置に記憶することを特徴とする検索方法。
(付記12)
第1の装置群と第2の装置群とが接続されたシステムにおける検索装置であって,
前記第1の装置群における装置間で実行された通信の送信元および送信先を特定する第1の履歴と,前記第2の装置群における装置間で実行された通信の送信元および送信先を特定する第2の履歴とを記憶する記憶装置と,
前記第1の履歴と前記第2の履歴とを取得し,前記第1の履歴と前記第2の履歴とを比較し,比較結果に基づき,同機能の装置である,前記第1の装置群における装置と前記第2の装置群における装置とを検索する制御部とを有する
ことを特徴とする検索装置。
(付記13)
第1の装置群と第2の装置群とが接続されたシステムにおける検索装置が実行する検索プログラムであって,
前記検索プログラムは,
前記第1の装置群における装置間で実行された通信の送信元および送信先を特定する第1の履歴と,前記第2の装置群における装置間で実行された通信の送信元および送信先を特定する第2の履歴とを取得し,
前記第1の履歴と第2の履歴とを比較し,
比較結果に基づき,同機能の装置である,前記第1の装置群における装置と前記第2の装置群における装置とを検索する処理をコンピュータに実行させる
ことを特徴とする検索プログラム。