(57)【要約】【課題】  複数のネットワークノードから、より安定的にデータ収集を行うデータ収集装置及びデータ収集プログラムを提供する。【解決手段】  データ収集対象の複数のノードへ到達するまでの経路に係る経路情報を取得する経路情報取得手段と、それぞれのノードの処理順序を経路情報に基づき決定する順序決定手段と、それぞれのノードについて、データ送信を要求するデータ送信要求パケットに係る送信要求データを生成する送信要求データ生成手段と、複数の送信要求データを保持し、保持した送信要求データを１つずつ出力する複数のキューと、送信要求データ生成手段が生成した送信要求データを、順序決定手段が決定した順序で、複数のキューに配分する処理を行う配分処理手段と、それぞれのキューから出力された送信要求データに基づくデータ送信要求パケットを送信する送信要求パケット送信手段とを有することを特徴とする。【選択図】      図１
2017103708.tif 000002
【特許請求の範囲】
【請求項１】
データ収集対象の複数のノードへ到達するまでの経路に係る経路情報を取得する経路情報取得手段と、
それぞれの前記ノードの処理順序を経路情報に基づき決定する順序決定手段と、
それぞれの前記ノードについて、データ送信を要求するデータ送信要求パケットに係る送信要求データを生成する送信要求データ生成手段と、
複数の送信要求データを保持し、保持した送信要求データを１つずつ出力する複数のキューと、
前記送信要求データ生成手段が生成した送信要求データを、前記順序決定手段が決定した順序で、複数の前記キューに配分する処理を行う配分処理手段と、
それぞれの前記キューから出力された送信要求データに基づくデータ送信要求パケットを送信する送信要求パケット送信手段と
を有することを特徴とするデータ収集装置。
【請求項２】
前記順序決定手段は、それぞれの前記ノードについてラストワンホップのゲートウェイのアドレスを経路情報として取得し、
前記順序決定手段は、経路情報が共通するノードについて連続的に処理されるようにそれぞれの前記ノードの処理順序を決定する
ことを特徴とする請求項１に記載のデータ収集装置。
【請求項３】
前記順序決定手段は、出現頻度の高い経路情報のノードほど優先的に処理されるようにそれぞれの前記ノードの処理順序を決定することを特徴とする請求項２に記載のデータ収集装置。
【請求項４】
前記配分処理手段は、処理順序が隣接する送信要求データについては、それぞれの前記キューにおける同一の出力順序、及び同一キュー内で隣接する出力順序とならないように、各送信要求データを配置する前記キュー及び前記キュー内での出力順序を設定することを特徴とする請求項２又は３に記載のデータ収集装置。
【請求項５】
前記配分処理手段は、処理順序ごとに、送信要求データを格納する前記キュー及び前記キュー内での送信要求データの出力順序を循環的に変更することを特徴とする請求項４に記載のデータ収集装置。
【請求項６】
前記送信要求パケット送信手段が送信したデータ送信要求パケットに応答する応答パケットをそれぞれの前記ノードから受信する応答パケット受信手段と、
前記応答パケット受信手段の受信状況に基づいてそれぞれの前記ノードの監視処理を行う監視処理手段と
をさらに有することを特徴とする請求項１〜５のいずれかに記載のデータ収集装置。
【請求項７】
コンピュータを、
データ収集対象の複数のノードへ到達するまでの経路に係る経路情報を取得する経路情報取得手段と、
それぞれの前記ノードの処理順序を経路情報に基づき決定する順序決定手段と、
それぞれの前記ノードについて、データ送信を要求するデータ送信要求パケットに係る送信要求データを生成する送信要求データ生成手段と、
複数の送信要求データを保持し、保持した送信要求データを１つずつ出力する複数のキューと、
前記送信要求データ生成手段が生成した送信要求データを、前記順序決定手段が決定した順序で、複数の前記キューに配分する処理を行う配分処理手段と、
それぞれの前記キューから出力された送信要求データに基づくデータ送信要求パケットを送信する送信要求パケット送信手段として機能させる
ことを特徴とするデータ収集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ収集装置及びデータ収集プログラムに関し、例えば、監視対象（データ収集対象）のネットワークノード（例えば、ネットワーク機器等）からデータ収集を行うポーリング方式で監視する監視サーバに適用し得る。
【背景技術】
【０００２】
従来、ネットワークノードからデータ収集して監視を行う方式としては、例えば、データ収集対象のネットワークノードが自律的に送出したデータを監視サーバ（データ収集装置）が取得するプッシュ型の方式（例えば、ＮｅｔＦｌｏｗ等の方式）や、データ収集を行う監視サーバ側から収集対象のネットワークノードにデータ送信を要求して取得するポーリング型の方式（例えば、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）やＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）等の方式）が一般的である。
【０００３】
また、大量のネットワークノードからデータ収集を行う監視サーバ（データ収集装置）では、安定的に各ネットワークノードへのデータ送信要求やデータ受信を行うために、複数のキュー（待ち行列）を設定する方式を採用する場合がある。この場合、監視サーバ（データ収集装置）では、それぞれのキューに対応するスレッドを用いて、各キューの処理を並列的に処理することになる。
【０００４】
従来、複数のキューを用いて並列的にデータ送信を行う方式としては、例えば、特許文献１の記載技術がある。特許文献１では、パケット転送を行う際にパケットの優先度に応じてキューを振り分ける技術について記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２４４２８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、昨今、ハードウェアスペックの向上や、ＯＰＥＸ（Ｏｐｅｒａｔｉｎｇ  Ｅｘｐｅｎｓｅ）の観点からシステムが集約化され、一つの監視サーバ（ネットワークノードからデータ収集を行うデータ収集装置）から送信する監視パケットの量が増えてきている。その為、この監視パケットが、ネットワークのルート上パケットが集中する箇所に配置されるネットワーク機器（例えば、ファイアウォールや、エッジルータ等のネットワーク機器）に負荷を与えてしまう問題がある。上述のような監視サーバ（データ収集装置）に、従来のパケット送信におけるキューの並列処理構成を適用したとしても、大量のネットワークノードからデータ収集を行う場合には、全てのネットワークノードについていずれかのキューへの振り分けを行う必要がある。
【０００７】
しかしながら、従来の監視サーバ（データ収集装置）において、並列的にポーリングを行うためのキューを複数保持し、従来のキューイング方式で保持して出力した場合、ネットワーク上の一部の経路に、ポーリングのパケットやポーリングに応答するパケットが輻輳し、ネットワークの動作が不安定になる等の問題が発生するおそれがある。
【０００８】
そのため、複数のネットワークノードから、より安定的にデータ収集を行うことができるデータ収集装置及びデータ収集プログラムが望まれている。
【課題を解決するための手段】
【０００９】
第１の本発明のデータ収集装置は、（１）データ収集対象の複数のノードへ到達するまでの経路に係る経路情報を取得する経路情報取得手段と、（２）それぞれの前記ノードの処理順序を経路情報に基づき決定する順序決定手段と、（３）それぞれの前記ノードについて、データ送信を要求するデータ送信要求パケットに係る送信要求データを生成する送信要求データ生成手段と、（４）複数の送信要求データを保持し、保持した送信要求データを１つずつ出力する複数のキューと、（５）前記送信要求データ生成手段が生成した送信要求データを、前記順序決定手段が決定した順序で、複数の前記キューに配分する処理を行う配分処理手段と、（６）それぞれの前記キューから出力された送信要求データに基づくデータ送信要求パケットを送信する送信要求パケット送信手段とを有することを特徴とする。
【００１０】
第２の本発明のデータ収集プログラムは、コンピュータを、（１）データ収集対象の複数のノードへ到達するまでの経路に係る経路情報を取得する経路情報取得手段と、（２）それぞれの前記ノードの処理順序を経路情報に基づき決定する順序決定手段と、（３）それぞれの前記ノードについて、データ送信を要求するデータ送信要求パケットに係る送信要求データを生成する送信要求データ生成手段と、（４）複数の送信要求データを保持し、保持した送信要求データを１つずつ出力する複数のキューと、（５）前記送信要求データ生成手段が生成した送信要求データを、前記順序決定手段が決定した順序で、複数の前記キューに配分する処理を行う配分処理手段と、（６）それぞれの前記キューから出力された送信要求データに基づくデータ送信要求パケットを送信する送信要求パケット送信手段として機能させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数のネットワークノードから、より安定的にデータ収集を行うデータ収集装置及びデータ収集プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る監視サーバの機能的構成について示したブロック図である。
【図２】実施形態に係る監視サーバ周辺の接続構成の例について示した説明図である。
【図３】実施形態に係る監視サーバがゲートウェイアドレス（ラストワンホップのアドレス）を取得する例について示した説明図である。
【図４】実施形態に係る監視サーバが保持する監視情報の構成例について示した説明図である。
【図５】実施形態に係る監視サーバが監視対象のノードごとのゲートウェイアドレスを集計（ランキング化）した例について示した説明図である。
【図６】実施形態に係る監視サーバの動作について示したフローチャート（その１）である。
【図７】実施形態に係る監視サーバの動作について示したフローチャート（その２）である。
【図８】実施形態に係る監視サーバが作成する１次元の作業用配列ａ［］の例について示した説明図である。
【図９】実施形態に係る監視サーバ（配分処理部）における各変数、配列及びキューの状態遷移について示した説明図である。
【図１０】実施形態に係る監視サーバで、２次元の作業用配列ｂ［］［］に１次元の作業用配列ａ［］の各ＩＤが設定される過程について示した説明図である。
【図１１】実施形態に係る監視サーバのキューイング結果の例について示した説明図である。
【図１２】実施形態に係る監視サーバ以外のキューイング方式（第１及び第２のキューイング方式）について示した説明図である。
【図１３】実施形態に係る監視サーバで、仮に第１及び第２のキューイング方式を適用した場合のキューイング結果について示した説明図である。
【発明を実施するための形態】
【００１３】
（Ａ）主たる実施形態
以下、本発明によるデータ収集装置及びデータ収集プログラムの一実施形態を、図面を参照しながら詳述する。以下では、本発明のデータ収集装置及びデータ収集プログラムを監視サーバ（監視装置）に適用する例について説明する。
【００１４】
（Ａ−１）実施形態の構成
図２は、この実施形態に係る各装置の接続関係の例について示したブロック図である。
【００１５】
監視サーバ１０は、複数の監視対象（収集対象）のネットワークノード（以下、単に「ノード」とも呼ぶ）についてポーリング方式でデータ収集を行うことで監視するものである。
【００１６】
この実施形態では、監視サーバ１０は、ネットワークＮＡ、ＮＢ、ＮＣ内の任意のノードについて監視処理（データ収集処理）を行うものとして説明する。この実施形態では、ネットワークＮＡ、ＮＢ、ＮＣには、それぞれＸ個のノードＡ１〜ＡＸ、Ｂ１〜ＢＸ、Ｃ１〜ＣＸが配置されている。また、ネットワークＮＡ、ＮＢ、ＮＣには、それぞれエッジルータＥＡ、ＥＢ、ＥＣが配置されている。監視サーバ１０は、各ネットワーク（ＮＡ、ＮＢ、ＮＣ）に接続する際には、それぞれのネットワークのエッジルータ（ＥＡ、ＥＢ、ＥＣ）を経由する構成となっているものとする。
【００１７】
監視サーバ１０が各ノードにポーリングする方式（プロトコル）については限定されないものであるが、例えば、ＳＮＭＰによるＭＩＢデータ収集処理（例えば、所定の監視機能に係るＭＩＢ値の収集処理）等を適用することができる。
【００１８】
次に、監視サーバ１０の内部構成について図１を用いて説明する。
【００１９】
図１に示すように、監視サーバ１０は、大別すると通信処理部２０、記憶部３０、及び通信部４０を有している。
【００２０】
監視サーバ１０は、例えば、プロセッサ及びメモリを有するプログラムの実行構成（例えば、ＰＣ等のコンピュータ）にプログラム（実施形態に係るデータ収集プログラムを含む）をインストールすることにより実現するようにしてもよい。
【００２１】
通信処理部２０は、各ノードに対するデータ収集処理（監視処理）を含む通信処理を行うものである。
【００２２】
記憶部３０は、種々のデータを記録するデータ記録手段である。記憶部３０としては、例えば、ハードディスクドライブやフラッシュメモリ等の不揮発メモリを適用することができる。この実施形態では、記憶部３０は、監視情報３１及び収集結果蓄積データ３２が保持されている。
【００２３】
監視情報３１は、当該監視サーバ１０で監視対象（データ収集対象）となるノードにアクセスするためのアドレス情報（例えば、ＩＰアドレス）と、各ノードに関する情報（以下、「ノード情報」とも呼ぶ）が登録された情報である。監視情報３１の記述形式は限定されないものであるが、例えば、監視対象となっているノードごとに、当該ノードを管理するためのＩＤ（識別子）と、当該ノードのＩＰアドレスと、当該ノードのノード情報とが登録されているものとして説明する。
【００２４】
収集結果蓄積データ３２は、通信処理部２０が、各ノードを監視した結果（各ノードからのデータ収集の結果）が蓄積されたデータである。収集結果蓄積データ３２のデータ形式は限定されないものであるが、例えば、時系列（例えば、受信時刻）ごとに各ノードから受信したデータや、データ送受信の結果等が記録されている。
【００２５】
通信部４０は、外部のネットワークに接続するためのネットワークインタフェースである。図２では、監視サーバ１０（通信部４０）が直接接続するネットワークについては図示されていないが、監視サーバ１０（通信部４０）は接続するネットワークを経由して、ネットワークＮＡ（エッジルータＥＡ、ネットワークＮＢ（エッジルータＥＢ）、及びネットワークＮＣ（エッジルータＥＣ）に接続可能であるものとして説明する。
【００２６】
次に、通信処理部２０の内部構成について説明する。
【００２７】
通信処理部２０は、監視処理部２１、キュー処理部２２及びポーリング処理部２３を有している。
【００２８】
監視処理部２１は、各ノードからポーリングによりデータ収集の制御を行い、その収集結果に基づいて各ノードの監視処理を行う。具体的には、監視処理部２１は、各ノードを宛先として、データ送信要求を行うための各パラメータが設定されたデータ（以下、「送信要求データ」と呼ぶ）を生成してキュー処理部２２に供給する。
【００２９】
監視処理部２１は、例えば、ＳＮＭＰにより所定の監視機能に係るＭＩＢデータの送信を要求するメッセージ（例えば、ＳＮＭＰｒｅｑｕｅｓｔのメッセージ）のパケット（以下、「データ送信要求パケット」と呼ぶ）に設定する各パラメータ（例えば、対象となるノードの宛先アドレスや、収集対象のＭＩＢのＩＤ等）を含むデータを送信要求データとして生成する。すなわち、監視処理部２１は、１つの送信要求データ生成により、対象となる１ノードにデータ送信要求パケットを送信する制御を行うことができる。
【００３０】
監視処理部２１は、監視対象（収集対象）の各ノードに対して所定のタイミング（例えば、定期間隔やユーザ操作に応じたタイミング）で、送信要求データを生成してデータ送信要求パケットを送信する制御を行い、所定期間内（例えば、所定のタイムアウト時間以内）に、データ送信要求パケットに応答する応答パケットが受信できないノードや、受信した応答パケットに含まれているＭＩＢデータが異常示す内容だったノードについて、異常を検知する。すなわち、監視処理部２１は、監視対象（収集対象）の各ノードに対してデータ送信要求パケットを送信する制御（送信要求データを生成して出力する処理）を行い、それに応答する応答パケットの受信状況に基づいて監視対象の各ノードの監視を行う。
【００３１】
キュー処理部２２は、監視処理部２１から供給された送信要求データを複数のキューに配分して（振り分けて）キューイングする機能を担っている。この実施形態の例では、キュー処理部２２は、配分処理部２２１及び５つのｑ１〜ｑ５を有しているものとする。
【００３２】
配分処理部２２１は、配分処理部２２１から供給された送信要求データを、各キュー（ｑ１〜ｑ５）に振り分ける処理を行う。配分処理部２２１の振り分け方法の詳細については後述する。
【００３３】
各キュー（ｑ１〜ｑ５）は、配分処理部２２１から供給された送信要求データを保持し、保持した送信要求データを先頭（１番目）から順に所定間隔（例えば、予め設定された一定の間隔）で、ポーリング処理部２３に出力する。
【００３４】
ポーリング処理部２３は、キュー処理部２２の各キュー（ｑ１〜ｑ５）から供給された送信要求データに基づいて、データ送信要求パケットを生成し、通信部４０を介して送出する処理（ポーリング処理）を行う。ポーリング処理部２３は、例えば、送信要求データに設定された宛先アドレスを宛先とし、送信要求データに設定された項目のＭＩＢ値送信を要求するためのＳＮＭＰｒｅｑｕｅｓｔのパケットをデータ送信要求パケットとして生成するようにしてもよい。また、ポーリング処理部２３では、安定的にポーリング処理を行うために、キュー処理部２２のキュー（ｑ１〜ｑ５）ごとに対応するポーリング処理を行うポーリングプロセス２３１が動作しているものとする。この実施形態では、キュー処理部２２にキューｑ１〜ｑ５が存在するので、ポーリング処理部２３では、キューｑ１〜ｑ５に対応するポーリングプロセス２３１−１〜２３１−５が動作しているものとする。
【００３５】
以上のように、監視処理部２１は、送信要求データを生成して出力することで、監視対象の各ノードに、データ送信要求パケット（ＳＮＭＰｒｅｑｕｅｓｔのパケット）を送信することができる。そして、データ送信要求パケット（ＳＮＭＰｒｅｑｕｅｓｔ）を受信したノードは、ＳＮＭＰｒｅｑｕｅｓｔのメッセージで指定されたＭＩＢデータを取得し、取得したＭＩＢデータを設定した応答パケット（ＳＮＭＰｒｅｓｐｏｎｃｅ）を生成して送信（返答）する。これにより、監視処理部２１は、データ送信要求パケット（例えば、ＳＮＭＰｒｅｑｕｅｓｔのパケット）を送信したノードからの応答パケット（例えば、ＳＮＭＰｒｅｓｐｏｎｃｅのパケット）を取得し、各ノードの監視処理を行うことができる。
【００３６】
次に、キュー処理部２２におけるキューイングの処理（送信要求データの出力順序の決定方法）の詳細について説明する。
【００３７】
上述の通り、ノードにポーリングを行う際（データ送信要求パケットを送信する際）に、ネットワーク上の一部の経路に、データ送信要求パケットや、応答パケットが集中して輻輳が発生し、ネットワークの動作が不安定になる等の問題が発生するおそれがある。この実施形態でいえば、例えば、エッジルータＥＡ、ＥＢ、ＥＣが輻輳の発生しやすいボトルネックとなり得る。
【００３８】
そのため、この実施形態のキュー処理部２２では、ネットワーク上（監視サーバ１０から各ノードまでの経路）でパケットが集中する箇所（例えば、エッジルータ等のネットワーク装置）を特定し、データ送信要求パケット（監視パケット）への到達（パケットが集中する箇所）が分散されるようにキューイング処理を行う。言い換えると、キュー処理部２２は、ネットワーク上の特定のネットワーク装置（例えば、ファイアウォールや、エッジルータ等）に、パケット（例えば、データ送信要求パケットや応答パケット等の監視パケット）が集中（バースト的に集中）しないように、キューイングの処理を行う。
【００３９】
まず、キュー処理部２２は、監視対象となっているノード（監視情報３１に登録されているノード）にポーリングを行う際（データ送信要求パケットを送信する際）に、監視パケット（データ送信要求パケットや応答パケット）が集中するおそれ（可能性）のあるネットワーク装置（以下、「中継ゲートウェイ」とも呼ぶ）を把握する。
【００４０】
キュー処理部２２が、パケットが集中するおそれのある中継ゲートウェイを把握する方法は限定されないものである。この実施形態の例では、キュー処理部２２は、当該監視サーバ１０から各ノードへ到達するまでの経路情報としてラストワンホップの中継ゲートウェイ（当該ノードの直前の中継ゲートウェイ）を把握し、各ノードのラストワンホップの中継ゲートウェイを集計する。
【００４１】
キュー処理部２２が、各ノードのラストワンホップの中継ゲートウェイを把握する方法については限定されないものであるが、例えば、監視サーバ１０を構成するＯＳのネットワーク機能により、当該監視サーバ１０から各ノードへ到達するまでの経路（ラストワンホップを含む経路）を把握するようにしてもよい。例えば、監視サーバ１０がＷｉｎｄｏｗｓ（登録商標）やＵＮＩＸ（登録商標）系のＯＳを用いて構築されている場合には、キュー処理部２２は、ＯＳに搭載されたＴｒａｃｅｒｏｏｔ等のコマンドを用いることで各ノードのラストワンホップのゲートウェイ（当該ゲートウェイのＩＰアドレス）を把握することができる。すなわち、キュー処理部２２は、各ノード宛にＴｒａｃｅｒｏｏｔのコマンドを実行（例えば、各ノードのＩＰアドレスを引数としてＴｒａｃｅｒｏｏｔコマンドを実行）し、その結果（出力結果）を参照することで、各ノードのラストワンホップを把握することができる。
【００４２】
図３は、Ｔｒａｃｅｒｏｏｔコマンドの出力結果に基づいてラストワンホップを把握する処理の具体例について示している。
【００４３】
図３では、監視対象のノードのＩＰアドレス１０．０．０．１としてＴｒａｃｅｒｏｏｔコマンドを実行した例について示している。図３の例では、自装置から１０．０．０．１のノードまで到達する経路は、１９２．１６８．１．１、１９２．１６８．２．１、１０．０．１．１、１０．０．０．１順となっているので、１０．０．０．１の一つ前の１０．０．１．１がラストワンホップの中継ゲートウェイのアドレスとして把握できる。
【００４４】
この実施形態では、キュー処理部２２が各ノードのラストワンホップのゲートウェイのアドレス情報（以下、「ゲートウェイアドレス」と呼ぶ）を経路情報として把握すると、そのゲートウェイアドレスを監視情報３１に登録するものとして説明する。なお、監視サーバ１０において、各ノードのゲートウェイアドレスを管理する方法やデータ構成は限定されないものである。
【００４５】
図４は、監視情報３１の構成例について示した説明図である。
【００４６】
図４に示す監視情報３１には、各ノードについて、ＩＤ、ＩＰアドレス、及びゲートウェイアドレスが対応付けて登録されている。
【００４７】
この実施形態では、ＩＤは、１からに昇順に各ノードに割り振られる識別子であるものとする。例えば、図４に示す監視情報３１では、ＩＤが１のノードのＩＰアドレスが「Ｘ．Ｘ．Ｘ．１」、ゲートウェイアドレスが「Ｘ．Ｘ．Ｘ．Ｘ」となっている。
【００４８】
監視情報３１のゲートウェイアドレスの項目については、例えば、初期値を空欄とし、所定のタイミングでキュー処理部２２が、ゲートウェイアドレスが空欄となっているノードについてＴｒａｃｅｒｏｏｔコマンド等を用いてゲートウェイアドレスを把握して登録するようにしてもよい。また、監視サーバ１０において、監視情報３１にノードを新規登録する際に、キュー処理部２２が当該新規登録ノードのゲートウェイアドレスを把握して登録するようにしてもよい。さらに、監視サーバ１０では、ユーザが監視情報３１のゲートウェイアドレスを含む情報を登録可能とする構成としてもよい。さらにまた、キュー処理部２２は、定期又は不定期の間隔で、監視情報３１のゲートウェイアドレスの項目を更新するようにしてもよい。キュー処理部２２が、Ｔｒａｃｅｒｏｏｔコマンドを用いて各ノードのゲートウェイアドレスを把握する際には、ネットワークの負荷を考慮して、一定時間内にＴｒａｃｅｒｏｏｔコマンドを実行する回数を制限することが望ましい。
【００４９】
以上のように、キュー処理部２２は、種々の方式により登録／更新された監視情報３１に基づいて、各ノードのゲートウェイアドレスを取得する。
【００５０】
そして、キュー処理部２２は、各ノードのゲートウェイアドレスを出現頻度順に集計（ランキング化；順序付け）する。ラストワンホップのアドレスとして出現頻度が高い中継ゲートウェイは、データ送信要求パケット及び応答パケットが最も集中する中継でゲートウェイであるといえる。すなわち、キュー処理部２２は、このようなゲートウェイアドレスに基づく順序付け（集計処理）により、データ送信要求パケット及び応答パケットが集中やすい中継ゲートウェイを検出することができる。
【００５１】
図５は、キュー処理部２２が各ノードのゲートウェイアドレスを集計した例について示している。
【００５２】
図５では、各ノードのゲートウェイアドレスを集計した結果の例について示している。
【００５３】
図５では、エッジルータＥＡのアドレスであるＸ．Ｘ．Ｘ．Ｘの出現数が１５、エッジルータＥＢのアドレスであるＹ．Ｙ．Ｙ．Ｙの出現数が１０、Ｚ．Ｚ．Ｚ．Ｚの出現数が５となっている。したがって、図５の例では、Ｘ．Ｘ．Ｘ．Ｘ、Ｙ．Ｙ．Ｙ．Ｙ、Ｚ．Ｚ．Ｚ．Ｚの順序で順序付け（ランキング化）がなされることになる。
【００５４】
そして、キュー処理部２２は、各ゲートウェイアドレスの順序付け（ランキング化）を行うと、その順序を考慮して、各ノードに対応するデータ送信要求パケットをキューイングする。キュー処理部２２によるキューイング処理の具体例については後述する。
【００５５】
以上の通り、この実施形態では、配分処理部２２１が、データ収集対象の複数のノードへ到達するまでの経路に係る経路情報を取得する経路情報取得手段として機能する。また、この実施形態では、配分処理部２２１が、それぞれのノードの処理順序を経路情報に基づき決定する順序決定手段として機能する。さらに、この実施形態では、監視処理部２１が、それぞれのノードについて、データ送信要求パケットに係る送信要求データを生成する送信要求データ生成手段として機能する。さらにまた、この実施形態では、配分処理部２２１が、送信要求データを、前記順序決定手段が決定した順序で、キューに配分する処理を行う配分処理手段として機能する。また、この実施形態では、ポーリング処理部２３が、キューから出力された送信要求データに基づくデータ送信要求パケットを送信する送信要求パケット送信手段として機能する。
【００５６】
（Ａ−２）実施形態の動作
次に、以上のような構成を有するこの実施形態の監視サーバ１０の動作を説明する。
【００５７】
図６、図７は、この実施形態の監視サーバ１０の動作例について示したフローチャートである。
【００５８】
図６、図７では、データ送信要求パケットを保持するキューとして５つのキューｑ１〜ｑ５を用いる例について説明するが、適用するキューの数が異なる場合は、それに対応したフローを適用する必要がある。
【００５９】
以下では、キューｑ１〜ｑ５の識別子をそれぞれｑ１〜ｑ５と表すものとする。さらに、以下では、各キュー（ｑ１〜ｑ５）で保持されているデータ送信要求データを、それぞれ１次元の配列ｑ１［］、ｑ２［］、ｑ３［］、ｑ４［］、ｑ５［］で表すものとする。例えば、キューｑ１では、では、ｑ１［１］が最も先に出力される先頭（１番目）のデータ送信要求データであり、ｑ１［２］、ｑ１［３］と昇順の順序でデータ送信要求データが出力される。その他のキューｑ２〜ｑ５も同様である。
【００６０】
また、以下では、監視対象のノードの一覧（各ノードのＩＤ）が１次元の作業用配列ａ［］で登録管理されるものとする。また、以下では、各キューｑ１〜ｑ５に設定するノードの一覧（各ノードのＩＤ）が、２次元の作業用配列ｂ［］［］に登録管理されるものとして説明する。
【００６１】
さらに、以下では、フローチャートのループ処理に用いる変数としてｎ（監視対象のノード数）、ｉ、ｉ２、ｉ３、ｉ４、ｉ５、ｑｎｕｍ（キュー数）、ｑｌｅｎ（各キューのキュー長）、ｘｃｎｔを導入するものとする。
【００６２】
さらにまた、ここでは、キュー処理部２２が各ノードのゲートウェイアドレスを集計した結果が、図５のような内容であったものとする。図５では、集計されたゲートウェイアドレスとして、Ｘ．Ｘ．Ｘ．Ｘ、Ｙ．Ｙ．Ｙ．Ｙ、及びＺ．Ｚ．Ｚ．Ｚが示されている。図５では、Ｘ．Ｘ．Ｘ．Ｘをゲートウェイアドレスとするノードは、ＩＤが１〜１５のノードとなっている。また、Ｙ．Ｙ．Ｙ．Ｙをゲートウェイアドレスとするノードは、ＩＤが１６〜２５ノードとなっている。さらに、Ｚ．Ｚ．Ｚ．Ｚをゲートウェイアドレスとするノードは、ＩＤが２７〜３０のノードとなっている。
【００６３】
配分処理部２２１は、処理を開始すると、まず上述の各変数（ｎ、ｉ、ｉ２、ｉ３、ｉ４、ｉ５、ｑｎｕｍ、ｑｌｅｎ、ｘｃｎｔ）を初期化する（Ｓ１０１）。
【００６４】
ここでは、配分処理部２２１は、ｉ、ｉ２、ｉ３、ｉ４、及びｘｃｎｔをすべて０に初期化する。
【００６５】
また、配分処理部２２１は、ｎを監視サーバ１０で監視対象となっているノードの数（監視情報３１に登録されているノードの数）Ｎ（ｎ＝Ｎ；Ｎは整数）に初期化する。ここでは、監視対象となるノードの数Ｎ＝３０であるので、ｎ＝３０となる。
【００６６】
さらに、配分処理部２２１は、ｑｎｕｍをキュー処理部２２で使用するキューの数５に初期化（すなわちｑｎｕｍ＝５に初期化）する。
【００６７】
さらにまた、配分処理部２２１は、ｑｌｅｎを、ｑｌｅｎ＝ｎ÷ｑｎｕｍ（小数点切り上げ）に初期化する。すなわち、ｑｌｅｎは、各キューの長さ（キューｑ１〜ｑ５のそれぞれに設定する送信要求データの数）を示している。ここでは、ｎ＝３０、ｑｎｕｍ＝５であるため、ｑｌｅｎ＝６となる。
【００６８】
さらにまた、配分処理部２２１は、１次元の作業用配列ａ［］、及び２次元の作業用配列ｂ［］［］を初期化する。具体的には、配分処理部２２１は、作業用配列ａ［０］〜［ｎ−１］の領域を確保し、それぞれの要素（ｎ＝３０個の要素）をｎｕｌｌに初期化する。また、配分処理部２２１は、作業用配列ｂ［０］［０］〜ｂ［０］［ｑｌｅｎ−１］、ｂ［１］［０］〜ｂ［１］［ｑｌｅｎ−１］、…、ｂ［ｑｎｕｍ−１］［０］〜ｂ［ｑｎｕｍ−１］［ｑｌｅｎ−１］の領域を確保し、それぞれの要素（ｑｎｕｍ×ｑｌｅｎ＝５×６＝３０個の要素）をｎｕｌｌに初期化する。
【００６９】
初期化処理が終了すると、配分処理部２２１は、ｉとｎを比較し（Ｓ１０２）、ｉがｎ未満である場合には後述するステップＳ１０３から動作し、ｉがｎ以上の場合は、後述するステップＳ１０５から動作する。
【００７０】
上述のステップＳ１０２で、ｉがｎ以上の場合、配分処理部２２１は、監視情報３１に基づき、未選択のノードから、最も出現頻度が上位（ランキング上位）の検出ゲートウェイをゲートウェイアドレスとするノードのＩＤを取得し、取得したＩＤをａ［ｉ］に登録する（Ｓ１０３）。
【００７１】
次に、配分処理部２２１は、ｉをインクリメント（ｉ＝ｉ＋＋）し（Ｓ１０４）、上述のステップＳ１０２に戻って動作する。
【００７２】
配分処理部２２１は、上述のステップＳ１０２〜Ｓ１０４のループ処理を行うことで、作業用配列ａ［］に、監視対象の各ノードのＩＤを登録することになる。ここでは、配分処理部２２１が作成する作業用配列ａ［］の内容は図８のようになる。ここでは、図８に示すように、配列ａ［０］〜ａ［２９］に、１〜３０のＩＤが登録されることになる。具体的には、先頭の配列ａ［０］〜ａ［１４］にＸ．Ｘ．Ｘ．Ｘをゲートウェイアドレスとするノード（ＩＤが１〜１５のノード）が登録され、配列ａ［１５］〜ａ［２４］にＹ．Ｙ．Ｙ．Ｙをゲートウェイアドレスとするノード（ＩＤが１６〜２５のノード）が登録され、配列ａ［２５］〜ａ［２９］にＺ．Ｚ．Ｚ．Ｚをゲートウェイアドレスとするノード（ＩＤが２６〜３０のノード）が登録されることになる。結果として、配列ａ［０］〜ａ［２９］には、１〜３０のＩＤが昇順に登録されることになる。
【００７３】
上述のステップＳ１０２でｉがｎ以上の場合、配分処理部２２１は、ｉを初期化（ｉ＝０）し（Ｓ１０５）、後述するステップＳ２０１に移行する。
【００７４】
そして、ｉの初期化後、配分処理部２２１は、ｉとｎを比較し（Ｓ２０１）、ｉがｎ未満である場合には後述するステップＳ２０２から動作し、ｉがｎ以上の場合は、キューイングの処理（送信要求データの各キューへの設定処理）を終了する。
【００７５】
ｉがｎ未満である場合、配分処理部２２１は、ｘとｑｎｕｍとを比較し（Ｓ２０２）、ｘがｑｎｕｍ未満である場合（ｘ＜ｑｎｕｍの場合）には後述するステップＳ２０５から動作し、ｘがｑｎｕｍ以上の場合は、後述するステップＳ２０３から動作する。
【００７６】
ｘがｑｎｕｍ以上の場合、配分処理部２２１は、ｘｃｎｔをインクリメント（ｘｃｎｔ＝ｘｃｎｔ＋＋）し（Ｓ２０３）、さらに、ｘ＝０、ｙ＝ｘｃｎｔとし（Ｓ２０４）、後述するステップＳ２０５から動作する。
【００７７】
ステップＳ２０５に移行すると、配分処理部２２１は、ｙとｑｌｅｎとを比較し、ｙがｑｌｅｎ未満である場合（ｙ＜ｑｌｅｎの場合）には後述するステップＳ２０７から動作し、ｙがｑｌｅｎ以上の場合は、後述するステップＳ２０６から動作する。
【００７８】
ｙがｑｌｅｎ以上の場合、配分処理部２２１は、ｙを０に初期化（ｙ＝０）して後述するステップＳ２０７に移行する。
【００７９】
ステップＳ２０７に移行すると、配分処理部２２１は、配列ｂ［ｘ］［ｙ］にａ［ｉ］のＩＤを登録（作業用配列ｂ［ｘ］［ｙ］＝ａ［ｉ］）する。
【００８０】
次に、配分処理部２２１は、ｉ、ｘ、及びｙをインクリメント（ｉ  ＝  ｉ  ＋＋、ｘ  ＝  ｘ  ＋＋、ｙ  ＝  ｙ  ＋＋）して（Ｓ２０８）、上述のステップＳ２０１に戻って動作する。
【００８１】
上述のステップＳ２０１で、ｉがｎ以上と判断された場合、配分処理部２２１は、ｂ［ｘ］［ｙ］の値を、ｘごとに各キューｑ１〜ｑ５に格納し（Ｓ２０９）、処理を終了する。
【００８２】
図９は、配分処理部２２１が図６、図７のフローチャートの処理を実行する際の各変数、配列及びキューの状態遷移について示した説明図である。
【００８３】
図９（ａ）は、配分処理部２２１が図６、図７のフローチャートの処理を実行し、ｉを０から２９まで変化させた場合のｘ、ｙの遷移及び作業用配列ａ［０］〜ａ［２９］の内容について示している。また、図９（ｂ）は、配分処理部２２１が図７のフローチャートの処理を実行し、ｉを０から２９まで変化させた場合の作業用配列ｂ［ｘ］［ｙ］（ｂ［０］［０］〜ｂ［４］［５］）の内容について示している。
【００８４】
図９（ａ）、図９（ｂ）に示すように、配分処理部２２１が図６、図７のフローチャートの処理を実行した結果、キューｑ１に対応するｂ［０］［０］〜ｂ［０］［５］には、それぞれ１、６、１１、１６、２１、２６のＩＤが設定され、キューｑ２に対応するｂ［１］［０］〜ｂ［１］［５］には、それぞれ２７、２、７、１２、１７、２２のＩＤが設定され、キューｑ３に対応するｂ［２］［０］〜ｂ［２］［５］には、それぞれ２３、２８、３、８、１３、１８のＩＤが設定され、キューｑ４に対応するｂ［３］［０］〜ｂ［３］［５］には、それぞれ１９、２４、２９、４、９、１４のＩＤが設定され、キューｑ５に対応するｂ［４］［０］〜ｂ［４］［５］には、それぞれ１５、２０、２５、３０、５、１０のＩＤが設定される。
【００８５】
そして、作業用配列ｂ［ｘ］［ｙ］の内容が図９（ｂ）のような内容となると、各ｑ１〜ｑ５に設定される送信要求データの内容（送信要求データの宛先のＩＤ）は、上述のステップＳ２０９の処理により図９（ｃ）のような内容となる。
【００８６】
図９（ｃ）に示すマトリクスでは、各キューｑ１〜ｑ５に設定される送信要求データのＩＤが上から送出順に配列されている。図９（ｂ）、図９（ｃ）に示すように、キューｑ１にはｂ［０］［０］〜ｂ［０］［５］のＩＤに対応する送信要求データが設定され、キューｑ２にはｂ［１］［０］〜ｂ［１］［５］のＩＤに対応する送信要求データが設定され、キューｑ３にはｂ［２］［０］〜ｂ［２］［５］のＩＤに対応する送信要求データが設定され、キューｑ４にはｂ［３］［０］〜ｂ［３］［５］のＩＤに対応する送信要求データが設定され、キューｑ５にはｂ［４］［０］〜ｂ［４］［５］のＩＤに対応する送信要求データが設定される。
【００８７】
例えば、図９（ｃ）において、ｑ１に設定される送信要求データのＩＤが上から順に１、６、１１、１６、２１、２６となっている。したがって、キューｑ１では、ＩＤが１、６、１１、１６、２１、２６という順序で送信要求データの送出が行われることになる。すなわち、作業用配列ｂ［］［］の形式で示すと、キューｑ１では、ｂ［０］［０］、ｂ［０］［１］、ｂ［０］［２］、ｂ［０］［３］、ｂ［０］［４］、ｂ［０］［５］の順序で、対応するＩＤのノードに送信要求データを送信する処理を行うことになる。
【００８８】
言い換えると、図９（ｂ）のように、作業用配列ｂ［］［］を示すマトリクスにおいて、同じ行（ｙの値が共通するセル）のセル（ＩＤ）に対応する送信要求データについては、同じタイミングで各キューｑ１〜ｑ５から送出されることを示している。例えば、図９（ｂ）に示すマトリクスでは一番上の行に、１、２７、２３、１９、１５のＩＤが設定されているため、これらのＩＤに対応するノード宛の送信要求データは各キューｑ１〜ｑ５から同じタイミングで送出されることになる。
【００８９】
図１０は、上述の図７のフローチャートの処理により、作業用配列ｂ［］［］に作業用配列ａ［］の各ＩＤが設定される過程について示した説明図である。
【００９０】
図１０（ａ）は、ｉを０から１４まで変化させた後の作業用配列ｂ［］［］の内容について示している。すなわち図１０（ａ）は、最初にゲートウェイアドレスをＸ．Ｘ．Ｘ．ＸとするノードのＩＤ（１〜１５）を作業用配列ｂ［］［］に設定した状態について示している。
【００９１】
図１０（ｂ）は、ｉを２５まで変化させた後の作業用配列ｂ［］［］の内容について示している。すなわち図１０（ｂ）は、図１０（ａ）の状態から、ゲートウェイアドレスをＹ．Ｙ．Ｙ．ＹとするノードのＩＤ（１６〜２５）を作業用配列ｂ［］［］に追加設定した状態について示している。
【００９２】
図１０（ｃ）は、ｉを２９まで変化させた後の作業用配列ｂ［］［］の内容について示している。すなわち図１０（ｃ）は、図１０（ｂ）の状態から、ゲートウェイアドレスをＺ．Ｚ．Ｚ．ＺとするノードのＩＤ（２６〜３０）を作業用配列ｂ［］［］に追加設定した状態について示している。
【００９３】
図１０に示すように、配分処理部２２１は、各行で、ゲートウェイアドレスを同じくするノードのＩＤが分散されるように配列している。すなわち、配分処理部２２１は、同じタイミングで、同じゲートウェイアドレスのノードに送信するノード数を低減するように作業用配列ｂ［］［］へのＩＤ配列を行う。
【００９４】
次に、本発明の効果を明確とするため、監視対象のノード数を１００個とした場合の監視サーバ１０の動作例について説明する。以下、ＩＤが１〜１００のノードが存在する場合の例について説明する。また、以下では、ＩＤが１〜４０の４０個のノードは、ゲートウェイアドレス（ラストワンホップのゲートウェイのアドレス）が、エッジルータＥＡ（Ｘ．Ｘ．Ｘ．Ｘ）であった場合の例について説明する。
【００９５】
このとき、監視サーバ１０（配分処理部２２１）が上述の図６、図７のフローチャートに従って動作すると、キューｑ１〜ｑ５に設定される内容は、図１１のような内容となる。
【００９６】
図１１に示すように、図６、図７のフローチャートの処理に基づくキューイング方式では、処理順序（作業用配列ａ［］上での順序）が隣接するＩＤについては、同じ行とせずに出力タイミングをずらし、かつ、同じキューの中でも隣接する順序とならないようにキューイングされている。具体的には、この実施形態のキューイング方式では、作業用配列ａ［］上の各ＩＤ（要素）を、マトリクス上の列（キュー）及びマトリクス上の行（各キュー内での処理順序）について循環的にずらしながらキューイングされている。図１１の例では、作業用配列ａ［０］のＩＤ＝１については、ｑ１の先頭（１番目）に配置し、作業用配列ａ［１］のＩＤ＝２についてはキュー（列）及び出力順序（行）を１つずらしたｑ２の２番目に配置し、・・・、という順序で循環的にキュー（列）及び出力順序（行）をずらしながらキューイングされている。
【００９７】
（Ａ−３）実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【００９８】
（Ａ−３−１）他のキューイング方式との比較
まず、この実施形態のキューイング方式の効果を示すために、他のキューイング方式との比較について説明する。ここで、仮に、監視サーバ１０（配分処理部２２１）が他のキューイング方式（アルゴリズム）に基づいて、送信要求データを各キューｑ１〜ｑ５へ振り分ける場合の例について説明する。
【００９９】
図１２は、その他のキューイング方式の例について示した説明図である。
【０１００】
図１２では、説明を簡易とするために３つのキューｑ１〜ｑ３に、９つのノード（ＩＤが１〜９のノード）に対する送信要求データをキューイングする例について示している。
【０１０１】
図１２（ａ）では、１つの送信要求データごとにキューをずらしながらキューイングする方式（以下、「第１のキューイング方式」と呼ぶ）について示している。図１２（ａ）に示す第１のキューイング方式の例では、ＩＤが１の送信要求データをキューｑ１の１番目に配置し、ＩＤが２の送信要求データを次のキューｑ２の１番目に配置し、ＩＤが３の送信要求データを次のキューｑ３の１番目に配置し、ＩＤが４の送信要求データを次のキューｑ１の２番目に配置し、…、という順序でキューイングしている。
【０１０２】
図１２（ｂ）では、キューが一杯になったら次のキューに振り分ける方式（以下、「第２のキューイング方式」と呼ぶ）について示している。図１２（ｂ）に示す第２のキューイング方式の例では、ＩＤが１〜３の送信要求データをキューｑ１に配置し、ＩＤが４〜６の送信要求データを次のキューｑ２に配置し、ＩＤが７〜９の送信要求データを次のキューｑ３に配置している。
【０１０３】
そして、監視対象のノード数を１００個（ＩＤが１〜１００のノード）とし、上述の第１及び第２のキューイング方式を適用した場合に、各キューｑ１〜ｑ５にキューイングされる結果の例について図１３を用いて説明する。また、図１３では、上述の図１１と同様に、ＩＤが１〜４０の４０個のノードは、ゲートウェイアドレス（ラストワンホップのゲートウェイのアドレス）が、エッジルータＥＡ（Ｘ．Ｘ．Ｘ．Ｘ）である場合の例について説明する。
【０１０４】
図１３（ａ）は、第１のキューイング方式により、上述の１００個のノード（ＩＤが１〜１００のノード）に対する送信要求データをキューイングした場合の例について示している。また、図１３（ｂ）は、第２のキューイング方式により、上述の１００個のノード（ＩＤが１〜１００のノード）に対する送信要求データをキューイングした場合の例について示している。
【０１０５】
図１３（ａ）に示す第１のキューイング方式の例では、全てのキューｑ１〜ｑ５で１番目から８番目までに、ゲートウェイアドレスをエッジルータＥＡ（Ｘ．Ｘ．Ｘ．Ｘ）とするノード（ＩＤが１〜４０の送信要求データ）の送信要求データが配置されている。そのため、図１３（ａ）に示す第１のキューイング方式の例では、エッジルータＥＡ（Ｘ．Ｘ．Ｘ．Ｘ）で、監視パケット（送信要求パケット及び応答パケット）が集中する期間が発生し、エッジルータＥＡで高負荷となる傾向にある。
【０１０６】
図１３（ｂ）に示す第２のキューイング方式の例では、キューｑ１、ｑ２で、１番目から２０番目までに、ゲートウェイアドレスをエッジルータＥＡ（Ｘ．Ｘ．Ｘ．Ｘ）とするノード（ＩＤが１〜４０の送信要求データ）の送信要求データが配置されている。そのため、図１３（ｂ）に示す第２のキューイング方式の例では、エッジルータＥＡ（Ｘ．Ｘ．Ｘ．Ｘ）に高負荷は発生しない状態（定常的に２つの送信要求データの処理が発生した状態）となるが、長期間にわたって監視パケット（送信要求パケット及び応答パケット）が発生する状態（すなわち、監視パケットが流れていない期間が短い状態）となる。
【０１０７】
これに対して、図１１に示すこの実施形態のキューイング方式を適用した例では、エッジルータＥＡ（Ｘ．Ｘ．Ｘ．Ｘ）について、第１のキューイング方式（図１３（ａ）の例）よりも高負荷の期間を短くしつつ、監視パケットの流れる期間を短くすることができる。
【０１０８】
（Ａ−３−２）この実施形態の監視サーバ１０では、監視対象の各ノードの経路情報としてゲートウェイアドレス（ラストワンホップのアドレス）を取得し、ゲートウェイアドレスが共通するノードが連続するように作業用配列ａ［］に登録し、作業用配列ａ［］に登録された処理順序でキューイングする処理を行っている。これにより、監視サーバ１０では、監視対象のノードごとに経路情報（ゲートウェイアドレス）を考慮したキューイングを行うことができるため、監視パケットを送受信する際にもネットワーク（例えば、エッジルータＥＡ、ＥＢ、ＥＣ）の安定性を保つことができる。
【０１０９】
例えば、監視対象のノードごとに経路情報（ゲートウェイアドレス）を考慮せずにキューイングを行った場合、キューイングの状況によっては、上述の図１３（ａ）と同様に、エッジルータＥＡに高負荷が長期間継続する恐れがある。その場合、エッジルータＥＡは、ＣＰＵ使用率が高負荷状態となりやすい。多数のノードを集約する商用ネットワークのルータにおいて、ＣＰＵが高負荷になるとパケット転送の遅延等といった影響懸念が出るというデメリットがある。また、例えば、監視対象のノードごとに経路情報（ゲートウェイアドレス）を考慮せずにキューイングを行った場合、キューイングの状況によっては、上述の図１３（ｂ）と同様にエッジルータＥＡに長期間監視パケットが流れる状態となる恐れがある。この場合、エッジルータＥＡは、監視パケットが流れていない時間帯が極めて短くなる場合がある。商用ネットワークのルータにおいて、パッチ適用や系切り替え等の計画作業は、監視パケットが流れていない時間帯に実施することが望ましいが、監視パケットが流れていない時間帯が極めて短くなる場合、作業可能な時間が極めて短くなるデメリットがある。これに対してこの実施形態の監視サーバ１０では、監視対象のノードごとに経路情報（ゲートウェイアドレス）を考慮してキューイングを行うため、上述の図１１の例に示されるように、配下に多数の監視対象のノードが配置されたゲートウェイ（上述の図１１の例ではエッジルータＥＡ）が存在する場合でも、高負荷の期間を短くしつつ、監視パケットの流れる期間を短くすることができる（すなわち、長期的に当該ゲートウェイを安定的に動作させつつ、配下の監視対象ノードの監視（データ収集）を行うことができる）。
【０１１０】
さらに、この実施形態の監視サーバ１０では、上述の図６、図７のフローチャートの処理に基づくキューイング方式を適用している。上述の図６、図７のキューイング方式では、処理順序（作業用配列ａ［］上での順序）が隣接するＩＤについては、同じ行とせずに出力タイミングをずらし、かつ、同じキューの中でも次の順序とならないようにキューイングされている。具体的には、この実施形態のキューイング方式では、作業用配列ａ［］上の各ＩＤ（要素）を、マトリクス上の列（キュー）及びマトリクス上の行（各キュー内での処理順序）について循環的にずらしながらキューイングしている。これにより、この実施形態の監視サーバ１０では、上述の図１１の例に示されるように、配下に多数の監視対象のノードが配置されたゲートウェイ（上述の図１１の例ではエッジルータＥＡ）が存在する場合でも、高負荷の期間を短くしつつ、監視パケットの流れる期間を短くすることができる（すなわち、長期的に当該ゲートウェイを安定的に動作させつつ、配下の監視対象ノードの監視（データ収集）を行うことができる）。
【０１１１】
（Ｂ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【０１１２】
（Ｂ−１）上記の実施形態において、監視サーバ１０（キュー処理部２２）は、ｔｒａｃｅｒｏｏｔコマンド等を用いて各ノードのゲートウェイアドレス（ラストワンホップのアドレス）を取得する例について示したが、各ノードのＩＰアドレスに基づいて、ゲートウェイアドレス（ラストワンホップのアドレス）を取得するようにしてもよい。例えば、任意のノードのアドレスが１０．１０．１０．１００でサブネットマスクが２５５．２５５．２５５．０である場合を想定する。この場合、監視サーバ１０（キュー処理部２２）は、１０．１０．１０．０をネットワーク（サブネット）のアドレスとして取得し、当該ネットワーク（サブネット）の代表となる所定のアドレス(例えば、末尾を１とするアドレス)として１０．１０．１０．１を、当該ノードのゲートウェイアドレスとして取得するようにしてもよい。
【０１１３】
（Ｂ−２）上記の実施形態では、監視サーバ１０（キュー処理部２２）は、上述の図５に示す通り、出現頻度に応じてゲートウェイアドレスをランキング化していたが、ゲートウェイアドレスが共通するノードが連続するように作業用配列ａ［］に登録することができれば、ゲートウェイアドレスをランキング化する処理を省略するようにしてもよい。
【０１１４】
（Ｂ−３）上記の実施形態では本発明のデータ収集装置を、ノードを監視する監視サーバ（監視装置）として実現する例について説明したが、本発明のデータ収集装置は、監視装置に限定されず他の機能のためにデータ収集を行う他の装置に適用するようにしてもよい。例えば、ネットワーク上のゲートウェイから定期的にデータ（ＭＩＢ値）を収集してネットワークの性能管理（パフォーマンス管理）を行うようにしてもよい。
【符号の説明】
【０１１５】
１０…監視サーバ、２０…監視処理部、２２１…振分部、２２…キュー処理部、２２１…配分処理部、ｑ１〜ｑ５…キュー、２３…ポーリング処理部、２３１、２３１−１〜２３１−５…ポーリングプロセス、３０…記憶部、３１…監視情報、３２…収集結果蓄積データ、４０…通信部。
【図１】
2017103708.tif 000003
【図２】
2017103708.tif 000004
【図３】
2017103708.tif 000005
【図４】
2017103708.tif 000006
【図５】
2017103708.tif 000007
【図６】
2017103708.tif 000008
【図７】
2017103708.tif 000009
【図８】
2017103708.tif 000010
【図９】
2017103708.tif 000011
【図１０】
2017103708.tif 000012
【図１１】
2017103708.tif 000013
【図１２】
2017103708.tif 000014
【図１３】
2017103708.tif 000015