解析プログラム、解析装置および解析方法
【課題】システムの稼働状況の解析精度を向上させること。
【解決手段】受信手段1bは、端末装置3,4と情報処理装置2との間で送受信される通信情報を取得して記憶手段1aに格納する。抽出手段1cは、取得した通信情報が処理の中断要求5dである場合、記憶手段1aから中断要求5dにより中断される処理の実行要求5cを示す通信情報を抽出し、中断要求5dと実行要求5cとの組合せを示す中断ペア情報6を生成して記憶手段1aに格納する。解析手段1dは、記憶手段1aに記憶された中断ペア情報6,6a,・・・を用いて情報処理装置2による処理の実行状況を解析する。
【解決手段】受信手段1bは、端末装置3,4と情報処理装置2との間で送受信される通信情報を取得して記憶手段1aに格納する。抽出手段1cは、取得した通信情報が処理の中断要求5dである場合、記憶手段1aから中断要求5dにより中断される処理の実行要求5cを示す通信情報を抽出し、中断要求5dと実行要求5cとの組合せを示す中断ペア情報6を生成して記憶手段1aに格納する。解析手段1dは、記憶手段1aに記憶された中断ペア情報6,6a,・・・を用いて情報処理装置2による処理の実行状況を解析する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワークを介して送受信されるデータを解析する解析プログラム、解析装置および解析方法に関する。
【背景技術】
【0002】
従来、複数のコンピュータが階層的に処理を分担する情報処理システム(複数階層システムという)が利用されている。複数階層システムとして、例えばシステム利用のためのインタフェースを提供するWebサーバ、システム上の処理を実行するApp(Application)サーバおよびデータを管理するDB(Database)サーバを有する3階層システムが知られている。各サーバは、ユーザの利用する端末装置からの処理の実行要求に対して連携して処理を実行し、その実行要求に応答する。このように、各コンピュータに処理を分担させることで、システムの信頼性や応答性を向上できる。
【0003】
ここで、情報処理システムでは安定稼働を目的とした運用管理が行われる。例えば、対象のコンピュータでプログラムの稼働/停止の履歴を取得し、当該コンピュータの障害発生を検出する方法がある。
【0004】
また、多階層システムにおいて、サーバ間で送受信される実行要求および処理応答の組合せを取得し、取得した組合せから階層間を跨って実行されるトランザクションを組み立てることで、システムの稼働を監視する方法がある。
【0005】
ところで、複数階層システムなどのコンピュータシステムではシステムで実行中の処理が強制的に中断される場合がある。例えば、Webサーバが端末装置から処理の中断指示を受け付けた場合や端末装置のブラウザが閉じられた場合などである。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−202076号公報
【特許文献2】特開2006−011683号公報
【特許文献3】特開2007−304647号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の方法では、各サーバ間において実行要求と処理応答との組合せを抽出することを前提としており、処理が強制的に中断される場合を考慮していない。強制的に中断された処理が監視対象から外されていることは、監視に基づくシステムの稼働状況の解析精度劣化の原因となる。
【0008】
1つの側面では、本発明はシステムの稼働状況の解析精度を向上させることができる解析プログラム、解析装置および解析方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの案では、次の解析プログラムが提供される。この解析プログラムを実行するコンピュータは、複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納する。そして、取得した通信情報が処理の中断要求である場合、記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して記憶手段に格納する。更に、記憶手段に記憶された中断ペア情報を用いて情報処理装置による処理の実行状況を解析する。
【0010】
また、1つの案では、上記解析プログラムを実行するコンピュータと同様の機能を有する解析装置が提供される。
また、1つの案では、上記解析プログラムを実行するコンピュータと同様の処理を行う解析方法が提供される。
【発明の効果】
【0011】
システムの稼働状況の解析精度が向上する。
【図面の簡単な説明】
【0012】
【図1】第1の実施の形態に係る解析装置を示す図である。
【図2】第2の実施の形態の情報処理システムの全体構成を示す図である。
【図3】第2の実施の形態の解析装置のハードウェア構成を示す図である。
【図4】第2の実施の形態の解析装置の機能構成を示す図である。
【図5】メッセージの時間差を示す図である。
【図6】パケットのデータ構造例を示す図である。
【図7】復元メッセージの具体例を示す図である。
【図8】メッセージログ管理テーブルのデータ構造例を示す図である。
【図9】正常ペアテーブルのデータ構造例を示す図である。
【図10】正常系時間差テーブルのデータ構造例を示す図である。
【図11】中断ペアテーブルのデータ構造例を示す図である。
【図12】中断系時間差テーブルのデータ構造例を示す図である。
【図13】ペア抽出処理を示すフローチャートである。
【図14】第2の実施の形態の解析処理を示すフローチャートである。
【図15】第2の実施の形態の解析処理の具体例を示す図である。
【図16】第3の実施の形態のURL管理テーブルのデータ構造例を示す図である。
【図17】第3の実施の形態の解析処理を示すフローチャートである。
【図18】第3の実施の形態の解析処理の具体例を示す図である。
【図19】第4の実施の形態の中断回数テーブルのデータ構造例を示す図である。
【図20】第4の実施の形態の解析処理を示すフローチャートである。
【図21】第4の実施の形態の解析処理の具体例を示す第1の図である。
【図22】第4の実施の形態の解析処理の具体例を示す第2の図である。
【図23】第4の実施の形態の解析処理の具体例を示す第3の図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る解析装置を示す図である。解析装置1は、複数の情報処理装置が接続された情報処理システムにおいて、各情報処理装置の障害を検出する。当該情報処理システムには、情報処理装置2が含まれるとする。情報処理装置2は、端末装置3、4とネットワークを介して接続されている。
【0014】
解析装置1は、記憶手段1a、受信手段1b、抽出手段1cおよび解析手段1dを有する。
記憶手段1aは、情報処理システムにおける各情報処理装置間で送受信された通信情報(メッセージ)の履歴である通信履歴5を記憶する。通信履歴5には情報処理装置2と端末装置3との間で送受信された実行要求5a、処理応答5bが含まれる。また、通信履歴5には情報処理装置2と端末装置4との間で送受信された実行要求5cおよび中断要求5dが含まれる。
【0015】
実行要求5aは、端末装置3が情報処理装置2に送信した実行要求である。処理応答5bは、情報処理装置2が実行要求5aに応じた処理を実行した後、端末装置3に送信した処理応答である。実行要求5cは、端末装置4が情報処理装置2に送信した実行要求である。中断要求5dは、端末装置4が情報処理装置2に送信した、処理の中断要求である。
【0016】
ここで、通信履歴5には各メッセージにつき当該メッセージが関わる一連の処理を示す識別情報や各メッセージを取得した日時を示す情報が含まれる。
また、記憶手段1aは、抽出手段1cが抽出した中断ペア情報6,6a,・・・を記憶する。ここで、中断ペア情報とは、端末装置3が情報処理装置2に送信した実行要求と、それに対応する中断要求との組合せを示す情報である。
【0017】
受信手段1bは、メッセージを受信し、記憶手段1aに記憶された通信履歴5にメッセージ内容を記録する。また、受信手段1bは、受信したメッセージが中断要求である場合、その旨を抽出手段1cに通知する。
【0018】
抽出手段1cは、取得した通信情報が処理の中断要求である場合、記憶手段1aから中断要求により中断される処理の実行要求を示す通信情報を抽出する。例えば、抽出手段1cは、受信手段1bから中断要求5dを受信した旨の通知があると、記憶手段1aに記憶された通信履歴5を参照して、次の要件を満たす実行要求5cの情報を抽出する。
【0019】
(1)中断要求5dよりも前に、中断要求5dを送信した端末装置4が情報処理装置2に送信した実行要求である。
(2)その実行要求に対して情報処理装置2から端末装置4に処理応答が送信されていない。
【0020】
そして、抽出手段1cは、実行要求5cの情報と中断要求5dの情報との組合せである中断ペア情報6を記憶手段1aに格納する。
解析手段1dは、記憶手段1aに記憶された中断ペア情報6,6a,・・・を用いて情報処理装置2による処理の実行状況を解析する。
【0021】
解析装置1によれば、端末装置3,4と情報処理装置2との間で送受信される通信情報が取得されて記憶手段1aに格納される。そして、取得された通信情報が中断要求5dである場合、記憶手段1aから中断要求5dにより中断される処理の実行要求5cを示す通信情報が抽出され、中断要求5dと実行要求5cとの組合せを示す中断ペア情報6が生成されて記憶手段1aに格納される。更に、記憶手段1aに記憶された中断ペア情報6,6a,・・・を用いて情報処理装置2による処理の実行状況が解析される。
【0022】
このように、解析装置1は、実行要求5cと中断要求5dとの組合せを中断ペア情報6として記憶手段1aに記録する。このため、当該中断ペア情報6,6a,・・・を利用した情報処理システムの稼働監視が可能となる。
【0023】
例えば、解析手段1dは、通信履歴5から実行要求と処理応答との組合せを示す情報(正常ペア情報7,7a,・・・)も記憶手段1aに格納しておき、これと中断ペア情報6,6a,・・・とを比較できる。ここで、正常ペア情報7は、例えば実行要求5aと処理応答5bとの組合せである。このような組合せは、端末装置3,4と情報処理装置2との間でなされた各実行要求と各処理応答との時間の包含関係により取得できる。
【0024】
解析手段1dは、中断ペア情報6,6a,・・・と正常ペア情報7,7a,・・・とを用いて、各ペア情報に含まれるメッセージを取得した時間差の分布を比較することができる。例えば、中断ペア情報6に含まれる実行要求5cと中断要求5dとの時間差Taを取得する。他の中断ペア情報についても同様に時間差を取得して、中断系の時間差の頻度分布を算出する。一方、正常ペア情報7についても実行要求5aと処理応答5bとの時間差Tbを取得する。他の正常ペア情報についても同様に時間差を取得して、正常系の時間差の頻度分布を算出する。そして、例えば中断系の時間差分布と、正常系の時間差分布とを比較して、中断系の時間差分布が何れの時間差範囲に現れているかを監視する。これにより、情報処理装置2で発生した異常を検出できる。
【0025】
このような解析により異常検出が行えるのは、情報処理装置2の応答が遅延している場合に、端末装置3,4から中断要求の送信が行われることが多いためである。例えば、端末装置3,4を利用するユーザは、情報処理装置2が提供する画面内容を所定時間内に閲覧できない場合、端末装置3,4に中断要求を送信させることができる。
【0026】
また、解析装置1は中断ペア情報6,6a,・・・を情報処理システムに含まれる情報処理装置ごとに取得することができる。そして、情報処理装置ごとに取得した中断ペア情報に含まれるメッセージ間の時間差や中断ペア情報の発生頻度などを比較することで、各情報処理装置の異常検出を行うことができる。
【0027】
このように、解析装置1では、従来看過されていた各情報処理装置における処理中断の事象を稼働監視の対象に含める。これにより、情報処理システムの各情報処理装置の稼働状況の解析精度を向上できる。その結果、より正確な異常検知が可能となる。
【0028】
以下の実施の形態では、Web3階層システムに解析装置1を適用する場合を例に採り、更に具体的に説明する。
[第2の実施の形態]
以下、第2の実施の形態を図面を参照して詳細に説明する。
【0029】
図2は、第2の実施の形態の情報処理システムの全体構成を示す図である。この情報処理システムは、負荷分散装置10、スイッチ装置10a、端末装置21,22,23、解析装置100、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700を有する。負荷分散装置10、解析装置100、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700は、スイッチ装置10aを介して相互に接続されている。また、負荷分散装置10は、ネットワーク20を介して端末装置21,22,23に接続されている。
【0030】
負荷分散装置10は、Webサーバ200,300,400が提供するサービスのURL(Uniform Resource Locator)を端末装置21,22,23に提供する。負荷分散装置10は、このURLとWebサーバ200,300,400とを関連付ける。負荷分散装置10は、このURLに対するアクセスをWebサーバ200,300,400の各負荷が分散するように振り分ける。負荷分散の方法としては、例えばラウンドロビン、最小保有セッション数および最小処理時間等に応じた方法を適用できる。
【0031】
スイッチ装置10aは、負荷分散装置10、解析装置100、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700の間の通信を中継する。
【0032】
ネットワーク20は、イントラネットやインターネットの通信網である。
端末装置21,22,23は、ネットワーク20および負荷分散装置10を介してWebサーバ200,300,400にアクセス可能である。端末装置21,22,23のユーザは、Webサーバ200,300,400が提供するGUI(Graphical User Interface)を端末装置21,22,23上のブラウザから操作できる。これにより、ユーザは情報処理システムが提供するサービスを利用できる。
【0033】
ここで、端末装置21,22,23とWebサーバ200,300,400との間のメッセージ送受信は、HTTP(HyperText Transfer Protocol)によって行われるものとする。ただし、他のプロトコルが用いられてもよい。また、以下では、端末装置21,22,23がWebサーバ200,300,400へ送信する実行要求のメッセージを単にリクエストと称する。また、Webサーバ200,300,400が当該リクエストに対して端末装置21,22,23へ送信する処理応答のメッセージを単にレスポンスと称する。
【0034】
解析装置100は、Webサーバ200,300,400の異常を検出する。解析装置100は、そのための情報を負荷分散装置10から取得する。具体的には、スイッチ装置10aは、ポートミラーリング機能を有しており、負荷分散装置10とWebサーバ200,300,400との間で送受信されるパケットを解析装置100にも送信する。解析装置100は、スイッチ装置10aから送信されるパケットを受信して、記憶する。当該パケットで示される情報は、端末装置21,22,23がWebサーバ200,300,400に送信するリクエストおよびWebサーバ200,300,400が端末装置21,22,23に送信するレスポンスを含む。また、当該パケットで示される情報は、端末装置21,22,23がWebサーバ200,300,400に送信するRST(Reset)パケットを含む。
【0035】
ここで、RSTパケットは、端末装置21,22,23がWebサーバ200,300,400とのセッションを切断するために送信するパケットである。具体的には、RSTパケットはTCP(Transmission Control Protocol)ヘッダのRSTフラグがオンに設定されたパケットである。RSTパケットの送出によって、端末装置21,22,23とWebサーバ200,300,400との間のセッションは切断され、当該セッションを介して確立されたトランザクションも強制中断される。
【0036】
解析装置100は、端末装置21,22,23がWebサーバ200,300,400に送信したRSTパケットをメッセージの1つとして異常検出に用いる。具体的には、リクエストからRSTパケットが送信されるまでの時間に基づいて異常検出を行う。
【0037】
このようにして異常検出が行えるのは、Webサーバ200,300,400の応答が遅延している場合に端末装置21,22,23からRSTパケットの送信が行われることが多いためである。
【0038】
例えば、ユーザは、端末装置21,22,23のブラウザ上でシステムの応答画面の表示が遅延する場合、ブラウザに設けられた所定のボタン(例えば、中止や再読み込み)などを操作して、ブラウザにRSTパケットを送信させることが多い。あるいは、ブラウザの表示が遅延したことでユーザがブラウザを終了させ、RSTパケットが送信される場合もある。このため、リクエストからRSTパケットまでの時間を解析することで、各Webサーバの処理遅延に関する指標を得ることが可能となる。
【0039】
以下の説明では、このようにRSTパケットを解析して異常検出を行う解析装置100の機能を更に詳細に説明する。
ここで、以下の説明では各Webサーバという場合、Webサーバ200,300,400を示すものとする。また、各端末装置という場合、端末装置21,22,23を示すものとする。
【0040】
図3は、第2の実施の形態の解析装置のハードウェア構成を示す図である。解析装置100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
【0041】
CPU101は、解析装置100全体を制御する。
ROM102は、解析装置100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
【0042】
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
【0043】
HDD104は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD104はCPU101による処理に必要な各種データを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
【0044】
グラフィック処理装置105は、モニタ11と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ11の画面に表示させる。
入力インタフェース106は、キーボード12とマウス13と接続される。入力インタフェース106は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。
【0045】
記録媒体読取装置107は、記録媒体14に記憶されたデータを読み取る読取装置である。例えば、解析装置100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体14に記録して配布することができる。また、スイッチ装置10aに接続されたプログラム配信サーバ(図示せず)にそのプログラムを格納してもよい。この場合、解析装置100は、プログラム配信サーバからプログラムをダウンロードすることができる。
【0046】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0047】
通信インタフェース108は、TP(Twisted Pair)ケーブルや光ケーブル等によってスイッチ装置10aと接続される。通信インタフェース108は、スイッチ装置10aを介して他の情報処理装置とデータ通信する。また、通信インタフェース108は、各端末装置と各Webサーバとの間で送受信されるパケットをスイッチ装置10aから受信する。
【0048】
なお、各端末装置、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700も解析装置100と同様のハードウェア構成により実現できる。
図4は、第2の実施の形態の解析装置の機能構成を示す図である。解析装置100は、パケット記憶部110、メッセージログ記憶部120、正常ペア情報記憶部130、中断ペア情報記憶部140、制御情報記憶部150、パケット受信部160、メッセージ復元部170、ペア抽出部180、解析部190および報知部195を有する。これらの機能は、所定のプログラムをCPU101が実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0049】
パケット記憶部110は、パケット受信部160が受信したパケット情報を記憶する。
メッセージログ記憶部120は、メッセージ復元部170が生成したメッセージログを記憶する。ここで、メッセージログとは、パケット情報に基づいて生成されるものであり、各端末装置と各Webサーバとの間の通信履歴を表すものである。
【0050】
正常ペア情報記憶部130は、ペア抽出部180が生成した正常ペアに関する情報を記憶する。ここで、正常ペアとはメッセージログ記憶部120に記憶されたメッセージログに含まれる各メッセージのうち、各Webサーバで正常に終了したと考えられる処理に対応するメッセージの組である。正常ペアには、各端末装置が送信したリクエストと、当該リクエストに応じて各Webサーバが送信したレスポンスと、が含まれる。1つの正常終了処理につき1つの正常ペアが対応する。
【0051】
中断ペア情報記憶部140は、ペア抽出部180が生成した中断ペアに関する情報を記憶する。ここで、中断ペアとはメッセージログ記憶部120に記憶されたメッセージログに含まれる各メッセージのうち、各Webサーバにおいてセッション切断により途中で中断されたと考えられる処理に対応するメッセージの組である。中断ペアには、各端末装置が送信したリクエストと、各端末装置が送信したRSTパケットと、が含まれる。1つの中断処理につき1つの中断ペアが対応する。
【0052】
制御情報記憶部150は、解析部190が解析処理に用いる制御情報を記憶する。
パケット受信部160は、負荷分散装置10を介して送受信されるパケットを負荷分散装置10から受信する。パケット受信部160は、受信したパケットをパケット情報としてパケット記憶部110に格納する。パケット受信部160は、例えば情報処理システムが稼働している間、パケットを取得し続ける。
【0053】
メッセージ復元部170は、パケット記憶部110に記憶されたパケット情報に基づいて、パケット情報に含まれるメッセージを復元する。そして、メッセージ復元部170は、復元したメッセージによりメッセージログを生成し、メッセージログ記憶部120に格納する。
【0054】
ペア抽出部180は、メッセージログ記憶部120に記憶されたメッセージログを参照して正常ペアを抽出し、当該正常ペアを示す情報を正常ペア情報記憶部130に格納する。更に、ペア抽出部180は、正常ペアを示す情報を参照して正常ペアに含まれる各メッセージの時間差を算出する。ペア抽出部180は、当該時間差の算出結果に基づいて各正常ペアと時間差とを対応付けた正常系時間差情報を生成し、正常ペア情報記憶部130に格納する。
【0055】
また、ペア抽出部180は、メッセージログを参照して中断ペアを抽出し、当該中断ペアを示す情報を中断ペア情報記憶部140に格納する。更に、ペア抽出部180は、中断ペアを示す情報を参照して中断ペアに含まれる各メッセージの時間差を算出する。ペア抽出部180は、当該時間差の算出結果に基づいて各中断ペアと時間差とを対応付けた中断系時間差情報を生成し、中断ペア情報記憶部140に格納する。
【0056】
解析部190は、正常ペア情報記憶部130に記憶された正常系時間差情報に基づいて、正常系時間差分布を算出する。解析部190は、中断ペア情報記憶部140に記憶された中断系時間差情報に基づいて、中断系時間差分布を算出する。解析部190は、正常系時間差分布と中断系時間差分布とを比較して、各Webサーバの異常を検出する。比較に用いる基準の情報は、制御情報記憶部150に予め記憶される。解析部190は、制御情報記憶部150に記憶された基準に基づいて、正常系時間差分布と中断系時間差分布との比較を行い、基準に適合するか否かによって異常の有無を検出できる。
【0057】
解析部190は、異常を検出した場合、該当するWebサーバを示す情報を報知部195に出力する。
報知部195は、解析部190から取得したWebサーバにつき異常が発生している旨を報知する。報知部195は、例えば情報処理システムの管理者に電子メールを送信する、運用管理用ログに当該異常を記録する、アラームランプやスピーカを鳴動させる、などの方法により、異常を報知する。
【0058】
次に、メッセージの時間差について説明する。なお、以下の説明では端末装置21とWebサーバ200との間で送受信されるメッセージに関して説明するが、他の端末装置と他のWebサーバとの間で送受信されるメッセージに関しても同様である。
【0059】
図5は、メッセージの時間差を示す図である。図5(A)は正常系時間差T1を例示している。図5(B)は中断系時間差T2を例示している。図5(C)は正常系、中断系の何れにも該当しない場合を例示している。
【0060】
図5(A)では、リクエストメッセージR11およびレスポンスメッセージR12が示されている。リクエストメッセージR11は、端末装置21がWebサーバ200へ送信するリクエストである。リクエストメッセージR11は複数のリクエストパケットにより構成される。レスポンスメッセージR12は、Webサーバ200がリクエストメッセージR11に対して端末装置21に応答するレスポンスである。レスポンスメッセージR12は複数のレスポンスパケットにより構成される。
【0061】
ここで、正常系時間差T1は、リクエストメッセージR11とレスポンスメッセージR12との時間差である。具体的には、リクエストメッセージR11を構成する最後のパケットを取得した時刻とレスポンスメッセージR12を構成する最初のパケットを取得した時刻との差である。解析装置100は、リクエストメッセージR11に対応するレスポンスメッセージR12が存在する場合、両メッセージR11,R12の時間差により当該正常ペアに対する正常系時間差T1を算出する。正常系時間差T1は、リクエストメッセージR11によりWebサーバ200で実行された処理の開始から完了までの実行時間に対応付けることができる。
【0062】
図5(B)では、リクエストメッセージR21およびRSTパケットP1が示されている。リクエストメッセージR21はリクエストメッセージR11に対応する。RSTパケットP1は、端末装置21がWebサーバ200へ送信するセッション切断用のパケットである。端末装置21がRSTパケットP1を送信すると、端末装置21とWebサーバ200との間のセッションが強制的に切断される。これにより、Webサーバ200において当該セッションを介して確立されていたトランザクションが中断される。
【0063】
ここで、中断系時間差T2は、リクエストメッセージR21とRSTパケットP1との時間差である。具体的には、中断系時間差T2は、リクエストメッセージR21を構成する最後のパケットを取得した時刻とRSTパケットP1を取得した時刻との差である。解析装置100は、リクエストメッセージR21に対応するレスポンスメッセージが存在せず、RSTパケットP1が存在する場合、両メッセージR21,P1の時間差により当該中断ペアに対する中断系時間差T2を算出する。なお、上述の理由から、中断系時間差T2は、リクエストメッセージR21によりWebサーバ200で実行中であった処理の開始から中断までの実行時間に対応付けることができる。
【0064】
図5(C)では、リクエストメッセージR31、レスポンスメッセージR32およびRSTパケットP2が示されている。リクエストメッセージR31はリクエストメッセージR11に対応する。レスポンスメッセージR32は、Webサーバ200がリクエストメッセージR31に対して端末装置21に応答するレスポンスの一部である。RSTパケットP2は、レスポンスメッセージR32の送信中に端末装置21がWebサーバ200へ送信するセッション切断用のパケットである。
【0065】
このように、Webサーバ200は、レスポンスメッセージR32の送信中に端末装置21からRSTパケットP2を受信することもある。この場合、解析装置100はレスポンスメッセージR32を取得できないため、解析処理の対象外とする。なぜなら、解析装置100はレスポンスメッセージR32を組み立てるためのパケットを完全に取得できず、当該メッセージにつきメッセージの復元を行うことはできないからである。従って、この場合には、レスポンスメッセージR32およびRSTパケットP2に関しては、メッセージの復元を行わないこととする。このように不完全な情報を解析対象から除外することで、異常を誤検出する可能性を低減でき、稼働監視の精度を一層向上できる。
【0066】
次に、解析装置100の処理に用いるデータ構造例を説明する。
図6は、パケットのデータ構造例を示す図である。パケット保存ファイル111は、パケット受信部160により収集されたパケットを格納したファイルである。パケット保存ファイル111には、パケット受信部160がパケットを受信するたびに新たに受信したパケットの情報が追加される。パケット保存ファイル111は、例えばバイナリ形式のファイルである。
【0067】
パケット保存ファイル111は、受信日時格納部111aおよびパケットデータ格納部111bを有する。
受信日時格納部111aは、パケットデータ格納部111bに格納するパケットを受信した日時を設定する領域である。パケット受信部160は、当該パケットを受信したときのタイムスタンプ(例えば、年月日時分秒を示す情報)を受信日時格納部111aに格納する。
【0068】
パケットデータ格納部111bは、パケット受信部160が受信したパケットの本体を格納する領域である。
メッセージ復元部170は、パケット記憶部110に記憶されたパケット保存ファイル111に基づいて、各Webサーバで送受信されたメッセージを復元する。
【0069】
図7は、復元メッセージの具体例を示す図である。復元メッセージ121は、メッセージ復元部170によりパケット記憶部110に記憶されたパケット保存ファイル111に基づいて生成され、メッセージログ記憶部120に格納される。復元メッセージ121は、後述するメッセージログ管理テーブルを生成するためのデータである。なお、復元メッセージ121では、以降の説明に適合する内容のみを記載しており、それ以外のメッセージに関しては図示を省略している。
【0070】
復元メッセージ121の各行には、時間フィールド121a、アドレスフィールド121bおよびプロトコルフィールド121cが含まれる。
時間フィールド121aは、当該メッセージに対応するパケットを受信した時間(例えば、年月日時分秒)を示すフィールドである。時間フィールド121aには、例えばマイクロ秒単位で時間が設定される。ここで、時間フィールド121aに設定される時間は、パケット記憶部110に記憶されたパケット保存ファイル111の受信日時格納部111aの領域を参照して取得できる。具体的には、そのメッセージがリクエストの場合、パケット保存ファイル111中、そのメッセージを示す複数のパケットのうちの最後のパケットの受信日時とする。また、そのメッセージがレスポンスの場合、パケット保存ファイル111中、そのメッセージを示す複数のパケットのうちの最初のパケットの受信日時とする。
【0071】
アドレスフィールド121bは、当該メッセージの送信元および送信先のコンピュータのIP(Internet Protocol)アドレスおよびポート番号を示すフィールドである。
プロトコルフィールド121cは、メッセージのリクエスト/レスポンス種別やプロトコルなどを示すフィールドである。
【0072】
以下、復元メッセージ121に便宜的に付した行番号を示して説明する。
例えば、行番号1では、時間フィールド121aに“2010/05/21 13:00:00.000000”という情報が設定されている。これは、当該時間に行番号1のメッセージを受信したことを示している。
【0073】
また、例えば行番号1では、アドレスフィールド121bに“1.2.3.4:1234 −> 10.0.0.11:80”という情報が設定されている。これは、端末装置21(IPアドレスを“1.2.3.4”とする)のポート番号“1234”から、Webサーバ200(IPアドレスを“10.0.0.11”とする)のポート番号“80”に対してメッセージ送信が行われたことを示す。なお、“アドレスA−>アドレスB”の記号は、Aで示される装置からBで示される装置へのメッセージ送信、“アドレスA<−アドレスB”の記号はBで示される装置からAで示される装置へのメッセージ送信を示す。
【0074】
また、例えば、行番号1では、プロトコルフィールド121cに“TCP Connect”という情報が設定されている。これは、当該メッセージがTCPのセッション確立用のメッセージであることを示している。
【0075】
ここで、行番号2,3は、図5(A)の場合に対応する。すなわち、行番号2のメッセージはリクエストメッセージR11に対応する。また、行番号3のメッセージはレスポンスメッセージR12に対応する。
【0076】
行番号12,13は、図5(B)の場合に対応する。すなわち、行番号12のメッセージはリクエストメッセージR21に対応する。また、行番号13のメッセージはRSTパケットP1に対応する。ここで、IPアドレス“1.2.3.5”は、端末装置22のIPアドレスである。
【0077】
図8は、メッセージログ管理テーブルのデータ構造例を示す図である。メッセージログ管理テーブル122は、メッセージ復元部170によって生成され、メッセージログ記憶部120に格納される。メッセージログ管理テーブル122には、項番、日時、メッセージID(IDentifier)、クライアント、サーバ、種別、プロトコルおよびメッセージの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのメッセージに関する情報を示す。
【0078】
項番には、レコードを識別するための識別番号が設定される。日時には、当該メッセージを受信した時間が設定される。メッセージIDには、当該メッセージが関連する一連の処理を識別するための識別情報が設定される。
【0079】
ここで、メッセージIDには、“xxxx”、“xxxx−y”と表記されているものがある。以下では、“xxxx”の部分をセッション識別部と称する。セッション識別部は、TCPにより確立されたセッションを識別する識別情報である。また、“y”の部分をトランザクション識別部と称する。トランザクション識別部は、当該セッションを介して各Webサーバ上で確立されたトランザクションを識別する識別情報である。
【0080】
クライアントには、各端末装置のIPアドレスおよびポート番号が設定される。サーバには、各WebサーバのIPアドレスおよびポート番号が設定される。種別には、リクエストおよびレスポンスの何れかを示す情報が設定される。プロトコルには、TCPやHTTPなどのプロトコルを示す情報が設定される。メッセージには、当該プロトコルで送信されたメッセージの内容が設定される。
【0081】
メッセージログ管理テーブル122には、例えば、項番が“1001”、日時が“2010/5/21 13:00:00.000000”、メッセージIDが“1234”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、種別が“−”、プロトコルが“TCP”、メッセージが“Connect”という情報が設定される。
【0082】
この項番“1001”のレコードは、復元メッセージ121の行番号“1”のメッセージに対応する。メッセージ復元部170は、当該メッセージにメッセージID“1234”を付与してメッセージログ管理テーブル122に登録している。
【0083】
また、メッセージログ管理テーブル122には、例えば、項番が“1002”、日時が“2010/5/21 13:00:00.000001”、メッセージIDが“1234−1”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、種別が“Request”、プロトコルが“HTTP”、メッセージが“GET/index.html”という情報が設定される。
【0084】
この項番“1002”のレコードは、復元メッセージ121の行番号“2”のメッセージに対応する。メッセージ復元部170は、当該メッセージにメッセージID“1234−1”を付与してメッセージログ管理テーブル122に登録している。ここで、メッセージID“1234−1”のセッション識別部“1234”は、項番“1001”のレコードと同一である。これは、項番“1001”で示されるTCPのパケットによって確立されたセッションを介して、項番“1002”で示されるHTTPのメッセージが送信されていることを示す。
【0085】
なお、同一クライアント・サーバの組においてTCPの“Connect”、“Close”は同一のメッセージID(この場合、セッション識別部のみとなる)を設定する。更に、同一クライアント・サーバの組においてTCPの“Connect”、“Reset”は同一のメッセージID(この場合も、セッション識別部のみとなる)を設定する。
【0086】
また、項番“1003”のレコードは、メッセージIDが“1234−1”であり項番“1002”のレコードのメッセージIDと同一である。これは、当該項番“1003”のレコードが示すレスポンスが、項番“1002”のレコードが示すリクエストに対応するレスポンスであり、同一トランザクションに係るメッセージであることを示している。
【0087】
このように、解析装置100は、同一のクライアント・サーバの組につき、リクエスト、レスポンスの順で送受信された各メッセージに同一のメッセージIDを付与する。これにより、Webサーバ200上の処理に対してなされたリクエストとレスポンスとの組合せを明確に管理できる。
【0088】
なお、項番“1022”〜“1025”のレコードに示されるように、端末装置21からWebサーバ200に対して複数のリクエストが送信されることもある。
解析装置100は、このような場合を想定して次のようにメッセージIDを付与すればよい。すなわち、解析装置100が先に受信したリクエストにメッセージID(“3235−1”)を付与後、次に受信したリクエストにそれとは異なるメッセージID(“3235−2”)を付与する。本例では、トランザクション識別部をインクリメントしている。また、解析装置100が先に受信したレスポンスに先に受信したリクエストに付与したメッセージID(“3235−1”)を付与し、次に受信したレスポンスに次のメッセージID(“3235−2”)を付与する。
【0089】
このようすれば、端末装置21からWebサーバ200に対して複数のリクエストが送信されてもリクエストとそれに対するレスポンスとの組合せを適正に管理できる。ここで、このようにして、リクエストとレスポンスとの組合せを管理できるのは、Webサーバ200で実行される処理が、一般に、受信したリクエストの順に行われることによる。すなわち、先に送信したリクエストに対するレスポンスが先に応答されるのが一般的だからである。
【0090】
ここで、メッセージログ管理テーブル122において、項番“1001”〜“1004”のレコードは復元メッセージ121の行番号“1”〜“4”のメッセージにそれぞれ対応する。また、項番“1011”〜“1013”のレコードは復元メッセージ121の行番号“11”〜“13”のメッセージにそれぞれ対応する。また、項番“1021”〜“1026”のレコードは復元メッセージ121の行番号“21”〜“26”のメッセージにそれぞれ対応する。
【0091】
図9は、正常ペアテーブルのデータ構造例を示す図である。正常ペアテーブル131は、ペア抽出部180により生成され、正常ペア情報記憶部130に格納される。ペア抽出部180は、メッセージログ管理テーブル122のメッセージID、種別およびプロトコルを参照し、同一メッセージID、プロトコル“HTTP”、種別が“Request”、“Response”の対になっているものを正常ペアとして抽出する。なお、プロトコルが“TCP”であるものは、正常ペアの選択対象に含めないものとする。各Webサーバの処理時間をHTTPの処理単位で解析するためである。
【0092】
正常ペアテーブル131には、項番、リクエスト日時、レスポンス日時、メッセージID、クライアント、サーバ、プロトコル、リクエストおよびレスポンスの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの正常ペアに関する情報を示す。
【0093】
項番には、レコードを識別するための識別番号が設定される。リクエスト日時には、正常ペアのうちリクエストに対応するメッセージを受信した時間が設定される。レスポンス日時には、正常ペアのうちレスポンスに対応するメッセージを受信した時間が設定される。メッセージIDには、当該レコードに対応する処理のメッセージIDが設定される。クライアントには、各端末装置のIPアドレスおよびポート番号が設定される。サーバには、各WebサーバのIPアドレスおよびポート番号が設定される。プロトコルには、プロトコルを示す情報が設定される。リクエストには、リクエストの内容を示す情報が設定される。レスポンスには、レスポンスの内容を示す情報が設定される。
【0094】
正常ペアテーブル131には、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:00.000001”、レスポンス日時が“2010/5/21 13:00:00.001001”、メッセージIDが“1234−1”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、リクエストが“GET/index.html”、レスポンスが“200”という情報が設定される。
【0095】
この正常ペアテーブル131の項番“1001”のレコードは、メッセージログ管理テーブル122における項番“1002”,“1003”のレコードが示すリクエスト、レスポンスの正常ペアを示す。
【0096】
同様に、正常ペアテーブル131の項番“1021”のレコードは、メッセージログ管理テーブル122における項番“1022”,“1023”のレコードが示すリクエスト、レスポンスの正常ペアを示す。また、正常ペアテーブル131の項番“1022”のレコードは、メッセージログ管理テーブル122における項番“1024”,“1025”のレコードが示すリクエスト、レスポンスの正常ペアを示す。
【0097】
図10は、正常系時間差テーブルのデータ構造例を示す図である。正常系時間差テーブル131aは、ペア抽出部180により生成され正常ペア情報記憶部130に格納される。正常系時間差テーブル131aには、項番、リクエスト日時、レスポンス日時、メッセージID、クライアント、サーバ、プロトコルおよび時間差の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの正常ペアに関する情報を示す。
【0098】
ここで、項番、リクエスト日時、レスポンス日時、メッセージID、クライアント、サーバおよびプロトコルの項目に設定される情報は、正常ペアテーブル131と同様であるため説明を省略する。
【0099】
時間差には、リクエスト日時とレスポンス日時との差が設定される。
正常系時間差テーブル131aには、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:00.000001”、レスポンス日時が“2010/5/21 13:00:00.001001”、メッセージIDが“1234−1”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、時間差が“0.001000”(秒)という情報が設定される。これは、当該項番“1001”のレコードに対応する正常ペアにつき、リクエストとレスポンスとの時間差が“0.001000”秒であることを示している。この時間差は、リクエスト日時に設定された時間とレスポンス日時に設定された時間との差により算出できる。この時間差は、Webサーバ200における処理時間(または、Webサーバ200、APサーバ500,600およびDBサーバ700による一連の処理時間)に対応付けることができる。
【0100】
図11は、中断ペアテーブルのデータ構造例を示す図である。中断ペアテーブル141は、ペア抽出部180により生成され、中断ペア情報記憶部140に格納される。ペア抽出部180は、RSTパケットが受信された場合に、メッセージログ管理テーブル122を参照して、メッセージIDのセッション識別部がRSTパケットと同一で、対になるレスポンスのないリクエストを検出する。そして、そのリクエストと当該RSTパケットとを中断ペアとして抽出する。
【0101】
中断ペアテーブル141には、項番、リクエスト日時、中断日時、メッセージID、クライアント、サーバ、プロトコル、リクエストおよびメッセージの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの中断ペアに関する情報を示す。
【0102】
ここで、項番、リクエスト日時、メッセージID、クライアント、サーバ、プロトコル、リクエストの項目に設定されるデータの内容は、正常ペアテーブル131と同様であるため、説明を省略する。
【0103】
中断日時にはRSTパケットを受信した時間が設定される。メッセージには、当該パケットのRSTフラグがオンであることを示す“Reset”が設定される。
中断ペアテーブル141には、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:01.000001”、レスポンス日時が“2010/5/21 13:00:31.000001”、メッセージIDが“2234−1”、クライアントが“1.2.3.5:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、リクエストが“GET/index.html”、メッセージが“Reset”という情報が設定される。
【0104】
この中断ペアテーブル141の項番“1001”のレコードは、メッセージログ管理テーブル122における項番“1012”,“1013”のレコードが示すリクエスト、RSTパケットの中断ペアを示す。
【0105】
図12は、中断系時間差テーブルのデータ構造例を示す図である。中断系時間差テーブル141aは、ペア抽出部180により生成され中断ペア情報記憶部140に格納される。中断系時間差テーブル141aには、項番、リクエスト日時、中断日時、メッセージID、クライアント、サーバ、プロトコルおよび時間差を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの中断ペアに関する情報を示す。
【0106】
ここで、項番、リクエスト日時、中断日時、メッセージID、クライアント、サーバ、プロトコルの項目に設定されるデータの内容は、中断ペアテーブル141と同様であるため、説明を省略する。
【0107】
時間差には、リクエスト日時と中断日時との差が設定される。
中断系時間差テーブル141aには、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:01.000001”、レスポンス日時が“2010/5/21 13:00:31.000001”、メッセージIDが“2234−1”、クライアントが“1.2.3.5:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、時間差が“30.000000”(秒)という情報が設定される。これは、当該項番“1001”のレコードに対応する中断ペアにつき、リクエストとRSTパケットとの時間差が“30.000000”秒であることを示している。この時間差は、リクエスト日時に設定された時間と中断日時に設定された時間との差により算出できる。この時間差は、Webサーバ200における中断までの処理時間(または、Webサーバ200、APサーバ500,600およびDBサーバ700による一連の処理時間)に対応付けることができる。
【0108】
次に、解析装置100の処理手順を説明する。
図13は、ペア抽出処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0109】
[ステップS11]パケット受信部160は、負荷分散装置10からパケットを受信する。パケット受信部160は、受信したパケットに受信日時を付加してパケット保存ファイル111に追加し、パケット記憶部110に格納する。
【0110】
[ステップS12]メッセージ復元部170は、パケット記憶部110を参照して新たに受信したパケットのRSTフラグがオンであるか否か、すなわちRSTパケットであるか否かを判定する。RSTパケットである場合、処理をステップS13に進める。RSTパケットでない場合、処理をステップS16に進める。
【0111】
[ステップS13]メッセージ復元部170は、メッセージログ管理テーブル122を参照して、RSTパケットの送信元の端末装置が過去に送信したリクエストで、対になるレスポンスのないものが存在するか否かを判定する。存在する場合、処理をステップS14に進める。存在しない場合、処理をステップS16に進める。
【0112】
例えば、復元メッセージ121の行番号13に対応するRSTパケットを端末装置21から受信したとする。この場合、当該RSTパケットよりも以前に端末装置21が送信したリクエストで、レスポンスの存在しないものとして行番号12のリクエストが存在する。この場合、メッセージ復元部170は、対になるレスポンスがないリクエストが存在すると判定する。
【0113】
なお、対になるレスポンスが現在パケットを蓄積して組み立て中である場合、そのレスポンスも含めてリクエスト・レスポンスの組の存在を判定するものとする。例えば、図5(C)のように組み立て中のレスポンスメッセージR32を考慮して、対になるレスポンスのないリクエストが存在しない場合、処理をステップS16に進める。
【0114】
[ステップS14]メッセージ復元部170は、受信パケットがRSTパケットである旨を示すメッセージを生成し、メッセージログ記憶部120に記憶されたメッセージログ管理テーブル122に登録する。例えば、メッセージログ管理テーブル122の項番“1013”のレコードが対応する。
【0115】
[ステップS15]ペア抽出部180は、RSTパケットを示すメッセージと、ステップS13で検出した対になるレスポンスのないリクエストと、を中断ペアとして抽出し、中断ペア情報記憶部140に記憶された中断ペアテーブル141に登録する。例えば、メッセージログ管理テーブル122の項番“1012”のリクエストおよび項番“1013”のRSTパケットを中断ペアとして抽出する。これは、中断ペアテーブル141の項番“1001”のレコードに対応する。そして、処理をステップS21に進める。
【0116】
[ステップS16]メッセージ復元部170は、新たに受信したパケットと受信済みのパケットによりメッセージの組み立てを試みる。
なお、メッセージ復元部170は、各端末装置と各Webサーバとの間のレスポンスの組み立て途中にRSTパケットが受信されて組み立てが中断された場合には、当該組み立て中のレスポンスと受信したRSTパケットとを破棄する。
【0117】
[ステップS17]メッセージ復元部170は、受信したパケットによりメッセージを復元できたか否かを判定する。メッセージを復元できた場合、処理をステップS18に進める。メッセージを復元していない場合、次のパケット受信を待機して処理を完了する。
【0118】
[ステップS18]メッセージ復元部170は、新たに復元したメッセージをメッセージログ管理テーブル122に登録する。
[ステップS19]ペア抽出部180は、メッセージログ管理テーブル122を参照して、登録されたメッセージがレスポンスであるか否かを判定する。レスポンスである場合、処理をステップS20に進める。レスポンスでない場合、処理を完了する。
【0119】
[ステップS20]ペア抽出部180は、当該レスポンスと同一のメッセージIDであるリクエストとを正常ペアとして抽出し、正常ペア情報記憶部130に記憶された正常ペアテーブル131に登録する。例えば、メッセージログ管理テーブル122の項番“1002”のリクエストおよび項番“1003”のレスポンスを正常ペアとして抽出する。これは、正常ペアテーブル131の項番“1001”のレコードに対応する。
【0120】
[ステップS21]ペア抽出部180は、新たに抽出した正常ペアまたは中断ペアについて、時間差を算出する。ペア抽出部180は、算出した時間差を正常系時間差テーブル131aまたは中断系時間差テーブル141aに登録する。
【0121】
このようにして、ペア抽出部180は、メッセージログ管理テーブル122に基づいて正常ペアおよび中断ペアを抽出する。更に、正常ペアの各メッセージについて、リクエストとレスポンスとの時間差T1を算出し、正常系時間差テーブル131aを生成する。また、中断ペアの各メッセージについて、リクエストとRSTパケットとの時間差T2を算出し、中断系時間差テーブル141aを生成する。
【0122】
解析部190は、これらの情報に基づいて、各Webサーバの異常を検出することができる。次に、そのための解析処理について説明する。なお、以下の処理は所定の周期で開始される。あるいは、例えばシステム管理者の所定の操作を受け付けた際に実行してもよい。
【0123】
図14は、第2の実施の形態の解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS31]解析部190は、正常ペア情報記憶部130に記憶された正常系時間差テーブル131aを取得する。
【0124】
[ステップS32]解析部190は、中断ペア情報記憶部140に記憶された中断系時間差テーブル141aを取得する。
[ステップS33]解析部190は、解析対象とするWebサーバを選択する。例えば、RSTパケットを送信されたWebサーバを解析対象とする。また、例えば、受け付けたURLに対応付けられた各Webサーバのうちの1つを順次選択して解析対象としてもよい。
【0125】
[ステップS34]解析部190は、正常系時間差テーブル131aに基づいて、選択したWebサーバにつき時間差T1の頻度分布(正常系時間差分布)を算出する。また、解析部190は、中断系時間差テーブル141aに基づいて、選択したWebサーバにつき時間差T2の頻度分布(中断系時間差分布)を算出する。なお、解析部190は、正常系時間差テーブル131aおよび中断系時間差テーブル141aのサーバの項目に設定されたIPアドレスにより、対象のWebサーバの時間差情報を適切に参照できる。
【0126】
[ステップS35]解析部190は、正常系時間差分布について、時間差0から所定パーセンタイル(Xパーセンタイルとする)となる時間差の値S1を取得する。ここで、Xはシステムの運用状況によって適宜決定できる。例えば、X=90とする。Xの値は、制御情報記憶部150に予め格納されており、解析部190はこれを参照できる。
【0127】
[ステップS36]解析部190は、中断系時間差分布について次の判定値S2を求める。
S2=(中断系時間差分布の平均値)+定数P
ここで、定数Pは、システムの運用状況によって適宜決定できる。例えば、P=α×(中断系時間差分布の標準偏差)とすることができる。ただし、係数αは、−1以上1以下の実数である。αの値は、例えば制御情報記憶部150に予め格納されており、解析部190はこれを参照できる。また、中断系時間差分布の平均値に代えて、当該分布について定まる他の基準値を用いても構わない。例えば、中央値、最頻値などを用いてもよい。
【0128】
[ステップS37]解析部190は、S1≦S2であるか否かを判定する。S1≦S2である場合、処理をステップS38に進める。S1>S2である場合、処理を完了する。ここで、S1≦S2は正常系時間差分布に比して、中断系時間差分布に含まれる時間差の値が同じ、または、大きいことを示している。一方、S1>S2は正常系時間差分布に比して、中断系時間差分布に含まれる時間差の値が許容範囲であることを示している。
【0129】
[ステップS38]解析部190は、報知部195に解析対象としたWebサーバについて異常が発生した旨を通知する。報知部195は、この通知に基づいて、当該Webサーバの異常を報知する。報知部195は、例えば情報処理システムの管理者に電子メールを送信する、運用管理用ログに当該異常を記録する、アラームランプやスピーカを鳴動させる、などの方法により、異常を報知する。
【0130】
[ステップS39]解析部190は、他に解析対象とするWebサーバが存在するか否かを判定する。存在する場合、処理をステップS33に進める。存在しない場合、処理を完了する。
【0131】
このようにして、解析部190は、正常系時間差分布および中断系時間差分布により、各Webサーバの異常を検出できる。次に上記解析処理の具体例を説明する。
図15は、第2の実施の形態の解析処理の具体例を示す図である。図15(A)に示すグラフ810は正常時の時間差分布を例示している。図15(B)に示すグラフ820は異常時の時間差分布を例示している。なお、以下の説明において、X=90(パーセンタイル)、P=α×(中断系時間差分布の標準偏差)、α=+1である旨が制御情報記憶部150に予め格納されているものとする。
【0132】
図15(A)のグラフ810には、正常系時間差分布811および中断系時間差分布812が示されている。正常系時間差分布811では、90パーセンタイルとなる時間差S1は、9.4秒であるとする。また、中断系時間差分布812では、S2値が4.8秒であるとする。すると、S1>S2であるので、解析部190はこの状態を異常と判定しない。
【0133】
この場合を異常と判定しないのは、RSTパケットの送信にWebサーバ側の遅延が反映されないことが多いためである。具体的には、ユーザがリンク選択を誤った、データの選択を誤った、などの場合が考えられる。すなわち、このような場合にはユーザが自己の誤操作を認識でき、即座にブラウザにRSTパケットの送信を行わせて、誤操作をキャンセルすることが多いためである。
【0134】
図15(B)のグラフ820には、正常系時間差分布821および中断系時間差分布822が示されている。正常系時間差分布821では、90パーセンタイルとなる時間差S1は、9.4秒であるとする。また、中断系時間差分布822では、S2値が9.8秒であるとする。すると、S1≦S2であるので、解析部190はこの状態を異常と判定する。そして、報知部195に異常を報知させる。
【0135】
このように、解析装置100は、負荷分散装置10から受信したパケットに基づいて各Webサーバの異常を検出する。
このように、解析装置100は、従来看過されていた各Webサーバにおける処理中断の事象を稼働監視の対象に含める。これにより、各Webサーバの稼働監視の精度を向上できる。その結果、より正確な異常検知が可能となる。
【0136】
また、解析装置100は、各Webサーバがレスポンスを送信している途中にRSTパケットを受信した場合、当該レスポンスおよびRSTパケットを解析対象から除外する。このように、不完全なメッセージを解析対象から除外することで、稼働監視の精度をより向上できる。
【0137】
なお、各Webサーバがレスポンスを送信している途中にRSTパケットを受信した場合、Webサーバ200の処理遅延によるものである可能性は低いと考えられる。例えば、ユーザがブラウザ上で誤ったリンクを選択した、誤ったファイルを開こうとしたなど、ユーザの誤操作による処理を停止させる目的である可能性がある。このため、各Webサーバがレスポンスを送信している途中にRSTパケットを受信した場合を正常系として扱って、解析処理を行ってもよい。
【0138】
[第3の実施の形態]
以下、第3の実施の形態を図面を参照して詳細に説明する。前述の第2の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【0139】
第3の実施の形態は、同一URLに対応する処理を複数のサーバの何れかで実行する場合を想定している。例えば、同一URLに対応するコンテンツがWebサーバ200,300,400に格納されており、負荷分散装置10により、該当URLを指定したコンテンツの取得要求がWebサーバ200,300,400の何れかに振り分けられるような場合である。このような場合、1つのURLに対して、そのURLの処理を実行するサーバが複数存在する。そこで第3の実施の形態では、URL単位での中断系時間差分布を求める。そして、その中断系時間差分布とURLに対応付けられた実サーバ単位での中断系時間差分布との比較により、異常を検出する機能を提供する。
【0140】
ここで、第3の実施の形態の情報処理システムの全体構成、解析装置のハードウェア構成は、図2,3で説明した第2の実施の形態の情報処理システムの全体構成、解析装置100のハードウェア構成と同一であるため、その説明を省略する。
【0141】
また、第3の実施の形態の解析装置の機能構成は図4で説明した第2の実施の形態の解析装置100の機能構成と同様である。このため、第3の実施の形態の解析装置を解析装置100の各構成に用いた符号と同一の符号を用いて説明する。ただし、解析部190の機能が異なる。第3の実施の形態の解析部190の処理機能は図17で詳述する。
【0142】
図16は、第3の実施の形態のURL管理テーブルのデータ構造例を示す図である。URL管理テーブル151は、制御情報記憶部150に予め格納される。URL管理テーブル151には、サービス提供URL、サーバ名およびサーバアドレスを示す項目が設けられている。各項目の横方向に並べられた情報同士が、1つのサーバに関する情報を示す。
【0143】
サービス提供URLには、サービスにアクセスするためのURLが設定される。サーバ名には、各Webサーバの名称が設定される。サーバアドレスには、各WebサーバのIPアドレスが設定される。
【0144】
URL管理テーブル151には、例えば、サービス提供URLが“(ドメイン名)/service”という情報が設定されている。「ドメイン名」には、複数のWebサーバ200,300,400によって提供されるコンテンツ配信などのサービス機能に割り当てられたドメイン名が設定される。URL管理テーブル151に設定されている情報は、Webサーバ200,300,400が提供するサービスにアクセスするための共通のURLおよびIPアドレスを示している。なお、以下の説明では、このURLを“URL−A”と略記する。更に、URL管理テーブル151には、例えば、サーバ名が“サーバA1”、サーバアドレスが“10.0.0.11:80”という情報が設定される。これは、“URL−A”に対応付けられたWebサーバ200のサーバ名およびサーバアドレスを示している。
【0145】
また、“サーバA2”はWebサーバ300に対応する。“サーバA3”はWebサーバ400に対応する。
このように、情報処理システムが提供するサービスごとに、そのURLと対応するWebサーバとがURL管理テーブル151に定義される。
【0146】
次に、第3の実施の形態の解析装置100の処理手順を説明する。ここで、ペア抽出処理については、図13に示した第2の実施の形態のペア抽出処理と同様であるため、説明を省略する。解析装置100は、ペア抽出処理によって得られた中断ペアにより以下の解析処理を行う。
【0147】
図17は、第3の実施の形態の解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS41]解析部190は、解析対象とするURLを特定する。解析部190は、例えば、システム管理者によるURLの選択入力を受け付けて、解析対象のURLを特定する。
【0148】
[ステップS42]解析部190は、制御情報記憶部150に記憶されたURL管理テーブル151を参照して、URLに対応する各Webサーバおよび、そのIPアドレスを特定する。解析部190は、例えば、“URL−A”が選択されている場合、URL管理テーブル151から“サーバA1”、“サーバA2”、“サーバA3”に対応するWebサーバ200,300,400のIPアドレスを特定する。
【0149】
[ステップS43]解析部190は、中断ペア情報記憶部140に記憶された中断系時間差テーブル141aを参照して、特定したIPアドレスにより各Webサーバの時間差を取得する。そして、解析部190は、URL単位で中断系時間差分布を算出する。
【0150】
[ステップS44]解析部190は、URL単位の中断系時間差分布の平均値Mを取得する。
[ステップS45]解析部190は、URLに対応する各Webサーバのうちの1つを処理対象として選択する。
【0151】
[ステップS46]解析部190は、URLを構成する選択したWebサーバの中断系時間差分布を算出する。そして、解析部190は、そのWebサーバの中断系時間差分布の各平均値mおよび各標準偏差dを取得する。なお、中断系時間差分布の各平均値mに代えて、当該各分布について定まる他の基準値を用いても構わない。例えば、中央値、最頻値などを用いてもよい。
【0152】
[ステップS47]解析部190は、判定値m−dがm−d<M+Qであるか否かを判定する。ここで、Qは定数であり、0以上の整数値をとることができる。例えば、QをURL単位の中断系時間差分布の標準偏差とする。また、Qは、例えば当該標準偏差に所定の係数を乗じた値でもよい。m−d<M+Qである場合、解析部190は処理をステップS49に進める。m−d<M+Qでない場合、解析部190は処理をステップS48に進める。
【0153】
[ステップS48]解析部190は、ステップS45で選択したWebサーバにつき異常を検出した旨を報知部195に通知する。報知部195は、その異常を報知する。
[ステップS49]解析部190は、Webサーバの全てについて異常検出処理を行ったか否か判定する。全てについて処理済の場合、処理を完了する。未処理のWebサーバが存在する場合、処理をステップS45に進める。
【0154】
このようにして、解析装置100は、URL単位の中断系時間差分布と、そのURLを構成するWebサーバ単位の中断系時間差分布と、を比較する。そして、URL単位の中断系時間差分布に対して、Webサーバ単位の中断系時間差分布が許容できる範囲内に存在しない場合に、当該Webサーバで異常ありと判断する。次に上記解析処理の具体例を説明する。
【0155】
図18は、第3の実施の形態の解析処理の具体例を示す図である。図18(A)は“URL−A”単位の中断系時間差分布830を例示している。図18(B)はWebサーバ200(サーバA1)の中断系時間差分布831を例示している。図18(C)はWebサーバ300(サーバA2)の中断系時間差分布832を例示している。なお、図18では、Webサーバ400の中断系時間差分布の図示を省略している。
【0156】
図18(A)において、中断系時間差分布830は、Webサーバ200,300,400で取得された中断ペアの時間差を総合して得られた頻度分布である。中断系時間差分布830には、その平均値Mと当該分布の所定の幅Qが示されている。
【0157】
図18(B)において、中断系時間差分布831は、その平均値がm1、標準偏差がd1である。そして、m1,d1は、m1−d1<M+Qの条件を満たすとする。この場合、解析部190は、Webサーバ200を正常に稼働中であると判断する。
【0158】
図18(C)において、中断系時間差分布832は、その平均値がm2、標準偏差がd2である。そして、m2,d2は、m2−d2≧M+Qであるとする。すなわち、m−d<M+Qの条件を満たしていない。この場合、解析部190は、中断系時間差分布832が許容できる範囲の時間差を超過しており、Webサーバ300で異常が発生していると判断する。そして、解析部190は報知部195にWebサーバ300の異常を報知させる。
【0159】
このように、各Webサーバで取得した中断ペアを総合して、これをURL単位で解析することで、当該URLに対応する各Webサーバの異常を容易に検出できる。
また、第2の実施の形態の解析処理に加えて、第3の実施の形態の解析処理を行うこともできる。例えば、解析部190は、第2の実施の形態の解析結果と第3の実施の形態の解析結果とを照合して、両方の解析結果で異常ありとされたWebサーバについて、報知部195にアラートの出力を指示することができる。これにより、何れか一方の解析結果で判断するよりも、異常検出の精度を一層向上できる。
【0160】
[第4の実施の形態]
以下、第4の実施の形態を図面を参照して詳細に説明する。前述の第2,第3の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【0161】
第4の実施の形態では、URL単位に中断ペアの発生回数(中断回数)の頻度分布を取得する。また、そのURLを構成するWebサーバ単位に中断回数の頻度分布を取得する。そして、両頻度分布を比較することで、各Webサーバの異常を検出する機能を提供する。
【0162】
ここで、第4の実施の形態の情報処理システムの全体構成、解析装置のハードウェア構成は、図2,3で説明した第2の実施の形態の情報処理システムの全体構成、解析装置100のハードウェア構成と同一であるため、その説明を省略する。
【0163】
また、第4の実施の形態の解析装置の機能構成は図4で説明した第2の実施の形態の解析装置100の機能構成と同様である。このため、第4の実施の形態の解析装置を解析装置100の各構成に用いた符号と同一の符号を用いて説明する。ただし、解析部190の機能が異なる。第4の実施の形態の解析部190の処理機能は図20で詳述する。
【0164】
更に、制御情報記憶部150には図16で説明したURL管理テーブル151が格納されているものとする。
図19は、第4の実施の形態の中断回数テーブルのデータ構造例を示す図である。中断回数テーブル142,142a,142bは、解析部190により生成され、中断ペア情報記憶部140に格納される。解析部190は、中断ペア情報記憶部140に記憶された中断ペアテーブル141を参照して、単位時間当たりの中断ペアの個数を集計することで、中断回数テーブル142,142a,142bを生成することができる。
【0165】
中断回数テーブル142は、Webサーバ200の中断回数を示すテーブルである。中断回数テーブル142aは、Webサーバ300の中断回数を示すテーブルである。中断回数テーブル142bは、Webサーバ400の中断回数を示すテーブルである。
【0166】
以下、中断回数テーブル142について説明するが、中断回数テーブル142a,142bに関しても中断回数テーブル142と同様である。
中断回数テーブル142には、項番、時間帯、サーバおよび回数を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのWebサーバの単位時間当たりの中断回数を示す。
【0167】
項番には、レコードを識別するための番号が設定される。時間帯には、中断回数を集計した期間が設定される。サーバには、該当のWebサーバのIPアドレスが設定される。回数には、時間帯当たりの中断回数が設定される。
【0168】
中断回数テーブル142には、例えば、項番が“101”、時間帯が“2010/5/21 13:00:00.000000〜13:00:59.999999”、サーバが“10.0.0.11:80”、回数が“10”(回)という情報が設定される。
【0169】
これは、上記時間帯において、各端末装置からWebサーバ200に対して処理中断を伴うRSTパケットが“10”回、送信されたことを示している。
次に、第4の実施の形態の解析装置100の処理手順を説明する。ここで、ペア抽出処理については、図13に示した第2の実施の形態のペア抽出処理と同様であるため、説明を省略する。
【0170】
なお、解析部190は、ペア抽出処理によって得られた中断ペアテーブル141を参照して、中断回数テーブル142,142a,142bを生成し、中断ペア情報記憶部140に予め格納している。
【0171】
図20は、第4の実施の形態の解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS51]解析部190は、解析対象とするURLを特定する。解析部190は、例えば、システム管理者によるURLの選択入力を受け付けて、解析対象のURLを特定する。
【0172】
[ステップS52]解析部190は、制御情報記憶部150に記憶されたURL管理テーブル151を参照して、解析対象のURLに対応する各Webサーバおよび、そのIPアドレスを特定する。解析部190は、例えば、“URL−A”が選択されている場合、URL管理テーブル151から“サーバA1”、“サーバA2”、“サーバA3”に対応するWebサーバ200,300,400のIPアドレスを特定する。
【0173】
[ステップS53]解析部190は、中断ペア情報記憶部140に記憶された中断回数テーブル142,142a,142bを参照して、各Webサーバの中断回数を取得する。解析対象とする期間(例えば、過去1時間分、過去1日分など)は制御情報記憶部150に予め設定される。解析部190は、当該解析対象期間内で得た中断回数を取得すればよい。そして、解析部190は、URL単位で単位時間当たりの中断回数の頻度分布を算出する。
【0174】
[ステップS54]解析部190は、URL単位に求めた中断回数の頻度分布について、平均値Mと標準偏差Dを取得する。
[ステップS55]解析部190は、各Webサーバで単位時間当たりの中断回数の頻度分布を算出する。なお、各Webサーバでの中断回数の頻度分布は、URL単位の中断回数の頻度分布と同じ解析対象期間について求めてもよいし、それより短くてもよい。例えば、過去1分間〜5分間などの期間について、各Webサーバにつき中断回数の頻度分布を取得すれば、各Webサーバの直近の異常の有無をリアルタイムに解析できる。
【0175】
[ステップS56]解析部190は、各WebサーバについてステップS55で算出した頻度分布に基づき、中断回数がM+K(Kは定数)以上であるWebサーバが存在するか否かを判定する。存在する場合、処理をステップS58に進める。存在しない場合、処理をステップS57に進める。ここで、Kは、システムの稼働状況に応じて予め定義される。例えば、K=2×Dである。
【0176】
[ステップS57]解析部190は、各WebサーバについてステップS55で算出した頻度分布に基づき、中断回数がM+L(LはL<Kの定数)以上であるWebサーバがURLに対応するWebサーバの半数以上存在するか否かを判定する。半数以上存在する場合、処理をステップS58に進める。半数以上存在しない場合、処理を完了する。ここで、Lは、システムの稼働状況に応じて予め定義される。例えば、L=Dである。
【0177】
[ステップS58]解析部190は、ステップS56またはステップS57の各条件を満たすWebサーバについて異常が発生している旨を報知部195に通知する。報知部195は、通知を受けたWebサーバで異常が発生している旨を報知する。
【0178】
このようにして、解析装置100は、URL単位の中断回数の頻度分布と、そのURLに対応するWebサーバ単位の中断回数の頻度分布と、を比較する。そして、URL単位の中断回数の頻度分布から求めた閾値を超えて中断ペアの発生したWebサーバで異常が発生していると判断する。
【0179】
次に上記解析処理の具体例を説明する。
図21は、第4の実施の形態の解析処理の具体例を示す第1の図である。図21(A)は“URL−A”単位の中断回数の頻度分布840を例示している。図21(B)はWebサーバ200(サーバA1)の中断回数の頻度分布841を例示している。なお、図21では、Webサーバ300,400の中断回数の頻度分布は図示を省略している。
【0180】
ここで、閾値K=M+2×標準偏差D、閾値L=M+標準偏差Dとする。
図21(A)において、頻度分布840は、Webサーバ200,300,400で取得された単位時間当たりの中断ペアの発生回数を総合して得られた頻度分布である。頻度分布840には、その平均値Mと標準偏差Dが示されている。また、閾値K=M+2×D、閾値L=M+Dが示されている。
【0181】
図21(B)において、頻度分布841では、閾値K以上の中断回数が発生していることが分かる。この場合、解析部190は、Webサーバ200で異常が発生していると判断する。そして、解析部190は報知部195にWebサーバ200の異常を報知させる。
【0182】
図22は、第4の実施の形態の解析処理の具体例を示す第2の図である。図22(A)は“URL−A”の中断回数の頻度分布850を例示している。図22(B)はWebサーバ200(サーバA1)の中断回数の頻度分布851を例示している。図22(C)はWebサーバ300(サーバA2)の中断回数の頻度分布852を例示している。なお、図22では、Webサーバ400の中断回数の頻度分布は図示を省略している。
【0183】
ここで、図21と同様、閾値K=M+2×標準偏差D、閾値L=M+標準偏差Dとする。
図22(A)において、頻度分布850は、Webサーバ200,300,400で取得された単位時間当たりの中断ペアの発生回数を総合して得られた頻度分布である。頻度分布850には、その平均値Mと標準偏差Dが示されている。また、閾値K=2×D、閾値L=Dが示されている。
【0184】
図22(B)において、頻度分布851では、閾値K以上の中断回数が発生していないことが分かる。更に、閾値L以上の中断回数が発生していることが分かる。
図22(C)において、頻度分布852では、閾値K以上の中断回数が発生していないことが分かる。更に、閾値L以上の中断回数が発生していることが分かる。
【0185】
この場合、解析部190は、閾値L以上の中断回数の発生しているWebサーバが、“URL−A”を構成する3台のうちの2台、すなわち、全Webサーバの半数以上存在することを検知する。すると、解析部190は、該当するWebサーバ200,300で異常が発生していると判断する。そして、解析部190は、報知部195にWebサーバ200,300の異常を報知させる。
【0186】
次に、各Webサーバの直近の時間帯の中断回数を取得して、異常を検出する場合の具体例を説明する。
図23は、第4の実施の形態の解析処理の具体例を示す第3の図である。図23(A)のグラフ860は、“2010/5/21 13:00:00〜13:00:59”の過去1分間にWebサーバ200,300,400で発生した中断回数を示す。図23(B)のグラフ870は、“2010/5/21 14:00:00〜14:00:59”の過去1分間にWebサーバ200,300,400で発生した中断回数を示す。
【0187】
なお、“URL−A”を単位として、過去の解析対象期間につき中断回数の頻度分布が求められており、平均値Mおよび標準偏差Dが取得されているとする。更に、閾値K=M+2D、閾値L=M+Dとする。
【0188】
図23(A)において、グラフ860の例では、Webサーバ400が当該時間帯において中断回数が閾値Kを上回っている。このため、解析部190は、Webサーバ400で異常が発生していると判断する。そして、解析部190は、報知部195にWebサーバ400の異常を報知させる。
【0189】
図23(B)において、グラフ870の例では、Webサーバ200,300,400の何れの中断回数も閾値Kを上回っていない。一方、Webサーバ200,300が当該時間帯において中断回数が閾値Lを上回っている。この場合、解析部190は、閾値L以上の中断回数の発生しているWebサーバが“URL−A”を構成する3台のうちの2台、すなわち、全Webサーバの半数以上存在することを検知する。すると、解析部190は、該当するWebサーバ200,300で異常が発生していると判断する。そして、解析部190は、報知部195にWebサーバ200,300の異常を報知させる。
【0190】
このように、各Webサーバについて、直近の時間帯の中断回数を取得して、閾値K,Lと比較することで、各Webサーバにつきリアルタイムに異常検出を行うことができる。
【0191】
なお、グラフ860において、閾値K以上の中断回数が1度でも発生している場合には異常を検知するものとしたが、更に条件を設けて異常検出の精度を向上してもよい。例えば、グラフ860を所定期間継続的に取得し続けて、複数回連続で閾値Kを上回ったWebサーバを異常と判断してもよい。
【0192】
また、所定の周期でグラフ860を取得し、中断回数が閾値を上回った回数が一定期間内に一定回数以上あったWebサーバを異常と判断してもよい。例えば、10分間に3回、閾値Kを超える回数の中断が発生している場合に、異常と判断してもよい。
【0193】
このように、各Webサーバで取得した中断ペアを総合して、これをURL単位で解析することで、当該URLに対応する各Webサーバの異常を容易に検出できる。
また、第2,第3の実施の形態の解析処理に加えて、第4の実施の形態の解析処理を行うこともできる。例えば、解析部190は、第2の実施の形態の解析結果と第3の実施の形態の解析結果と第4の実施の形態の解析結果とを照合して、全ての解析結果で異常ありとされたWebサーバについて、報知部195にアラートの出力を指示することができる。これにより、何れか一つの解析結果で判断するよりも、異常検出の精度を一層向上できる。
【0194】
なお、第2〜第4の実施の形態で示した解析装置100により稼働監視を行うことで、各Webサーバで個別に異常を検出するための機能を組み込む必要がなくなる。よって、監視機能の導入コストを軽減できる。また、各Webサーバで検出処理を実行する必要がない。よって、各Webサーバの本来の処理に与える影響を軽減できる。このため、従来のように個々のサーバで異常検出を行う場合に比べて、情報処理システム全体の統合管理を効率的に行えるという利点もある。
【0195】
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【0196】
(付記2) 前記記憶手段に記憶された通信履歴を参照して、当該中断要求よりも前に、当該中断要求を送信した端末装置が前記情報処理装置に送信した実行要求であって、当該実行要求に対して前記情報処理装置から当該中断要求を送信した端末装置に処理応答が送信されていない実行要求を抽出することで前記中断ペア情報を生成する、
処理をコンピュータに実行させることを特徴とする付記1記載の解析プログラム。
【0197】
(付記3) 取得した通信情報が処理応答である場合、前記記憶手段から当該処理応答に対応する処理の実行要求を示す通信情報を抽出し、当該処理応答と当該実行要求との組合せを示す情報である正常ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報と前記記憶手段に記憶された正常ペア情報とを用いて、前記情報処理装置による処理の異常を検出する、
処理をコンピュータに実行させることを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0198】
(付記4) 前記記憶手段に記憶された複数の正常ペア情報それぞれに含まれる実行要求と処理応答との時間差の分布を示す第1の時間差分布に基づいて所定の時間差閾値を算出し、
前記記憶手段に記憶された複数の中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第2の時間差分布に基づいて所定の判定値を算出し、
前記判定値が前記時間差閾値以上である場合に、前記情報処理装置を異常として検出する、
処理をコンピュータに実行させることを特徴とする付記3記載の解析プログラム。
【0199】
(付記5) 前記判定値は、前記第2の時間差分布の所定の基準値に基づいて算出される値であることを特徴とする付記4記載の解析プログラム。
(付記6) 前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第3の時間差分布と、複数の前記情報処理装置の何れか1つである解析対象の情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第4の時間差分布と、を比較することで、当該解析対象の情報処理装置の異常を検出する、
処理をコンピュータに実行させることを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0200】
(付記7) 前記第3の時間差分布に基づいて、所定の時間差閾値を算出し、
前記第4の時間差分布に基づいて、所定の判定値を算出し、
前記判定値が前記時間差閾値以上である場合に、前記解析対象の情報処理装置を異常として検出する、
処理をコンピュータに実行させることを特徴とする付記6記載の解析プログラム。
【0201】
(付記8) 前記判定値は、前記第4の時間差分布の所定の基準値に基づいて算出される値であることを特徴とする付記7記載の解析プログラム。
(付記9) 前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報の単位時間あたりの取得頻度を示す頻度分布を算出し、当該頻度分布に基づいて所定の中断回数閾値を算出し、
複数の前記情報処理装置それぞれに関する中断ペア情報の所定期間の取得回数と前記中断回数閾値とに基づいて、複数の前記情報処理装置それぞれの異常を検出する、
処理をコンピュータに実行させることを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0202】
(付記10) 複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納する受信手段と、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納する抽出手段と、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する解析手段と、
を有することを特徴とする解析装置。
【0203】
(付記11) 解析装置が、
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
ことを特徴とする解析方法。
【符号の説明】
【0204】
1 解析装置
1a 記憶手段
1b 受信手段
1c 抽出手段
1d 解析手段
2 情報処理装置
3,4 端末装置
5 通信履歴
5a,5c 実行要求
5b 処理応答
5d 中断要求
6,6a 中断ペア情報
7,7a 正常ペア情報
Ta,Tb 時間差
【技術分野】
【0001】
本発明はネットワークを介して送受信されるデータを解析する解析プログラム、解析装置および解析方法に関する。
【背景技術】
【0002】
従来、複数のコンピュータが階層的に処理を分担する情報処理システム(複数階層システムという)が利用されている。複数階層システムとして、例えばシステム利用のためのインタフェースを提供するWebサーバ、システム上の処理を実行するApp(Application)サーバおよびデータを管理するDB(Database)サーバを有する3階層システムが知られている。各サーバは、ユーザの利用する端末装置からの処理の実行要求に対して連携して処理を実行し、その実行要求に応答する。このように、各コンピュータに処理を分担させることで、システムの信頼性や応答性を向上できる。
【0003】
ここで、情報処理システムでは安定稼働を目的とした運用管理が行われる。例えば、対象のコンピュータでプログラムの稼働/停止の履歴を取得し、当該コンピュータの障害発生を検出する方法がある。
【0004】
また、多階層システムにおいて、サーバ間で送受信される実行要求および処理応答の組合せを取得し、取得した組合せから階層間を跨って実行されるトランザクションを組み立てることで、システムの稼働を監視する方法がある。
【0005】
ところで、複数階層システムなどのコンピュータシステムではシステムで実行中の処理が強制的に中断される場合がある。例えば、Webサーバが端末装置から処理の中断指示を受け付けた場合や端末装置のブラウザが閉じられた場合などである。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−202076号公報
【特許文献2】特開2006−011683号公報
【特許文献3】特開2007−304647号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の方法では、各サーバ間において実行要求と処理応答との組合せを抽出することを前提としており、処理が強制的に中断される場合を考慮していない。強制的に中断された処理が監視対象から外されていることは、監視に基づくシステムの稼働状況の解析精度劣化の原因となる。
【0008】
1つの側面では、本発明はシステムの稼働状況の解析精度を向上させることができる解析プログラム、解析装置および解析方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの案では、次の解析プログラムが提供される。この解析プログラムを実行するコンピュータは、複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納する。そして、取得した通信情報が処理の中断要求である場合、記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して記憶手段に格納する。更に、記憶手段に記憶された中断ペア情報を用いて情報処理装置による処理の実行状況を解析する。
【0010】
また、1つの案では、上記解析プログラムを実行するコンピュータと同様の機能を有する解析装置が提供される。
また、1つの案では、上記解析プログラムを実行するコンピュータと同様の処理を行う解析方法が提供される。
【発明の効果】
【0011】
システムの稼働状況の解析精度が向上する。
【図面の簡単な説明】
【0012】
【図1】第1の実施の形態に係る解析装置を示す図である。
【図2】第2の実施の形態の情報処理システムの全体構成を示す図である。
【図3】第2の実施の形態の解析装置のハードウェア構成を示す図である。
【図4】第2の実施の形態の解析装置の機能構成を示す図である。
【図5】メッセージの時間差を示す図である。
【図6】パケットのデータ構造例を示す図である。
【図7】復元メッセージの具体例を示す図である。
【図8】メッセージログ管理テーブルのデータ構造例を示す図である。
【図9】正常ペアテーブルのデータ構造例を示す図である。
【図10】正常系時間差テーブルのデータ構造例を示す図である。
【図11】中断ペアテーブルのデータ構造例を示す図である。
【図12】中断系時間差テーブルのデータ構造例を示す図である。
【図13】ペア抽出処理を示すフローチャートである。
【図14】第2の実施の形態の解析処理を示すフローチャートである。
【図15】第2の実施の形態の解析処理の具体例を示す図である。
【図16】第3の実施の形態のURL管理テーブルのデータ構造例を示す図である。
【図17】第3の実施の形態の解析処理を示すフローチャートである。
【図18】第3の実施の形態の解析処理の具体例を示す図である。
【図19】第4の実施の形態の中断回数テーブルのデータ構造例を示す図である。
【図20】第4の実施の形態の解析処理を示すフローチャートである。
【図21】第4の実施の形態の解析処理の具体例を示す第1の図である。
【図22】第4の実施の形態の解析処理の具体例を示す第2の図である。
【図23】第4の実施の形態の解析処理の具体例を示す第3の図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る解析装置を示す図である。解析装置1は、複数の情報処理装置が接続された情報処理システムにおいて、各情報処理装置の障害を検出する。当該情報処理システムには、情報処理装置2が含まれるとする。情報処理装置2は、端末装置3、4とネットワークを介して接続されている。
【0014】
解析装置1は、記憶手段1a、受信手段1b、抽出手段1cおよび解析手段1dを有する。
記憶手段1aは、情報処理システムにおける各情報処理装置間で送受信された通信情報(メッセージ)の履歴である通信履歴5を記憶する。通信履歴5には情報処理装置2と端末装置3との間で送受信された実行要求5a、処理応答5bが含まれる。また、通信履歴5には情報処理装置2と端末装置4との間で送受信された実行要求5cおよび中断要求5dが含まれる。
【0015】
実行要求5aは、端末装置3が情報処理装置2に送信した実行要求である。処理応答5bは、情報処理装置2が実行要求5aに応じた処理を実行した後、端末装置3に送信した処理応答である。実行要求5cは、端末装置4が情報処理装置2に送信した実行要求である。中断要求5dは、端末装置4が情報処理装置2に送信した、処理の中断要求である。
【0016】
ここで、通信履歴5には各メッセージにつき当該メッセージが関わる一連の処理を示す識別情報や各メッセージを取得した日時を示す情報が含まれる。
また、記憶手段1aは、抽出手段1cが抽出した中断ペア情報6,6a,・・・を記憶する。ここで、中断ペア情報とは、端末装置3が情報処理装置2に送信した実行要求と、それに対応する中断要求との組合せを示す情報である。
【0017】
受信手段1bは、メッセージを受信し、記憶手段1aに記憶された通信履歴5にメッセージ内容を記録する。また、受信手段1bは、受信したメッセージが中断要求である場合、その旨を抽出手段1cに通知する。
【0018】
抽出手段1cは、取得した通信情報が処理の中断要求である場合、記憶手段1aから中断要求により中断される処理の実行要求を示す通信情報を抽出する。例えば、抽出手段1cは、受信手段1bから中断要求5dを受信した旨の通知があると、記憶手段1aに記憶された通信履歴5を参照して、次の要件を満たす実行要求5cの情報を抽出する。
【0019】
(1)中断要求5dよりも前に、中断要求5dを送信した端末装置4が情報処理装置2に送信した実行要求である。
(2)その実行要求に対して情報処理装置2から端末装置4に処理応答が送信されていない。
【0020】
そして、抽出手段1cは、実行要求5cの情報と中断要求5dの情報との組合せである中断ペア情報6を記憶手段1aに格納する。
解析手段1dは、記憶手段1aに記憶された中断ペア情報6,6a,・・・を用いて情報処理装置2による処理の実行状況を解析する。
【0021】
解析装置1によれば、端末装置3,4と情報処理装置2との間で送受信される通信情報が取得されて記憶手段1aに格納される。そして、取得された通信情報が中断要求5dである場合、記憶手段1aから中断要求5dにより中断される処理の実行要求5cを示す通信情報が抽出され、中断要求5dと実行要求5cとの組合せを示す中断ペア情報6が生成されて記憶手段1aに格納される。更に、記憶手段1aに記憶された中断ペア情報6,6a,・・・を用いて情報処理装置2による処理の実行状況が解析される。
【0022】
このように、解析装置1は、実行要求5cと中断要求5dとの組合せを中断ペア情報6として記憶手段1aに記録する。このため、当該中断ペア情報6,6a,・・・を利用した情報処理システムの稼働監視が可能となる。
【0023】
例えば、解析手段1dは、通信履歴5から実行要求と処理応答との組合せを示す情報(正常ペア情報7,7a,・・・)も記憶手段1aに格納しておき、これと中断ペア情報6,6a,・・・とを比較できる。ここで、正常ペア情報7は、例えば実行要求5aと処理応答5bとの組合せである。このような組合せは、端末装置3,4と情報処理装置2との間でなされた各実行要求と各処理応答との時間の包含関係により取得できる。
【0024】
解析手段1dは、中断ペア情報6,6a,・・・と正常ペア情報7,7a,・・・とを用いて、各ペア情報に含まれるメッセージを取得した時間差の分布を比較することができる。例えば、中断ペア情報6に含まれる実行要求5cと中断要求5dとの時間差Taを取得する。他の中断ペア情報についても同様に時間差を取得して、中断系の時間差の頻度分布を算出する。一方、正常ペア情報7についても実行要求5aと処理応答5bとの時間差Tbを取得する。他の正常ペア情報についても同様に時間差を取得して、正常系の時間差の頻度分布を算出する。そして、例えば中断系の時間差分布と、正常系の時間差分布とを比較して、中断系の時間差分布が何れの時間差範囲に現れているかを監視する。これにより、情報処理装置2で発生した異常を検出できる。
【0025】
このような解析により異常検出が行えるのは、情報処理装置2の応答が遅延している場合に、端末装置3,4から中断要求の送信が行われることが多いためである。例えば、端末装置3,4を利用するユーザは、情報処理装置2が提供する画面内容を所定時間内に閲覧できない場合、端末装置3,4に中断要求を送信させることができる。
【0026】
また、解析装置1は中断ペア情報6,6a,・・・を情報処理システムに含まれる情報処理装置ごとに取得することができる。そして、情報処理装置ごとに取得した中断ペア情報に含まれるメッセージ間の時間差や中断ペア情報の発生頻度などを比較することで、各情報処理装置の異常検出を行うことができる。
【0027】
このように、解析装置1では、従来看過されていた各情報処理装置における処理中断の事象を稼働監視の対象に含める。これにより、情報処理システムの各情報処理装置の稼働状況の解析精度を向上できる。その結果、より正確な異常検知が可能となる。
【0028】
以下の実施の形態では、Web3階層システムに解析装置1を適用する場合を例に採り、更に具体的に説明する。
[第2の実施の形態]
以下、第2の実施の形態を図面を参照して詳細に説明する。
【0029】
図2は、第2の実施の形態の情報処理システムの全体構成を示す図である。この情報処理システムは、負荷分散装置10、スイッチ装置10a、端末装置21,22,23、解析装置100、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700を有する。負荷分散装置10、解析装置100、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700は、スイッチ装置10aを介して相互に接続されている。また、負荷分散装置10は、ネットワーク20を介して端末装置21,22,23に接続されている。
【0030】
負荷分散装置10は、Webサーバ200,300,400が提供するサービスのURL(Uniform Resource Locator)を端末装置21,22,23に提供する。負荷分散装置10は、このURLとWebサーバ200,300,400とを関連付ける。負荷分散装置10は、このURLに対するアクセスをWebサーバ200,300,400の各負荷が分散するように振り分ける。負荷分散の方法としては、例えばラウンドロビン、最小保有セッション数および最小処理時間等に応じた方法を適用できる。
【0031】
スイッチ装置10aは、負荷分散装置10、解析装置100、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700の間の通信を中継する。
【0032】
ネットワーク20は、イントラネットやインターネットの通信網である。
端末装置21,22,23は、ネットワーク20および負荷分散装置10を介してWebサーバ200,300,400にアクセス可能である。端末装置21,22,23のユーザは、Webサーバ200,300,400が提供するGUI(Graphical User Interface)を端末装置21,22,23上のブラウザから操作できる。これにより、ユーザは情報処理システムが提供するサービスを利用できる。
【0033】
ここで、端末装置21,22,23とWebサーバ200,300,400との間のメッセージ送受信は、HTTP(HyperText Transfer Protocol)によって行われるものとする。ただし、他のプロトコルが用いられてもよい。また、以下では、端末装置21,22,23がWebサーバ200,300,400へ送信する実行要求のメッセージを単にリクエストと称する。また、Webサーバ200,300,400が当該リクエストに対して端末装置21,22,23へ送信する処理応答のメッセージを単にレスポンスと称する。
【0034】
解析装置100は、Webサーバ200,300,400の異常を検出する。解析装置100は、そのための情報を負荷分散装置10から取得する。具体的には、スイッチ装置10aは、ポートミラーリング機能を有しており、負荷分散装置10とWebサーバ200,300,400との間で送受信されるパケットを解析装置100にも送信する。解析装置100は、スイッチ装置10aから送信されるパケットを受信して、記憶する。当該パケットで示される情報は、端末装置21,22,23がWebサーバ200,300,400に送信するリクエストおよびWebサーバ200,300,400が端末装置21,22,23に送信するレスポンスを含む。また、当該パケットで示される情報は、端末装置21,22,23がWebサーバ200,300,400に送信するRST(Reset)パケットを含む。
【0035】
ここで、RSTパケットは、端末装置21,22,23がWebサーバ200,300,400とのセッションを切断するために送信するパケットである。具体的には、RSTパケットはTCP(Transmission Control Protocol)ヘッダのRSTフラグがオンに設定されたパケットである。RSTパケットの送出によって、端末装置21,22,23とWebサーバ200,300,400との間のセッションは切断され、当該セッションを介して確立されたトランザクションも強制中断される。
【0036】
解析装置100は、端末装置21,22,23がWebサーバ200,300,400に送信したRSTパケットをメッセージの1つとして異常検出に用いる。具体的には、リクエストからRSTパケットが送信されるまでの時間に基づいて異常検出を行う。
【0037】
このようにして異常検出が行えるのは、Webサーバ200,300,400の応答が遅延している場合に端末装置21,22,23からRSTパケットの送信が行われることが多いためである。
【0038】
例えば、ユーザは、端末装置21,22,23のブラウザ上でシステムの応答画面の表示が遅延する場合、ブラウザに設けられた所定のボタン(例えば、中止や再読み込み)などを操作して、ブラウザにRSTパケットを送信させることが多い。あるいは、ブラウザの表示が遅延したことでユーザがブラウザを終了させ、RSTパケットが送信される場合もある。このため、リクエストからRSTパケットまでの時間を解析することで、各Webサーバの処理遅延に関する指標を得ることが可能となる。
【0039】
以下の説明では、このようにRSTパケットを解析して異常検出を行う解析装置100の機能を更に詳細に説明する。
ここで、以下の説明では各Webサーバという場合、Webサーバ200,300,400を示すものとする。また、各端末装置という場合、端末装置21,22,23を示すものとする。
【0040】
図3は、第2の実施の形態の解析装置のハードウェア構成を示す図である。解析装置100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
【0041】
CPU101は、解析装置100全体を制御する。
ROM102は、解析装置100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
【0042】
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
【0043】
HDD104は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD104はCPU101による処理に必要な各種データを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
【0044】
グラフィック処理装置105は、モニタ11と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ11の画面に表示させる。
入力インタフェース106は、キーボード12とマウス13と接続される。入力インタフェース106は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。
【0045】
記録媒体読取装置107は、記録媒体14に記憶されたデータを読み取る読取装置である。例えば、解析装置100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体14に記録して配布することができる。また、スイッチ装置10aに接続されたプログラム配信サーバ(図示せず)にそのプログラムを格納してもよい。この場合、解析装置100は、プログラム配信サーバからプログラムをダウンロードすることができる。
【0046】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0047】
通信インタフェース108は、TP(Twisted Pair)ケーブルや光ケーブル等によってスイッチ装置10aと接続される。通信インタフェース108は、スイッチ装置10aを介して他の情報処理装置とデータ通信する。また、通信インタフェース108は、各端末装置と各Webサーバとの間で送受信されるパケットをスイッチ装置10aから受信する。
【0048】
なお、各端末装置、Webサーバ200,300,400、APサーバ500,600およびDBサーバ700も解析装置100と同様のハードウェア構成により実現できる。
図4は、第2の実施の形態の解析装置の機能構成を示す図である。解析装置100は、パケット記憶部110、メッセージログ記憶部120、正常ペア情報記憶部130、中断ペア情報記憶部140、制御情報記憶部150、パケット受信部160、メッセージ復元部170、ペア抽出部180、解析部190および報知部195を有する。これらの機能は、所定のプログラムをCPU101が実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0049】
パケット記憶部110は、パケット受信部160が受信したパケット情報を記憶する。
メッセージログ記憶部120は、メッセージ復元部170が生成したメッセージログを記憶する。ここで、メッセージログとは、パケット情報に基づいて生成されるものであり、各端末装置と各Webサーバとの間の通信履歴を表すものである。
【0050】
正常ペア情報記憶部130は、ペア抽出部180が生成した正常ペアに関する情報を記憶する。ここで、正常ペアとはメッセージログ記憶部120に記憶されたメッセージログに含まれる各メッセージのうち、各Webサーバで正常に終了したと考えられる処理に対応するメッセージの組である。正常ペアには、各端末装置が送信したリクエストと、当該リクエストに応じて各Webサーバが送信したレスポンスと、が含まれる。1つの正常終了処理につき1つの正常ペアが対応する。
【0051】
中断ペア情報記憶部140は、ペア抽出部180が生成した中断ペアに関する情報を記憶する。ここで、中断ペアとはメッセージログ記憶部120に記憶されたメッセージログに含まれる各メッセージのうち、各Webサーバにおいてセッション切断により途中で中断されたと考えられる処理に対応するメッセージの組である。中断ペアには、各端末装置が送信したリクエストと、各端末装置が送信したRSTパケットと、が含まれる。1つの中断処理につき1つの中断ペアが対応する。
【0052】
制御情報記憶部150は、解析部190が解析処理に用いる制御情報を記憶する。
パケット受信部160は、負荷分散装置10を介して送受信されるパケットを負荷分散装置10から受信する。パケット受信部160は、受信したパケットをパケット情報としてパケット記憶部110に格納する。パケット受信部160は、例えば情報処理システムが稼働している間、パケットを取得し続ける。
【0053】
メッセージ復元部170は、パケット記憶部110に記憶されたパケット情報に基づいて、パケット情報に含まれるメッセージを復元する。そして、メッセージ復元部170は、復元したメッセージによりメッセージログを生成し、メッセージログ記憶部120に格納する。
【0054】
ペア抽出部180は、メッセージログ記憶部120に記憶されたメッセージログを参照して正常ペアを抽出し、当該正常ペアを示す情報を正常ペア情報記憶部130に格納する。更に、ペア抽出部180は、正常ペアを示す情報を参照して正常ペアに含まれる各メッセージの時間差を算出する。ペア抽出部180は、当該時間差の算出結果に基づいて各正常ペアと時間差とを対応付けた正常系時間差情報を生成し、正常ペア情報記憶部130に格納する。
【0055】
また、ペア抽出部180は、メッセージログを参照して中断ペアを抽出し、当該中断ペアを示す情報を中断ペア情報記憶部140に格納する。更に、ペア抽出部180は、中断ペアを示す情報を参照して中断ペアに含まれる各メッセージの時間差を算出する。ペア抽出部180は、当該時間差の算出結果に基づいて各中断ペアと時間差とを対応付けた中断系時間差情報を生成し、中断ペア情報記憶部140に格納する。
【0056】
解析部190は、正常ペア情報記憶部130に記憶された正常系時間差情報に基づいて、正常系時間差分布を算出する。解析部190は、中断ペア情報記憶部140に記憶された中断系時間差情報に基づいて、中断系時間差分布を算出する。解析部190は、正常系時間差分布と中断系時間差分布とを比較して、各Webサーバの異常を検出する。比較に用いる基準の情報は、制御情報記憶部150に予め記憶される。解析部190は、制御情報記憶部150に記憶された基準に基づいて、正常系時間差分布と中断系時間差分布との比較を行い、基準に適合するか否かによって異常の有無を検出できる。
【0057】
解析部190は、異常を検出した場合、該当するWebサーバを示す情報を報知部195に出力する。
報知部195は、解析部190から取得したWebサーバにつき異常が発生している旨を報知する。報知部195は、例えば情報処理システムの管理者に電子メールを送信する、運用管理用ログに当該異常を記録する、アラームランプやスピーカを鳴動させる、などの方法により、異常を報知する。
【0058】
次に、メッセージの時間差について説明する。なお、以下の説明では端末装置21とWebサーバ200との間で送受信されるメッセージに関して説明するが、他の端末装置と他のWebサーバとの間で送受信されるメッセージに関しても同様である。
【0059】
図5は、メッセージの時間差を示す図である。図5(A)は正常系時間差T1を例示している。図5(B)は中断系時間差T2を例示している。図5(C)は正常系、中断系の何れにも該当しない場合を例示している。
【0060】
図5(A)では、リクエストメッセージR11およびレスポンスメッセージR12が示されている。リクエストメッセージR11は、端末装置21がWebサーバ200へ送信するリクエストである。リクエストメッセージR11は複数のリクエストパケットにより構成される。レスポンスメッセージR12は、Webサーバ200がリクエストメッセージR11に対して端末装置21に応答するレスポンスである。レスポンスメッセージR12は複数のレスポンスパケットにより構成される。
【0061】
ここで、正常系時間差T1は、リクエストメッセージR11とレスポンスメッセージR12との時間差である。具体的には、リクエストメッセージR11を構成する最後のパケットを取得した時刻とレスポンスメッセージR12を構成する最初のパケットを取得した時刻との差である。解析装置100は、リクエストメッセージR11に対応するレスポンスメッセージR12が存在する場合、両メッセージR11,R12の時間差により当該正常ペアに対する正常系時間差T1を算出する。正常系時間差T1は、リクエストメッセージR11によりWebサーバ200で実行された処理の開始から完了までの実行時間に対応付けることができる。
【0062】
図5(B)では、リクエストメッセージR21およびRSTパケットP1が示されている。リクエストメッセージR21はリクエストメッセージR11に対応する。RSTパケットP1は、端末装置21がWebサーバ200へ送信するセッション切断用のパケットである。端末装置21がRSTパケットP1を送信すると、端末装置21とWebサーバ200との間のセッションが強制的に切断される。これにより、Webサーバ200において当該セッションを介して確立されていたトランザクションが中断される。
【0063】
ここで、中断系時間差T2は、リクエストメッセージR21とRSTパケットP1との時間差である。具体的には、中断系時間差T2は、リクエストメッセージR21を構成する最後のパケットを取得した時刻とRSTパケットP1を取得した時刻との差である。解析装置100は、リクエストメッセージR21に対応するレスポンスメッセージが存在せず、RSTパケットP1が存在する場合、両メッセージR21,P1の時間差により当該中断ペアに対する中断系時間差T2を算出する。なお、上述の理由から、中断系時間差T2は、リクエストメッセージR21によりWebサーバ200で実行中であった処理の開始から中断までの実行時間に対応付けることができる。
【0064】
図5(C)では、リクエストメッセージR31、レスポンスメッセージR32およびRSTパケットP2が示されている。リクエストメッセージR31はリクエストメッセージR11に対応する。レスポンスメッセージR32は、Webサーバ200がリクエストメッセージR31に対して端末装置21に応答するレスポンスの一部である。RSTパケットP2は、レスポンスメッセージR32の送信中に端末装置21がWebサーバ200へ送信するセッション切断用のパケットである。
【0065】
このように、Webサーバ200は、レスポンスメッセージR32の送信中に端末装置21からRSTパケットP2を受信することもある。この場合、解析装置100はレスポンスメッセージR32を取得できないため、解析処理の対象外とする。なぜなら、解析装置100はレスポンスメッセージR32を組み立てるためのパケットを完全に取得できず、当該メッセージにつきメッセージの復元を行うことはできないからである。従って、この場合には、レスポンスメッセージR32およびRSTパケットP2に関しては、メッセージの復元を行わないこととする。このように不完全な情報を解析対象から除外することで、異常を誤検出する可能性を低減でき、稼働監視の精度を一層向上できる。
【0066】
次に、解析装置100の処理に用いるデータ構造例を説明する。
図6は、パケットのデータ構造例を示す図である。パケット保存ファイル111は、パケット受信部160により収集されたパケットを格納したファイルである。パケット保存ファイル111には、パケット受信部160がパケットを受信するたびに新たに受信したパケットの情報が追加される。パケット保存ファイル111は、例えばバイナリ形式のファイルである。
【0067】
パケット保存ファイル111は、受信日時格納部111aおよびパケットデータ格納部111bを有する。
受信日時格納部111aは、パケットデータ格納部111bに格納するパケットを受信した日時を設定する領域である。パケット受信部160は、当該パケットを受信したときのタイムスタンプ(例えば、年月日時分秒を示す情報)を受信日時格納部111aに格納する。
【0068】
パケットデータ格納部111bは、パケット受信部160が受信したパケットの本体を格納する領域である。
メッセージ復元部170は、パケット記憶部110に記憶されたパケット保存ファイル111に基づいて、各Webサーバで送受信されたメッセージを復元する。
【0069】
図7は、復元メッセージの具体例を示す図である。復元メッセージ121は、メッセージ復元部170によりパケット記憶部110に記憶されたパケット保存ファイル111に基づいて生成され、メッセージログ記憶部120に格納される。復元メッセージ121は、後述するメッセージログ管理テーブルを生成するためのデータである。なお、復元メッセージ121では、以降の説明に適合する内容のみを記載しており、それ以外のメッセージに関しては図示を省略している。
【0070】
復元メッセージ121の各行には、時間フィールド121a、アドレスフィールド121bおよびプロトコルフィールド121cが含まれる。
時間フィールド121aは、当該メッセージに対応するパケットを受信した時間(例えば、年月日時分秒)を示すフィールドである。時間フィールド121aには、例えばマイクロ秒単位で時間が設定される。ここで、時間フィールド121aに設定される時間は、パケット記憶部110に記憶されたパケット保存ファイル111の受信日時格納部111aの領域を参照して取得できる。具体的には、そのメッセージがリクエストの場合、パケット保存ファイル111中、そのメッセージを示す複数のパケットのうちの最後のパケットの受信日時とする。また、そのメッセージがレスポンスの場合、パケット保存ファイル111中、そのメッセージを示す複数のパケットのうちの最初のパケットの受信日時とする。
【0071】
アドレスフィールド121bは、当該メッセージの送信元および送信先のコンピュータのIP(Internet Protocol)アドレスおよびポート番号を示すフィールドである。
プロトコルフィールド121cは、メッセージのリクエスト/レスポンス種別やプロトコルなどを示すフィールドである。
【0072】
以下、復元メッセージ121に便宜的に付した行番号を示して説明する。
例えば、行番号1では、時間フィールド121aに“2010/05/21 13:00:00.000000”という情報が設定されている。これは、当該時間に行番号1のメッセージを受信したことを示している。
【0073】
また、例えば行番号1では、アドレスフィールド121bに“1.2.3.4:1234 −> 10.0.0.11:80”という情報が設定されている。これは、端末装置21(IPアドレスを“1.2.3.4”とする)のポート番号“1234”から、Webサーバ200(IPアドレスを“10.0.0.11”とする)のポート番号“80”に対してメッセージ送信が行われたことを示す。なお、“アドレスA−>アドレスB”の記号は、Aで示される装置からBで示される装置へのメッセージ送信、“アドレスA<−アドレスB”の記号はBで示される装置からAで示される装置へのメッセージ送信を示す。
【0074】
また、例えば、行番号1では、プロトコルフィールド121cに“TCP Connect”という情報が設定されている。これは、当該メッセージがTCPのセッション確立用のメッセージであることを示している。
【0075】
ここで、行番号2,3は、図5(A)の場合に対応する。すなわち、行番号2のメッセージはリクエストメッセージR11に対応する。また、行番号3のメッセージはレスポンスメッセージR12に対応する。
【0076】
行番号12,13は、図5(B)の場合に対応する。すなわち、行番号12のメッセージはリクエストメッセージR21に対応する。また、行番号13のメッセージはRSTパケットP1に対応する。ここで、IPアドレス“1.2.3.5”は、端末装置22のIPアドレスである。
【0077】
図8は、メッセージログ管理テーブルのデータ構造例を示す図である。メッセージログ管理テーブル122は、メッセージ復元部170によって生成され、メッセージログ記憶部120に格納される。メッセージログ管理テーブル122には、項番、日時、メッセージID(IDentifier)、クライアント、サーバ、種別、プロトコルおよびメッセージの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのメッセージに関する情報を示す。
【0078】
項番には、レコードを識別するための識別番号が設定される。日時には、当該メッセージを受信した時間が設定される。メッセージIDには、当該メッセージが関連する一連の処理を識別するための識別情報が設定される。
【0079】
ここで、メッセージIDには、“xxxx”、“xxxx−y”と表記されているものがある。以下では、“xxxx”の部分をセッション識別部と称する。セッション識別部は、TCPにより確立されたセッションを識別する識別情報である。また、“y”の部分をトランザクション識別部と称する。トランザクション識別部は、当該セッションを介して各Webサーバ上で確立されたトランザクションを識別する識別情報である。
【0080】
クライアントには、各端末装置のIPアドレスおよびポート番号が設定される。サーバには、各WebサーバのIPアドレスおよびポート番号が設定される。種別には、リクエストおよびレスポンスの何れかを示す情報が設定される。プロトコルには、TCPやHTTPなどのプロトコルを示す情報が設定される。メッセージには、当該プロトコルで送信されたメッセージの内容が設定される。
【0081】
メッセージログ管理テーブル122には、例えば、項番が“1001”、日時が“2010/5/21 13:00:00.000000”、メッセージIDが“1234”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、種別が“−”、プロトコルが“TCP”、メッセージが“Connect”という情報が設定される。
【0082】
この項番“1001”のレコードは、復元メッセージ121の行番号“1”のメッセージに対応する。メッセージ復元部170は、当該メッセージにメッセージID“1234”を付与してメッセージログ管理テーブル122に登録している。
【0083】
また、メッセージログ管理テーブル122には、例えば、項番が“1002”、日時が“2010/5/21 13:00:00.000001”、メッセージIDが“1234−1”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、種別が“Request”、プロトコルが“HTTP”、メッセージが“GET/index.html”という情報が設定される。
【0084】
この項番“1002”のレコードは、復元メッセージ121の行番号“2”のメッセージに対応する。メッセージ復元部170は、当該メッセージにメッセージID“1234−1”を付与してメッセージログ管理テーブル122に登録している。ここで、メッセージID“1234−1”のセッション識別部“1234”は、項番“1001”のレコードと同一である。これは、項番“1001”で示されるTCPのパケットによって確立されたセッションを介して、項番“1002”で示されるHTTPのメッセージが送信されていることを示す。
【0085】
なお、同一クライアント・サーバの組においてTCPの“Connect”、“Close”は同一のメッセージID(この場合、セッション識別部のみとなる)を設定する。更に、同一クライアント・サーバの組においてTCPの“Connect”、“Reset”は同一のメッセージID(この場合も、セッション識別部のみとなる)を設定する。
【0086】
また、項番“1003”のレコードは、メッセージIDが“1234−1”であり項番“1002”のレコードのメッセージIDと同一である。これは、当該項番“1003”のレコードが示すレスポンスが、項番“1002”のレコードが示すリクエストに対応するレスポンスであり、同一トランザクションに係るメッセージであることを示している。
【0087】
このように、解析装置100は、同一のクライアント・サーバの組につき、リクエスト、レスポンスの順で送受信された各メッセージに同一のメッセージIDを付与する。これにより、Webサーバ200上の処理に対してなされたリクエストとレスポンスとの組合せを明確に管理できる。
【0088】
なお、項番“1022”〜“1025”のレコードに示されるように、端末装置21からWebサーバ200に対して複数のリクエストが送信されることもある。
解析装置100は、このような場合を想定して次のようにメッセージIDを付与すればよい。すなわち、解析装置100が先に受信したリクエストにメッセージID(“3235−1”)を付与後、次に受信したリクエストにそれとは異なるメッセージID(“3235−2”)を付与する。本例では、トランザクション識別部をインクリメントしている。また、解析装置100が先に受信したレスポンスに先に受信したリクエストに付与したメッセージID(“3235−1”)を付与し、次に受信したレスポンスに次のメッセージID(“3235−2”)を付与する。
【0089】
このようすれば、端末装置21からWebサーバ200に対して複数のリクエストが送信されてもリクエストとそれに対するレスポンスとの組合せを適正に管理できる。ここで、このようにして、リクエストとレスポンスとの組合せを管理できるのは、Webサーバ200で実行される処理が、一般に、受信したリクエストの順に行われることによる。すなわち、先に送信したリクエストに対するレスポンスが先に応答されるのが一般的だからである。
【0090】
ここで、メッセージログ管理テーブル122において、項番“1001”〜“1004”のレコードは復元メッセージ121の行番号“1”〜“4”のメッセージにそれぞれ対応する。また、項番“1011”〜“1013”のレコードは復元メッセージ121の行番号“11”〜“13”のメッセージにそれぞれ対応する。また、項番“1021”〜“1026”のレコードは復元メッセージ121の行番号“21”〜“26”のメッセージにそれぞれ対応する。
【0091】
図9は、正常ペアテーブルのデータ構造例を示す図である。正常ペアテーブル131は、ペア抽出部180により生成され、正常ペア情報記憶部130に格納される。ペア抽出部180は、メッセージログ管理テーブル122のメッセージID、種別およびプロトコルを参照し、同一メッセージID、プロトコル“HTTP”、種別が“Request”、“Response”の対になっているものを正常ペアとして抽出する。なお、プロトコルが“TCP”であるものは、正常ペアの選択対象に含めないものとする。各Webサーバの処理時間をHTTPの処理単位で解析するためである。
【0092】
正常ペアテーブル131には、項番、リクエスト日時、レスポンス日時、メッセージID、クライアント、サーバ、プロトコル、リクエストおよびレスポンスの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの正常ペアに関する情報を示す。
【0093】
項番には、レコードを識別するための識別番号が設定される。リクエスト日時には、正常ペアのうちリクエストに対応するメッセージを受信した時間が設定される。レスポンス日時には、正常ペアのうちレスポンスに対応するメッセージを受信した時間が設定される。メッセージIDには、当該レコードに対応する処理のメッセージIDが設定される。クライアントには、各端末装置のIPアドレスおよびポート番号が設定される。サーバには、各WebサーバのIPアドレスおよびポート番号が設定される。プロトコルには、プロトコルを示す情報が設定される。リクエストには、リクエストの内容を示す情報が設定される。レスポンスには、レスポンスの内容を示す情報が設定される。
【0094】
正常ペアテーブル131には、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:00.000001”、レスポンス日時が“2010/5/21 13:00:00.001001”、メッセージIDが“1234−1”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、リクエストが“GET/index.html”、レスポンスが“200”という情報が設定される。
【0095】
この正常ペアテーブル131の項番“1001”のレコードは、メッセージログ管理テーブル122における項番“1002”,“1003”のレコードが示すリクエスト、レスポンスの正常ペアを示す。
【0096】
同様に、正常ペアテーブル131の項番“1021”のレコードは、メッセージログ管理テーブル122における項番“1022”,“1023”のレコードが示すリクエスト、レスポンスの正常ペアを示す。また、正常ペアテーブル131の項番“1022”のレコードは、メッセージログ管理テーブル122における項番“1024”,“1025”のレコードが示すリクエスト、レスポンスの正常ペアを示す。
【0097】
図10は、正常系時間差テーブルのデータ構造例を示す図である。正常系時間差テーブル131aは、ペア抽出部180により生成され正常ペア情報記憶部130に格納される。正常系時間差テーブル131aには、項番、リクエスト日時、レスポンス日時、メッセージID、クライアント、サーバ、プロトコルおよび時間差の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの正常ペアに関する情報を示す。
【0098】
ここで、項番、リクエスト日時、レスポンス日時、メッセージID、クライアント、サーバおよびプロトコルの項目に設定される情報は、正常ペアテーブル131と同様であるため説明を省略する。
【0099】
時間差には、リクエスト日時とレスポンス日時との差が設定される。
正常系時間差テーブル131aには、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:00.000001”、レスポンス日時が“2010/5/21 13:00:00.001001”、メッセージIDが“1234−1”、クライアントが“1.2.3.4:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、時間差が“0.001000”(秒)という情報が設定される。これは、当該項番“1001”のレコードに対応する正常ペアにつき、リクエストとレスポンスとの時間差が“0.001000”秒であることを示している。この時間差は、リクエスト日時に設定された時間とレスポンス日時に設定された時間との差により算出できる。この時間差は、Webサーバ200における処理時間(または、Webサーバ200、APサーバ500,600およびDBサーバ700による一連の処理時間)に対応付けることができる。
【0100】
図11は、中断ペアテーブルのデータ構造例を示す図である。中断ペアテーブル141は、ペア抽出部180により生成され、中断ペア情報記憶部140に格納される。ペア抽出部180は、RSTパケットが受信された場合に、メッセージログ管理テーブル122を参照して、メッセージIDのセッション識別部がRSTパケットと同一で、対になるレスポンスのないリクエストを検出する。そして、そのリクエストと当該RSTパケットとを中断ペアとして抽出する。
【0101】
中断ペアテーブル141には、項番、リクエスト日時、中断日時、メッセージID、クライアント、サーバ、プロトコル、リクエストおよびメッセージの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの中断ペアに関する情報を示す。
【0102】
ここで、項番、リクエスト日時、メッセージID、クライアント、サーバ、プロトコル、リクエストの項目に設定されるデータの内容は、正常ペアテーブル131と同様であるため、説明を省略する。
【0103】
中断日時にはRSTパケットを受信した時間が設定される。メッセージには、当該パケットのRSTフラグがオンであることを示す“Reset”が設定される。
中断ペアテーブル141には、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:01.000001”、レスポンス日時が“2010/5/21 13:00:31.000001”、メッセージIDが“2234−1”、クライアントが“1.2.3.5:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、リクエストが“GET/index.html”、メッセージが“Reset”という情報が設定される。
【0104】
この中断ペアテーブル141の項番“1001”のレコードは、メッセージログ管理テーブル122における項番“1012”,“1013”のレコードが示すリクエスト、RSTパケットの中断ペアを示す。
【0105】
図12は、中断系時間差テーブルのデータ構造例を示す図である。中断系時間差テーブル141aは、ペア抽出部180により生成され中断ペア情報記憶部140に格納される。中断系時間差テーブル141aには、項番、リクエスト日時、中断日時、メッセージID、クライアント、サーバ、プロトコルおよび時間差を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの中断ペアに関する情報を示す。
【0106】
ここで、項番、リクエスト日時、中断日時、メッセージID、クライアント、サーバ、プロトコルの項目に設定されるデータの内容は、中断ペアテーブル141と同様であるため、説明を省略する。
【0107】
時間差には、リクエスト日時と中断日時との差が設定される。
中断系時間差テーブル141aには、例えば、項番が“1001”、リクエスト日時が“2010/5/21 13:00:01.000001”、レスポンス日時が“2010/5/21 13:00:31.000001”、メッセージIDが“2234−1”、クライアントが“1.2.3.5:1234”、サーバが“10.0.0.11:80”、プロトコルが“HTTP”、時間差が“30.000000”(秒)という情報が設定される。これは、当該項番“1001”のレコードに対応する中断ペアにつき、リクエストとRSTパケットとの時間差が“30.000000”秒であることを示している。この時間差は、リクエスト日時に設定された時間と中断日時に設定された時間との差により算出できる。この時間差は、Webサーバ200における中断までの処理時間(または、Webサーバ200、APサーバ500,600およびDBサーバ700による一連の処理時間)に対応付けることができる。
【0108】
次に、解析装置100の処理手順を説明する。
図13は、ペア抽出処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0109】
[ステップS11]パケット受信部160は、負荷分散装置10からパケットを受信する。パケット受信部160は、受信したパケットに受信日時を付加してパケット保存ファイル111に追加し、パケット記憶部110に格納する。
【0110】
[ステップS12]メッセージ復元部170は、パケット記憶部110を参照して新たに受信したパケットのRSTフラグがオンであるか否か、すなわちRSTパケットであるか否かを判定する。RSTパケットである場合、処理をステップS13に進める。RSTパケットでない場合、処理をステップS16に進める。
【0111】
[ステップS13]メッセージ復元部170は、メッセージログ管理テーブル122を参照して、RSTパケットの送信元の端末装置が過去に送信したリクエストで、対になるレスポンスのないものが存在するか否かを判定する。存在する場合、処理をステップS14に進める。存在しない場合、処理をステップS16に進める。
【0112】
例えば、復元メッセージ121の行番号13に対応するRSTパケットを端末装置21から受信したとする。この場合、当該RSTパケットよりも以前に端末装置21が送信したリクエストで、レスポンスの存在しないものとして行番号12のリクエストが存在する。この場合、メッセージ復元部170は、対になるレスポンスがないリクエストが存在すると判定する。
【0113】
なお、対になるレスポンスが現在パケットを蓄積して組み立て中である場合、そのレスポンスも含めてリクエスト・レスポンスの組の存在を判定するものとする。例えば、図5(C)のように組み立て中のレスポンスメッセージR32を考慮して、対になるレスポンスのないリクエストが存在しない場合、処理をステップS16に進める。
【0114】
[ステップS14]メッセージ復元部170は、受信パケットがRSTパケットである旨を示すメッセージを生成し、メッセージログ記憶部120に記憶されたメッセージログ管理テーブル122に登録する。例えば、メッセージログ管理テーブル122の項番“1013”のレコードが対応する。
【0115】
[ステップS15]ペア抽出部180は、RSTパケットを示すメッセージと、ステップS13で検出した対になるレスポンスのないリクエストと、を中断ペアとして抽出し、中断ペア情報記憶部140に記憶された中断ペアテーブル141に登録する。例えば、メッセージログ管理テーブル122の項番“1012”のリクエストおよび項番“1013”のRSTパケットを中断ペアとして抽出する。これは、中断ペアテーブル141の項番“1001”のレコードに対応する。そして、処理をステップS21に進める。
【0116】
[ステップS16]メッセージ復元部170は、新たに受信したパケットと受信済みのパケットによりメッセージの組み立てを試みる。
なお、メッセージ復元部170は、各端末装置と各Webサーバとの間のレスポンスの組み立て途中にRSTパケットが受信されて組み立てが中断された場合には、当該組み立て中のレスポンスと受信したRSTパケットとを破棄する。
【0117】
[ステップS17]メッセージ復元部170は、受信したパケットによりメッセージを復元できたか否かを判定する。メッセージを復元できた場合、処理をステップS18に進める。メッセージを復元していない場合、次のパケット受信を待機して処理を完了する。
【0118】
[ステップS18]メッセージ復元部170は、新たに復元したメッセージをメッセージログ管理テーブル122に登録する。
[ステップS19]ペア抽出部180は、メッセージログ管理テーブル122を参照して、登録されたメッセージがレスポンスであるか否かを判定する。レスポンスである場合、処理をステップS20に進める。レスポンスでない場合、処理を完了する。
【0119】
[ステップS20]ペア抽出部180は、当該レスポンスと同一のメッセージIDであるリクエストとを正常ペアとして抽出し、正常ペア情報記憶部130に記憶された正常ペアテーブル131に登録する。例えば、メッセージログ管理テーブル122の項番“1002”のリクエストおよび項番“1003”のレスポンスを正常ペアとして抽出する。これは、正常ペアテーブル131の項番“1001”のレコードに対応する。
【0120】
[ステップS21]ペア抽出部180は、新たに抽出した正常ペアまたは中断ペアについて、時間差を算出する。ペア抽出部180は、算出した時間差を正常系時間差テーブル131aまたは中断系時間差テーブル141aに登録する。
【0121】
このようにして、ペア抽出部180は、メッセージログ管理テーブル122に基づいて正常ペアおよび中断ペアを抽出する。更に、正常ペアの各メッセージについて、リクエストとレスポンスとの時間差T1を算出し、正常系時間差テーブル131aを生成する。また、中断ペアの各メッセージについて、リクエストとRSTパケットとの時間差T2を算出し、中断系時間差テーブル141aを生成する。
【0122】
解析部190は、これらの情報に基づいて、各Webサーバの異常を検出することができる。次に、そのための解析処理について説明する。なお、以下の処理は所定の周期で開始される。あるいは、例えばシステム管理者の所定の操作を受け付けた際に実行してもよい。
【0123】
図14は、第2の実施の形態の解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS31]解析部190は、正常ペア情報記憶部130に記憶された正常系時間差テーブル131aを取得する。
【0124】
[ステップS32]解析部190は、中断ペア情報記憶部140に記憶された中断系時間差テーブル141aを取得する。
[ステップS33]解析部190は、解析対象とするWebサーバを選択する。例えば、RSTパケットを送信されたWebサーバを解析対象とする。また、例えば、受け付けたURLに対応付けられた各Webサーバのうちの1つを順次選択して解析対象としてもよい。
【0125】
[ステップS34]解析部190は、正常系時間差テーブル131aに基づいて、選択したWebサーバにつき時間差T1の頻度分布(正常系時間差分布)を算出する。また、解析部190は、中断系時間差テーブル141aに基づいて、選択したWebサーバにつき時間差T2の頻度分布(中断系時間差分布)を算出する。なお、解析部190は、正常系時間差テーブル131aおよび中断系時間差テーブル141aのサーバの項目に設定されたIPアドレスにより、対象のWebサーバの時間差情報を適切に参照できる。
【0126】
[ステップS35]解析部190は、正常系時間差分布について、時間差0から所定パーセンタイル(Xパーセンタイルとする)となる時間差の値S1を取得する。ここで、Xはシステムの運用状況によって適宜決定できる。例えば、X=90とする。Xの値は、制御情報記憶部150に予め格納されており、解析部190はこれを参照できる。
【0127】
[ステップS36]解析部190は、中断系時間差分布について次の判定値S2を求める。
S2=(中断系時間差分布の平均値)+定数P
ここで、定数Pは、システムの運用状況によって適宜決定できる。例えば、P=α×(中断系時間差分布の標準偏差)とすることができる。ただし、係数αは、−1以上1以下の実数である。αの値は、例えば制御情報記憶部150に予め格納されており、解析部190はこれを参照できる。また、中断系時間差分布の平均値に代えて、当該分布について定まる他の基準値を用いても構わない。例えば、中央値、最頻値などを用いてもよい。
【0128】
[ステップS37]解析部190は、S1≦S2であるか否かを判定する。S1≦S2である場合、処理をステップS38に進める。S1>S2である場合、処理を完了する。ここで、S1≦S2は正常系時間差分布に比して、中断系時間差分布に含まれる時間差の値が同じ、または、大きいことを示している。一方、S1>S2は正常系時間差分布に比して、中断系時間差分布に含まれる時間差の値が許容範囲であることを示している。
【0129】
[ステップS38]解析部190は、報知部195に解析対象としたWebサーバについて異常が発生した旨を通知する。報知部195は、この通知に基づいて、当該Webサーバの異常を報知する。報知部195は、例えば情報処理システムの管理者に電子メールを送信する、運用管理用ログに当該異常を記録する、アラームランプやスピーカを鳴動させる、などの方法により、異常を報知する。
【0130】
[ステップS39]解析部190は、他に解析対象とするWebサーバが存在するか否かを判定する。存在する場合、処理をステップS33に進める。存在しない場合、処理を完了する。
【0131】
このようにして、解析部190は、正常系時間差分布および中断系時間差分布により、各Webサーバの異常を検出できる。次に上記解析処理の具体例を説明する。
図15は、第2の実施の形態の解析処理の具体例を示す図である。図15(A)に示すグラフ810は正常時の時間差分布を例示している。図15(B)に示すグラフ820は異常時の時間差分布を例示している。なお、以下の説明において、X=90(パーセンタイル)、P=α×(中断系時間差分布の標準偏差)、α=+1である旨が制御情報記憶部150に予め格納されているものとする。
【0132】
図15(A)のグラフ810には、正常系時間差分布811および中断系時間差分布812が示されている。正常系時間差分布811では、90パーセンタイルとなる時間差S1は、9.4秒であるとする。また、中断系時間差分布812では、S2値が4.8秒であるとする。すると、S1>S2であるので、解析部190はこの状態を異常と判定しない。
【0133】
この場合を異常と判定しないのは、RSTパケットの送信にWebサーバ側の遅延が反映されないことが多いためである。具体的には、ユーザがリンク選択を誤った、データの選択を誤った、などの場合が考えられる。すなわち、このような場合にはユーザが自己の誤操作を認識でき、即座にブラウザにRSTパケットの送信を行わせて、誤操作をキャンセルすることが多いためである。
【0134】
図15(B)のグラフ820には、正常系時間差分布821および中断系時間差分布822が示されている。正常系時間差分布821では、90パーセンタイルとなる時間差S1は、9.4秒であるとする。また、中断系時間差分布822では、S2値が9.8秒であるとする。すると、S1≦S2であるので、解析部190はこの状態を異常と判定する。そして、報知部195に異常を報知させる。
【0135】
このように、解析装置100は、負荷分散装置10から受信したパケットに基づいて各Webサーバの異常を検出する。
このように、解析装置100は、従来看過されていた各Webサーバにおける処理中断の事象を稼働監視の対象に含める。これにより、各Webサーバの稼働監視の精度を向上できる。その結果、より正確な異常検知が可能となる。
【0136】
また、解析装置100は、各Webサーバがレスポンスを送信している途中にRSTパケットを受信した場合、当該レスポンスおよびRSTパケットを解析対象から除外する。このように、不完全なメッセージを解析対象から除外することで、稼働監視の精度をより向上できる。
【0137】
なお、各Webサーバがレスポンスを送信している途中にRSTパケットを受信した場合、Webサーバ200の処理遅延によるものである可能性は低いと考えられる。例えば、ユーザがブラウザ上で誤ったリンクを選択した、誤ったファイルを開こうとしたなど、ユーザの誤操作による処理を停止させる目的である可能性がある。このため、各Webサーバがレスポンスを送信している途中にRSTパケットを受信した場合を正常系として扱って、解析処理を行ってもよい。
【0138】
[第3の実施の形態]
以下、第3の実施の形態を図面を参照して詳細に説明する。前述の第2の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【0139】
第3の実施の形態は、同一URLに対応する処理を複数のサーバの何れかで実行する場合を想定している。例えば、同一URLに対応するコンテンツがWebサーバ200,300,400に格納されており、負荷分散装置10により、該当URLを指定したコンテンツの取得要求がWebサーバ200,300,400の何れかに振り分けられるような場合である。このような場合、1つのURLに対して、そのURLの処理を実行するサーバが複数存在する。そこで第3の実施の形態では、URL単位での中断系時間差分布を求める。そして、その中断系時間差分布とURLに対応付けられた実サーバ単位での中断系時間差分布との比較により、異常を検出する機能を提供する。
【0140】
ここで、第3の実施の形態の情報処理システムの全体構成、解析装置のハードウェア構成は、図2,3で説明した第2の実施の形態の情報処理システムの全体構成、解析装置100のハードウェア構成と同一であるため、その説明を省略する。
【0141】
また、第3の実施の形態の解析装置の機能構成は図4で説明した第2の実施の形態の解析装置100の機能構成と同様である。このため、第3の実施の形態の解析装置を解析装置100の各構成に用いた符号と同一の符号を用いて説明する。ただし、解析部190の機能が異なる。第3の実施の形態の解析部190の処理機能は図17で詳述する。
【0142】
図16は、第3の実施の形態のURL管理テーブルのデータ構造例を示す図である。URL管理テーブル151は、制御情報記憶部150に予め格納される。URL管理テーブル151には、サービス提供URL、サーバ名およびサーバアドレスを示す項目が設けられている。各項目の横方向に並べられた情報同士が、1つのサーバに関する情報を示す。
【0143】
サービス提供URLには、サービスにアクセスするためのURLが設定される。サーバ名には、各Webサーバの名称が設定される。サーバアドレスには、各WebサーバのIPアドレスが設定される。
【0144】
URL管理テーブル151には、例えば、サービス提供URLが“(ドメイン名)/service”という情報が設定されている。「ドメイン名」には、複数のWebサーバ200,300,400によって提供されるコンテンツ配信などのサービス機能に割り当てられたドメイン名が設定される。URL管理テーブル151に設定されている情報は、Webサーバ200,300,400が提供するサービスにアクセスするための共通のURLおよびIPアドレスを示している。なお、以下の説明では、このURLを“URL−A”と略記する。更に、URL管理テーブル151には、例えば、サーバ名が“サーバA1”、サーバアドレスが“10.0.0.11:80”という情報が設定される。これは、“URL−A”に対応付けられたWebサーバ200のサーバ名およびサーバアドレスを示している。
【0145】
また、“サーバA2”はWebサーバ300に対応する。“サーバA3”はWebサーバ400に対応する。
このように、情報処理システムが提供するサービスごとに、そのURLと対応するWebサーバとがURL管理テーブル151に定義される。
【0146】
次に、第3の実施の形態の解析装置100の処理手順を説明する。ここで、ペア抽出処理については、図13に示した第2の実施の形態のペア抽出処理と同様であるため、説明を省略する。解析装置100は、ペア抽出処理によって得られた中断ペアにより以下の解析処理を行う。
【0147】
図17は、第3の実施の形態の解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS41]解析部190は、解析対象とするURLを特定する。解析部190は、例えば、システム管理者によるURLの選択入力を受け付けて、解析対象のURLを特定する。
【0148】
[ステップS42]解析部190は、制御情報記憶部150に記憶されたURL管理テーブル151を参照して、URLに対応する各Webサーバおよび、そのIPアドレスを特定する。解析部190は、例えば、“URL−A”が選択されている場合、URL管理テーブル151から“サーバA1”、“サーバA2”、“サーバA3”に対応するWebサーバ200,300,400のIPアドレスを特定する。
【0149】
[ステップS43]解析部190は、中断ペア情報記憶部140に記憶された中断系時間差テーブル141aを参照して、特定したIPアドレスにより各Webサーバの時間差を取得する。そして、解析部190は、URL単位で中断系時間差分布を算出する。
【0150】
[ステップS44]解析部190は、URL単位の中断系時間差分布の平均値Mを取得する。
[ステップS45]解析部190は、URLに対応する各Webサーバのうちの1つを処理対象として選択する。
【0151】
[ステップS46]解析部190は、URLを構成する選択したWebサーバの中断系時間差分布を算出する。そして、解析部190は、そのWebサーバの中断系時間差分布の各平均値mおよび各標準偏差dを取得する。なお、中断系時間差分布の各平均値mに代えて、当該各分布について定まる他の基準値を用いても構わない。例えば、中央値、最頻値などを用いてもよい。
【0152】
[ステップS47]解析部190は、判定値m−dがm−d<M+Qであるか否かを判定する。ここで、Qは定数であり、0以上の整数値をとることができる。例えば、QをURL単位の中断系時間差分布の標準偏差とする。また、Qは、例えば当該標準偏差に所定の係数を乗じた値でもよい。m−d<M+Qである場合、解析部190は処理をステップS49に進める。m−d<M+Qでない場合、解析部190は処理をステップS48に進める。
【0153】
[ステップS48]解析部190は、ステップS45で選択したWebサーバにつき異常を検出した旨を報知部195に通知する。報知部195は、その異常を報知する。
[ステップS49]解析部190は、Webサーバの全てについて異常検出処理を行ったか否か判定する。全てについて処理済の場合、処理を完了する。未処理のWebサーバが存在する場合、処理をステップS45に進める。
【0154】
このようにして、解析装置100は、URL単位の中断系時間差分布と、そのURLを構成するWebサーバ単位の中断系時間差分布と、を比較する。そして、URL単位の中断系時間差分布に対して、Webサーバ単位の中断系時間差分布が許容できる範囲内に存在しない場合に、当該Webサーバで異常ありと判断する。次に上記解析処理の具体例を説明する。
【0155】
図18は、第3の実施の形態の解析処理の具体例を示す図である。図18(A)は“URL−A”単位の中断系時間差分布830を例示している。図18(B)はWebサーバ200(サーバA1)の中断系時間差分布831を例示している。図18(C)はWebサーバ300(サーバA2)の中断系時間差分布832を例示している。なお、図18では、Webサーバ400の中断系時間差分布の図示を省略している。
【0156】
図18(A)において、中断系時間差分布830は、Webサーバ200,300,400で取得された中断ペアの時間差を総合して得られた頻度分布である。中断系時間差分布830には、その平均値Mと当該分布の所定の幅Qが示されている。
【0157】
図18(B)において、中断系時間差分布831は、その平均値がm1、標準偏差がd1である。そして、m1,d1は、m1−d1<M+Qの条件を満たすとする。この場合、解析部190は、Webサーバ200を正常に稼働中であると判断する。
【0158】
図18(C)において、中断系時間差分布832は、その平均値がm2、標準偏差がd2である。そして、m2,d2は、m2−d2≧M+Qであるとする。すなわち、m−d<M+Qの条件を満たしていない。この場合、解析部190は、中断系時間差分布832が許容できる範囲の時間差を超過しており、Webサーバ300で異常が発生していると判断する。そして、解析部190は報知部195にWebサーバ300の異常を報知させる。
【0159】
このように、各Webサーバで取得した中断ペアを総合して、これをURL単位で解析することで、当該URLに対応する各Webサーバの異常を容易に検出できる。
また、第2の実施の形態の解析処理に加えて、第3の実施の形態の解析処理を行うこともできる。例えば、解析部190は、第2の実施の形態の解析結果と第3の実施の形態の解析結果とを照合して、両方の解析結果で異常ありとされたWebサーバについて、報知部195にアラートの出力を指示することができる。これにより、何れか一方の解析結果で判断するよりも、異常検出の精度を一層向上できる。
【0160】
[第4の実施の形態]
以下、第4の実施の形態を図面を参照して詳細に説明する。前述の第2,第3の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【0161】
第4の実施の形態では、URL単位に中断ペアの発生回数(中断回数)の頻度分布を取得する。また、そのURLを構成するWebサーバ単位に中断回数の頻度分布を取得する。そして、両頻度分布を比較することで、各Webサーバの異常を検出する機能を提供する。
【0162】
ここで、第4の実施の形態の情報処理システムの全体構成、解析装置のハードウェア構成は、図2,3で説明した第2の実施の形態の情報処理システムの全体構成、解析装置100のハードウェア構成と同一であるため、その説明を省略する。
【0163】
また、第4の実施の形態の解析装置の機能構成は図4で説明した第2の実施の形態の解析装置100の機能構成と同様である。このため、第4の実施の形態の解析装置を解析装置100の各構成に用いた符号と同一の符号を用いて説明する。ただし、解析部190の機能が異なる。第4の実施の形態の解析部190の処理機能は図20で詳述する。
【0164】
更に、制御情報記憶部150には図16で説明したURL管理テーブル151が格納されているものとする。
図19は、第4の実施の形態の中断回数テーブルのデータ構造例を示す図である。中断回数テーブル142,142a,142bは、解析部190により生成され、中断ペア情報記憶部140に格納される。解析部190は、中断ペア情報記憶部140に記憶された中断ペアテーブル141を参照して、単位時間当たりの中断ペアの個数を集計することで、中断回数テーブル142,142a,142bを生成することができる。
【0165】
中断回数テーブル142は、Webサーバ200の中断回数を示すテーブルである。中断回数テーブル142aは、Webサーバ300の中断回数を示すテーブルである。中断回数テーブル142bは、Webサーバ400の中断回数を示すテーブルである。
【0166】
以下、中断回数テーブル142について説明するが、中断回数テーブル142a,142bに関しても中断回数テーブル142と同様である。
中断回数テーブル142には、項番、時間帯、サーバおよび回数を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのWebサーバの単位時間当たりの中断回数を示す。
【0167】
項番には、レコードを識別するための番号が設定される。時間帯には、中断回数を集計した期間が設定される。サーバには、該当のWebサーバのIPアドレスが設定される。回数には、時間帯当たりの中断回数が設定される。
【0168】
中断回数テーブル142には、例えば、項番が“101”、時間帯が“2010/5/21 13:00:00.000000〜13:00:59.999999”、サーバが“10.0.0.11:80”、回数が“10”(回)という情報が設定される。
【0169】
これは、上記時間帯において、各端末装置からWebサーバ200に対して処理中断を伴うRSTパケットが“10”回、送信されたことを示している。
次に、第4の実施の形態の解析装置100の処理手順を説明する。ここで、ペア抽出処理については、図13に示した第2の実施の形態のペア抽出処理と同様であるため、説明を省略する。
【0170】
なお、解析部190は、ペア抽出処理によって得られた中断ペアテーブル141を参照して、中断回数テーブル142,142a,142bを生成し、中断ペア情報記憶部140に予め格納している。
【0171】
図20は、第4の実施の形態の解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS51]解析部190は、解析対象とするURLを特定する。解析部190は、例えば、システム管理者によるURLの選択入力を受け付けて、解析対象のURLを特定する。
【0172】
[ステップS52]解析部190は、制御情報記憶部150に記憶されたURL管理テーブル151を参照して、解析対象のURLに対応する各Webサーバおよび、そのIPアドレスを特定する。解析部190は、例えば、“URL−A”が選択されている場合、URL管理テーブル151から“サーバA1”、“サーバA2”、“サーバA3”に対応するWebサーバ200,300,400のIPアドレスを特定する。
【0173】
[ステップS53]解析部190は、中断ペア情報記憶部140に記憶された中断回数テーブル142,142a,142bを参照して、各Webサーバの中断回数を取得する。解析対象とする期間(例えば、過去1時間分、過去1日分など)は制御情報記憶部150に予め設定される。解析部190は、当該解析対象期間内で得た中断回数を取得すればよい。そして、解析部190は、URL単位で単位時間当たりの中断回数の頻度分布を算出する。
【0174】
[ステップS54]解析部190は、URL単位に求めた中断回数の頻度分布について、平均値Mと標準偏差Dを取得する。
[ステップS55]解析部190は、各Webサーバで単位時間当たりの中断回数の頻度分布を算出する。なお、各Webサーバでの中断回数の頻度分布は、URL単位の中断回数の頻度分布と同じ解析対象期間について求めてもよいし、それより短くてもよい。例えば、過去1分間〜5分間などの期間について、各Webサーバにつき中断回数の頻度分布を取得すれば、各Webサーバの直近の異常の有無をリアルタイムに解析できる。
【0175】
[ステップS56]解析部190は、各WebサーバについてステップS55で算出した頻度分布に基づき、中断回数がM+K(Kは定数)以上であるWebサーバが存在するか否かを判定する。存在する場合、処理をステップS58に進める。存在しない場合、処理をステップS57に進める。ここで、Kは、システムの稼働状況に応じて予め定義される。例えば、K=2×Dである。
【0176】
[ステップS57]解析部190は、各WebサーバについてステップS55で算出した頻度分布に基づき、中断回数がM+L(LはL<Kの定数)以上であるWebサーバがURLに対応するWebサーバの半数以上存在するか否かを判定する。半数以上存在する場合、処理をステップS58に進める。半数以上存在しない場合、処理を完了する。ここで、Lは、システムの稼働状況に応じて予め定義される。例えば、L=Dである。
【0177】
[ステップS58]解析部190は、ステップS56またはステップS57の各条件を満たすWebサーバについて異常が発生している旨を報知部195に通知する。報知部195は、通知を受けたWebサーバで異常が発生している旨を報知する。
【0178】
このようにして、解析装置100は、URL単位の中断回数の頻度分布と、そのURLに対応するWebサーバ単位の中断回数の頻度分布と、を比較する。そして、URL単位の中断回数の頻度分布から求めた閾値を超えて中断ペアの発生したWebサーバで異常が発生していると判断する。
【0179】
次に上記解析処理の具体例を説明する。
図21は、第4の実施の形態の解析処理の具体例を示す第1の図である。図21(A)は“URL−A”単位の中断回数の頻度分布840を例示している。図21(B)はWebサーバ200(サーバA1)の中断回数の頻度分布841を例示している。なお、図21では、Webサーバ300,400の中断回数の頻度分布は図示を省略している。
【0180】
ここで、閾値K=M+2×標準偏差D、閾値L=M+標準偏差Dとする。
図21(A)において、頻度分布840は、Webサーバ200,300,400で取得された単位時間当たりの中断ペアの発生回数を総合して得られた頻度分布である。頻度分布840には、その平均値Mと標準偏差Dが示されている。また、閾値K=M+2×D、閾値L=M+Dが示されている。
【0181】
図21(B)において、頻度分布841では、閾値K以上の中断回数が発生していることが分かる。この場合、解析部190は、Webサーバ200で異常が発生していると判断する。そして、解析部190は報知部195にWebサーバ200の異常を報知させる。
【0182】
図22は、第4の実施の形態の解析処理の具体例を示す第2の図である。図22(A)は“URL−A”の中断回数の頻度分布850を例示している。図22(B)はWebサーバ200(サーバA1)の中断回数の頻度分布851を例示している。図22(C)はWebサーバ300(サーバA2)の中断回数の頻度分布852を例示している。なお、図22では、Webサーバ400の中断回数の頻度分布は図示を省略している。
【0183】
ここで、図21と同様、閾値K=M+2×標準偏差D、閾値L=M+標準偏差Dとする。
図22(A)において、頻度分布850は、Webサーバ200,300,400で取得された単位時間当たりの中断ペアの発生回数を総合して得られた頻度分布である。頻度分布850には、その平均値Mと標準偏差Dが示されている。また、閾値K=2×D、閾値L=Dが示されている。
【0184】
図22(B)において、頻度分布851では、閾値K以上の中断回数が発生していないことが分かる。更に、閾値L以上の中断回数が発生していることが分かる。
図22(C)において、頻度分布852では、閾値K以上の中断回数が発生していないことが分かる。更に、閾値L以上の中断回数が発生していることが分かる。
【0185】
この場合、解析部190は、閾値L以上の中断回数の発生しているWebサーバが、“URL−A”を構成する3台のうちの2台、すなわち、全Webサーバの半数以上存在することを検知する。すると、解析部190は、該当するWebサーバ200,300で異常が発生していると判断する。そして、解析部190は、報知部195にWebサーバ200,300の異常を報知させる。
【0186】
次に、各Webサーバの直近の時間帯の中断回数を取得して、異常を検出する場合の具体例を説明する。
図23は、第4の実施の形態の解析処理の具体例を示す第3の図である。図23(A)のグラフ860は、“2010/5/21 13:00:00〜13:00:59”の過去1分間にWebサーバ200,300,400で発生した中断回数を示す。図23(B)のグラフ870は、“2010/5/21 14:00:00〜14:00:59”の過去1分間にWebサーバ200,300,400で発生した中断回数を示す。
【0187】
なお、“URL−A”を単位として、過去の解析対象期間につき中断回数の頻度分布が求められており、平均値Mおよび標準偏差Dが取得されているとする。更に、閾値K=M+2D、閾値L=M+Dとする。
【0188】
図23(A)において、グラフ860の例では、Webサーバ400が当該時間帯において中断回数が閾値Kを上回っている。このため、解析部190は、Webサーバ400で異常が発生していると判断する。そして、解析部190は、報知部195にWebサーバ400の異常を報知させる。
【0189】
図23(B)において、グラフ870の例では、Webサーバ200,300,400の何れの中断回数も閾値Kを上回っていない。一方、Webサーバ200,300が当該時間帯において中断回数が閾値Lを上回っている。この場合、解析部190は、閾値L以上の中断回数の発生しているWebサーバが“URL−A”を構成する3台のうちの2台、すなわち、全Webサーバの半数以上存在することを検知する。すると、解析部190は、該当するWebサーバ200,300で異常が発生していると判断する。そして、解析部190は、報知部195にWebサーバ200,300の異常を報知させる。
【0190】
このように、各Webサーバについて、直近の時間帯の中断回数を取得して、閾値K,Lと比較することで、各Webサーバにつきリアルタイムに異常検出を行うことができる。
【0191】
なお、グラフ860において、閾値K以上の中断回数が1度でも発生している場合には異常を検知するものとしたが、更に条件を設けて異常検出の精度を向上してもよい。例えば、グラフ860を所定期間継続的に取得し続けて、複数回連続で閾値Kを上回ったWebサーバを異常と判断してもよい。
【0192】
また、所定の周期でグラフ860を取得し、中断回数が閾値を上回った回数が一定期間内に一定回数以上あったWebサーバを異常と判断してもよい。例えば、10分間に3回、閾値Kを超える回数の中断が発生している場合に、異常と判断してもよい。
【0193】
このように、各Webサーバで取得した中断ペアを総合して、これをURL単位で解析することで、当該URLに対応する各Webサーバの異常を容易に検出できる。
また、第2,第3の実施の形態の解析処理に加えて、第4の実施の形態の解析処理を行うこともできる。例えば、解析部190は、第2の実施の形態の解析結果と第3の実施の形態の解析結果と第4の実施の形態の解析結果とを照合して、全ての解析結果で異常ありとされたWebサーバについて、報知部195にアラートの出力を指示することができる。これにより、何れか一つの解析結果で判断するよりも、異常検出の精度を一層向上できる。
【0194】
なお、第2〜第4の実施の形態で示した解析装置100により稼働監視を行うことで、各Webサーバで個別に異常を検出するための機能を組み込む必要がなくなる。よって、監視機能の導入コストを軽減できる。また、各Webサーバで検出処理を実行する必要がない。よって、各Webサーバの本来の処理に与える影響を軽減できる。このため、従来のように個々のサーバで異常検出を行う場合に比べて、情報処理システム全体の統合管理を効率的に行えるという利点もある。
【0195】
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【0196】
(付記2) 前記記憶手段に記憶された通信履歴を参照して、当該中断要求よりも前に、当該中断要求を送信した端末装置が前記情報処理装置に送信した実行要求であって、当該実行要求に対して前記情報処理装置から当該中断要求を送信した端末装置に処理応答が送信されていない実行要求を抽出することで前記中断ペア情報を生成する、
処理をコンピュータに実行させることを特徴とする付記1記載の解析プログラム。
【0197】
(付記3) 取得した通信情報が処理応答である場合、前記記憶手段から当該処理応答に対応する処理の実行要求を示す通信情報を抽出し、当該処理応答と当該実行要求との組合せを示す情報である正常ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報と前記記憶手段に記憶された正常ペア情報とを用いて、前記情報処理装置による処理の異常を検出する、
処理をコンピュータに実行させることを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0198】
(付記4) 前記記憶手段に記憶された複数の正常ペア情報それぞれに含まれる実行要求と処理応答との時間差の分布を示す第1の時間差分布に基づいて所定の時間差閾値を算出し、
前記記憶手段に記憶された複数の中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第2の時間差分布に基づいて所定の判定値を算出し、
前記判定値が前記時間差閾値以上である場合に、前記情報処理装置を異常として検出する、
処理をコンピュータに実行させることを特徴とする付記3記載の解析プログラム。
【0199】
(付記5) 前記判定値は、前記第2の時間差分布の所定の基準値に基づいて算出される値であることを特徴とする付記4記載の解析プログラム。
(付記6) 前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第3の時間差分布と、複数の前記情報処理装置の何れか1つである解析対象の情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第4の時間差分布と、を比較することで、当該解析対象の情報処理装置の異常を検出する、
処理をコンピュータに実行させることを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0200】
(付記7) 前記第3の時間差分布に基づいて、所定の時間差閾値を算出し、
前記第4の時間差分布に基づいて、所定の判定値を算出し、
前記判定値が前記時間差閾値以上である場合に、前記解析対象の情報処理装置を異常として検出する、
処理をコンピュータに実行させることを特徴とする付記6記載の解析プログラム。
【0201】
(付記8) 前記判定値は、前記第4の時間差分布の所定の基準値に基づいて算出される値であることを特徴とする付記7記載の解析プログラム。
(付記9) 前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報の単位時間あたりの取得頻度を示す頻度分布を算出し、当該頻度分布に基づいて所定の中断回数閾値を算出し、
複数の前記情報処理装置それぞれに関する中断ペア情報の所定期間の取得回数と前記中断回数閾値とに基づいて、複数の前記情報処理装置それぞれの異常を検出する、
処理をコンピュータに実行させることを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0202】
(付記10) 複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納する受信手段と、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納する抽出手段と、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する解析手段と、
を有することを特徴とする解析装置。
【0203】
(付記11) 解析装置が、
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
ことを特徴とする解析方法。
【符号の説明】
【0204】
1 解析装置
1a 記憶手段
1b 受信手段
1c 抽出手段
1d 解析手段
2 情報処理装置
3,4 端末装置
5 通信履歴
5a,5c 実行要求
5b 処理応答
5d 中断要求
6,6a 中断ペア情報
7,7a 正常ペア情報
Ta,Tb 時間差
【特許請求の範囲】
【請求項1】
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【請求項2】
取得した通信情報が処理応答である場合、前記記憶手段から当該処理応答に対応する処理の実行要求を示す通信情報を抽出し、当該処理応答と当該実行要求との組合せを示す情報である正常ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報と前記記憶手段に記憶された正常ペア情報とを用いて、前記情報処理装置による処理の異常を検出する、
処理を前記コンピュータに実行させることを特徴とする請求項1記載の解析プログラム。
【請求項3】
前記記憶手段に記憶された複数の正常ペア情報それぞれに含まれる実行要求と処理応答との時間差の分布を示す第1の時間差分布に基づいて所定の時間差閾値を算出し、
前記記憶手段に記憶された複数の中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第2の時間差分布に基づいて所定の判定値を算出し、
前記判定値が前記時間差閾値以上である場合に、前記情報処理装置を異常として検出する、
処理を前記コンピュータに実行させることを特徴とする請求項2記載の解析プログラム。
【請求項4】
前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第3の時間差分布と、複数の前記情報処理装置の何れか1つである解析対象の情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第4の時間差分布と、を比較することで、当該解析対象の情報処理装置の異常を検出する、
処理を前記コンピュータに実行させることを特徴とする請求項1記載の解析プログラム。
【請求項5】
前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報の単位時間あたりの取得頻度を示す頻度分布を算出し、当該頻度分布に基づいて所定の中断回数閾値を算出し、
複数の前記情報処理装置それぞれに関する中断ペア情報の所定期間の取得回数と前記中断回数閾値とに基づいて、複数の前記情報処理装置それぞれの異常を検出する、
処理を前記コンピュータに実行させることを特徴とする請求項1記載の解析プログラム。
【請求項6】
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納する受信手段と、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納する抽出手段と、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する解析手段と、
を有することを特徴とする解析装置。
【請求項7】
解析装置が、
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
ことを特徴とする解析方法。
【請求項1】
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【請求項2】
取得した通信情報が処理応答である場合、前記記憶手段から当該処理応答に対応する処理の実行要求を示す通信情報を抽出し、当該処理応答と当該実行要求との組合せを示す情報である正常ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報と前記記憶手段に記憶された正常ペア情報とを用いて、前記情報処理装置による処理の異常を検出する、
処理を前記コンピュータに実行させることを特徴とする請求項1記載の解析プログラム。
【請求項3】
前記記憶手段に記憶された複数の正常ペア情報それぞれに含まれる実行要求と処理応答との時間差の分布を示す第1の時間差分布に基づいて所定の時間差閾値を算出し、
前記記憶手段に記憶された複数の中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第2の時間差分布に基づいて所定の判定値を算出し、
前記判定値が前記時間差閾値以上である場合に、前記情報処理装置を異常として検出する、
処理を前記コンピュータに実行させることを特徴とする請求項2記載の解析プログラム。
【請求項4】
前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第3の時間差分布と、複数の前記情報処理装置の何れか1つである解析対象の情報処理装置に関する中断ペア情報それぞれに含まれる実行要求と中断要求との時間差の分布を示す第4の時間差分布と、を比較することで、当該解析対象の情報処理装置の異常を検出する、
処理を前記コンピュータに実行させることを特徴とする請求項1記載の解析プログラム。
【請求項5】
前記中断ペア情報は、所定のサービスを提供する複数の前記情報処理装置それぞれに対応付けて前記記憶手段に格納されており、
複数の前記情報処理装置に関する中断ペア情報の単位時間あたりの取得頻度を示す頻度分布を算出し、当該頻度分布に基づいて所定の中断回数閾値を算出し、
複数の前記情報処理装置それぞれに関する中断ペア情報の所定期間の取得回数と前記中断回数閾値とに基づいて、複数の前記情報処理装置それぞれの異常を検出する、
処理を前記コンピュータに実行させることを特徴とする請求項1記載の解析プログラム。
【請求項6】
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納する受信手段と、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納する抽出手段と、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する解析手段と、
を有することを特徴とする解析装置。
【請求項7】
解析装置が、
複数の端末装置と情報処理装置との間で送受信される通信情報を取得して記憶手段に格納し、
取得した通信情報が処理の中断要求である場合、前記記憶手段から当該中断要求により中断される処理の実行要求を示す通信情報を抽出し、当該中断要求と当該実行要求との組合せを示す情報である中断ペア情報を生成して前記記憶手段に格納し、
前記記憶手段に記憶された中断ペア情報を用いて前記情報処理装置による処理の実行状況を解析する、
ことを特徴とする解析方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2012−69021(P2012−69021A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−214659(P2010−214659)
【出願日】平成22年9月27日(2010.9.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願日】平成22年9月27日(2010.9.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]