以下に、本願の開示する判定装置、判定方法および判定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例に係るシステムの構成について説明する。図1は、本実施例に係るシステムの構成を示す図である。同図に示すように、このシステムは、サイト10a,10b,10cおよびデータセンター60を有する。サイト10a,10b,10cおよびデータセンター60は、ネットワーク50を介して相互に接続される。例えば、ネットワーク50は、IP(Internet Protocol)−VPN(Virtual Private Network)に対応する。サイト10a,10b,10cをまとめて、適宜、サイト10と表記する。
例えば、サイト10aは、ホスト12a,13a、14a,15a、ルータ11aを有する。サイト10bは、ホスト12b,13b、ルータ11bを有する。サイト10cは、ホスト12c,13c、ルータ11cを有する。
以下の説明では、サイト10a,10b,10cをまとめて、適宜、サイト10と表記する。各ホスト12a,12b,12c,13a,13b,13c,14a,15aをまとめて、適宜、ホストと表記する。ルータ11a,11b,11cをまとめて、適宜、ルータ11と表記する。
各サイト10のホストは、ルータ11、ネットワーク50を介して、データセンター60との間でパケットを送受信する。ルータ11は、パケットを中継する装置である。
また、サイト10は、複数のサブネットを含む。例えば、サイト10aは、ホスト12a,13aを含むサブネットaと、ホスト14a,15aを含むサブネットbを有する。サイト10bは、ホスト12b,13bを含むサブネットcを有する。サイト10cは、ホスト12c,13cを含むサブネットsを有する。各サイト10はその他のサブネットを有していても良い。
データセンター60は、例えば、ルータ11d、UTM(Unified Threat Management)65、Webサーバ70a,70b,70c、APサーバ80、DBサーバ90、判定装置100を有する。Webサーバ70a,70b,70cをまとめて、適宜、Webサーバ70と表記する。
ルータ11dは、パケットを中継する装置である。UTM65は、ファイヤーウォールとVPN機能をベースに、アンチウイルス、不正侵入防御、Webコンテンツフィルタリング等のセキュリティ機能が統合された装置である。
Webサーバ70は、サイト10のホストとパケットを送受信し、ホストからの要求に応じて、サービスを提供する装置である。Webサーバ70は、ルータ11d、UTM65を介して、サイト10のホストとパケットを送受信する。また、Webサーバ70は、APサーバ80を利用して、DBサーバ90に各種データを要求する。
APサーバ80は、Webサーバ70と、DBサーバ90との間に位置し、データの橋渡しを行う装置である。例えば、APサーバ80は、Webサーバ70が要求するデータを、DBサーバ90から取得する。
DBサーバ90は、各種のデータを記憶し、APサーバ80を介して、Webサーバ70に要求されたデータを送信する装置である。
判定装置100は、サイト10とデータセンター60との間で送受信されるパケットを分析して、ネットワーク品質に関連する特徴を特定し、特定した特徴を基にして、可視化して表示装置に表示可能なネットワーク集計データを生成する。判定装置100は、ネットワーク集計データを基にして、ネットワークの品質劣化の原因を判定する。例えば、判定装置100は、サイト10側のポイントX1,X2,X3と、データセンター60内のポイントY1,Y2,Y3から、パケットをキャプチャして分析を行うものとする。
判定装置100は、ポイントX1から、サイト10aとデータセンター60間で送受信されるパケットを取得する。判定装置100は、ポイントX2から、サイト10bとデータセンター60間で送受信されるパケットを取得する。判定装置100は、ポイントX3から、サイト10cとデータセンター60間で送受信されるパケットを取得する。
判定装置100は、ポイントY1から、各サイト10とWebサーバ70との間で送受信されるパケットを取得する。判定装置100は、ポイントY2から、Webサーバ70とAPサーバ80との間で送受信されるパケットを取得する。判定装置100は、ポイントY3から、APサーバ80とDBサーバ90との間で送受信されるパケットを取得する。
次に、図1に示した判定装置100の構成の一例について説明する。図2は、本実施例に係る判定装置の構成を示す機能ブロック図である。図2に示すように、この判定装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
通信部110は、図1のポイントX1,X2,X3,Y1,Y2,Y3に接続され、パケットを取得する処理部である。通信部110は、NIC(Network Interface Card)に対応する。
入力部120は、判定装置100に各種の情報を入力するための入力装置である。例えば、入力部120は、入力キーやタッチパネルに対応する。
表示部130は、後述する制御部150から出力される情報を表示する表示装置である。例えば、表示部130はディスプレイやタッチパネルに対応する。
記憶部140は、スループットデータ140a、ネットワーク集計データ140b、アプリ集計データ140c、環境定義テーブル140dを記憶する。記憶部140は、ネットワーク品質診断テーブル140e、アプリ品質診断テーブル140f、アプリ特性データ140gを記憶する。記憶部140は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置に対応する。
以下では、記憶部140に記憶されたデータ140a〜140gについて順に説明する。下記の説明で用いる、「A1〜A3,B1,C1」等は、ホストアドレスの一例であり、「S1」等はWebサーバのアドレスの一例であり、「AP1」等はAPサーバのアドレスの一例であり、「DB1」等はDBサーバのアドレスの一例である。
スループットデータ140aは、単位時間当たりに送受信されるパケットのデータ量を時刻毎に示すデータである。図3は、スループットデータのデータ構造の一例を示す図である。図3に示すように、このスループットデータ140aは、時刻と、サブネット情報と、送信スループットと、受信スループットとを有する。
サブネット情報は、図1で説明した各サブネットを識別する情報である。送信スループットは、サイト10側からデータセンター60側に送信されるパケットの単位時間当たりのデータ量を示す。受信スループットは、データセンター60側からサイト10側に送信されるパケットの単位時間当たりのデータ量を示す。
ネットワーク集計データ140bは、ネットワーク品質に関連する特徴を示すデータである。図4は、ネットワーク集計データの一例を示す図である。例えば、ネットワーク集計データ140bは、テーブル20a,20b,20cを有する。テーブル20aは、ネットワーク品質に関する特徴をホスト単位で示したテーブルである。テーブル20bは、ネットワーク品質に関する特徴をサブネット単位で示したテーブルである。テーブル20cは、ネットワーク品質に関する特徴をサイト単位で示したテーブルである。
テーブル20aは、時刻、送信元IPアドレス、宛先IPアドレス、アプリ情報、送信トラフィック量、受信トラフィック量、ネットワーク遅延、送信ロス率、受信ロス率、サーバ処理時間を有する。送信元IPアドレスは、送信元のホストのアドレスである。宛先IPアドレスは、宛先のWebサーバのアドレスである。アプリ情報は、アプリの種別を識別する情報である。本実施例では、一例として、アプリ情報を宛先ポート番号で示す。
送信トラフィック量は、送信元IPアドレスから宛先IPアドレスに送信されるパケットの単位時間当たりのデータ量である。受信トラフィック量は、宛先IPアドレスから送信元IPアドレスに送信されるパケットの単位時間当たりのデータ量である。
ネットワーク遅延は、送信元がパケットを送信した時刻から、このパケットに対応する応答を送信元が受信する時刻までの時間を示すRTT(Round Trip Time)である。
送信ロス率は、送信元IPアドレスから宛先IPアドレスに送信されるパケットのロス率である。受信ロス率は、宛先IPアドレスから送信元IPアドレスに送信されるパケットのロス率である。サーバ処理時間は、Webサーバ70がパケットを受信してから応答を返すまでの時間である。
テーブル20bは、時刻、送信元サブネット、宛先IPアドレス、アプリ情報、送信トラフィック量、受信トラフィック量、ネットワーク遅延、送信ロス率、受信ロス率、サーバ処理時間を有する。送信元サブネットは、送信元のサブネットを識別する情報である。テーブル20bに関するその他の属性に関する説明は、テーブル20aと同様である。
テーブル20cは、時刻、送信元サイト、宛先IPアドレス、アプリ情報、送信トラフィック量、受信トラフィック量、ネットワーク遅延、送信ロス率、受信ロス率、サーバ処理時間を有する。送信元サイトは、送信元のサイトを識別する情報である。テーブル20cに関するその他の属性に関する説明は、テーブル20aと同様である。
アプリ集計データ140cは、あるアプリによって行われたサービスに関する情報を有する。図5は、アプリ集計データのデータ構造の一例を示す図である。図5に示すように、アプリ集計データ140cは、時刻、送信元IPアドレス、宛先IPアドレス、サービス名、リクエスト数、処理時間、オブジェクトを有する。
送信元IPアドレスは、パケットの送信元を示すアドレスである。パケットの送信元には、ホスト、Webサーバ70、APサーバ80等が含まれる。宛先IPアドレスは、パケットの宛先を示すアドレスである。パケットの宛先には、ホスト、Webサーバ70、APサーバ80等が含まれる。
サービス名は、パケットによりリクエストされるサービスを識別する情報である。例えば、サービス名「WEB」は、Webサーバ70が所定の処理を行うことを示す。サービス名「AP」は、APサーバ80が所定の処理を行うことを示す。サービス名「DB」は、DBサーバ90が所定の処理を行うことを示す。
リクエスト数は、特定のサービスに対するリクエスト数を示す。処理時間は、リクエストの処理に要した時間である。オブジェクトは、例えば、アプリによって実行されるコマンドの一例を示すものである。例えば、オブジェクトは、個々のリクエストに対する処理である。
例えば、図5の1行目を参照すると、時刻「10時00分」において、送信元IPアドレス「A1」のホストから宛先IPアドレス「S1」のWebサーバ70へパケットが送信されており、サービス名「WEB」が実行されている。そして、かかるサービス名「WEB」に対するリクエスト数が「800」であり、処理時間が「250ms」であり、オブジェクトが「get http:・・・」となっている。
環境定義テーブル140dは、サイト10とサブネットとの関係を定義する情報である。図6は、環境定義テーブルのデータ構造の一例を示す図である。図6に示すように、この環境定義テーブル140dは、サイト情報とサブネット情報とを対応付ける。また、環境定義テーブル140dは、サブネット情報と、サブネットに含まれるホスト情報とを対応付けた情報を更に保持しても良い。サイト情報は、サイトを識別する情報である。サブネット情報は、サブネットを識別する情報である。例えば、図6の1行目を参照すると、サイト10aには、サブネットa、bが含まれる旨が示される。
ネットワーク品質診断テーブル140eは、ネットワーク品質に関する特徴を時間帯毎に示したデータである。図7は、ネットワーク品質診断テーブルのデータ構造の一例を示す図である。図7に示す例では、平日10時台のネットワーク品質に関する特徴を示すがこれに限定されるものではない。
図7に示すように、ネットワーク品質診断テーブル140eは、送信元サブネット、宛先サブネット、送信スループット、受信スループット、ネットワーク遅延、ロス率、サーバ処理時間を有する。
送信元サブネットは、送信元のサブネットを識別する情報である。宛先サブネットは、宛先のサブネットを識別する情報である。例えば、宛先サブネットの「s」は、Webサーバ70a,70b,70cから構成されるサブネットとする。
送信スループットは、平常時における、送信元サブネットから宛先サブネットに送信されるパケットの単位時間当たりのデータ量を示す。受信スループットは、平常時における、宛先サブネットから送信元サブネットに送信されるパケットの単位時間当たりのデータ量を示す。
ネットワーク遅延は、平常時のネットワーク遅延と、ネットワーク遅延の閾値とを含む。ロス率は、平常時のロス率と、ロス率の閾値とを含む。サーバ処理時間は、平常時のサーバ処理時間と、サーバ処理時間の閾値とを含む。
アプリ品質診断テーブル140fは、アプリに対する各サーバの処理時間やリクエスト数を時間帯毎に示したデータである。図8は、アプリ品質診断テーブルのデータ構造の一例を示す図である。図8に示す例では、平日10時台の情報を示すが、これに限定されるものではない。
図8に示すように、アプリ品質診断テーブル140fは、送信元IPアドレス、宛先IPアドレス、処理時間、リクエスト数を有する。
送信元IPアドレスは、パケットの送信元のホストまたはWebサーバ70、APサーバ80、DBサーバ90を示すアドレスである。なお、アプリ品質診断テーブル140fは、各ホストのアドレスをまとめて「−」で表す。宛先IPアドレスは、パケットの宛先を示すアドレスである。
処理時間は、アプリを実行するWebサーバ70、APサーバ80、DBサーバ90の平常時の処理時間と、処理時間の閾値とを含む。リクエスト数は、平常時のリクエスト数と、リクエスト数の閾値とを含む。
アプリ特性データ140gは、アプリがネットワーク品質に与える特徴を示すデータである。図9は、アプリ特性データのデータ構造の一例を示す図である。図9に示すように、アプリ特性データ140gは、時刻、送信元サブネット、アプリ情報、ネットワーク遅延、送信ロス率、受信ロス率を有する。時刻、送信元サブネット、アプリ情報、ネットワーク遅延、送信ロス率、受信ロス率に関する説明は、図4に示したネットワーク集計データ140bの説明と同様である。
制御部150は、スループット計測部150a、パケットキャプチャー部150b、生成部150c、判定部150d、可視化データ表示部150eを有する。制御部150は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部150は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
スループット計測部150aは、図1に示したサイト側のポイントX1,X2,X3から単位時間当たりに通過するパケットのデータ量を計測する処理部である。スループット計測部150aは、計測結果をスループットデータ140aに格納する。
例えば、スループット計測部150aは、サブネット毎に、送信スループットおよび受信スループットを計測する。スループット計測部150aは、パケットのヘッダ情報と、環境定義テーブル140dとを基にして、パケットがどのサブネットに属するのか判定する。
パケットキャプチャー部150bは、図1に示したデータセンター60内のポイントY1,Y2,Y3からパケットをキャプチャーし、キャプチャーしたパケットを生成部150cに出力する処理部である。
生成部150cは、パケットキャプチャー部150bから取得するパケットを分析してネットワーク品質に関連する特徴を特定し、特定した特徴を基にして、ネットワーク集計データ140b、アプリ集計データ140c、ネットワーク品質診断テーブル140e、アプリ品質診断テーブル140f、アプリ特性データ140gを生成する処理部である。以下では、生成部150cが各データを生成する処理の一例について順に説明する。
生成部150cが、「図4に示したネットワーク集計データ140b」を生成する処理の一例について説明する。生成部150cは、例えば、テーブル20aを生成し、テーブル20aを基にして、テーブル20bを生成し、テーブル20bを基にして、テーブル20cを生成する。
生成部150cがテーブル20aを生成する処理について説明する。生成部150cは、パケットのヘッダ情報を基にして、送信元IPアドレス、宛先IPアドレス、アプリ情報を特定して、テーブル20aに格納する。そして、生成部150cは、送信元IPアドレス、宛先IPアドレス、アプリ情報の組みが同一のヘッダ情報に有するパケットに着目し、送信トラフィック量、受信トラフィック量、ネットワーク遅延を計測し、テーブル20aに格納する。
生成部150cは、同一の送信元IPアドレス、宛先IPアドレス、アプリ情報の組みをヘッダ情報に有するパケットに着目し、所定の時間間隔におけるパケット抜けを検出することで、送信ロス率、受信ロス率を算出し、テーブル20aに格納する。例えば、パケットはパケットIDを有しており、このパケットIDがほぼ昇順となるように送受信されている。このため、順次取得するパケットのパケットIDが、「1,2,3,4,6,7,8」となっている場合に、パケットID「5」のパケットがロスしたと判定出来る。生成部150cは、このようなパケットIDを用いて送信ロス率、受信ロス率を算出しても良いし、他の従来技術を用いて、送信ロス率、受信ロス率を算出してもよい。
生成部150cは、図1のポイントY1でキャプチャーされたパケットの応答が、再びポイントY1でキャプチャーされるまでの時間をサーバ処理時間として算出し、テーブル20aのサーバ処理時間に格納する。生成部150cは、パケットのヘッダ情報の、送信元IPアドレス、送信先IPアドレス、アプリ情報の組みの関係から、パケットの応答となるパケットを判定しても良い。例えば、送信元IPアドレス「A1」、送信先IPアドレス「S1」、アプリ情報「80」の応答は、ヘッダ情報に、送信元IPアドレス「S1」、送信先IPアドレス「A1」、アプリ情報「80」を含むことを利用する。なお、生成部150cは、他の従来技術を用いて、サーバ処理時間を算出しても良い。
生成部150cがテーブル20bを生成する処理について説明する。生成部150cは、環境定義テーブル140dと、テーブル20aとを比較して、同一のサブネットに属するホストのレコードを特定し、特定したレコードの各数値を平均化することで、テーブル20bを生成する。
例えば、図4のテーブル20aの送信元IPアドレス「A1〜A3」が同一のサブネット「a」に属している場合には、生成部150cは、送信元IPアドレス「A1〜A3」のレコードを平均化して、テーブル20bの送信元サブネット「a」のレコードを生成する。
生成部150cがテーブル20cを生成する処理について説明する。生成部150cは、環境定義テーブル140dと、テーブル20bとを比較して、同一のサイトに属するサブネットのレコードを特定し、特定したレコードの各数値を平均化することで、テーブル20cを生成する。
例えば、図4のテーブル20bの送信元サブネット「a,b」が同一のサイト「サイト10a」に属している場合には、生成部150cは、送信元サブネット「a,b」のレコードを平均化して、テーブル20cの送信元サイト「サイト10a」のレコードを生成する。
次に、生成部150cが、「図5に示したアプリ集計データ140c」を生成する処理の一例について説明する。生成部150cは、パケットのヘッダ情報を基にして、送信元IPアドレス、宛先IPアドレスを特定し、アプリ集計データ140cに格納する。また、生成部150cは、ヘッダ情報に含まれる宛先ポート番号を基にして、サービス名を特定し、アプリ集計データ140cに格納する。例えば、生成部150cは、宛先ポート番号と、サービス名との対応関係を示す情報を保持しているものとする。
生成部150cは、送信元IPアドレス、宛先IPアドレス、サービス名の組みが同一となるパケットに着目し、係るパケットの通過数をカウントすることで、リクエスト数を特定し、アプリ集計データ140cに格納する。
生成部150cは、サービス名「WEB」となるパケットに関しては、図1のポイントY1でキャプチャーされたパケットの応答が、再びポイントY1でキャプチャーされるまでの時間を処理時間として算出し、アプリ集計データの処理時間に格納する。
生成部150cは、サービス名「AP」となるパケットに関しては、図1のポイントY2でキャプチャーされたパケットの応答が、再びポイントY2でキャプチャーされるまでの時間を処理時間として算出し、アプリ集計データの処理時間に格納する。
生成部150cは、サービス名「DB」となるパケットに関しては、図1のポイントY3でキャプチャーされたパケットの応答が、再びポイントY3でキャプチャーされるまでの時間を処理時間として算出し、アプリ集計データの処理時間に格納する。
生成部150cは、パケットに含まれるオブジェクトの情報を、アプリ集計データ140cのオブジェクトに格納する。
次に、生成部150cが、「図7に示したネットワーク品質診断テーブル140e」を生成する処理の一例について説明する。生成部150cは、周知の正常性診断の技術を活用し、スループットデータ140aおよびネットワーク集計データ140bを統計的に処理してデータの傾向を捉え、混入した異常の影響を除去することで、ネットワーク品質診断テーブル140eを生成する。
例えば、生成部150cは、過去数ヶ月分の、所定の時間帯(例えば、10時台)において、送信元サブネットと宛先サブネットとの組みが同一となるレコードを抽出し、平均化することで、平常時の送信スループット、平常時の受信スループット、平常時のネットワーク遅延、平常時のロス率、平常時のサーバ処理時間を算出する。なお、生成部150cは、平均値と大きく異なる値を有するレコードを除外して、各平常時の値を算出しても良い。
また、生成部150cは、平常時の値と、予め設定される変動率とを掛け合わせることで、各閾値を算出する。生成部150cは、平常時のネットワーク遅延に、変動率をかけることで、ネットワーク遅延の閾値を算出する。生成部150cは、平常時のロス率に、変動率をかけることで、ロス率の閾値を算出する。生成部150cは、平常時のサーバ処理時間に、変動率をかけることで、サーバ処理時間の閾値を算出する。なお、変動率の数値を、ネットワーク遅延、ロス率、サーバ処理時間毎に設定しても良い。
次に、生成部150cが、「図8に示したアプリ品質診断テーブル140f」を生成する処理の一例について説明する。生成部150cは、周知の正常診断の技術を活用し、アプリ集計データ140cを統計的に処理してデータの傾向を捉え、混入した異常の影響を除去することで、アプリ品質診断テーブル140fを生成する。
例えば、生成部150cは、過去数ヶ月分の、所定の時間帯(例えば、10時台)において、宛先がWebサーバ70となるレコードを抽出し、平均化することで、アプリ品質診断テーブル140fの1行目のレコードを生成する。生成部150cは、過去数ヶ月分の、所定の時間帯において、送信元がWebサーバ70、宛先がAPサーバ80となるレコードを抽出し、平均化することで、アプリ品質診断テーブル140fの2行目のレコードを生成する。生成部150cは、過去数ヶ月分の、所定の時間帯において、送信元がAPサーバ80、宛先がDPサーバ90となるレコードを抽出し、平均化することで、アプリ品質診断テーブル140fの3行目のレコードを生成する。
次に、生成部150cが、「図9に示したアプリ特性データ140g」を生成する処理の一例について説明する。生成部150cは、ネットワーク集計データ140bのテーブル20aを基にして、アプリ特性データ140gを生成する。例えば、生成部150cは、送信元サブネットとアプリ情報との組み毎に、レコードを平均化することで、ネットワーク遅延、送信ロス率、受信ロス率を算出し、アプリ特性データ140gに格納する。
判定部150dは、記憶部140に記憶される各データ140a〜140gを基にして、ネットワークの品質劣化の原因を判定する処理部である。図10、図11は、判定部の処理手順の一例を示すフローチャートである。
図10に示すように、判定部150dは、ネットワーク集計データ140bのネットワーク遅延が、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きいか否かを判定する(ステップS101)。
判定部150dは、ネットワーク集計データ140bのネットワーク遅延が、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きい場合には(ステップS101,Yes)、ホスト側の品質劣化の方向を分析する(ステップS102)。
ステップS102に示した、ホスト側の品質劣化の方向を分析する処理の一例について説明する。判定部150dは、品質劣化の方向を分析することで、品質劣化が、特定のサブネットによるものか、全サイトによるものか、特定のサイトによるものか、特定のホストによるものかを判定する。以下では、説明の便宜上、ネットワーク遅延を利用して、品質劣化の方向を分析する方法について述べるが、トラフィック量、ロス率、サーバ処理時間を複合的に用いて品質劣化の方向を分析しても良い。
判定部150dは、テーブル20cを参照し、ネットワーク遅延が、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きいレコードを特定する。そして、判定部150dは、特定したレコードの送信元サイトを、品質劣化の方向として判定する。
図4のテーブル20cの場合では、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きいレコードは、1行目のレコードとなり、判定部150dは、送信元サイト「サイト10a」を、品質劣化の方向として特定する。
続いて、判定部150dは、テーブル20cで特定した、送信元サイトに含まれるサブネットを、環境定義テーブル140dを基にして特定する。判定部150dは、特定したサブネットを送信元サブネットに含むレコードを、テーブル20bにて特定し、ネットワーク遅延が、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きいレコードを特定する。判定部150dは、特定したレコードの送信元サブネットを、品質劣化の方向として特定する。
例えば、送信元サイト「10a」に含まれるサブネットは、サブネット「a,b」となる。判定部150dは、テーブル20bで、送信元サブネットが「a,b」となるレコードを特定する。図4のテーブル20bでは、1,2行目のレコードが特定される。判定部150dは、特定したレコードにつき、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きいレコードを特定すると、テーブル20bの1行目のレコードが、特定される。判定部150dは、送信元サブネット「a」を、品質劣化の方向として特定する。
続いて、判定部150dは、テーブル20bで特定した、送信元サブネットに含まれるホストを、環境定義テーブル140dを基にして特定する。判定部150dは、特定したホストを送信元IPアドレスに含むレコードを、テーブル20aにて特定し、ネットワーク遅延が、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きいレコードを特定する。判定部150dは、特定したレコードの送信元IPアドレス(ホスト)を、品質劣化の方向として特定する。
例えば、送信元サブネット「a」に含まれるホストの送信元IPアドレスを「A1,A2,A3」とする。判定部150dは、テーブル20aで、送信元IPアドレスが「A1,A2,A3」となるレコードを特定する。図4のテーブル20aでは、1,4,5行目のレコードが特定される。判定部150dは、特定したレコードにつき、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値よりも大きいレコードを特定すると、テーブル20bの1,5行目のレコードが、特定される。判定部150dは、送信元IPアドレス「A1,A2」を、品質劣化の方向として特定する。
判定部150dが、上記の処理を実行することで、品質劣化の方向が、送信元サイト「10a」に含まれる送信元サブネット「a」の送信元IPアドレス「A1,A2」のホストと判定する。なお、品質劣化の方向を特定する処理は、上述した処理に限定されず、トモグラフィ技術を用いて、品質劣化の方向を特定しても良い。
判定部150dは、品質劣化の方向を特定した後に、特定したホスト、特定したサブネット、特定したサイト、全サイトについて、図11のステップS103〜S111の処理をそれぞれ実行する。ここでは説明の便宜上、特定したサブネットについて、ステップS103〜S111を実行する場合について説明する。
図11において、判定部150dは、テーブル20bの特定したサブネットのレコードについて、送信トラフィック量または受信トラフィック量が平常時よりも大きいか否かを判定する(ステップS103)。
ステップS103において、判定部150dは、テーブル20bの該当するレコードの送信トラフィック量が、ネットワーク品質診断テーブル140eの送信スループットよりも大きい場合に、送信トラフィック量が平常時よりも大きいと判定する。また、判定部150dは、テーブル20bの該当するレコードの受信トラフィック量が、ネットワーク品質診断テーブル140eの受信スループットよりも大きい場合に、受信トラフィック量が平常時よりも大きいと判定する。
判定部150dは、送信トラフィック量および受信トラフィック量が平常時のトラフィック量以下の場合には(ステップS103,No)、品質劣化の原因がトラフィック依存ではないと判定し(ステップS104)、ステップS109に移行する。ステップS104において、判定部150dは、サブネットに含まれる各ホストのうち、ネットワーク遅延、ロス率が閾値以上となるホストを特定する。また、判定部150dは、ホストに設定されるウインドウサイズを探索してもよい。この場合、ステップS109では、ステップS104で特定した情報が、表示部130に出力される。
一方、判定部150dは、送信トラフィック量または受信トラフィック量が平常時よりも大きい場合には(ステップS103,Yes)、アプリ特性データ140gを参照し(ステップS105)、ネットワークの品質劣化が、アプリ特性に依存するか否かを判定する(ステップS106)。
ステップS106において、判定部150dは、アプリ特性データ140gのネットワーク遅延、送信ロス率、受信ロス率のいずれかが、ネットワーク品質診断テーブル140eの該当閾値よりも大きい場合に、ネットワークの品質劣化が、アプリ特性に依存すると判定する。判定部150dは、アプリ特性データ140gのネットワーク遅延、送信ロス率、受信ロス率のいずれも、ネットワーク品質診断テーブル140eの該当閾値以下の場合に、ネットワークの品質劣化が、アプリ特性に依存しないと判定する。
判定部150dは、ネットワークの品質劣化が、アプリ特性に依存しない場合には(ステップS106,No)、ネットワークの品質劣化の原因が、トラフィック依存であると判定し(ステップS107)、ステップS109に移行する。判定部150dは、ステップS107において、トラフィック量が所定値よりも大きいサブネット等を、ネットワーク集計データ140bを基に特定し、回線速度や負荷分散の最適化を行っても良い。また、この場合、ステップS109では、ステップS107で特定した情報が、表示部130に出力される。
これに対して、判定部150dは、アプリ特性に依存すると判定した場合には(ステップS106,Yes)、品質劣化の原因がアプリ依存であると判定し(ステップS108)、判定結果を出力する(ステップS109)。判定部150dは、ステップS108において、ネットワーク集計データ140bを基にして、トラフィック量が所定値より大きいアプリを特定しても良い。また、この場合、ステップ109では、ステップS108で特定した情報が、表示部130に出力される。
図10のステップS101の説明に戻る。判定部150dは、ネットワーク集計データ140bのネットワーク遅延が、ネットワーク品質診断テーブル140eのネットワーク遅延の閾値以下の場合には(ステップS101,No)、送信ロス率または受信ロス率が閾値よりも大きいか否かを判定する(ステップS110)。
ステップS110において、判定部150dは、ネットワーク集計データ140bの送信ロス率が、ネットワーク品質診断テーブル140eのロス率の閾値よりも大きい場合に、送信ロス率が閾値よりも大きいと判定する。ネットワーク集計データ140bの受信ロス率が、ネットワーク品質診断テーブル140eのロス率の閾値よりも大きい場合に、受信ロス率が閾値よりも大きいと判定する。
判定部150dは、送信ロス率または受信ロス率が閾値よりも大きい場合には(ステップS110,Yes)、ステップS102に移行する。
一方、判定部150dは、送信ロス率および受信ロス率が閾値以下の場合には(ステップS110,No)、送信スループットまたは受信スループットが、平常時以下であるか否かを判定する(ステップS111)。
ステップS111において、判定部150dは、スループットデータ140aの送信スループットが、ネットワーク品質診断テーブル140eの送信スループット以下の場合に、送信スループットが平常時以下であると判定する。判定部150dは、スループットデータ140aの受信スループットが、ネットワーク品質診断テーブル140eの受信スループット以下の場合に、受信スループットが平常時以下であると判定する。
判定部150dは、送信スループットまたは受信スループットが、平常時以下の場合には(ステップS111,Yes)、ステップS102に移行する。
一方、判定部150dは、送信スループットおよび受信スループットが、平常時よりも大きい場合には(ステップS111,No)、サーバ処理時間が閾値よりも大きいか否かを判定する(ステップS112)。
ステップS112において、判定部150dは、ネットワーク集計データ140bのサーバ処理時間が、ネットワーク品質診断テーブル140eのサーバ処理時間の閾値よりも大きい場合に、サーバ処理時間が閾値よりも大きいと判定する。判定部150dは、ネットワーク集計データ140bのサーバ処理時間が、ネットワーク品質診断テーブル140eのサーバ処理時間の閾値以下の場合には、サーバ処理時間が閾値以下であると判定する。
判定部150dは、サーバ処理時間が閾値以下である場合には(ステップS112,No)、処理を終了する。このように、サーバ処理時間が閾値以下の場合には、ネットワークの品質劣化の原因が見当たらないことを示す。
一方、判定部150dは、サーバ処理時間が閾値よりも大きい場合には(ステップS112,yes)、データセンター60側の劣化箇所を判定する(ステップS113)。
ステップS113に示した、データセンター60側の劣化箇所を特定する処理の一例について説明する。判定部150dは、データセンター60側の劣化箇所を特定することで、劣化箇所がWebサーバ70なのか、APサーバ80なのか、DBサーバ90なのかを判定する。判定部150dは、アプリ集計データ140cの処理時間と、アプリ品質診断テーブル140fの処理時間の閾値とを比較して、劣化箇所を判定する。
例えば、判定部150dは、アプリ集計データ140cのサービス名「WEB」となるレコードの処理時間が、アプリ品質診断テーブル140fの1行目のレコードに含まれる処理時間の閾値よりも大きい場合に、Webサーバ70が劣化箇所であると判定する。
例えば、アプリ集計データ140cの1行目において、レコードの処理時間が「250」であり、アプリ品質診断テーブル140fの1段目のレコードの処理時間の閾値「200」よりも大きい。この場合には、判定部150dは、宛先IPアドレス「S1」のWebサーバ70が、劣化箇所であると判定する。
判定部150dは、アプリ集計データ140cのサービス名「AP」となるレコードの処理時間が、アプリ品質診断テーブル140fの2行目のレコードの処理時間の閾値「200」よりも大きい場合に、APサーバ80が劣化箇所であると判定する。
例えば、アプリ集計データ140cの2行目において、レコードの処理時間が「110」であり、アプリ品質診断テーブル140fの4段目のレコードの処理時間の閾値「200」以下である。この場合には、判定部150dは、宛先IPアドレス「AP1」のAPサーバ80が、劣化箇所ではないと判定する。
判定部150dは、アプリ集計データ140cのサービス名「DB」となるレコードの処理時間が、アプリ品質診断テーブル140fの3行目のレコードの処理時間の閾値「200」よりも大きい場合に、DBサーバ90が劣化箇所であると判定する。
例えば、アプリ集計データ140cの5行目において、レコードの処理時間が「80」であり、アプリ品質診断テーブル140fの4段目のレコードの処理時間の閾値「200」以下である。この場合には、判定部150dは、宛先IPアドレス「DB1」のDBサーバ90が、劣化箇所ではないと判定する。
判定部150dが、上記の処理を実行することで、劣化箇所が特定される。例えば、上記の例では、Webサーバ70が劣化箇所として特定される場合を示したが、Webサーバ70、APサーバ80、DBサーバ90のうち、複数のサーバが、劣化箇所として特定される場合もあり得る。
判定部150dは、データセンター60側の劣化箇所を特定した後に、特定した劣化箇所について、図11のステップS115〜S117の処理をそれぞれ実行する。ここでは説明の便宜上、劣化箇所をWebサーバ70として、ステップS114〜S116の処理を実行する場合について説明する。
図11において、判定部150dは、リクエスト数が閾値よりも大きいか否かを判定する(ステップS114)。ステップS115において、判定部150dは、アプリ集計データ140cのリクエスト数が、アプリ品質診断テーブル140fのリクエストの閾値よりも大きい場合に、リクエスト数が閾値よりも大きいと判定する。判定部150dは、アプリ集計データ140cのリクエスト数が、アプリ品質診断テーブル140fのリクエストの閾値以下の場合に、リクエスト数が閾値以下であると判定する。
判定部150dは、リクエスト数が閾値以下である場合には(ステップS114,No)、劣化箇所の原因はリクエスト数に依存しないと判定し(ステップS115)、ステップS109に移行する。ステップS115において、判定部150dは、アプリ集計データ140cを基にして、オブジェクトの特定を行っても良い。
一方、判定部150dは、リクエスト数が閾値よりも大きい場合には(ステップS114,Yes)、劣化箇所の原因はリクエスト数に依存すると判定し(ステップS116)、ステップS109に移行する。ステップS116において、アプリ集計データ140cを基にして、リクエストの発生箇所となるホスト、サブネット、サイトを判定しても良い。また、判定部150dは、特定のWebサーバ70にリクエストが集中している場合には、負荷分散を行っても良い。
判定部150dが、図10,11に示した処理を実行することで、ネットワークの品質劣化の原因を特定することが可能となる。図12は、判定結果の一例を示す図である。図12の判定結果は、図11のステップS108で生成され、S109で表示部130に表示される画面の一例である。
図2の説明に戻る。可視化データ表示部150eは、記憶部140に記憶された各データ140a〜140gを基にして、ネットワーク品質に関連する特徴を可視化し、表示部130に出力する処理部である。
図13は、可視化データ表示部が出力する可視化データの一例を示す図である。図13に示す可視化データ30aは、リクエスト頻度やレスポンス時間を時系列で表したものである。可視化データ30bは、サーバ処理時間の内訳を時系列で表したものである。サーバ処理時間の内訳は、Webサーバの処理時間、APサーバの処理時間、DBサーバの処理時間である。可視化データ30cは、レスポンス時間を時系列で表した散布図である。可視化データ30dは、オブオブジェクトの内訳を示すものである。可視化データ30eは、サーバの並列処理数を時系列で表したデータである。可視化データ30fは、ネットワーク遅延を時系列で表したデータである。
次に、本実施例にかかる判定装置100の効果について説明する。判定装置100は、ネットワーク50を介して複数のホストと複数のサーバとの間で送受信されるパケットを分析してネットワーク品質に関連する各種の特徴を特定する。そして、判定装置100は、ネットワーク品質に関連する各種の特徴を基にして、ネットワークの品質劣化の原因を判定する。このため、判定装置100によれば、多種多様な大量のデータから、ネットワークの品質劣化の原因を判定することができる。また、従来では、保守作業員が、図13に示したデータを目視して、保守作業員の経験等を頼りに品質劣化の原因を判断していたが、本実施例の判定装置100によれば、係る手間が省け、保守作業員の負担を削減することができる。
また、判定装置100によれば、ネットワーク遅延およびロス率と、複数のホストから構成されるサブネットおよび自判定装置100間のスループットの計測結果とを基にして、ホスト側に品質劣化の原因があるのか、サーバ側に品質劣化の原因があるのかを判定するので、ネットワークの品質劣化の原因を切り分けることができる。
また、判定装置100によれば、ホスト側に品質劣化の原因があると判定した場合に、トラフィック量がトラフィック量の閾値よりも大きいか否かを判定し、トラフィック量がトラフィック量の閾値以下の場合に、ネットワーク遅延またはロス率の大きいホストを、品質劣化の原因として判定する。このため、トラフィック依存しない場合の、ネットワーク品質劣化の原因を判定することができる。
また、判定装置100によれば、ホスト側に品質劣化の原因があると判定した場合に、トラフィック量がトラフィック量の閾値よりも大きいか否かを判定し、トラフィック量がトラフィック量の閾値よりも大きい場合に、アプリの種別に対応付けられたネットワーク遅延またはロス率が、ネットワーク遅延の閾値または所定のロス率の閾値よりも大きいか否かを判定し、アプリの種別に対応付けられたネットワーク遅延またはロス率が、ネットワーク遅延の閾値または所定のロス率の閾値よりも大きい場合に、品質劣化がアプリに依存するものであると判定し、アプリの種別に対応付けられたネットワーク遅延またはロス率が、ネットワーク遅延の閾値またはロス率の閾値以下の場合に、品質劣化がトラフィックに依存するものであると判定する。このため、ネットワーク品質劣化の原因が、アプリ依存であるか、トラフィック依存であるかを正確に判定することができる。
また、判定装置100によれば、サーバ側に品質劣化の原因があると判定し、かつ、サーバ処理時間が処理時間の閾値より大きい場合に、サーバに対するリクエスト数が所定のリクエスト数よりも大きいか否かを判定し、リクエスト数がリクエスト数の閾値よりも大きい場合に、品質劣化がトラフィックに依存すると判定する。このため、データセンター60側の劣化箇所を特定しつつ、トラフィック依存であることを正確に判定することができる。
また、判定装置100によれば、サーバ側に品質劣化の原因があると判定し、かつ、サーバ処理時間が処理時間の閾値より大きい場合に、サーバに対するリクエスト数がリクエスト数の閾値よりも大きいか否かを判定し、リクエスト数がリクエスト数の閾値以下の場合に、品質劣化がリクエスト数に依存しないと判定する。このため、データセンター60側の劣化箇所を特定しつつ、トラフィック依存でないことを正確に判定することができる。
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
さらに、各装置にて行われる各処理機能は、その全部または任意の一部がCPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。