(57)【要約】【課題】暗号化された通信パケットであっても異常診断を可能にすること。【解決手段】異常診断装置１０１は、所定期間Ｔ内に送受信された暗号化されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータ２００を取得する。異常診断装置１０１は、メッセージデータ２００に基づいて、レスポンスメッセージのメッセージサイズの頻度分布から、第１条件を満たすピークサイズを特定する。異常診断装置１０１は、特定したピークサイズのうち、予め記憶された正常時におけるレスポンスメッセージのピークサイズと異なるピークサイズがある場合、メッセージデータ２００に基づいて、異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断する。異常診断装置１０１は、第２条件を満たす場合に、サービスの異常と判定する。【選択図】図２
2020031281.tif 000002
【特許請求の範囲】
【請求項１】
所定期間内に送受信された暗号化されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを取得し、
取得した前記メッセージデータに基づいて、レスポンスメッセージのメッセージサイズの頻度分布から第１条件を満たすピークサイズを特定し、
特定した前記ピークサイズのうち、予め記憶された正常時におけるレスポンスメッセージのピークサイズと異なるピークサイズがある場合、前記メッセージデータに基づいて、前記異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断し、
前記第２条件を満たす場合に、サービスの異常と判定する、
処理をコンピュータに実行させることを特徴とする異常診断プログラム。
【請求項２】
前記判断する処理は、
前記異なるピークサイズのレスポンスの応答時間の頻度分布と、予め記憶された正常時におけるレスポンスメッセージの応答時間の頻度分布とを比較して、応答時間の変動があると判定した場合に、前記第２条件を満たすと判断する、ことを特徴とする請求項１に記載の異常診断プログラム。
【請求項３】
前記特定する処理は、
前記メッセージデータに基づいて、所定のサイズ幅で区切った階級ごとに、前記階級にメッセージサイズが属するレスポンスメッセージの頻度を算出し、
算出した算出結果に基づいて、隣り合う階級との頻度の差分が閾値以上の階級に対応するメッセージサイズを、前記第１条件を満たすピークサイズとして特定する、
ことを特徴とする請求項１または２に記載の異常診断プログラム。
【請求項４】
前記特定する処理は、
取得した前記メッセージデータのうち、レスポンスサイズが所定サイズ以下のレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータに基づいて、前記第１条件を満たすピークサイズを特定する、ことを特徴とする請求項１〜３のいずれか一つに記載の異常診断プログラム。
【請求項５】
前記異なるピークサイズがない場合、または、前記第２条件を満たさない場合、前記サービスが正常と判定する、処理を前記コンピュータに実行させることを特徴とする請求項１〜４のいずれか一つに記載の異常診断プログラム。
【請求項６】
判定した判定結果を出力する、処理を前記コンピュータに実行させることを特徴とする請求項１〜５のいずれか一つに記載の異常診断プログラム。
【請求項７】
所定期間内に送受信された暗号化されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを取得し、
取得した前記メッセージデータに基づいて、レスポンスメッセージのメッセージサイズの頻度分布から第１条件を満たすピークサイズを特定し、
特定した前記ピークサイズのうち、予め記憶された正常時におけるレスポンスメッセージのピークサイズと異なるピークサイズがある場合、前記メッセージデータに基づいて、前記異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断し、
前記第２条件を満たす場合に、サービスの異常と判定する、
処理をコンピュータが実行することを特徴とする異常診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常診断プログラムおよび異常診断方法に関する。
【背景技術】
【０００２】
従来、データセンタ内のサーバ上に構築したシステムにより提供されるＷｅｂサービスの運用フェーズにおける異常を診断したいという要望がある。運用フェーズにおける異常診断手法としては、例えば、Ｗｅｂサービスにかかる通信で送受信されるパケットを取得し、取得したパケット内のＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）ステータスコードから、Ｗｅｂサービスの異常を診断するものがある。
【０００３】
関連する先行技術としては、例えば、Ｗｅｂサーバの応答時間の変動を定期的に観測し、応答時間の低下時には、外部Ｗｅｂサイトからの参照状況と比較することによって、応答時間の低下をもたらしたアクセス集中の原因を特定するものがある。また、各個別処理について、取得したパケット転送遅延時間、レスポンスタイム及びＱｏＥ評価値を統計処理することによって、パケット転送遅延時間とＱｏＥ評価値との間の相関を示す推定モデルを作成し、推定モデルに基づきＱｏＥ推定値を決定する技術がある。また、上位階層サーバの処理の塊における最初のパケットの受信時刻と最後のパケットの受信時刻との差を用いて、下位階層サーバの処理の塊の間に行われる当該下位階層サーバの処理のための、上位階層サーバの処理時間を算出する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１３００１０号公報
【特許文献２】特開２０１５−１２３６１号公報
【特許文献３】特開２０１０−２１８１８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、Ｗｅｂサービスの異常を診断することができない場合がある。例えば、通信が暗号化されている場合には、レスポンスのデータパケットのプロトコル解析ができないため、ＨＴＴＰステータスコードを取得して異常を検知することができない。
【０００６】
一つの側面では、本発明は、暗号化された通信パケットであっても異常診断を可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、所定期間内に送受信された暗号化されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを取得し、取得した前記メッセージデータに基づいて、レスポンスメッセージのメッセージサイズの頻度分布から第１条件を満たすピークサイズを特定し、特定した前記ピークサイズのうち、予め記憶された正常時におけるレスポンスメッセージのピークサイズと異なるピークサイズがある場合、前記メッセージデータに基づいて、前記異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断し、前記第２条件を満たす場合に、サービスの異常と判定する、異常診断プログラムが提供される。
【発明の効果】
【０００８】
本発明の一側面によれば、暗号化された通信パケットであっても異常診断が可能になるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、異常診断システム１００のシステム構成例を示す説明図である。
【図２】図２は、実施の形態にかかる異常診断方法の一実施例を示す説明図である。
【図３】図３は、異常診断装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、メッセージデータＤＢ１２０の記憶内容の一例を示す説明図である。
【図５】図５は、正常ピークサイズデータ１３０の記憶内容の一例を示す説明図である。
【図６】図６は、正常応答時間分布ＤＢ１４０の記憶内容の一例を示す説明図である。
【図７】図７は、異常診断装置１０１の機能的構成例を示すブロック図である。
【図８】図８は、レスポンスサイズ頻度分布テーブル８００の記憶内容の一例を示す説明図である。
【図９】図９は、異常ピークサイズテーブル９００の記憶内容の一例を示す説明図である。
【図１０】図１０は、応答時間頻度分布テーブル１０００の記憶内容の一例を示す説明図である。
【図１１】図１１は、異常診断結果テーブル１１００の記憶内容の一例を示す説明図である。
【図１２】図１２は、サービステーブル１２００の記憶内容の一例を示す説明図である。
【図１３】図１３は、異常ピークサイズの抽出例を示す説明図である。
【図１４】図１４は、診断対象のサービスの異常の判定例を示す説明図である。
【図１５】図１５は、異常診断結果画面の画面例を示す説明図（その１）である。
【図１６】図１６は、異常診断結果画面の画面例を示す説明図（その２）である。
【図１７】図１７は、異常診断装置１０１の異常診断処理手順の一例を示すフローチャートである。
【図１８】図１８は、異常ピークサイズ抽出処理の具体的処理手順の一例を示すフローチャートである。
【図１９】図１９は、応答時間変動テーブル１９００の記憶内容の一例を示す説明図である。
【図２０】図２０は、サービス異常判定処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかる異常診断プログラムおよび異常診断方法の実施の形態を詳細に説明する。
【００１１】
（実施の形態）
まず、実施の形態にかかる異常診断システム１００のシステム構成例について説明する。異常診断システム１００は、ネットワークシステムにより提供されるサービスの異常診断を行うコンピュータシステムである。
【００１２】
図１は、異常診断システム１００のシステム構成例を示す説明図である。図１において、異常診断システム１００は、異常診断装置１０１と、Ｗｅｂサーバ１０２と、ＡＰサーバ１０３と、ＤＢサーバ１０４と、クライアント装置１０５と、管理装置１０６と、を含む。異常診断システム１００において、異常診断装置１０１、Ｗｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４、クライアント装置１０５および管理装置１０６は、有線または無線のネットワーク１１０を介して接続される。ネットワーク１１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。ネットワーク１１０には、ネットワークスイッチ１０７が含まれる。
【００１３】
ここで、異常診断装置１０１は、診断対象のサービスの異常診断を行うコンピュータである。診断対象のサービスは、例えば、Ｗｅｂシステムにより提供されるＷｅｂサービスである。Ｗｅｂシステムは、例えば、Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４により構築される３階層システムである。
【００１４】
異常診断装置１０１は、メッセージデータＤＢ（Ｄａｔａｂａｓｅ）１２０、正常ピークサイズデータ１３０および正常応答時間分布ＤＢ１４０を有する。なお、メッセージデータＤＢ１２０、正常ピークサイズデータ１３０および正常応答時間分布ＤＢ１４０の記憶内容については、図４〜図６を用いて後述する。
【００１５】
Ｗｅｂサーバ１０２は、クライアント装置１０５のブラウザからの要求に応じて、ウェブページなどのデータを送信するコンピュータである。ＡＰサーバ１０３は、Ｗｅｂサーバ１０２とＤＢサーバ１０４との橋渡しを行い、データベースの検索／更新処理を制御するコンピュータである。ＤＢサーバ１０４は、データベースの検索／更新処理を実行するコンピュータである。
【００１６】
クライアント装置１０５は、サービスを利用するユーザが使用するコンピュータである。管理装置１０６は、異常診断システム１００の管理者が使用するコンピュータである。クライアント装置１０５および管理装置１０６は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、タブレットＰＣ、スマートフォンなどである。
【００１７】
ネットワークスイッチ１０７は、回線の交換機能を有し、経路選択をして適切な転送先に情報を中継する通信装置である。また、ネットワークスイッチ１０７は、自身を通過するデータをミラーリングする機能を有する。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。
【００１８】
例えば、Ｗｅｂサーバ１０２に接続されたポートのミラーリング先として、異常診断装置１０１に接続されたポートが指定されている。このため、Ｗｅｂサーバ１０２宛のパケットは、宛先となるＷｅｂサーバ１０２に入力されるとともに、異常診断装置１０１にも入力される。
【００１９】
なお、異常診断システム１００では、クライアント装置１０５とＷｅｂシステムとが通信するにあたり、例えば、同じＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のコネクション内で、リクエストメッセージとレスポンスメッセージとがシリアル（直列）にやり取りされる場合を想定する。
【００２０】
また、図１では、Ｗｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４およびクライアント装置１０５をそれぞれ１台のみ表示したが、それぞれ２台以上であってもよい。また、ネットワーク１１０には、２台以上のネットワークスイッチ１０７が含まれていてもよい。
【００２１】
ここで、運用フェーズにおけるＷｅｂサービスの異常診断を行うにあたり、Ｗｅｂサービスにかかる通信で送受信されるパケットを取得し、取得したパケット内のＨＴＴＰステータスコードから異常を診断する手法がある。ＨＴＴＰステータスコードは、リクエストに対するサーバの状態を示すコードである。
【００２２】
例えば、ＨＴＴＰステータスコードの２００番台は、正常処理を示す。３００番台は、リダイレクションを示す。５００番台は、サーバエラーを示す。このため、例えば、パケット内のＨＴＴＰステータスコードが５００番台であれば、異常が発生していることを検知することができる。
【００２３】
しかしながら、通信が暗号化されている場合、レスポンスのデータパケットのプロトコル解析ができず、パケット内のＨＴＴＰステータスコードを取得することができない。このため、サービス利用負荷などが多発するＷｅｂサービスの障害による異常を検知することができない。
【００２４】
なお、リクエスト数の変動からＷｅｂサービスの障害による異常を検知することも考えられる。ところが、障害発生時は、サービスが利用できないためにリクエスト数が減少する可能性もあるし、クライアントがリクエストを繰り返してリクエスト数が増加する可能性もある。すなわち、リクエスト数だけでは異常を診断することは難しい。また、正常時にリクエスト数が増減する場合との区別がつかない。
【００２５】
そこで、本実施の形態では、診断対象のサービスについて、クライアント／サーバ間の通信が暗号化されている場合、すなわち、暗号化された通信パケットであっても異常診断を可能にする異常診断方法について説明する。ここで、実施の形態にかかる異常診断方法の一実施例について説明する。
【００２６】
図２は、実施の形態にかかる異常診断方法の一実施例を示す説明図である。以下、異常診断装置１０１の処理例（１）〜（４）について説明する。
【００２７】
（１）異常診断装置１０１は、所定期間Ｔ内に送受信されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを取得する。ここで、所定期間Ｔは、サービスの異常診断を行う対象期間であり、任意に設定可能である。例えば、所定期間Ｔは、５分〜１０分程度の長さの期間に設定される。
【００２８】
パケット群は、診断対象のサービスにかかる通信で送受信されるパケット群であり、例えば、データ部分が暗号化されたパケット群である。したがって、パケット（データパケット）のプロトコル解析ができず、パケット内のＨＴＴＰステータスコードを取得することができない。ただし、パケット群は、暗号化されていなくてもよい。メッセージサイズは、メッセージのサイズであり、例えば、メッセージを形成するパケットのサイズの合計によって表される。応答時間は、リクエストメッセージに対してレスポンスメッセージが返ってくるまでの時間である。
【００２９】
図１の例では、メッセージデータ２００が取得された場合を想定する。メッセージデータ２００は、所定期間Ｔ内にＷｅｂサーバ１０２からクライアント装置１０５に送られたレスポンスメッセージのメッセージサイズと応答時間とを示す。
【００３０】
（２）異常診断装置１０１は、取得したメッセージデータに基づいて、レスポンスメッセージのメッセージサイズの頻度分布から、第１条件を満たすピークサイズを特定する。ここで、レスポンスメッセージのメッセージサイズの頻度分布とは、所定のサイズ幅で区切った階級ごとに、当該階級にメッセージサイズが属するレスポンスメッセージの頻度を表すものである。所定のサイズ幅は、任意に設定可能であり、例えば、１０［ｂｙｔｅ］程度の幅に設定される。
【００３１】
以下の説明では、レスポンスメッセージのメッセージサイズの頻度分布を「レスポンスサイズ頻度分布」と表記する場合がある。すなわち、レスポンスサイズ頻度分布は、メッセージサイズの階級ごとに、当該階級のレスポンスメッセージが、レスポンスメッセージの総数に対して、どれだけの割合で出現したのかを表す。
【００３２】
第１条件は、任意に設定可能である。第１条件には、例えば、レスポンスメッセージが集中しているピークサイズ（階級）を判別する条件が設定される。具体的には、例えば、異常診断装置１０１は、レスポンスサイズ頻度分布のうち、隣り合う階級との頻度の差分が閾値α以上の階級に対応するメッセージサイズを、第１条件を満たすピークサイズとして特定する。
【００３３】
閾値αは、任意に設定可能であり、例えば、０．０１〜０．０５程度の値に設定される。階級に対応するメッセージサイズは、例えば、階級の代表値（階級内の真ん中の値）である。一例として、階級を「１８５［ｂｙｔｅ］〜１９５［ｂｙｔｅ］」とすると、代表値は「１９０［ｂｙｔｅ］」となる。
【００３４】
図１の例では、レスポンスサイズ頻度分布２１０から、第１条件を満たすピークサイズ「１９０，９２０」が特定された場合を想定する（単位：ｂｙｔｅ）。レスポンスサイズ頻度分布２１０は、メッセージデータ２００に基づく、レスポンスメッセージのメッセージサイズの頻度分布である。
【００３５】
（３）異常診断装置１０１は、特定したピークサイズのうち、予め記憶された正常時におけるレスポンスメッセージのピークサイズと異なるピークサイズがあるか否かを判断する。そして、異常診断装置１０１は、異なるピークサイズがある場合、取得したメッセージデータに基づいて、異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断する。
【００３６】
ここで、正常時におけるレスポンスメッセージのピークサイズとは、診断対象のサービスについて、障害が発生していないときのレスポンスサイズ頻度分布におけるピークサイズである。また、レスポンスメッセージの応答時間の頻度分布とは、所定の時間幅で区切った階級ごとに、当該階級に応答時間が属するレスポンスメッセージの頻度を表すものである。所定の時間幅は、任意に設定可能であり、例えば、１０［ｍｓｅｃ］程度の幅に設定される。
【００３７】
以下の説明では、正常時におけるレスポンスメッセージのピークサイズを「正常ピークサイズ」と表記する場合がある。また、レスポンスメッセージの応答時間の頻度分布を「応答時間頻度分布」と表記する場合がある。すなわち、応答時間頻度分布は、応答時間の階級ごとに、当該階級のレスポンスメッセージが、レスポンスメッセージの総数に対して、どれだけの割合で出現したのかを表す。
【００３８】
また、第２条件は、任意に設定可能である。第２条件は、例えば、正常ピークサイズと異なるピークサイズのレスポンスメッセージの応答時間頻度分布が、正常時のレスポンスメッセージの応答時間頻度分布と統計的に異なるといえる条件に設定される。
【００３９】
具体的には、例えば、異常診断装置１０１は、異なるピークサイズのレスポンスメッセージの応答時間頻度分布と、正常時におけるレスポンスメッセージの応答時間頻度分布とを比較する。そして、異常診断装置１０１は、比較した結果、応答時間の変動があると判定した場合に、第２条件を満たすと判断する。
【００４０】
図１の例では、レスポンスサイズ頻度分布２２０は、正常時におけるレスポンスメッセージのメッセージサイズの頻度分布を表している。レスポンスサイズ頻度分布２２０から特定される正常ピークサイズを「３１０，９２０，１２８０」とする。この場合、第１条件を満たすピークサイズ「１９０，９２０」のうち、ピークサイズ「１９０」が、正常ピークサイズと異なるピークサイズとなる。
【００４１】
また、異なるピークサイズ「１９０」のレスポンスメッセージの応答時間頻度分布を応答時間頻度分布２３０とし、正常時におけるレスポンスメッセージの応答時間頻度分布を応答時間頻度分布２４０とする。この場合、応答時間頻度分布２３０と応答時間頻度分布２４０とを比較すると、応答時間に変動があるため（図２中、点線枠部分）、第２条件を満たすと判断される。
【００４２】
（４）異常診断装置１０１は、第２条件を満たす場合に、サービスの異常と判定する。ここで、サービスの異常とは、サービスの障害により異常となっている状態である。図１の例では、第２条件を満たすため、サービスの異常と判定される。
【００４３】
このように、異常診断装置１０１によれば、パケットの中身（データ部分）を解析することなく、サービスの異常診断を行うことができる。このため、クライアント／サーバ間の通信が暗号化されている場合、すなわち、暗号化された通信パケットであっても、サービスの異常診断を行うことができる。
【００４４】
具体的に説明すると、正常時は、どういったサービス、機能にアクセスするかによって、レスポンスメッセージのメッセージサイズは変動する傾向がある。一方、サーバエラーなどの異常発生時には、異なるリクエスト種別（例えば、ＵＲＬなど）でも、ステータスコードごとにレスポンスメッセージのメッセージサイズが特定値付近に集中する傾向がある。例えば、エラーメッセージを表示するためのレスポンスメッセージが急増すると、メッセージサイズが特定値付近に偏る。この傾向を利用して、異常診断装置１０１は、サービスにかかるパケット群から得られるレスポンスサイズ頻度分布にあらわれたピークサイズのうち、正常時におけるピークサイズと異なるピークサイズを、異常ピークサイズとして抽出する。
【００４５】
ただし、異常発生時でなくても、レスポンスメッセージのメッセージサイズが特定値付近に集中する可能性がある。例えば、リダイレクションや静的コンテンツについてのレスポンスメッセージも、メッセージサイズが特定値付近に集中する傾向がある。したがって、メッセージサイズに着目しただけでは、サービスの異常診断の精度を確保できない場合がある。
【００４６】
一方、サーバエラーなどの異常発生時は、レスポンスを即座に返す処理（あるいは、レスポンスを返すのに長時間かかる処理）が増えて、応答時間が正常時と比較して変動する傾向がある。この傾向を利用して、異常診断装置１０１は、異常ピークサイズとして抽出したピークサイズのレスポンスメッセージに着目し、そのレスポンスメッセージの応答時間に変動があれば、サービスの異常と判定する。
【００４７】
これにより、サービスを提供するシステムに手を加えることなく、暗号化通信の場合であっても、レスポンスメッセージのメッセージサイズや応答時間から、サービス利用不可などの障害時の異常を診断することが可能となる。
【００４８】
（異常診断装置１０１のハードウェア構成例）
つぎに、異常診断装置１０１のハードウェア構成例について説明する。
【００４９】
図３は、異常診断装置１０１のハードウェア構成例を示すブロック図である。図３において、異常診断装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、ディスクドライブ３０４と、ディスク３０５と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００５０】
ここで、ＣＰＵ３０１は、異常診断装置１０１の全体の制御を司る。ＣＰＵ３０１は、複数のコアを有していてもよい。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００５１】
Ｉ／Ｆ３０３は、通信回線を通じてネットワーク１１０に接続され、ネットワーク１１０を介して他の装置（例えば、管理装置１０６、ネットワークスイッチ１０７など）に接続される。そして、Ｉ／Ｆ３０３は、ネットワーク１１０と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００５２】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリード／ライトを制御する。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する。ディスク３０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００５３】
なお、異常診断装置１０１は、上述した構成部のほかに、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、入力装置、ディスプレイ等を有することにしてもよい。また、図１に示したＷｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４、クライアント装置１０５、管理装置１０６およびネットワークスイッチ１０７についても、異常診断装置１０１と同様のハードウェア構成により実現することができる。ただし、クライアント装置１０５や管理装置１０６は、例えば、入力装置、ディスプレイ等を有する。
【００５４】
（メッセージデータＤＢ１２０の記憶内容）
つぎに、異常診断装置１０１が有するメッセージデータＤＢ１２０の記憶内容について説明する。メッセージデータＤＢ１２０は、例えば、図３に示した異常診断装置１０１のメモリ３０２、ディスク３０５などの記憶装置により実現される。
【００５５】
図４は、メッセージデータＤＢ１２０の記憶内容の一例を示す説明図である。図４において、メッセージデータＤＢ１２０は、レスポンスタイムスタンプ、リクエストサイズ、レスポンスサイズおよび応答時間のフィールドを有し、各フィールドに情報を設定することで、メッセージデータ（メッセージデータ４００−１〜４００−６）をレコードとして記憶する。
【００５６】
ここで、レスポンスタイムスタンプは、レスポンスメッセージの取得時刻を示す。レスポンスメッセージの取得時刻は、異常診断装置１０１が、ネットワークスイッチ１０７によりミラーリングされたパケット（レスポンスメッセージのパケット）を取得した日時である。レスポンスメッセージの取得時刻は、レスポンスメッセージが、Ｗｅｂサーバ１０２からクライアント装置１０５に送信された日時、あるいは、クライアント装置１０５に受信された日時に相当する。
【００５７】
リクエストサイズは、リクエストメッセージのサイズを示す（単位：ｂｙｔｅ）。レスポンスサイズは、レスポンスメッセージのサイズを示す（単位：ｂｙｔｅ）。応答時間は、リクエストメッセージに対してレスポンスメッセージが返ってくるまでの時間である。すなわち、応答時間は、一組のリクエストメッセージの取得時刻とレスポンスメッセージの取得時刻との間隔に相当する。
【００５８】
なお、図示は省略するが、メッセージデータには、例えば、クライアントＩＰアドレス、クライアントポート番号、サーバＩＰアドレス、サーバポート番号、トランスポート層プロトコルなどが含まれていてもよい。クライアントＩＰアドレスは、リクエストメッセージを送信したクライアント装置１０５のＩＰアドレスである。クライアントポート番号は、リクエストメッセージを送信したクライアント装置１０５のポート番号である。サーバＩＰアドレスは、レスポンスメッセージを送信したサーバ（例えば、Ｗｅｂサーバ１０２）のＩＰアドレスである。サーバポート番号は、レスポンスメッセージを送信したサーバのポート番号である。トランスポート層プロトコルは、通信に使用されるトランスポート層のプロトコルを示す。例えば、サーバＩＰアドレスとサーバポート番号との組み合わせから、クライアント装置１０５のユーザが利用しているサービスを特定することができる。
【００５９】
（正常ピークサイズデータ１３０の記憶内容）
つぎに、異常診断装置１０１が有する正常ピークサイズデータ１３０の記憶内容について説明する。正常ピークサイズデータ１３０は、例えば、異常診断装置１０１のメモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００６０】
図５は、正常ピークサイズデータ１３０の記憶内容の一例を示す説明図である。図５において、正常ピークサイズデータ１３０は、正常ピークサイズ（単位：ｂｙｔｅ）を記憶する。ここで、正常ピークサイズとは、正常時（サービスについて障害が発生していないとき）におけるレスポンスメッセージのピークサイズを示す。
【００６１】
正常ピークサイズは、例えば、診断対象のサービスについて、障害が発生していないときのパケットを収集し、収集したパケット群から特定されるレスポンスメッセージのレスポンスサイズ頻度分布にあらわれるピークサイズを求めることにより得ることができる。また、正常ピークサイズは、所定のサイズ幅の階級に対応する。例えば、正常ピークサイズ「３１０」は、階級「３０５〜３１５」に対応する。
【００６２】
なお、正常ピークサイズデータ１３０は、例えば、診断対象のサービスごとに設けられる。具体的には、例えば、正常ピークサイズデータ１３０は、診断対象のサービスを特定する情報と対応付けて、メモリ３０２、ディスク３０５などの記憶装置に記憶される。診断対象のサービスを特定する情報は、例えば、サーバＩＰアドレスとサーバポート番号との組み合わせである。
【００６３】
（正常応答時間分布ＤＢ１４０の記憶内容）
つぎに、異常診断装置１０１が有する正常応答時間分布ＤＢ１４０の記憶内容について説明する。正常応答時間分布ＤＢ１４０は、例えば、異常診断装置１０１のメモリ３０２、ディスク３０５などの記憶装置により実現される。
【００６４】
図６は、正常応答時間分布ＤＢ１４０の記憶内容の一例を示す説明図である。図６において、正常応答時間分布ＤＢ１４０は、代表レスポンスサイズ、応答時間の階級値、応答時間の階級および頻度のフィールドを有し、各フィールドに情報を設定することで、正常応答時間分布データ（例えば、正常応答時間分布データ６００−１〜６００−５）をレコードとして記憶する。
【００６５】
代表レスポンスサイズは、所定のサイズ幅で区切ったレスポンスサイズの階級の代表値を示す（単位：ｂｙｔｅ）。ここでは、所定のサイズ幅を「１０」とする。例えば、代表レスポンスサイズ「７３０」は、レスポンスサイズの階級「７２５〜７３５」の代表値を示す。
【００６６】
応答時間の階級値は、所定の時間幅で区切った応答時間の階級の代表値を示す（単位：ｍｓｅｃ）。応答時間の階級は、所定の時間幅で区切った応答時間の階級を示す。ここでは、所定の時間幅を「１０」とする。例えば、応答時間の階級値「１０」は、応答時間の階級「５〜１５」の代表値を示す。頻度は、レスポンスメッセージの総数に対する、各階級のレスポンスメッセージの数（度数）の割合（相対度数）を示す。
【００６７】
例えば、正常応答時間分布データ６００−１は、レスポンスサイズが「７２５〜７３５」のレスポンスメッセージについて、応答時間の階級「５〜１５」の頻度「０．０５」を示す。すなわち、正常応答時間分布データ６００−１は、レスポンスサイズが７２５［ｂｙｔｅ］以上７３５［ｂｙｔｅ］未満のレスポンスメッセージのうち、応答時間が５［ｍｓｅｃ］以上１５［ｍｓｅｃ］未満となるレスポンスメッセージの割合が５［％］であることを示す。
【００６８】
なお、正常応答時間分布ＤＢ１４０は、例えば、診断対象のサービスごとに設けられる。具体的には、例えば、正常応答時間分布ＤＢ１４０は、診断対象のサービスを特定する情報と対応付けて、メモリ３０２、ディスク３０５などの記憶装置に保持される。
【００６９】
（異常診断装置１０１の機能的構成例）
図７は、異常診断装置１０１の機能的構成例を示すブロック図である。図７において、異常診断装置１０１は、取得部７０１と、第１の算出部７０２と、抽出部７０３と、第２の算出部７０４と、異常判定部７０５と、出力部７０６と、を含む。取得部７０１〜出力部７０６は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００７０】
取得部７０１は、メッセージデータを取得する。ここで、メッセージデータは、レスポンスメッセージのメッセージサイズと応答時間とを示す情報である。メッセージデータは、例えば、異常診断装置１０１において生成することにしてもよい。この場合、取得部７０１は、自装置において生成されたメッセージデータを取得する。
【００７１】
具体的には、例えば、異常診断装置１０１は、ネットワークスイッチ１０７を介して、クライアント装置１０５とＷｅｂサーバ１０２との間で送受信されるパケットをキャプチャする。キャプチャされたパケット（データパケット）は、例えば、メモリ３０２、ディスク３０５などの記憶装置に蓄積される。パケットは、データ部分が暗号化されたパケットであってもよい。
【００７２】
つぎに、異常診断装置１０１は、蓄積したパケット群を読み出す。この際、異常診断装置１０１は、所定期間Ｔ内に送受信されたパケット群を読み出すことにしてもよい。所定期間Ｔは、サービスの異常診断を行う対象期間であり、例えば、５分〜１０分程度の期間である。そして、異常診断装置１０１は、読み出したパケット群を解析してメッセージを再構成する。なお、パケットを解析してメッセージを再構成するメッセージ解析処理は、周知技術のため説明を省略する。
【００７３】
つぎに、異常診断装置１０１は、リクエストメッセージとレスポンスメッセージとのペア（組）を特定する。リクエストメッセージは、クライアント装置１０５からＷｅｂサーバ１０２に送信されるメッセージである。レスポンスメッセージは、Ｗｅｂサーバ１０２からクライアント装置１０５に送信されるメッセージである。
【００７４】
リクエストメッセージとペアとなるレスポンスメッセージは、リクエストメッセージのパケットの次にキャプチャされたパケットにより再構成されたメッセージである。また、リクエスト元（クライアント）とリクエスト先（サーバ）がリクエストメッセージと共通である。
【００７５】
そして、異常診断装置１０１は、特定したリクエストメッセージに対してレスポンスメッセージが返ってくるまでの応答時間を算出する。応答時間は、例えば、同一コネクションにおけるパケット（データパケット）の通信方向が、上り（クライアントからサーバ）から下り（サーバからクライアント）に変化するときの時間間隔から計測される。
【００７６】
なお、レスポンスメッセージの応答時間を計測する具体的な処理内容については、例えば、特開２０１６−１４６５８８号公報を参照することができる。また、通信が暗号化されていても、データ部分以外の情報（ヘッダ部分）は参照できるため、リクエスト元の情報（例えば、クライアントのＩＰアドレス、ポート番号）やリクエスト先の情報（例えば、サーバのＩＰアドレス、ポート番号）は特定可能である。
【００７７】
これにより、レスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを生成することができる。なお、各メッセージ（リクエストメッセージ、レスポンスメッセージ）のメッセージサイズは、各メッセージを形成するパケットのサイズの合計によって表される。
【００７８】
ただし、取得部７０１は、外部のコンピュータからメッセージデータを取得することにしてもよく、また、不図示の入力装置を用いたユーザの操作入力により、メッセージデータを取得することにしてもよい。
【００７９】
取得されたメッセージデータは、例えば、図４に示したメッセージデータＤＢ１２０に記憶される。メッセージデータには、例えば、クライアントＩＰアドレス、クライアントポート番号、サーバＩＰアドレス、サーバポート番号、トランスポート層プロトコルなどを含めることにしてもよい。
【００８０】
第１の算出部７０２は、取得されたメッセージデータに基づいて、レスポンスサイズ頻度分布を算出する。ここで、レスポンスサイズ頻度分布は、レスポンスメッセージのメッセージサイズの頻度分布である。
【００８１】
具体的には、例えば、第１の算出部７０２は、メッセージデータＤＢ１２０から、所定期間Ｔにレスポンスタイムスタンプが含まれるメッセージデータを取得する。つぎに、第１の算出部７０２は、取得したメッセージデータに基づいて、所定のサイズ幅（階級幅）で区切った階級ごとに、当該階級にメッセージサイズが属するレスポンスメッセージの頻度を算出する。
【００８２】
より詳細に説明すると、例えば、第１の算出部７０２は、各階級にメッセージサイズが属するレスポンスメッセージの度数をカウントする。そして、第１の算出部７０２は、カウントした各階級の度数を、レスポンスメッセージの総数で割ることにより、各階級の頻度（相対度数）を算出する。レスポンスメッセージの総数は、取得したメッセージデータの総数に相当する。
【００８３】
これにより、メッセージサイズの階級ごとに、当該階級のレスポンスメッセージが、レスポンスメッセージの総数に対して、どれだけの割合で出現したのかを表すレスポンスサイズ頻度分布を算出することができる。
【００８４】
なお、メッセージデータＤＢ１２０には、複数のサービスについてのメッセージデータが記憶されている場合がある。この場合、第１の算出部７０２は、診断対象のサービスについてのメッセージデータを取得する。診断対象のサービスのメッセージデータは、例えば、サーバＩＰアドレスおよびサーバポート番号から特定される。
【００８５】
算出されたレスポンスサイズ頻度分布は、例えば、図８に示すようなレスポンスサイズ頻度分布テーブル８００に記憶される。レスポンスサイズ頻度分布テーブル８００は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００８６】
図８は、レスポンスサイズ頻度分布テーブル８００の記憶内容の一例を示す説明図である。図８において、レスポンスサイズ頻度分布テーブル８００は、階級値、階級および頻度のフィールドを有し、各フィールドに情報を設定することで、レスポンスサイズ分布データ（例えば、レスポンスサイズ分布データ８００−１〜８００−５）をレコードとして記憶する。
【００８７】
ここで、階級値は、レスポンスサイズの階級の代表値である（単位：ｂｙｔｅ）。階級は、レスポンスサイズの階級である（単位：ｂｙｔｅ）。頻度は、レスポンスサイズの階級の頻度（相対度数）である。例えば、レスポンスサイズ分布データ８００−１は、レスポンスサイズの階級値「７１０」、階級「７０５〜７１５」および頻度「０．０６」を示す。
【００８８】
なお、第１の算出部７０２は、取得されたメッセージデータのうち、レスポンスサイズが所定サイズ以下のレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータに基づいて、レスポンスサイズ頻度分布を算出することにしてもよい。所定サイズは、任意に設定可能であり、サーバエラーなどの異常発生時に受け渡されるレスポンスメッセージのメッセージサイズの取り得る範囲を考慮して設定される。例えば、所定サイズは、１５００［ｂｙｔｅ］程度のサイズに設定される。
【００８９】
抽出部７０３は、算出されたレスポンスサイズ頻度分布から、第１条件を満たすピークサイズを特定する。そして、抽出部７０３は、特定した第１条件を満たすピークサイズのうち、正常ピークサイズと異なるピークサイズを抽出する。正常ピークサイズは、予め記憶された正常時におけるレスポンスのピークサイズである。
【００９０】
以下の説明では、第１条件を満たすピークサイズのうち、正常ピークサイズと異なるピークサイズを「異常ピークサイズ」と表記する場合がある。
【００９１】
具体的には、例えば、抽出部７０３は、図８に示したレスポンスサイズ頻度分布テーブル８００を参照して、隣り合う階級の頻度との差分が閾値α以上の階級の階級値（代表値）を、第１条件を満たすピークサイズとして特定する。
【００９２】
一例として、レスポンスサイズ頻度分布テーブル８００内のレスポンスサイズ分布データ８００−３を例に挙げると、頻度は「０．１２」である。また、隣り合う階級の頻度は、「０．０８」と「０．０７」である。また、閾値αを「α＝０．０４」とする。頻度「０．１２」と隣り合う階級の頻度「０．０８」との差分は、「０．０４＝０．１２−０．０８」である。頻度「０．１２」と隣り合う階級の頻度「０．０７」との差分は、「０．０５＝０．１２−０．０７」である。差分「０．０８」と「０．０７」は、双方とも閾値α以上である。このため、抽出部７０３は、レスポンスサイズ分布データ８００−３の階級値「７３０」を、第１条件を満たすピークサイズとして特定する。
【００９３】
つぎに、抽出部７０３は、図５に示した正常ピークサイズデータ１３０を参照して、特定したピークサイズのうち、正常ピークサイズと異なるピークサイズを、異常ピークサイズとして抽出する。なお、正常ピークサイズデータ１３０がサービスごとに設けられる場合、抽出部７０３は、診断対象のサービスに対応する正常ピークサイズデータ１３０を参照する。
【００９４】
例えば、特定されたピークサイズを「７３０」とする。このピークサイズ「７３０」は、正常ピークサイズデータ１３０のいずれの正常ピークサイズとも一致しない。このため、抽出部７０３は、特定したピークサイズ「７３０」を、異常ピークサイズとして抽出する。なお、異常ピークサイズのより具体的な抽出例については、図１３を用いて後述する。
【００９５】
抽出された異常ピークサイズは、例えば、図９に示すような異常ピークサイズテーブル９００に記憶される。異常ピークサイズテーブル９００は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００９６】
図９は、異常ピークサイズテーブル９００の記憶内容の一例を示す説明図である。図９において、異常ピークサイズテーブル９００は、日時および異常ピークサイズのフィールドを有し、各フィールドに情報を設定することで、異常ピークサイズ情報（例えば、異常ピークサイズ情報９００−１〜９００−６）をレコードとして記憶する。
【００９７】
ここで、日時は、サービスの異常診断を行う対象日時であり、例えば、所定期間Ｔの先頭の日時である。異常ピークサイズは、抽出された異常ピークサイズである。なお、「ＮＡ」は、異常ピークサイズが抽出されなかったことを示す。例えば、異常ピークサイズ情報９００−１は、日時「２０１８／０２／１３  ０９：００：００」および異常ピークサイズ「８０」を示す。
【００９８】
第２の算出部７０４は、取得されたメッセージデータに基づいて、抽出された異常ピークサイズのレスポンスメッセージの応答時間頻度分布を算出する。ここで、応答時間頻度分布は、レスポンスメッセージの応答時間の頻度分布である。
【００９９】
具体的には、例えば、第２の算出部７０４は、メッセージデータＤＢ１２０から、所定期間Ｔにレスポンスタイムスタンプが含まれるメッセージデータを取得する。つぎに、第２の算出部７０４は、異常ピークサイズテーブル９００を参照して、所定期間Ｔに対応する異常ピークサイズを選択する。
【０１００】
例えば、所定期間Ｔが「２０１８／０２／１３  ０９：００：００〜２０１８／０２／１３  ０９：１０：００」の場合、第２の算出部７０４は、異常ピークサイズ情報９００−１の異常ピークサイズ「８０」を選択する。つぎに、第２の算出部７０４は、取得したメッセージデータのうち、レスポンスサイズが、選択した異常ピークサイズに対応するメッセージデータを抽出する。
【０１０１】
例えば、異常ピークサイズが「８０」の場合、レスポンスサイズが「７５〜８５」のメッセージデータを抽出する。そして、第２の算出部７０４は、抽出したメッセージデータに基づいて、所定の時間幅（階級幅）で区切った階級ごとに、当該階級に応答時間が属するレスポンスメッセージの頻度を算出する。
【０１０２】
より詳細に説明すると、例えば、第２の算出部７０４は、各階級に応答時間が属するレスポンスメッセージの度数をカウントする。そして、第２の算出部７０４は、カウントした各階級の度数を、レスポンスメッセージの総数で割ることにより、各階級の頻度（相対度数）を算出する。レスポンスメッセージの総数は、抽出したメッセージデータの総数に相当する。
【０１０３】
これにより、応答時間の階級ごとに、当該階級のレスポンスメッセージが、レスポンスメッセージの総数に対して、どれだけの割合で出現したのかを表す応答時間頻度分布を算出することができる。なお、メッセージデータＤＢ１２０には、複数のサービスについてのメッセージデータが記憶されている場合がある。この場合、第２の算出部７０４は、診断対象のサービスについてのメッセージデータを取得する。
【０１０４】
算出された応答時間頻度分布は、例えば、図１０に示すような応答時間頻度分布テーブル１０００に記憶される。応答時間頻度分布テーブル１０００は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【０１０５】
図１０は、応答時間頻度分布テーブル１０００の記憶内容の一例を示す説明図である。図１０において、応答時間頻度分布テーブル１０００は、代表レスポンスサイズ、階級値、階級および頻度のフィールドを有し、各フィールドに情報を設定することで、応答時間分布データ（例えば、応答時間分布データ１０００−１〜１０００−５）をレコードとして記憶する。
【０１０６】
ここで、代表レスポンスサイズは、異常ピークサイズが属する階級の代表値である。すなわち、代表レスポンスサイズフィールドには、選択された異常ピークサイズが属する階級の代表値が設定される。階級値は、応答時間の階級の代表値である（単位：ｍｓｅｃ）。階級は、応答時間の階級である（単位：ｍｓｅｃ）。頻度は、応答時間の階級の頻度（相対度数）である。
【０１０７】
例えば、応答時間分布データ１０００−１は、代表レスポンスサイズ「７３０」、応答時間の階級値「１０」、階級「５〜１５」および頻度「０．０４」を示す。
【０１０８】
なお、第２の算出部７０４は、取得されたメッセージデータのうち、応答時間が所定時間以下のレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータに基づいて、異常ピークサイズのレスポンスメッセージの応答時間頻度分布を算出することにしてもよい。所定時間は、任意に設定可能であり、サーバエラーなどの異常発生時に受け渡されるレスポンスメッセージの応答時間の取り得る範囲を考慮して設定される。例えば、所定時間は、１００〜５００［ｍｓｅｃ］程度の時間に設定される。
【０１０９】
異常判定部７０５は、算出された異常ピークサイズのレスポンスメッセージの応答時間頻度分布が、第２条件を満たすか否かを判断する。ここで、第２条件は、例えば、異常ピークサイズのレスポンスメッセージの応答時間頻度分布が、正常時のレスポンスメッセージの応答時間頻度分布と統計的に異なるといえる条件に設定される。
【０１１０】
そして、異常判定部７０５は、第２条件を満たすと判断した場合、サービスの異常と判定する。一方、第２条件を満たさないと判断した場合には、異常判定部７０５は、サービスが正常と判定する。また、異常判定部７０５は、抽出部７０３によって異常ピークサイズが抽出されなかった場合、サービスが正常と判定する。
【０１１１】
具体的には、例えば、まず、異常判定部７０５は、図６に示した正常応答時間分布ＤＢ１４０から、選択された異常ピークサイズに対応する代表レスポンスサイズの正常応答時間分布データを抽出する。なお、正常応答時間分布ＤＢ１４０がサービスごとに設けられる場合、異常判定部７０５は、診断対象のサービスに対応する正常応答時間分布ＤＢ１４０を参照する。
【０１１２】
これにより、異常ピークサイズと同一のレスポンスサイズのレスポンスメッセージについて、正常時のレスポンスメッセージの応答時間頻度分布を特定することができる。
【０１１３】
つぎに、異常判定部７０５は、例えば、図１０に示した応答時間頻度分布テーブル１０００を参照して、異常ピークサイズのレスポンスメッセージの応答時間頻度分布が、正常時のレスポンスメッセージの応答時間頻度分布と統計的に異なるか否かを検定して、応答時間の変動の有無を判定する。
【０１１４】
そして、異常判定部７０５は、応答時間の変動があると判定した場合に、第２条件を満たすと判断する。一方、応答時間の変動がないと判定した場合には、異常判定部７０５は、第２条件を満たさないと判断する。なお、検定手法としては、例えば、分布の形によらず適用可能なノンパラメトリック手法であるコルモゴロフ−スミルノフ検定を利用することができる。
【０１１５】
また、異常判定部７０５は、各応答時間頻度分布（異常ピークサイズのレスポンスメッセージの応答時間頻度分布、正常時のレスポンスメッセージの応答時間頻度分布）の統計値から、応答時間頻度分布の類似性を判定することにしてもよい。各応答時間頻度分布の統計値は、例えば、応答時間の平均値、標準偏差、分散などである。
【０１１６】
この場合、異常判定部７０５は、応答時間頻度分布に類似性がないと判定した場合に、第２条件を満たすと判断する。一方、応答時間頻度分布に類似性があると判定した場合には、異常判定部７０５は、第２条件を満たさないと判断する。
【０１１７】
より詳細に説明すると、例えば、異常判定部７０５は、下記式（１）を用いて、各応答時間頻度分布の統計値を算出することにしてもよい。ただし、ｒmeanは、応答時間の平均値である。ｒiは、階級ｉ番目の応答時間の階級値（単位：ｍｓｅｃ）である。ｉは、階級値が低いほうから番号付けするものとする。ｃiは、階級ｉ番目の頻度（相対度数）である。ｎは、階級の総数である。
【０１１８】
【数１】
2020031281.tif 000003
【０１１９】
そして、異常判定部７０５は、例えば、各応答時間頻度分布の統計値の差分が閾値β以上の場合に、応答時間頻度分布に類似性がないと判定する。閾値βは、任意に設定可能である。ここで、閾値βを「β＝１０［ｍｓｅｃ］」とする。また、異常ピークサイズのレスポンスメッセージの応答時間頻度分布の統計値を「４５［ｍｓｅｃ］」とし、正常時のレスポンスメッセージの応答時間頻度分布の統計値を「７２［ｍｓｅｃ］」とする。この場合、各応答時間頻度分布の統計値の差分は、「２７［ｍｓｅｃ］」となり、閾値β以上となる。このため、異常判定部７０５は、応答時間頻度分布に類似性がないと判定する。
【０１２０】
なお、診断対象のサービスの異常の判定例については、図１４を用いて後述する。判定された判定結果は、例えば、図１１に示すような異常診断結果テーブル１１００に記憶される。異常診断結果テーブル１１００は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【０１２１】
図１１は、異常診断結果テーブル１１００の記憶内容の一例を示す説明図である。図１１において、異常診断結果テーブル１１００は、日時および診断結果のフィールドを有し、各フィールドに情報を設定することで、診断結果情報（例えば、診断結果情報１１００−１〜１１００−６）をレコードとして記憶する。
【０１２２】
ここで、日時は、サービスの異常診断を行う対象日時であり、例えば、所定期間Ｔの先頭の日時である。診断結果は、サービスが異常であるか正常であるかを示す診断結果である。例えば、診断結果情報１１００−１は、日時「２０１８／０２／１３  ０９：００：００」および診断結果「正常」を示す。
【０１２３】
なお、異常診断結果テーブル１１００は、例えば、診断対象のサービスごとに設けられる。
【０１２４】
出力部７０６は、異常判定部７０５によって判定された判定結果を出力する。具体的には、例えば、出力部７０６は、サービスの異常と判定された場合、サービスの異常を示す異常診断結果を出力する。一方、サービスが正常と判定された場合、出力部７０６は、サービスが正常であることを示す異常診断結果を出力する。
【０１２５】
出力部７０６の出力形式としては、例えば、メモリ３０２、ディスク３０５などの記憶装置への記憶、Ｉ／Ｆ３０３による他のコンピュータへの送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
【０１２６】
より詳細に説明すると、例えば、出力部７０６は、図１１に示した異常診断結果テーブル１１００を参照して、図１に示した管理装置１０６に対して、診断対象のサービスの診断結果情報を送信する。診断結果情報には、例えば、診断対象のサービスを識別する情報が含まれる。
【０１２７】
診断対象のサービスを識別する情報は、例えば、サービスの種別である。サービスの種別は、例えば、図１２に示すようなサービステーブル１２００から特定することができる。サービステーブル１２００は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【０１２８】
図１２は、サービステーブル１２００の記憶内容の一例を示す説明図である。図１２において、サービステーブル１２００は、サービス種別、ＩＰアドレスおよびポート番号のフィールドを有し、各フィールドに情報を設定することで、サービス情報（例えば、サービス情報１２００−１，１２００−２）をレコードとして記憶する。
【０１２９】
ここで、サービス種別は、診断対象のサービスの種別である。ＩＰアドレスおよびポート番号は、診断対象のサービスを提供するサーバ（例えば、Ｗｅｂサーバ１０２）のＩＰアドレスおよびポート番号である。例えば、サービス情報１２００−１は、サービス種別「勤怠管理サービス」、ＩＰアドレス「ｘｘｘ．ｘｘ．ｘｘｘ．ｘ」およびポート番号「ｘｘｘ」を示す。
【０１３０】
サービステーブル１２００によれば、例えば、異常診断に用いたメッセージデータに含まれるサーバＩＰアドレスおよびサーバポート番号から、診断対象のサービスのサービス種別を特定することができる。
【０１３１】
異常診断装置１０１から管理装置１０６に診断結果情報が送信されると、管理装置１０６において、異常診断結果画面が表示される。異常診断結果画面は、診断対象のサービスの異常診断結果を表示する画面である。異常診断結果画面の画面例については、図１５および図１６を用いて後述する。
【０１３２】
（異常ピークサイズの抽出例）
つぎに、図１３を用いて、異常ピークサイズの抽出例について説明する。
【０１３３】
図１３は、異常ピークサイズの抽出例を示す説明図である。図１３において、レスポンスサイズ頻度分布１３００は、クライアント装置１０５とＷｅｂサーバ１０２との間で所定期間Ｔ内に受け渡されたレスポンスメッセージのメッセージサイズの頻度分布である。
【０１３４】
この場合、抽出部７０３は、レスポンスサイズ頻度分布１３００から、第１条件を満たすピークサイズを特定する。ここでは、第１条件を満たすピークサイズ「１９０，３１０，７３０，９２０，１２８０」が特定された場合を想定する。つぎに、抽出部７０３は、正常ピークサイズデータ１３０を参照して、特定したピークサイズのうち、正常ピークサイズと異なるピークサイズを、異常ピークサイズとして抽出する。
【０１３５】
ここで、正常ピークサイズは「３１０，９２０，１２８０」である。このため、ピークサイズ「１９０，３１０，７３０，９２０，１２８０」のうち、正常ピークサイズ「３１０，９２０，１２８０」と異なるピークサイズ「１９０，７３０」が、異常ピークサイズとして抽出される。
【０１３６】
（診断対象のサービスの異常の判定例）
つぎに、図１４を用いて、診断対象のサービスの異常の判定例について説明する。ここでは、図１３に示したように、異常ピークサイズ「１９０，７３０」が抽出された場合を想定する。
【０１３７】
図１４は、診断対象のサービスの異常の判定例を示す説明図である。図１４において、応答時間頻度分布１４１０は、異常ピークサイズ「１９０」のレスポンスメッセージの応答時間の頻度分布である。応答時間頻度分布１４２０は、異常ピークサイズ「７３０」のレスポンスメッセージの応答時間の頻度分布である。
【０１３８】
この場合、異常判定部７０５は、各異常ピークサイズ「１９０，７３０」の応答時間頻度分布１４１０，１４２０が第２条件を満たすか否かをそれぞれ判断する。具体的には、例えば、異常判定部７０５は、正常応答時間分布ＤＢ１４０から、異常ピークサイズ「１９０」に対応する正常時のレスポンスメッセージの応答時間頻度分布１４１１を特定する。
【０１３９】
つぎに、異常判定部７０５は、異常ピークサイズ「１９０」の応答時間頻度分布１４１０が、正常時のレスポンスメッセージの応答時間頻度分布１４１１と統計的に異なるか否かを検定して、応答時間の変動の有無を判定する。ここでは、応答時間の変動ありと判定された場合を想定する。この場合、異常判定部７０５は、異常ピークサイズ「１９０」の応答時間頻度分布１４１０が、第２条件を満たすと判断する。
【０１４０】
また、異常判定部７０５は、正常応答時間分布ＤＢ１４０から、異常ピークサイズ「７３０」に対応する正常時のレスポンスメッセージの応答時間頻度分布１４２１を特定する。つぎに、異常判定部７０５は、異常ピークサイズ「７３０」の応答時間頻度分布１４２０が、正常時のレスポンスメッセージの応答時間頻度分布１４２１と統計的に異なるか否かを検定して、応答時間の変動の有無を判定する。ここでは、応答時間の変動なしと判定された場合を想定する。この場合、異常判定部７０５は、異常ピークサイズ「７３０」の応答時間頻度分布１４２０が、第２条件を満たさないと判断する。
【０１４１】
そして、異常判定部７０５は、各異常ピークサイズ「１９０，７３０」の応答時間頻度分布１４１０，１４２０の少なくともいずれかが第２条件を満たすと判断した場合に、サービスの異常と判定する。ここでは、異常ピークサイズ「１９０」の応答時間頻度分布１４１０が第２条件を満たすため、サービスの異常と判定される。
【０１４２】
（異常診断結果画面の画面例）
つぎに、図１５および図１６を用いて、管理装置１０６に表示される異常診断結果画面の画面例について説明する。
【０１４３】
図１５は、異常診断結果画面の画面例を示す説明図（その１）である。図１５において、異常診断結果画面１５００は、診断対象のサービスの異常診断結果を示す通報メッセージ１５０１〜１５０４を時系列に表示する画面である。
【０１４４】
通報メッセージ１５０１〜１５０５は、日時とサービス種別とステータスと発生期間とを含む。日時は、異常診断装置１０１からサービスの診断結果情報を受信した日時である。サービス種別は、サービスの種別である。ステータスは、サービスの異常診断結果を示す。ここでは、異常診断結果が「異常」である場合のみ表示される。発生期間は、サービスの異常と判定した期間であり、サービスに障害が発生した期間を表す。発生期間は、例えば、サービスの異常診断を行った対象日時を基準とする所定期間Ｔに対応する。
【０１４５】
異常診断結果画面１５００によれば、異常診断システム１００の管理者は、診断対象のサービスごとに、障害が発生した期間を把握することができる。例えば、通報メッセージ１５０１，１５０３によれば、サービス種別「勤怠管理サービス」のサービスについて、発生期間「２０１８／０２／１３  ０９：２０〜０９：３０」および「２０１８／０２／１３  ０９：３０〜０９：４０」に障害が発生したことを把握することができる。
【０１４６】
図１６は、異常診断結果画面の画面例を示す説明図（その２）である。図１６において、異常診断結果画面１６００は、診断対象のサービスの異常診断結果をグラフ化して表示する画面である。具体的には、異常診断結果画面１６００には、診断対象のサービスごとの帯グラフ１６０１〜１６０３が表示されている。各帯グラフ１６０１〜１６０３は、各サービスの１０分ごとの異常診断結果を示す。
【０１４７】
異常診断結果画面１６００によれば、異常診断システム１００の管理者は、時間の経過とともに変化する各サービスの異常診断結果（正常または異常）を直感的に把握することができる。例えば、帯グラフ１６０１によれば、サービス種別「勤怠管理サービス」のサービスについて、期間「０９：２０〜０９：４０」に障害が発生したことを把握することができる。
【０１４８】
（異常診断装置１０１の異常診断処理手順）
つぎに、図１７を用いて、異常診断装置１０１の異常診断処理手順について説明する。異常診断装置１０１の異常診断処理は、例えば、所定時間（１０分間隔）が経過するたびに、診断対象のサービスごとに実行される。ここでは、あるサービスに着目した場合の異常診断処理手順について説明する。
【０１４９】
図１７は、異常診断装置１０１の異常診断処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、異常診断装置１０１は、メッセージデータＤＢ１２０から、所定期間Ｔにレスポンスタイムスタンプが含まれるメッセージデータを取得する（ステップＳ１７０１）。
【０１５０】
つぎに、異常診断装置１０１は、取得したメッセージデータに基づいて、異常ピークサイズを抽出する異常ピークサイズ抽出処理を実行する（ステップＳ１７０２）。異常ピークサイズ抽出処理の具体的な処理手順については、図１８を用いて後述する。
【０１５１】
つぎに、異常診断装置１０１は、診断対象のサービスの異常診断を行うサービス異常判定処理を実行する（ステップＳ１７０３）。サービス異常判定処理の具体的な処理手順については、図１９および図２０を用いて後述する。
【０１５２】
そして、異常診断装置１０１は、サービス異常判定処理において診断された診断対象のサービスの異常診断結果を出力して（ステップＳ１７０４）、本フローチャートによる一連の処理を終了する。これにより、パケットの中身（データ部分）を解析しなくても、レスポンスメッセージのレスポンスサイズや応答時間をもとに、診断対象のサービスの異常診断を行って異常診断結果を出力することができる。
【０１５３】
つぎに、図１８を用いて、図１７に示したステップＳ１７０２の異常ピークサイズ抽出処理の具体的な処理手順について説明する。
【０１５４】
図１８は、異常ピークサイズ抽出処理の具体的処理手順の一例を示すフローチャートである。図１８のフローチャートにおいて、まず、異常診断装置１０１は、ステップＳ１７０１において取得したメッセージデータから、レスポンスサイズが所定サイズ以下のメッセージデータを抽出する（ステップＳ１８０１）。
【０１５５】
つぎに、異常診断装置１０１は、抽出したメッセージデータに基づいて、レスポンスサイズ頻度分布を算出する（ステップＳ１８０２）。例えば、異常診断装置１０１は、所定のサイズ幅（階級幅）で区切った階級ごとに、当該階級にメッセージサイズが属するレスポンスメッセージの頻度を算出する。
【０１５６】
そして、異常診断装置１０１は、算出したレスポンスサイズ頻度分布から、第１条件を満たすピークサイズを特定する（ステップＳ１８０３）。例えば、異常診断装置１０１は、隣り合う階級の頻度との差分が閾値α以上の階級の階級値（代表値）を、第１条件を満たすピークサイズとして特定する。
【０１５７】
つぎに、異常診断装置１０１は、第１条件を満たすピークサイズが特定されたか否かを判断する（ステップＳ１８０４）。ここで、第１条件を満たすピークサイズが特定されなかった場合（ステップＳ１８０４：Ｎｏ）、異常診断装置１０１は、異常ピークサイズ抽出処理を呼び出したステップに戻る。
【０１５８】
一方、第１条件を満たすピークサイズが特定された場合（ステップＳ１８０４：Ｙｅｓ）、異常診断装置１０１は、正常ピークサイズデータ１３０を参照して、特定したピークサイズと正常ピークサイズとを比較する（ステップＳ１８０５）。そして、異常診断装置１０１は、比較した結果に基づいて、特定したピークサイズのうち、正常ピークサイズと異なるピークサイズがあるか否かを判断する（ステップＳ１８０６）。
【０１５９】
ここで、異なるピークサイズがない場合（ステップＳ１８０６：Ｎｏ）、異常診断装置１０１は、異常ピークサイズ抽出処理を呼び出したステップに戻る。一方、異なるピークサイズがある場合（ステップＳ１８０６：Ｙｅｓ）、異常診断装置１０１は、当該異なるピークサイズを異常ピークサイズとして抽出して（ステップＳ１８０７）、異常ピークサイズ抽出処理を呼び出したステップに戻る。
【０１６０】
これにより、Ｗｅｂサービスの障害による異常が発生したときのレスポンスメッセージ候補を絞り込むための異常ピークサイズを抽出することができる。
【０１６１】
つぎに、図１９および図２０を用いて、図１７に示したステップＳ１７０３のサービス異常判定処理の具体的な処理手順について説明する。ここでは、まず、サービス異常判定処理に用いる応答時間変動テーブル１９００について説明する。
【０１６２】
図１９は、応答時間変動テーブル１９００の記憶内容の一例を示す説明図である。図１９において、応答時間変動テーブル１９００は、異常ピークサイズおよび変動フラグのフィールドを有し、各フィールドに情報を設定することで、応答時間変動情報（例えば、応答時間変動情報１９００−１，１９００−２）をレコードとして記憶する。
【０１６３】
ここで、異常ピークサイズは、レスポンスメッセージの異常ピークサイズである。異常ピークサイズフィールドには、図１８に示したステップＳ１８０７において抽出された異常ピークサイズが設定される。変動フラグは、応答時間の変動の有無を示すフラグである。変動フラグ「０」は、応答時間の変動がないことを示す。変動フラグ「１」は、応答時間の変動があることを示す。
【０１６４】
図２０は、サービス異常判定処理の具体的処理手順の一例を示すフローチャートである。図２０のフローチャートにおいて、まず、異常診断装置１０１は、ステップＳ１７０１において取得したメッセージデータから、応答時間が所定時間以下のメッセージデータを抽出する（ステップＳ２００１）。
【０１６５】
つぎに、異常診断装置１０１は、図１９に示した応答時間変動テーブル１９００から選択されていない未選択の異常ピークサイズを選択する（ステップＳ２００２）。なお、異常ピークサイズが一つもない場合には、異常診断装置１０１は、サービス異常判定処理を呼び出したステップに戻る。
【０１６６】
そして、異常診断装置１０１は、正常応答時間分布ＤＢ１４０から、選択した異常ピークサイズに対応する代表レスポンスサイズの正常応答時間分布データを抽出することにより、正常時のレスポンスメッセージの正常応答時間頻度分布を特定する（ステップＳ２００３）。
【０１６７】
つぎに、異常診断装置１０１は、抽出したメッセージデータのうち、レスポンスサイズが、選択した異常ピークサイズに対応するメッセージデータに基づいて、異常ピークサイズのレスポンスメッセージの応答時間頻度分布を算出する（ステップＳ２００４）。例えば、異常診断装置１０１は、所定の時間幅（階級幅）で区切った階級ごとに、当該階級に応答時間が属するレスポンスメッセージの頻度を算出する。
【０１６８】
そして、異常診断装置１０１は、算出した異常ピークサイズのレスポンスメッセージの応答時間頻度分布が、特定した正常時のレスポンスメッセージの応答時間頻度分布と統計的に異なるか否かを検定して、応答時間の変動の有無を判定する（ステップＳ２００５）。判定された判定結果は、応答時間変動テーブル１９００に記憶される。
【０１６９】
例えば、応答時間の変動がないと判定された場合、選択された異常ピークサイズと対応付けて、変動フラグ「０」が応答時間変動テーブル１９００に記憶される。一方、応答時間の変動があると判定された場合、選択された異常ピークサイズと対応付けて、変動フラグ「１」が応答時間変動テーブル１９００に記憶される。
【０１７０】
つぎに、異常診断装置１０１は、応答時間変動テーブル１９００から選択されていない未選択の異常ピークサイズがあるか否かを判断する（ステップＳ２００６）。ここで、未選択の異常ピークサイズがある場合（ステップＳ２００６：Ｙｅｓ）、異常診断装置１０１は、ステップＳ２００２に戻る。
【０１７１】
一方、未選択の異常ピークサイズがない場合（ステップＳ２００６：Ｎｏ）、異常診断装置１０１は、応答時間変動テーブル１９００を参照して、変動フラグ「１」のレコードがあるか否かを判断する（ステップＳ２００７）。ここで、変動フラグ「１」のレコードがない場合（ステップＳ２００７：Ｎｏ）、異常診断装置１０１は、診断対象のサービスが正常と判定して（ステップＳ２００８）、サービス異常判定処理を呼び出したステップに戻る。
【０１７２】
一方、変動フラグ「１」のレコードがある場合（ステップＳ２００７：Ｙｅｓ）、異常診断装置１０１は、診断対象のサービスの異常と判定して（ステップＳ２００９）、サービス異常判定処理を呼び出したステップに戻る。
【０１７３】
これにより、Ｗｅｂサービスの障害による異常が発生しているときは、応答時間が正常時と比較して変動することを利用して、Ｗｅｂサービスの異常診断を行うことができる。
【０１７４】
以上説明したように、実施の形態にかかる異常診断装置１０１によれば、所定期間Ｔ内に送受信されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを取得することができる。パケット群は、データ部分が暗号化されたパケット群であってもよい。そして、異常診断装置１０１によれば、取得したメッセージデータに基づいて、レスポンスサイズ頻度分布から第１条件を満たすピークサイズを特定し、特定したピークサイズのうち、予め記憶された正常ピークサイズと異なるピークサイズを特定することができる。
【０１７５】
これにより、サーバエラーなどの異常発生時には、レスポンスメッセージのメッセージサイズが特定値付近に集中するという傾向を利用して、異常発生時のレスポンスメッセージ候補を絞り込むための異常ピークサイズを抽出することができる。
【０１７６】
また、異常診断装置１０１によれば、取得したメッセージデータに基づいて、異常ピークサイズのレスポンスメッセージの応答時間頻度分布が第２条件を満たすか否かを判断し、第２条件を満たす場合に、サービスの異常と判定することができる。
【０１７７】
これにより、サーバエラーなどの異常発生時は、例えば、レスポンスを即座に返す処理が急増して応答時間が正常時と比較して変動するという傾向を利用して、異常ピークサイズのレスポンスメッセージの応答時間の変動の有無から、サービスの異常を診断することができる。また、パケットの中身（データ部分）を解析することなく、サービスの異常を判定できるため、暗号化通信の場合でも、サービスの異常診断を行うことができる。
【０１７８】
また、異常診断装置１０１によれば、異常ピークサイズのレスポンスメッセージの応答時間頻度分布と、予め記憶された正常時におけるレスポンスメッセージの応答時間頻度分布とを比較して、応答時間の変動があると判定した場合に、第２条件を満たすと判断することができる。
【０１７９】
これにより、レスポンスメッセージの応答時間頻度分布が正常時と統計的に異なるかどうかを検定して、応答時間の変動の有無を判定することができる。
【０１８０】
また、異常診断装置１０１によれば、取得したメッセージデータに基づいて、所定のサイズ幅で区切った階級ごとに、当該階級にメッセージサイズが属するレスポンスメッセージの頻度（相対度数）を算出することができる。そして、異常診断装置１０１によれば、算出した算出結果に基づいて、隣り合う階級との頻度の差分が閾値α以上の階級に対応するメッセージサイズを、第１条件を満たすピークサイズとして特定することができる。
【０１８１】
これにより、レスポンスメッセージが集中しているピークサイズを適切に判別することができる。
【０１８２】
また、異常診断装置１０１によれば、取得したメッセージデータのうち、レスポンスサイズが所定サイズ以下のレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータに基づいて、第１条件を満たすピークサイズを特定することができる。
【０１８３】
これにより、サーバエラーなどの異常発生時に受け渡されるレスポンスメッセージのメッセージサイズの取り得る範囲を考慮して、異常診断に用いるレスポンスメッセージを、メッセージサイズが所定サイズ以下のレスポンスメッセージに絞り込むことができる。
【０１８４】
また、異常診断装置１０１によれば、異常ピークサイズがない場合、または、第２条件を満たさない場合、サービスが正常と判定することができる。
【０１８５】
これにより、診断時のレスポンスサイズ頻度分布にあらわれたピークサイズが正常時と同じであったり、異常ピークサイズのレスポンスメッセージの応答時間が正常時から変動がないときは、サービスが正常であると診断することができる。
【０１８６】
また、異常診断装置１０１によれば、判定した判定結果を出力することができる。これにより、異常診断システム１００の管理者等に対して、サービスの異常診断結果を通知することができる。
【０１８７】
また、異常診断装置１０１によれば、取得したメッセージデータのうち、応答時間が所定時間以下のレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータに基づいて、異常ピークサイズのレスポンスメッセージの応答時間頻度分布が第２条件を満たすか否かを判断することができる。
【０１８８】
これにより、サーバエラーなどの異常発生時に受け渡されるレスポンスメッセージの応答時間の取り得る範囲を考慮して、異常診断に用いるレスポンスメッセージを、応答時間が所定時間以下のレスポンスメッセージに絞り込むことができる。
【０１８９】
これらのことから、実施の形態にかかる異常診断システム１００および異常診断装置１０１によれば、サービスを提供するシステムに手を加えることなく、暗号化通信の場合でも、サービス利用不可などの障害時の異常を診断することができる。また、暗号化通信でない場合であっても、レスポンスのデータパケットをプロトコル解析してステータスコードを取得するといった処理を行うことなく、サービスの異常診断ができるため、大容量の通信トラフィックに対応することが可能となる。
【０１９０】
なお、本実施の形態で説明した異常診断方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本異常診断プログラムは、ハードディスク、フレキシブルディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本異常診断プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１９１】
また、本実施の形態で説明した異常診断装置１０１は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣやＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。
【０１９２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１９３】
（付記１）所定期間内に送受信された暗号化されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを取得し、
取得した前記メッセージデータに基づいて、レスポンスメッセージのメッセージサイズの頻度分布から第１条件を満たすピークサイズを特定し、
特定した前記ピークサイズのうち、予め記憶された正常時におけるレスポンスメッセージのピークサイズと異なるピークサイズがある場合、前記メッセージデータに基づいて、前記異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断し、
前記第２条件を満たす場合に、サービスの異常と判定する、
処理をコンピュータに実行させることを特徴とする異常診断プログラム。
【０１９４】
（付記２）前記判断する処理は、
前記異なるピークサイズのレスポンスの応答時間の頻度分布と、予め記憶された正常時におけるレスポンスメッセージの応答時間の頻度分布とを比較して、応答時間の変動があると判定した場合に、前記第２条件を満たすと判断する、ことを特徴とする付記１に記載の異常診断プログラム。
【０１９５】
（付記３）前記特定する処理は、
前記メッセージデータに基づいて、所定のサイズ幅で区切った階級ごとに、前記階級にメッセージサイズが属するレスポンスメッセージの頻度を算出し、
算出した算出結果に基づいて、隣り合う階級との頻度の差分が閾値以上の階級に対応するメッセージサイズを、前記第１条件を満たすピークサイズとして特定する、
ことを特徴とする付記１または２に記載の異常診断プログラム。
【０１９６】
（付記４）前記特定する処理は、
取得した前記メッセージデータのうち、レスポンスサイズが所定サイズ以下のレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータに基づいて、前記第１条件を満たすピークサイズを特定する、ことを特徴とする付記１〜３のいずれか一つに記載の異常診断プログラム。
【０１９７】
（付記５）前記異なるピークサイズがない場合、または、前記第２条件を満たさない場合、前記サービスが正常と判定する、処理を前記コンピュータに実行させることを特徴とする付記１〜４のいずれか一つに記載の異常診断プログラム。
【０１９８】
（付記６）判定した判定結果を出力する、処理を前記コンピュータに実行させることを特徴とする付記１〜５のいずれか一つに記載の異常診断プログラム。
【０１９９】
（付記７）前記パケット群は、前記サービスについて、前記所定期間内に送受信されたパケット群である、ことを特徴とする付記１〜６のいずれか一つに記載の異常診断プログラム。
【０２００】
（付記８）前記判断する処理は、
取得した前記メッセージデータのうち、応答時間が所定時間以下のレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータに基づいて、前記異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断する、ことを特徴とする付記１〜７のいずれか一つに記載の異常診断プログラム。
【０２０１】
（付記９）所定期間内に送受信された暗号化されたパケット群から特定されるレスポンスメッセージのメッセージサイズと応答時間とを示すメッセージデータを取得し、
取得した前記メッセージデータに基づいて、レスポンスメッセージのメッセージサイズの頻度分布から第１条件を満たすピークサイズを特定し、
特定した前記ピークサイズのうち、予め記憶された正常時におけるレスポンスメッセージのピークサイズと異なるピークサイズがある場合、前記メッセージデータに基づいて、前記異なるピークサイズのレスポンスメッセージの応答時間の頻度分布が第２条件を満たすか否かを判断し、
前記第２条件を満たす場合に、サービスの異常と判定する、
処理をコンピュータが実行することを特徴とする異常診断方法。
【符号の説明】
【０２０２】
１００  異常診断システム
１０１  異常診断装置
１０２  Ｗｅｂサーバ
１０３  ＡＰサーバ
１０４  ＤＢサーバ
１０５  クライアント装置
１０６  管理装置
１０７  ネットワークスイッチ
１１０  ネットワーク
１２０  メッセージデータＤＢ
１３０  正常ピークサイズデータ
１４０  正常応答時間分布ＤＢ
２００  メッセージデータ
２１０，２２０，１３００  レスポンスサイズ頻度分布
２３０，２４０，１４１０，１４１１，１４２０，１４２１  応答時間頻度分布
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  Ｉ／Ｆ
３０４  ディスクドライブ
３０５  ディスク
７０１  取得部
７０２  第１の算出部
７０３  抽出部
７０４  第２の算出部
７０５  異常判定部
７０６  出力部
８００  レスポンスサイズ頻度分布テーブル
９００  異常ピークサイズテーブル
１０００  応答時間頻度分布テーブル
１１００  異常診断結果テーブル
１２００  サービステーブル
１５００，１６００  異常診断結果画面
１５０１，１５０２，１５０３，１５０４，１５０５  通報メッセージ
１６０１，１６０２，１６０３  帯グラフ
１９００  応答時間変動テーブル
【図１】
2020031281.tif 000004
【図２】
2020031281.tif 000005
【図３】
2020031281.tif 000006
【図４】
2020031281.tif 000007
【図５】
2020031281.tif 000008
【図６】
2020031281.tif 000009
【図７】
2020031281.tif 000010
【図８】
2020031281.tif 000011
【図９】
2020031281.tif 000012
【図１０】
2020031281.tif 000013
【図１１】
2020031281.tif 000014
【図１２】
2020031281.tif 000015
【図１３】
2020031281.tif 000016
【図１４】
2020031281.tif 000017
【図１５】
2020031281.tif 000018
【図１６】
2020031281.tif 000019
【図１７】
2020031281.tif 000020
【図１８】
2020031281.tif 000021
【図１９】
2020031281.tif 000022
【図２０】
2020031281.tif 000023