(57)【要約】【課題】データの内容及び運用に応じた取得方式を決定する。【解決手段】キャプチャサーバ２０は、データの取得要求があった場合に、複数のデータ取得方式でのデータの取得を、データの取得の運用を開始してから所定回数実行する。データ取得方式の各々の平均取得時間を算出して、平均取得時間に基づいて、データ取得方式を決定する。データの取得方式が決定された場合には、決定されたデータの取得方式でデータの取得を実行する。決定されたデータ取得方式以外のデータ取得方式で定期的にデータを取得して、平均取得時間を更新し、平均取得時間に基づいてデータ取得方式を決定する。【選択図】図７
2019016042.tif 000002
【特許請求の範囲】
【請求項１】
受信したデータを一定サイズで区切った単位をオブジェクトとし、前記オブジェクトは複数のセッションを含むものとして記憶し、
前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データの取得方式が決定された場合には、前記決定された前記データの取得方式で前記データの取得を実行し、
前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定することを特徴とするデータ取得プログラム。
【請求項２】
前記受信した前記データの内容又は前記取得された前記データの内容が変化した場合に、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる請求項１に記載のデータ取得プログラム。
【請求項３】
前記決定された前記データ取得方式を記憶し、
前記データ取得方式の決定において前記データ取得方式が切り替わる回数をカウントし、前記回数が予め定めた回数以上となる場合には、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる請求項１又は請求項２に記載のデータ取得プログラム。
【請求項４】
前記複数のデータ取得方式の各々の前記データの取得時間に関する値を比較し、前記決定された前記データ取得方式の前記取得時間に関する値と、前記決定された前記データ取得方式以外の前記データ取得方式の前記取得時間に関する値との差が予め定めた閾値以上である場合には、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得する頻度を下げる請求項１〜請求項３のいずれか１項に記載のデータ取得プログラム。
【請求項５】
前記取得時間に関する値は、平均取得時間、又は平均取得速度とする請求項１〜請求項４のいずれか１項に記載のデータ取得プログラム。
【請求項６】
複数のユーザがデータの取得要求をする場合において、
前記ユーザごとに、前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データの取得方式が決定された場合には、前記ユーザごとに、前記決定された前記データの取得方式で前記データの取得を実行し、
前記ユーザごとに、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定する請求項１〜請求項５のいずれか１項に記載のデータ取得プログラム。
【請求項７】
受信したデータを一定サイズで区切った単位をオブジェクトとし、前記オブジェクトは複数のセッションを含むものとして記憶するメモリと、
前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定するデータ取得方式判断部と、
前記データの取得方式が決定された場合には、前記決定された前記データの取得方式で前記データの取得を実行するするデータ取得部と、を含み、
前記データ取得部により、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得し、前記データ取得方式判断部により、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定するデータ取得装置。
【請求項８】
受信したデータを一定サイズで区切った単位をオブジェクトとし、前記オブジェクトは複数のセッションを含むものとして記憶し、
前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データの取得方式が決定された場合には、前記決定された前記データの取得方式で前記データの取得を実行し、
前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定することを含む処理をコンピュータが実行することを特徴とするデータ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ取得プログラム、装置、及び方法に関する。
【背景技術】
【０００２】
従来より、クライアントと、クライアントがアクセスする観測対象システムとの間でやり取りされるデータをキャプチャして記憶装置に記憶しておき、障害調査やデータ解析の際に、必要に応じてデータを記憶装置から取得するパケットキャプチャシステムがある。
【０００３】
データを取得する技術の一例として、冗長性のあるストレージで、記憶媒体単体へのデータ格納を工夫しておき、アクセス時間が短縮するように記憶媒体単体でのアクセスコマンドの実行順序スケジューリングを行う技術がある。
【０００４】
また、データ取得装置が各端末装置から定期的にデータを取得するためのデータ取得周期を人手の判断を経ずに自動で設定する技術がある。
【０００５】
また、データ・アクセス動作をスケジューリングするため、待機状態にあるデータ・アクセス動作のための見積シーク時間を得る技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１６９４７５号公報
【特許文献２】国際公開２０１４／０５００４０号公報
【特許文献３】特開２００４−１５２４６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
パケットキャプチャシステムにおいて、記憶装置に記憶されたデータの取得方式が複数存在する場合、複数のデータ取得方式をそれぞれ試して効率のよい方式を選ぶことが考えられる。しかし、この場合、データの内容や、データ取得の運用が変化する都度、全てのデータ取得方式を試す必要があり、データ取得方式を決定する処理の負荷が大きくなるという問題がある。
【０００８】
本発明は、一つの側面として、データの内容及び運用の変化に応じたデータの取得方式を簡易に決定することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様として、セッションの単位でデータを取得する第１方式、及びオブジェクトの単位でデータを取得する第２方式を含む複数のデータ取得方式をもつ。データの取得要求があった場合に、複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定する。前記データの取得方式が決定された場合には、前記決定された前記データの取得方式で前記データの取得を実行する。前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定する。
【発明の効果】
【００１０】
一つの側面として、データの内容及び運用の変化に応じたデータの取得方式を簡易に決定することができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】パケットキャプチャシステムの一例を示す図である。
【図２】パケットキャプチャシステムにおいてストレージサーバを用いる場合の一例を示す図である。
【図３】記憶装置のディスクに格納されるデータの構造の一例を示す図である。
【図４】キャプチャサーバのメモリに格納されるセッションに関するデータ構造の一例を示す図である。
【図５】キャプチャサーバのメモリに格納されるオブジェクトに関するデータ構造の一例を示す図である。
【図６】本発明の実施形態に係るパケットキャプチャシステムの概略構成を示すブロック図である。
【図７】キャプチャサーバの機能ブロック図である。
【図８】取得時間記憶部に格納されるデータ構造の一例を示す図である。
【図９】キャプチャサーバとして機能するコンピュータの概略構成を示すブロック図である。
【図１０】データ取得処理の一例を示すフローチャートである。
【図１１】データ取得方式決定処理の一例を示すフローチャートである。
【図１２】取得時間記憶部に格納されるデータ構造をユーザごとにする場合の一例を示す図である。
【発明を実施するための形態】
【００１２】
本実施形態の詳細を説明する前に、パケットキャプチャシステムについて説明する。
【００１３】
パケットキャプチャシステムは、図１に示すように、クライアントと、クライアントがアクセスする観測対象システムとの間を流れるデータを、ネットワークスイッチを介してポートミラーし、キャプチャサーバによって、記憶装置に格納する。また、ネットワーク流量が多い場合には、図２に示すように、キャプチャサーバからネットワークスイッチを経由して複数のストレージサーバを接続してもよい。ストレージサーバを設ける場合には、ストレージサーバにデータを一時的にキャッシュすると共に、ストレージサーバを介して記憶装置にデータを格納する。これにより、ストレージサーバにキャッシュされたデータは高速に取得することができる。
【００１４】
図１、及び図２に示すようなパケットキャプチャシステムでは、キャプチャサーバ上のメモリにデータ構造を持ち、データ構造を参照して、記憶装置のディスクからデータを取得する。
【００１５】
パケットキャプチャシステムにおいて、記憶装置のディスクに格納されるデータの構造を図３に示す。キャプチャしたデータは、データを一定のサイズに区切ったオブジェクトという単位で管理される。オブジェクトは、パケットの単位をセッションとして、複数のセッションを一定のサイズに区切ったもので構成されており、セッションの単位でパケット群が格納されている。
【００１６】
次に、キャプチャサーバのメモリに格納されるセッションに関するデータ構造を図４に示す。キャプチャサーバは、図４に示すように、セッションに関するデータ構造として、オブジェクトに格納されたセッションに関する情報、及びオブジェクト内の実体のデータの参照先の情報を記憶している。セッションに関する情報とは、時刻（パケットの送出時刻、パケットのキャプチャ時刻等）、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、及び通信タイプの６つである。オブジェクト内の実体のデータの参照先の情報は、オブジェクト名、オフセット（オブジェクト内の当該セッションの参照先）、及びサイズ（バイト）である。
【００１７】
次に、キャプチャサーバのメモリに格納されるオブジェクトに関するデータ構造を図５に示す。キャプチャサーバは、図５に示すように、オブジェクトに関するデータ構造として、オブジェクトに関する情報を記憶している。オブジェクトに関する情報は、オブジェクト名、オフセット（Logical Block Addressing:LBA）、及びサイズ（バイト）である。
【００１８】
パケットキャプチャシステムでは、以上のデータ構造を参照して、データ取得クライアントからの要求に応じて、記憶装置からデータを取得する。
【００１９】
次に、パケットキャプチャシステムにおける、キャプチャサーバ上の動作について説明する。
【００２０】
キャプチャサーバが、記憶装置のディスクに格納されたデータを取得するためのデータ取得方式は複数ある。主なデータ取得方式として、オブジェクトの単位でまとめてデータを取得する第１方式、オブジェクトとセッションを指定してセッションの単位でデータを取得する第２方式の２種類の方式が挙げられる。データ取得クライアントは、取得したいセッションの時刻、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、及び通信タイプのうちの１つ、又は複数の条件を指定して、キャプチャサーバにデータ取得要求を送る。キャプチャサーバは、記憶装置から条件を満たすデータを取得する。第１方式の場合は、いったんオブジェクト単位でデータを取得してから必要なセッションのデータを抽出して、データ取得クライアントに送信する。
【００２１】
また、別のデータ取得方式としてオブジェクトと連続する複数のセッションを指定して連続する複数のセッション単位でデータを取得する第３方式が挙げられる。また、上記第１〜第３方式以外のデータ取得方式も考えられる。
【００２２】
しかし、特定の条件を満たすデータを取得するときに、複数のデータ取得方式のうち、いずれのデータ取得方式でデータを取得すれば効率よくデータを取得できるかは、データの内容や、データ取得の運用状況によって異なる。よって、いずれの方式が良いかを判断することが困難である。例えば、第１方式のように、データをオブジェクト単位でまとめて取得すると、一部のセッションのデータのみが必要な場合には、無駄なディスクアクセス量が増えることが問題となる。また、第２方式のように、データをセッション単位で取得する場合には、取得対象とするセッション数が多いと、ディスクアクセスが断片化し、処理負荷が高くなるという問題がある。
【００２３】
また、パケットキャプチャシステムでは、データの内容の変化や、データ取得の運用の変化に対応して、適切な方式でデータを取得することが望ましい。そこで、例えば、未知のワークロードのデータを取得するときに全てのデータ取得方式を試して適切なデータ取得方式を選択することが考えられる。しかし、この場合、データの内容や、データ取得の運用が変化する都度、全てのデータ取得方式を試すこととなり、手間がかかる。なお、ここでいうワークロードとは、どのような内容のデータが蓄積されていて、そのうちどのような内容のデータを取得するか、という意味である。例えば、Ｗｅｂアクセスの通信とファイル転送の通信とのデータの比率が１：１の割合で蓄積されていて、このうちＷｅｂアクセスの通信を取得する、というのがワークロードの一例である。
【００２４】
また、ワークロードが変化すると、現在採用されているデータ取得方式が最適ではなくなる場合があり、データ取得の効率が悪くなる場合がある。ワークロードの変化とは、Ｗｅｂアクセスの通信とファイル転送の通信とのデータの比率の割合が１：１から３：１に変化した場合や、データの取得において、Ｗｅｂアクセスの通信とファイル転送の通信の両方を取得するように変更した場合をいう。また、例えば、Ｗｅｂアクセスのデータのテキスト、画像、映像等の割合に変化が生じたこともワークロードの変化と捉えられる。
【００２５】
また、データを取得する際の条件は、運用によって変化するため、データを取得する際の条件を変更するたびに、データ取得方式を改めて試して、効率のよい方式を選ぶ必要が出てくる。
【００２６】
そこで、本実施形態では、データの内容及び運用の変化に応じた適切なデータ取得方式を簡易に決定する。
【００２７】
以下、図面を参照して本実施形態の一例を詳細に説明する。
【００２８】
本実施形態では、キャプチャサーバのデータ取得方式に、次の第１方式、及び第２方式を用いる場合を例に説明する。以下では、第１方式、及び第２方式の２つのデータ取得方式によりパケットキャプチャシステムを運用する場合について説明するが、３つ以上のデータ取得方式でも同様に動作する。
【００２９】
図６に示すように、本実施形態に係るパケットキャプチャシステム１００は、クライアント１０と、ネットワークスイッチ１２と、観測対象システム１４と、キャプチャサーバ２０と、記憶装置２２と、データ取得クライアント２４とを備えている。クライアント１０と、観測対象システム１４とは、ネットワークスイッチ１２を介して接続されている。キャプチャサーバ２０は、ネットワークスイッチ１２と、記憶装置２２と、データ取得クライアント２４と接続されている。
【００３０】
クライアント１０は、観測対象システム１４にアクセスする端末である。クライアント１０は、例えば、ノート型ＰＣ、タブレット端末、スマートフォン等で実現することができる。
【００３１】
ネットワークスイッチ１２は、ポートミラー機能により、クライアント１０と観測対象システム１４との間で通信されるデータをミラーリングして、キャプチャサーバ２０に転送する。データは、パケット単位で転送される。各パケットには、パケットが送信元から送出された時刻、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、及び通信タイプを含むセッションの情報が付与されている。
【００３２】
観測対象システム１４は、クライアント１０との間でデータ通信を行うことにより、クライアント１０にＷｅｂサイトなどのサービスを提供するシステムである。
【００３３】
キャプチャサーバ２０は、ポートミラーにより転送されたデータを記憶装置２２にオブジェクトの単位で保存する。また、キャプチャサーバ２０は、データを記憶装置２２に記憶する際に、上記図４に示すセッションに関するデータ構造、及び上記図５に示すオブジェクトに関するデータ構造をメモリに保存する。また、キャプチャサーバ２０は、データ取得クライアント２４から、取得するデータに関する条件を含むデータ取得要求を受け付ける。キャプチャサーバ２０は、データ取得要求に基づいて、記憶装置２２から条件に該当するデータを取得し、必要に応じてデータを抽出してデータ取得クライアント２４に返却する。なお、データを記憶装置２２に記憶する際の処理については、詳細な説明は省略する。
【００３４】
データ取得クライアント２４は、キャプチャサーバ２０にデータ取得要求を送信する。データ取得要求は、例えば、時刻の範囲、送信元アドレス、及び宛先ポートなどに関する条件が、取得するデータに関する条件として指定された要求である。
【００３５】
キャプチャサーバ２０は、図７に示すように、機能的には、データ取得要求受付部３１と、データ取得方式判断部３２と、取得時間記憶部３３と、取得方式記憶部３４と、データ取得部３５とを含む。
【００３６】
データ取得要求受付部３１は、データ取得クライアント２４からデータ取得要求を受け取ると、データ取得方式判断部３２にデータ取得方式を問い合わせてデータ取得方式を決定する。データ取得要求受付部３１は、決定したデータ取得方式及びデータ取得要求を、データ取得部３５に出力し、データ取得部３５により取得したデータを取得する。そして、データ取得要求受付部３１は、データ取得部３５から取得したデータから、データ取得要求の条件に応じたデータを抽出し、抽出したデータをデータ取得クライアント２４へ返却する。また、データ取得要求受付部３１は、データ取得方式判断部３２にデータの取得時間の記憶を指示する。ここでいうデータ取得時間は、データ取得要求の条件に応じた全てのデータをデータ取得部３５が受信するまでの時間である。例えば、第２方式のセッションの単位での取得であれば、データ取得要求の条件に応じた全てのセッションのデータを受信するまでの時間である。
【００３７】
データ取得方式判断部３２は、データ取得要求受付部３１からデータ取得方式の問い合わせ要求を受け取ると、データ取得の運用を開始してから、データの取得を所定回数実行したかを判定する。データ取得方式判断部３２は、データの取得を所定回数実行していなければ、所定回数中で第１方式と第２方式とが同じ頻度で実行されるように、今回実行するデータ取得方式を決定する。例えば、データ取得方式判断部３２は、０〜１の乱数を生成して、０．５未満であれば、データ取得方式を第１方式と決定し、０．５以上であればデータ取得方式を第２方式と決定して、データ取得要求受付部３１に返却する。
【００３８】
また、データ取得方式判断部３２は、データの取得を所定回数実行していれば、取得方式記憶部３４に記憶されているデータ取得方式が実行される頻度が、その他のデータ取得方式が実行される頻度よりも高くなるように、今回実行するデータ取得方式を決定する。例えば、データ取得方式判断部３２は、０〜１の乱数の値を生成して、一定の値（例えば０．９９）以上でなければ、取得方式記憶部３４から現在決定されているデータ取得方式を取得して、データ取得要求受付部３１に返却する。生成した乱数の値が一定の値以上であれば、取得方式記憶部３４から現在決定されているデータ取得方式を取得して、現在決定されているデータ取得方式ではないデータ取得方式を、データ取得要求受付部３１に返却する。このように、現在決定されているデータ取得方式ではないデータ取得方式でのデータ取得も定期的に実行する。
【００３９】
また、データ取得方式判断部３２は、データ取得要求受付部３１からデータの取得時間を記憶する指示を受け付ける。データ取得方式判断部３２は指示を受け付けると、データ取得を行ったデータ取得方式と共にデータ取得部３５から出力されたデータの取得時間、及びデータを取得した時刻を取得時間記憶部３３に記憶し、取得時間記憶部３３のデータ構造を更新する。
【００４０】
また、データ取得方式判断部３２は、所定のタイミングで、取得時間記憶部３３から、データ取得方式の各々のデータの取得時間を取得し、データ取得方式の各々について、平均取得時間を算出し、現在のデータ取得方式を決定する。ここでは、平均取得時間が最も短いデータ取得方式を現在のデータ取得方式と決定する。なお、データ取得方式の平均取得時間は、直近のデータ取得（例えば１００回分）の取得時間から算出する。また、特定の時刻（例えば１ヶ月前）から現在までの取得時間から平均取得時間を算出するようにしてもよい。
【００４１】
取得時間記憶部３３には、図８に示すように、データを取得したデータ取得方式に対するデータの取得時間、及びデータを取得した時刻がデータ構造として格納されている。例えば、１行目のレコードには、取得方式が第１方式、データの取得時間が２秒、データを取得した時刻が2016-12-27 14:30:00と記憶されている。
【００４２】
取得方式記憶部３４には、データ取得方式判断部３２によって決定された現在のデータ取得方式が格納されている。本実施形態では、第１方式、又は第２方式いずれかである。
【００４３】
データ取得部３５は、データ取得要求受付部３１から受け付けたデータ取得方式により、記憶装置２２から、データ取得要求に含まれる条件に該当するデータを取得する。具体的には、メモリに格納された上記図４に示すセッションに関するデータ構造、及び上記図５に示すオブジェクトに関するデータ構造を参照し、データ取得要求に含まれる条件に該当するデータを特定する。データ取得方式が、第１方式である場合には、記憶装置２２から、オブジェクト単位で、データ取得要求に含まれる条件に該当するデータを取得する。データ取得方式が、第２方式である場合には、記憶装置２２から、セッション単位で、データ取得要求に含まれる条件に該当するデータを取得する。データ取得部３５は、データ取得要求に含まれる条件に該当するデータを記憶装置２２から取得するのにかかった時間を、データの取得時間として計測し、データ取得要求受付部３１へ出力する。
【００４４】
キャプチャサーバ２０は、例えば図９に示すコンピュータ４０で実現することができる。コンピュータ４０は、Central Processing Unit（ＣＰＵ）４１と、一時記憶領域としてのメモリ４２と、不揮発性の記憶部４３とを備える。また、コンピュータ４０は、入出力装置４４と、記憶媒体４９に対するデータの読み込み及び書き込みを制御するRead/Write（Ｒ／Ｗ）部４５と、インターネット等のネットワークに接続される通信インターフェース（Ｉ／Ｆ）４６とを備える。ＣＰＵ４１、メモリ４２、記憶部４３、入出力装置４４、Ｒ／Ｗ部４５、及び通信Ｉ／Ｆ４６は、バス４７を介して互いに接続される。
【００４５】
記憶部４３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部４３には、コンピュータ４０をキャプチャサーバ２０として機能させるためのデータ取得処理プログラム５０が記憶される。データ取得処理プログラム５０は、受付プロセス５２と、取得判断プロセス５４と、取得プロセス５６とを有する。また、記憶部４３は、取得時間記憶部３３、及び取得方式記憶部３４に記憶される情報が保持される情報記憶領域５９を有する。
【００４６】
ＣＰＵ４１は、データ取得処理プログラム５０を記憶部４３から読み出してメモリ４２に展開し、データ取得処理プログラム５０が有するプロセスを順次実行する。ＣＰＵ４１は、受付プロセス５２を実行することで、図７に示すデータ取得要求受付部３１として動作する。また、ＣＰＵ４１は、取得判断プロセス５４を実行することで、図７に示すデータ取得方式判断部３２として動作する。また、ＣＰＵ４１は、取得プロセス５６を実行することで、図７に示すデータ取得部３５として動作する。また、ＣＰＵ４１は、情報記憶領域５９から情報を読み出して、取得時間記憶部３３、及び取得方式記憶部３４の内容をメモリ４２に展開する。これにより、データ取得処理プログラム５０を実行したコンピュータ４０が、キャプチャサーバ２０として機能することになる。なお、プログラムを実行するＣＰＵ４１はハードウェアである。
【００４７】
なお、データ取得処理プログラム５０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００４８】
次に、本実施形態に係るパケットキャプチャシステム１００の作用について説明する。まず、図１０のフローチャートを参照して、データ取得処理について説明する。データ取得要求受付部３１が、データ取得クライアント２４からデータ取得要求を受け付けると、キャプチャサーバ２０は、データ取得処理を開始する。
【００４９】
ステップＳ１００で、データ取得方式判断部３２が、データ取得の運用を開始してから、データの取得を所定回数実行したかを判定する。判定の結果、所定回数実行していなければ、ステップＳ１０２に移行し、所定回数実行していれば、ステップＳ１１０に移行する。
【００５０】
ステップＳ１０２で、データ取得方式判断部３２が、０〜１の乱数を生成する。
【００５１】
ステップＳ１０４で、データ取得方式判断部３２が、ステップＳ１０２で生成した乱数が、０．５以上か否かを判定する。乱数が０．５以上であれば、ステップＳ１０６で、データ取得方式判断部３２が、データ取得方式として第１方式を決定してデータ取得要求受付部３１に返却する。乱数が０．５以上でなければ、ステップＳ１０８で、データ取得方式として第２方式を決定して、データ取得要求受付部３１に返却する。
【００５２】
ステップＳ１１０で、データ取得方式判断部３２が、０〜１の乱数を生成する。
【００５３】
ステップＳ１１２で、データ取得方式判断部３２が、ステップＳ１１０で生成した乱数が、０．９９以上か否かを判定する。乱数が一定の値、ここでは０．９９以上でなければ、ステップＳ１１４へ移行する。乱数が０．９９以上であれば、ステップＳ１２０へ移行する。
【００５４】
ステップＳ１１４で、データ取得方式判断部３２が、現在のデータ取得方式が決定されているか否かを判定し、決定されている場合には、ステップＳ１１８へ移行し、決定されていない場合には、ステップＳ１１６へ移行する。
【００５５】
ステップＳ１１６で、データ取得方式判断部３２が、取得時間記憶部３３から、データ取得方式の各々のデータの取得時間を取得し、データ取得方式の各々について、平均取得時間を算出する。そして、算出した平均取得時間に基づいて、現在のデータ取得方式を決定し、取得方式記憶部３４に記憶し、ステップＳ１１８へ移行する。
【００５６】
ステップＳ１１８で、データ取得方式判断部３２が、取得方式記憶部３４から現在決定されているデータ取得方式を取得して、データ取得要求受付部３１に返却する。
【００５７】
ステップＳ１２０で、データ取得方式判断部３２が、取得方式記憶部３４から現在決定されているデータ取得方式を取得して、現在決定されているデータ取得方式ではないデータ取得方式を、データ取得要求受付部３１に返却する。
【００５８】
ステップＳ１２２で、データ取得要求受付部３１は、決定したデータ取得方式及びデータ取得要求を、データ取得部３５に出力する。データ取得部３５により取得した、データ取得要求に含まれる条件に該当するデータを取得し、データ取得クライアント２４に返却する。また、データ取得要求受付部３１は、データ取得部３５から出力されたデータの取得時間を取得し、データ取得方式判断部３２にデータの取得時間の記憶を指示する。
【００５９】
ステップＳ１２４で、データ取得方式判断部３２が、データ取得を行ったデータ取得方式と共にデータの取得時間、及びデータを取得した時刻を取得時間記憶部３３に記憶し、取得時間記憶部３３のデータ構造を更新する。
【００６０】
ステップＳ１２６では、データ取得方式判断部３２が、ステップＳ１２２でデータ取得を行ったデータ取得方式が、現在決定されているデータ取得方式ではないデータ取得方式であったか否かを判定する。現在決定されているデータ取得方式であった場合には、処理を終了する。現在決定されているデータ取得方式ではないデータ取得方式であった場合には、ステップＳ１２８で、更新された取得時間記憶部３３のデータ構造を用いて、平均取得時間を算出し、現在のデータ取得方式を決定して処理を終了する。これは、取得時間記憶部３３における、現在決定されているデータ取得方式ではないデータ取得方式についての取得時間が更新されたため、平均取得時間を再計算した場合に、データ取得方式が変更される可能性があるためである。なお、データ取得の運用が開始されてから、データの取得が所定回数実行されていない場合には、ステップＳ１２６の処理は省略することができる。
【００６１】
次に、上記ステップＳ１１６及びＳ１２８においてデータ取得方式判断部３２が実行する処理の詳細を説明する。
【００６２】
図１０に示すように、まず、ステップＳ２００で、取得時間記憶部３３から、第１方式のデータの取得時間を取得し、第１方式の平均取得時間を算出する。
【００６３】
ステップＳ２０２で、取得時間記憶部３３から、第２方式のデータの取得時間を取得し、第２方式の平均取得時間を算出する。
【００６４】
ステップＳ２０４で、ステップＳ２００で算出した第１方式の平均取得時間と、ステップＳ２０４で算出した第２方式の平均取得時間とを比較し、平均取得時間が短い方式を、現在のデータ取得方式として、取得方式記憶部３４に記憶する。
【００６５】
以上説明したように、本実施形態に係るパケットキャプチャシステム１００によれば、セッションの単位でデータを取得する第１方式、及びオブジェクトの単位でデータを取得する第２方式を含む複数のデータ取得方式をもつ。データの取得要求があった場合に、複数のデータ取得方式でのデータの取得を、データの取得の運用を開始してから所定回数実行する。データ取得方式の各々の平均取得時間を算出して、平均取得時間に基づいて、データ取得方式を決定する。決定されたデータ取得方式以外のデータ取得方式で定期的にデータを取得して、平均取得時間を更新し、平均取得時間に基づいてデータ取得方式を決定する。このため、データの内容及び運用に応じた取得方式を決定することができる。
【００６６】
また、データの取得の運用開始時において、ワークロードが未知の状況に対して、データを取得するときに複数のデータ取得方式を試す必要がなくなる。また、ワークロードが変化したときにも、データ取得の効率が悪くならないという利点がある。
【００６７】
また、上述した実施形態では、複数のデータ取得方式を第１方式、及び第２取得方式としたが、これに限定されるものではない。例えば、他の方式として、オブジェクト内の連続する複数のセッションを指定して、連続する複数のセッション単位でデータを取得する方式、などの方式を加えて、３以上のデータ取得方式の中からデータ取得方式を決定するようにしてもよい。例えば、第１〜第３方式の中からデータ取得方式を決定するとする。この場合には、上記ステップＳ１０４では、０〜０．３３までを第１方式、０．３３〜０．６６までを第２方式、０．６７〜１までを第３方式と判定するなど、各方式が均等に選択されるようにする。また、上記ステップＳ１２０では、例えば、乱数を生成し、０．５以上であれば第２方式、０．５未満であれば第３方式を選択して、返却するようにすればよい。
【００６８】
また、上述した実施形態では、生成した乱数の値が一定の値、０．９９以上の場合に現在決定されているデータ取得方式以外のデータ取得方式によるデータの取得を行っていたが、これに限定されるものではない。例えば、別の実施態様として、一定の値を動的に変更することも考えられる。これは、ワークロードの変化に柔軟に対応するためである。例えば、１つの態様として、ワークロードの急激な変化を検出すると、一定の値を０．５に変更し、０．５以上であれば、現在決定されているデータ取得方式以外のデータ取得方式によるデータの取得を行うようにする。ワークロードの急激な変化とは、例えば、取得したデータの平均取得容量が１／２以下になった場合、又は２倍以上になった場合、などである。この場合には、例えば、取得時間記憶部３３のデータ構造に、データの取得容量の項目を加えて記憶しておき、平均取得容量を算出すればよい。また、データの取得要求に含まれる条件が変更された場合もワークロードの変化に当たる。この場合には、例えば、取得時間記憶部３３のデータ構造に、取得するデータの条件を加えて記憶して、出現頻度の高い条件を求めておき、出現頻度の高い条件の変化を検出すればよい。出現頻度の高い条件とは、例えば、直近１００回の取得のうち３０回出現したなどとすればよい。また、出現頻度の高い条件の変化とは、例えば、出現頻度の高い条件に、宛先ポート80が新たに現れるなどの変化である。
【００６９】
また、ワークロードが頻繁に変化する場合に、変化にすぐに追随するため、過去に決定されたデータ取得方式を一定回数（例えば１００回分）記憶しておき、データ取得方式が切り替わる回数をカウントして、切り替えが多い場合（例えば２０回以上）には、一定の値を変更し、現在のデータ取得方式以外のデータ取得方式によってデータ取得を行う頻度を増やすこともできる。
【００７０】
また、決定された現在のデータ取得方式による平均取得時間と、決定された現在のデータ取得方式以外のデータ取得方式による平均取得時間との差が予め定めた閾値以上である場合には、現在の取得方式でない取得方式を出力する頻度を減らすものが考えられる。これにより、平均取得時間の差が圧倒的に大きい場合（現在決定している方式による平均取得時間が速い場合）には、これにより、別の方式を試す回数が減ってデータ取得の効率が向上する。
【００７１】
また、乱数を発生させていずれのデータ取得方式を選択するかを判定するようにして複数のデータ取得方式を所定回数実行する場合を例に説明したが、これに限定されるものではない。例えば、所定のタイミングを予め定めておいてもよい。一例として、上記ステップＳ１０４であれば、１回ずつデータ取得方式の各々を実行するように定めておけばよい。また、上記ステップＳ１１２であれば、１００回に１回、決定されているデータ取得方式以外のデータ取得方式を選択するように定めておけばよい。
【００７２】
また、上述した実施形態では、平均取得時間に基づいてデータ取得方式を決定していたが、これに限定されるものではない。例えば、平均取得時間と、取得したデータの平均取得容量とに基づいて、平均取得速度を算出して、平均取得速度が短いデータ取得方式でデータを取得するように決定してもよい。この場合には、取得時間記憶部３３のデータ構造に、データの取得容量の項目を加えて記憶しておき、データ取得方式ごとに平均取得容量を算出して、平均取得容量に平均取得時間を除して平均取得速度を算出するようにすればよい。
【００７３】
また、データ取得クライアントが複数ある場合には、図１１に示すように、取得時間記憶部３３のデータ構造にユーザの項目を追加し、ユーザごとに、データ取得方式を決定することもできる。この場合には、ユーザからデータの取得要求があった場合に、ユーザごとに、複数のデータ取得方式でのデータの取得を、データの取得の運用を開始してから所定回数実行する。また、ユーザごとに、データ取得方式の各々の平均取得時間を算出して、平均取得時間に基づいて、データ取得方式を決定する。また、データの取得方式が決定された場合には、ユーザごとに、決定されたデータの取得方式でデータの取得を実行する。また、ユーザごとに、決定されたデータ取得方式以外のデータ取得方式で定期的にデータを取得して、平均取得時間を更新し、平均取得時間に基づいてデータ取得方式を決定する。
【００７４】
また、データ取得の際に指定される条件ごとに取得時間を取得時間記憶部３３に記憶し、条件ごとに平均取得時間を算出するようにし、条件ごとに、データ取得方式を決定することもできる。
【００７５】
なお、上記実施形態では、記憶装置からのデータの取得に要する時間を方式ごとに比較する場合について説明したが、これに限定されるものではない。例えば、キャプチャサーバにおいて、取得したデータから所定のデータを抽出してデータ取得クライアントに返却する場合には、データの抽出に要する時間も含め、データの取得要求があってからデータを返却するまでの時間を比較するようにしてもよい。ただし、データの取得要求からデータの返却までに要する時間のうち、記憶装置からのデータ取得に要する時間が大部分を占めるため、上記実施形態のように、記憶装置からのデータ取得に要する時間を比較するだけでも有効である。
【００７６】
以上の実施形態に関し、更に以下の付記を開示する。
【００７７】
（付記１）
受信したデータを一定サイズで区切った単位をオブジェクトとし、前記オブジェクトは複数のセッションを含むものとして記憶し、
前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データの取得方式が決定された場合には、前記決定された前記データの取得方式で前記データの取得を実行し、
前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定することを特徴とするデータ取得プログラム。
【００７８】
（付記２）
前記受信した前記データの内容又は前記取得された前記データの内容が変化した場合に、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる付記１に記載のデータ取得プログラム。
【００７９】
（付記３）
前記決定された前記データ取得方式を記憶し、
前記データ取得方式の決定において前記データ取得方式が切り替わる回数をカウントし、前記回数が予め定めた回数以上となる場合には、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる付記１又は付記２に記載のデータ取得プログラム。
【００８０】
（付記４）
前記複数のデータ取得方式の各々の前記データの取得時間に関する値を比較し、前記決定された前記データ取得方式の前記取得時間に関する値と、前記決定された前記データ取得方式以外の前記データ取得方式の前記取得時間に関する値との差が予め定めた閾値以上である場合には、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得する頻度を下げる付記１〜付記３のいずれかに記載のデータ取得プログラム。
【００８１】
（付記５）
前記取得時間に関する値は、平均取得時間、又は平均取得速度とする付記１〜付記４のいずれかに記載のデータ取得プログラム。
【００８２】
（付記６）
複数のユーザがデータの取得要求をする場合において、
前記ユーザごとに、前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データの取得方式が決定された場合には、前記ユーザごとに、前記決定された前記データの取得方式で前記データの取得を実行し、
前前記ユーザごとに、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定する付記１〜付記５のいずれかに記載のデータ取得プログラム。
【００８３】
（付記７）
受信したデータを一定サイズで区切った単位をオブジェクトとし、前記オブジェクトは複数のセッションを含むものとして記憶するメモリと、
前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定するデータ取得方式判断部と、
前記データの取得方式が決定された場合には、前記決定された前記データの取得方式で前記データの取得を実行するデータ取得部と、を含み、
前記データ取得部により、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得し、前記データ取得方式判断部により、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定するデータ取得装置。
【００８４】
（付記８）
前記受信した前記データの内容又は前記取得された前記データの内容が変化した場合に、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる付記７に記載のデータ取得装置。
【００８５】
（付記９）
前記決定された前記データ取得方式を記憶し、
前記データ取得方式の決定において前記データ取得方式が切り替わる回数をカウントし、前記回数が予め定めた回数以上となる場合には、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる付記７又は付記８に記載のデータ取得装置。
【００８６】
（付記１０）
前記複数のデータ取得方式の各々の前記データの取得時間に関する値を比較し、前記決定された前記データ取得方式の前記取得時間に関する値と、前記決定された前記データ取得方式以外の前記データ取得方式の前記取得時間に関する値との差が予め定めた閾値以上である場合には、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得する頻度を下げる付記７〜付記９のいずれかに記載のデータ取得装置。
【００８７】
（付記１１）
前記取得時間に関する値は、平均取得時間、又は平均取得速度とする付記７〜付記１０のいずれかに記載のデータ取得装置。
【００８８】
（付記１２）
複数のユーザがデータの取得要求をする場合において、
前記データ取得方式判断部は、前記ユーザごとに、前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データ取得部は、前記データの取得方式が決定された場合には、前記ユーザごとに、前記決定された前記データの取得方式で前記データの取得を実行し、
前記データ取得部において、前記ユーザごとに、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記データ取得方式判断部において、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定する付記７〜付記１１のいずれかに記載のデータ取得装置。
【００８９】
（付記１３）
受信したデータを一定サイズで区切った単位をオブジェクトとし、前記オブジェクトは複数のセッションを含むものとして記憶し、
前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データの取得方式が決定された場合には、前記決定された前記データの取得方式で前記データの取得を実行し、
前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定することを特徴とするデータ取得方法。
【００９０】
（付記１４）
前記受信した前記データの内容又は前記取得された前記データの内容が変化した場合に、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる付記１３に記載のデータ取得方法。
【００９１】
（付記１５）
前記決定された前記データ取得方式を記憶し、
前記データ取得方式の決定において前記データ取得方式が切り替わる回数をカウントし、前記回数が予め定めた回数以上となる場合には、前記決定された前記データ取得方式以外の前記データ取得方式を定期的に実行する頻度を上げる付記１３又は付記１４に記載のデータ取得方法。
【００９２】
（付記１６）
前記複数のデータ取得方式の各々の前記データの取得時間に関する値を比較し、前記決定された前記データ取得方式の前記取得時間に関する値と、前記決定された前記データ取得方式以外の前記データ取得方式の前記取得時間に関する値との差が予め定めた閾値以上である場合には、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得する頻度を下げる付記１３〜付記１５のいずれかに記載のデータ取得方法。
【００９３】
（付記１７）
前記取得時間に関する値は、平均取得時間、又は平均取得速度とする付記１３〜付記１６のいずれかに記載のデータ取得プログラム。
【００９４】
（付記１８）
複数のユーザがデータの取得要求をする場合において、
前記ユーザごとに、前記セッションの単位で前記データを取得する第１方式でのデータ取得、及び前記オブジェクトの単位で前記データを取得する第２方式を含む複数のデータ取得方式の各々の取得時間に関する値を算出して、前記取得時間に関する値に基づいて、前記データ取得方式を決定し、
前記データの取得方式が決定された場合には、前記ユーザごとに、前記決定された前記データの取得方式で前記データの取得を実行し、
前記ユーザごとに、前記決定された前記データ取得方式以外の前記データ取得方式で定期的に前記データを取得して、前記取得時間に関する値を更新し、前記取得時間に関する値に基づいて前記データ取得方式を決定する付記１３〜付記１７のいずれかに記載のデータ取得方法。
【符号の説明】
【００９５】
１０   クライアント
１２   ネットワークスイッチ
１４   観測対象システム
１５   ネットワーク
２０   キャプチャサーバ
２２   記憶装置
２４   データ取得クライアント
３１   データ取得要求受付部
３２   データ取得方式判断部
３３   取得時間記憶部
３４   取得方式記憶部
３５   データ取得部
４０   コンピュータ
４１   ＣＰＵ
４２   メモリ
４３   記憶部
４９   記憶媒体
５０   データ取得処理プログラム
【図１】
2019016042.tif 000003
【図２】
2019016042.tif 000004
【図３】
2019016042.tif 000005
【図４】
2019016042.tif 000006
【図５】
2019016042.tif 000007
【図６】
2019016042.tif 000008
【図７】
2019016042.tif 000009
【図８】
2019016042.tif 000010
【図９】
2019016042.tif 000011
【図１０】
2019016042.tif 000012
【図１１】
2019016042.tif 000013
【図１２】
2019016042.tif 000014