説明

トラフィック集計装置、トラフィック集計方法及びトラフィック集計プログラム

【課題】リアルタイムでトラフィック集計を行う場合に、大量トラフィックが発生してもその影響を受けにくくできるトラフィック集計装置を提供する。
【解決手段】トラフィック集計手段81は、単位時間ごとの通信トラフィックをリアルタイムに集計する。記録量判定手段84は、単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに第一の集計値記憶手段82に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定する。第一の集計値登録手段83は、記録量判定手段84が通信トラフィックの集計量が記録可能閾値以下であると判定したときに、通信トラフィックの集計値を第一の集計値記憶手段82に登録する。第二の集計値登録手段86は、記録量判定手段84が通信トラフィックの集計量が記録可能閾値よりも多いと判定したときに、通信トラフィックの集計値を第二の集計値記憶手段85に登録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上に流れる通信トラフィックを集計するトラフィック集計装置、トラフィック集計方法及びトラフィック集計プログラムに関し、特に大量トラフィックによる影響を受けにくいトラフィック集計装置、トラフィック集計方法及びトラフィック集計プログラムに関する。
【背景技術】
【0002】
ネットワーク上の通信トラフィックを集計する一般的な集計装置が、特許文献1に記載されている。特許文献1に記載されたトラフィック集計装置は、統計処理部と格納処理部がそれぞれ平行に集計処理を行うことで、リアルタイム集計を実現している。具体的には、特許文献1に記載されたトラフィック集計装置は、集計キーおよびトラフィック種別を判定してトラフィックを分類し、さらにトラフィック情報内のトラフィック発生時刻に基づいて、連続する集計時間帯ごとにトラフィックの数を集計する。
【0003】
なお、特許文献2には、データの信頼度が低下していることを補足表示したり、正しくデータを補正したりする統合モニタシステムが記載されている。特許文献2に記載された統合モニタシステムは、所定の単位の呼数を集計する際に基にしたSIPサーバごと及びポイントごと及び5分ごとの呼数に欠損があった場合に、その所定の単位の呼数に対して欠損が存在する呼数であること示す欠損情報(欠損フラグがオンのデータ)を生成する。そして、上記統合モニタシステムは、1日に1回、前日の欠損フラグがオンのデータの再集計処理を行う。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−245049号公報(段落0038〜0041)
【特許文献2】特許第4142038号公報(段落0032〜0035)
【発明の概要】
【発明が解決しようとする課題】
【0005】
様々な観点によるトラフィック集計をリアルタイムで行う場合、集計後の情報量が対象のトラフィックの内容によって増大することがある。例えば、大量トラフィックが発生すると集計後の情報量が増大し、それ以降のリアルタイム集計ができなくなる場合がある。これは、予期せぬ大量トラフィックが発生したことで集計後の情報量が多くなり過ぎ、集計単位時間内に集計結果の保存が終わらないからである。
【0006】
例えば、単位時間あたりのトラフィック量を送信元IPアドレスごとに集計し、その送信元IPアドレスの種類の数に応じて集計結果を保存する場合について説明する。
【0007】
コンピュータウイルスの一種であるボットなどのマルウェアにより、送信元IPアドレスが分散するように偽装して一斉にアクセスが行われる(すなわち、トラフィックが発生する)と、送信元IPアドレスの数がトラフィック量に近い数に及ぶことがある。
【0008】
例えば、以下の参考文献には、あるインターネット定点観測において、通常時、送信元IPアドレスの数が総トラフィックの1/500〜1/100程度であったものが、MS08−067の脆弱性を利用したと思われるトラフィックにより、総トラフィック量が10倍以上、送信元IPアドレスの数が1000倍以上に増大したことについて記載されている。ここで、MS08−067とは、2008年にMicrosoft(登録商標)から発表されたWindows(登録商標)の脆弱性の識別名である。
【0009】
[参考文献]
Microsoft、“MS08-067 Server サービスの脆弱性により、リモートでコードが実行される (958644) ” [online]、[平成22年1月28日検索]、インターネット〈http://www.microsoft.com/japan/technet/security/bulletin/ms08-067.mspx〉
【0010】
このようなケースでは、保存する集計結果の件数も1000倍以上に増大し、集計単位時間内に集計結果の保存が終わらない現象が発生する。さらにこの状態が続くと、集計結果を一時保存する記憶容量の上限を超え、他の観点で行っているリアルタイムのトラフィック集計の集計結果の保存もできなくなる。
【0011】
以下、データベースの更新時間が集計時間よりも多くの時間(例えば、10倍の時間)を必要とする場合について説明する。例えば、一般的なコンピュータを用いた場合、5分以内に10万件分のデータを更新することはハード性能によっては可能な場合がある。しかし、データ数の規模を2〜4桁あげた場合(すなわち、5分間に更新する対象のデータを、1000万件にした場合)、一般的なコンピュータでは、時間内に更新処理を完了することは不可能である。
【0012】
この場合、更新を試みた時点でCPUとディスクI/O(Input/Output)に多大な負荷がかかり、同一OS(Operating System)上で動作する他の処理(集計処理を含む)にも多大な影響を及ぼしてしまうという問題がある。さらに、異なる集計の観点で同時に複数の集計処理をリアルタイムで行う場合、1つの観点での集計処理及びデータベースへの格納処理の遅延が、他の集計処理の処理遅延を引き起こしてしまうという問題もある。
【0013】
特許文献1に記載された集計装置のように統計処理部と格納処理部を分けて平行に集計処理を行っていたとしても、このような状態になった場合には、記録が終わるまで順々に遅延が発生してしまう。さらに、一時保存可能な記憶容量の上限を超えた場合には、集計を続けることができなくなるという問題がある。
【0014】
そこで、本発明は、リアルタイムでトラフィック集計を行う場合に、大量トラフィックが発生してもその影響を受けにくくできるトラフィック集計装置、トラフィック集計方法及びトラフィック集計プログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明によるトラフィック集計装置は、単位時間ごとの通信トラフィックをリアルタイムに集計するトラフィック集計手段と、トラフィック集計手段が集計した通信トラフィックの集計値を第一の集計値記憶手段に登録する第一の集計値登録手段と、単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに第一の集計値記憶手段に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定する記録量判定手段と、記録量判定手段が通信トラフィックの集計量が記録可能閾値よりも多いと判定したときに、通信トラフィックの集計値を第二の集計値記憶手段に登録する第二の集計値登録手段とを備え、第一の集計値登録手段が、記録量判定手段が通信トラフィックの集計量が記録可能閾値以下であると判定したときに、通信トラフィックの集計値を第一の集計値記憶手段に登録することを特徴とする。
【0016】
本発明によるトラフィック集計方法は、単位時間ごとの通信トラフィックをリアルタイムに集計し、単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに第一の集計値記憶手段に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定し、通信トラフィックの集計量が記録可能閾値よりも多いと判定されたときに、通信トラフィックの集計値を、第一の集計値記憶手段とは異なる第二の集計値記憶手段に登録し、通信トラフィックの集計量が記録可能閾値以下であると判定されたときに、通信トラフィックの集計値を第一の集計値記憶手段に登録することを特徴とする。
【0017】
本発明によるトラフィック集計プログラムは、単位時間ごとの通信トラフィックの集計値を記憶する第一の集計値記憶手段と、単位時間ごとの通信トラフィックの集計値を記憶する第二の集計値記憶手段とを備えたコンピュータに適用されるトラフィック集計プログラムであって、コンピュータに、単位時間ごとの通信トラフィックをリアルタイムに集計するトラフィック集計処理、トラフィック集計処理で集計された通信トラフィックの集計値を第一の集計値記憶手段に登録する第一の集計値登録処理、単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに第一の集計値記憶手段に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定する記録量判定処理、および、記録量判定処理で通信トラフィックの集計量が記録可能閾値よりも多いと判定されたときに、通信トラフィックの集計値を第二の集計値記憶手段に登録する第二の集計値登録処理を実行させ、第一の集計値登録処理で、記録量判定処理で通信トラフィックの集計量が記録可能閾値以下であると判定されたときに、通信トラフィックの集計値を第一の集計値記憶手段に登録させることを特徴とする。
【発明の効果】
【0018】
本発明によれば、リアルタイムでトラフィック集計を行う場合に、大量トラフィックが発生してもその影響を受けにくくできる。
【図面の簡単な説明】
【0019】
【図1】本発明によるトラフィック集計装置の一実施形態を示すブロック図である。
【図2】リアルタイム集計処理の例を示すフローチャートである。
【図3】バッチ集計処理の例を示すフローチャートである。
【図4】バルク転送処理の例を示すフローチャートである。
【図5】集計データ参照処理の例を示すフローチャートである。
【図6】本発明によるトラフィック集計装置の最小構成の例を示すブロック図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態を図面を参照して説明する。
【0021】
図1は、本発明によるトラフィック集計装置の一実施形態を示すブロック図である。本実施形態におけるトラフィック集計装置は、リアルタイム集計部1と、主参照集計部2と、トラフィックデータベース(以下、トラフィックDBと記す。)3と、参照部4とを備えている。
【0022】
トラフィックDB3は、トラフィック情報を記憶する記憶装置である。トラフィックDB3には、例えば、通信モニタ装置(図示せず)により抽出されたトラフィック情報が記憶される。
【0023】
リアルタイム集計部1は、逐次集計部11と、記録部12と、リアルタイムデータベース(以下、リアルタイムDBと記す。)13と、バルク転送部14とを備えている。
【0024】
逐次集計部11は、集計対象のトラフィック情報ごとに単位時間あたりの集計を行う。具体的には、逐次集計部11は、例えば、通信モニタ装置(図示せず)が抽出した通信トラフィック情報をもとに、単位時間ごとの通信トラフィックをリアルタイムに集計する。以下の説明では、逐次集計部11が集計したデータを、記録対象データと記し、逐次集計部11が集計したデータ量を記録量と記す。
【0025】
なお、上記説明では、通信モニタ装置(図示せず)が抽出したトラフィック情報を、逐次集計部11に入力したり、トラフィックDB3に記憶させたりする場合について説明した。ただし、トラフィック情報を逐次集計部11に入力したり、トラフィックDB3に記憶させたりする装置は、通信モニタ装置に限定されない。
【0026】
例えば、通信モニタ装置と、リアルタイム集計部1(より詳しくは、逐次集計部11)及びトラフィックDB3との間に中継装置(図示せず)を設け、その中継装置がトラフィック情報を逐次集計部11に入力したり、トラフィックDB3に記憶させたりしてもよい。このようにすることで、リアルタイム集計部1(より詳しくは、逐次集計部11)及びトラフィックDB3は、通信モニタ装置の所在や数の影響を受けにくくすることができる。
【0027】
また、リアルタイム集計部1(より詳しくは、逐次集計部11)や、トラフィックDB3にデータを記憶させるトラフィック情報登録手段(図示せず)が、トラフィック情報をLANなどのデータバスから抽出するようにしてもよい。
【0028】
リアルタイムDB13は、リアルタイムに集計された単位時間ごとのトラフィック情報の集計値を記憶する。トラフィック情報の集計値は、後述のDB更新部122によりリアルタイムDB13に記憶される。リアルタイムDB13は、例えば、トラフィック集計装置が備える磁気ディスク装置等によって実現される。
【0029】
記録部12は、記録量管理部121と、データベース更新部(以下、DB更新部と記す。)122と、欠損管理部123とを備えている。
【0030】
記録量管理部121は、記録対象データのデータ量をもとにリアルタイムDB13へ記録する量を管理する。具体的には、記録量管理部121は、逐次集計部11が単位時間ごとに集計した記録量が、その単位時間あたりに後述のDB更新部122がリアルタイムDB13に記録できる記録量として予め定められた閾値(以下、記録可能閾値と記す。)よりも多いか否かを判定する。そして、記録量管理部121は、記録量が記録可能閾値よりも多い場合、リアルタイムDB13に記録対象データを記憶させず、欠損管理部123に記録対象データを通知する。なお、以下の説明では、記録量管理部121がリアルタイムDB13に記録対象データを記録させないことを記録放棄と記すこともある。
【0031】
一方、記録量が記録可能閾値以下の場合、記録量管理部121は、リアルタイムDB13に記録対象データを記憶させる。具体的には、記録量管理部121は、DB更新部122に対し、リアルタイムDB13に記録対象データを記憶させるよう指示する。
【0032】
以下、具体例を用いて説明する。例えば、DB更新部122がリアルタイムDB13に記録できる記録量として定められた閾値(すなわち、記録可能閾値)が、5分あたりinsert文100万行であるものとする。すなわち、リアルタイムDB13が5分間にinsert文100万行の記録を許容するものとする。
【0033】
このとき、記録対象データが、集計対象のトラフィック情報の種類ごとに、例えば、insert文10万行、insert文20万行存在する場合、記録量の合計はinsert文30万行分である。そのため、記録量管理部121は、DB更新部122に全ての記録対象データをリアルタイムDB13へ記憶させる。
【0034】
一方、記録対象データが、集計対象のトラフィック情報の種類ごとに、例えば、insert文150万行、insert文30万行存在する場合、記録量の合計はinsert文180万行分である。そのため、記録量管理部121は、DB更新部122に後者のinsert文30万行の記録対象データだけをリアルタイムDB13へ記憶させる。
【0035】
さらに、記録対象データが、集計対象のトラフィック情報の種類ごとに、例えば、insert文30万行、insert文40万行、及び、insert文50万行存在する場合、記録量の合計はinsert文120万行分である。そのため、記録量管理部121は、DB更新部122に前者のinsert文30万行及びinsert文40万行の記録対象データだけをリアルタイムDB13へ記憶させる。
【0036】
なお、記録量が記録可能閾値を超えた場合にリアルタイムDB13へ記憶させる記録対象データの選択方法は、上記方法に限定されない。記録量管理部121は、単位時間あたりにリアルタイムDB13に記録できる記録量が、記録可能閾値以下になるように記録対象データを選択すればよい。
【0037】
DB更新部122は、記録量管理部121の指示に応じ、逐次集計部11が集計した記録対象データをリアルタイムDB13へ記憶させる。すなわち、DB更新部122は、記録対象データをリアルタイムDB13へ登録するということができる。また、DB更新部122は、記録対象データをリアルタイムDB13へ記憶させる際にエラーが発生した場合には、そのエラー内容を欠損管理部123に通知する。
【0038】
欠損管理部123は、記録放棄や記録エラーなどを管理する。具体的には、欠損管理部123は、記録量管理部121から記録対象データを受け取ると、その記録対象データを主参照集計部2が備える後述の集計値DB21に記憶させる。また、欠損管理部123は、DB更新部122から記録エラーなどのエラー内容を受け取ると、エラーになった対象の記録対象データを集計値DB21に記憶させる。具体的には、欠損管理部123は、主参照集計部2が集計値DB21に記録対象データを記憶させるために必要な情報を主参照集計部2に送信する。
【0039】
なお、以下の説明では、欠損管理部123が、記録量管理部121から受け取った記録対象データと、DB更新部122から受け取った記録対象データのいずれも集計値DB21に記憶させる場合について説明する。ただし、欠損管理部123は、記録量管理部121から受け取った記録対象データのみを集計値DB21に記憶させるようにしてもよい。
【0040】
以下、欠損管理部123が主参照集計部2に送信する内容について説明する。欠損管理部123は、主参照集計部2がトラフィックDB3に記憶されたトラフィック情報をもとに記録対象データの再集計を行うにあたり、記録対象データの集計対象を特定するために必要な情報をその記録対象データから生成し、生成した情報を主参照集計部2に送信する。
【0041】
例えば、欠損管理部123は、記録量管理部121から受け取った記録対象データから「送信先アドレスが10.1.1.0〜10.1.1.255、プロトコルtcpに対する、2010/01/26 10:10:00から5分間のポート番号ごとのパケット数」といった情報を生成し、この情報を主参照集計部2に送信してもよい。
【0042】
また、欠損管理部123は、「通信モニタ装置Xが抽出したトラフィック情報のうち、送信先アドレスが10.2.1.0〜10.2.1.255)」であり、プロトコルtcpに対する、2010/01/25 00:00:00から1日間の送信元IPアドレスのユニーク数」といった情報を記録対象データから生成してもよい。
【0043】
以下、欠損管理部123が記録対象データから生成した集計対象を特定するために必要な情報を欠損情報と記す。このように、欠損管理部123は、記録対象データから集計対象を特定することから、欠損管理部123が抽出する欠損情報とは、逐次集計部11が集計の対象とした通信トラフィックを特定する情報ということもできる。
【0044】
なお、欠損管理部123が作成する欠損情報は、主参照集計部2がトラフィックDB3に記憶されたトラフィック情報をもとに記録対象データの再集計できる内容であれば、上記内容に限定されない。
【0045】
以下、欠損管理部123が記録対象データをもとに作成した欠損情報を主参照集計部2に送信する場合について説明する。なお、欠損管理部123は、欠損情報を作成せず、記録対象データをそのまま主参照集計部2に送信してもよい。ただし、記録対象データのデータ量は大きいため、記録対象データの集計対象を特定する欠損情報のみを送信する方が通信量を削減できるため、より好ましい。
【0046】
以上のように、記録部12は、全体(すなわち、記録量管理部121、DB更新部122及び欠損管理部123)として単位時間ごとに集計されたトラフィック情報の集計値の記録を管理する。
【0047】
バルク転送部14は、リアルタイムDB13からデータをまとめて取り出し、そのデータを主参照集計部2へ送信する。バルク転送部14は、定期的(例えば、1時間に1度、もしくは、1日に1度)に、集計の単位時間より大きな単位でリアルタイムDB13からデータを読み取り、読み取ったデータを主参照集計部2へ送信する。なお、リアルタイムDB13から読み取るデータのデータ量は、予め定められていてもよく、リアルタイムDB13に記憶されているデータ量に応じて定められてもよい。
【0048】
以上のように、リアルタイム集計部1では、リアルタイムに集計した結果を記録する。
【0049】
主参照集計部2は、集計値DB21と、欠損補完部22と、バッチ集計部23と、バルク更新部24とを備えている。
【0050】
集計値DB21は、過去の集計結果を蓄積する。具体的には、集計値DB21は、リアルタイムDB13と同様に、単位時間ごとのトラフィック情報の集計値を記憶する。ただし、集計値DB21は、リアルタイムDB13とは異なる装置である。集計値DB21は、例えば、トラフィック集計装置が備える磁気ディスク装置等によって実現される。
【0051】
欠損補完部22は、欠損管理部123から受け取った欠損情報から、リアルタイムDB13に記憶されなかった記録対象データ(以下、欠損部分と記すこともある。)の作成をバッチ集計部23に対して指示する。
【0052】
バッチ集計部23は、欠損管理部123から受け取った欠損情報及びトラフィックDB3に記憶されたトラフィック情報をもとに、単位時間あたりのトラフィック情報を一括で集計する。そして、バッチ集計部23は、集計したトラフィック情報の集計値を集計値DB21に記憶させる。すなわち、バッチ集計部23は、集計値を集計値DB21へ登録するということができる。
【0053】
例えば、主参照集計部2が欠損管理部123から上述の「送信先アドレスが10.1.1.0〜10.1.1.255、プロトコルtcpに対する、2010/01/26 10:10:00から5分間のポート番号ごとのパケット数」といった欠損情報を受け取ったものとする。このとき、バッチ集計部23は、トラフィックDB3から「送信先アドレスが10.1.1.0〜10.1.1.255、プロトコルtcpに対する、2010/01/26 10:10:00〜10:14:59」に該当するデータを読み取る。そして、バッチ集計部23は、読み取ったトラフィック情報のパケット数をポート番号ごとに集計する。
【0054】
なお、上記説明では、バッチ集計部23が単位時間あたりのトラフィック情報を集計する場合について説明した。ただし、バッチ集計部23が集計する内容は、単位時間あたりのトラフィック情報に限定されない。言い換えると、バッチ集計部23は、欠損補完部22の指示に従って、トラフィックDB3に記憶されたトラフィック情報をもとに任意の集計を行い、その集計結果を集計値DB21に記憶させるということができる。
【0055】
このように、本実施形態では、逐次集計部11で集計した集計結果をそのまま集計値DB21に記憶させず、バッチ集計部23が、記録対象データから作成された欠損情報を用いて再度集計処理を行い、集計値DB21に集計結果を記録する。そのため、欠損管理部123から欠損補完部22に伝送される情報量が欠損情報だけでよく、通信量を削減できる。特に、リアルタイム集計部1と主参照集計部2とが別装置であるような場合、両装置の間の通信量を削減できるため、上記効果は顕著に現れる。
【0056】
バルク更新部24は、バルク転送部14から受け取ったデータをもとに集計値DB21の内容を更新する。
【0057】
以上のことから、主参照集計部2は、集計結果を蓄積していると言える。
【0058】
参照部4は、集計値の参照を行う。具体的には、参照部4は、ユーザの指示に応じ、ユーザが抽出したい記録対象データを集計値DB21もしくはリアルタイムDB13から読み取る。
【0059】
逐次集計部11と、記録部12(より詳しくは、記録量管理部121と、DB更新部122と、欠損管理部123)と、バルク転送部14と、欠損補完部22と、バッチ集計部23と、バルク更新部24と、参照部4とは、プログラム(トラフィック集計プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、トラフィック集計装置の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、逐次集計部11、記録部12(より詳しくは、記録量管理部121、DB更新部122及び欠損管理部123)、バルク転送部14、欠損補完部22、バッチ集計部23、バルク更新部24及び参照部4として動作してもよい。
【0060】
また、逐次集計部11と、記録部12(より詳しくは、記録量管理部121と、DB更新部122と、欠損管理部123)と、バルク転送部14と、欠損補完部22と、バッチ集計部23と、バルク更新部24と、参照部4とは、それぞれが専用のハードウェアで実現されていてもよい。
【0061】
すなわち、上記説明では、1つのトラフィック集計装置にリアルタイム集計部1と主参照集計部2を備える場合について説明している。ただし、リアルタイム集計に影響を与える処理を分散させる(すなわち、欠損部分を欠損補完部22、バッチ集計部23、集計値DB21等に補完させる)ことから、リアルタイム集計部1と主参照集計部2とは、異なるハードウェアで実現されることがより好ましい。
【0062】
また、欠損管理部123が、作成した欠損情報を、その欠損情報及びトラフィックDB3に記憶されたトラフィック情報をもとに単位時間あたりのトラフィック情報を一括で集計する装置(図示せず。以下、一括集計装置と記す。)に送信してもよい。そして、バッチ集計部23が、その一括集計装置から受信した集計値を集計値DB21に登録してもよい。このようにすることで、リアルタイム集計に影響を与える処理を分散させることができるため、リアルタイムでトラフィック集計を行う場合に、大量トラフィックが発生してもその影響を受けにくくできる。
【0063】
次に、動作について説明する。以下の説明では、トラフィック集計装置が行う処理を、リアルタイム集計処理、バッチ集計処理、バルク転送処理、集計データ参照処理の4つの処理に分けて説明する。なお、トラフィック集計装置行うこれら4つの処理は、それぞれ独立して行われる。以下、それぞれの処理について説明する。
【0064】
初めに、リアルタイム集計処理について説明する。図2は、リアルタイム集計処理の例を示すフローチャートである。リアルタイム集計処理では、まず、逐次集計部11は、単位時間あたりのトラフィック情報を集計する(ステップA1)。次に、集計結果(記録対象データ)をリアルタイムDB13に記録するため、逐次集計部11は、記録対象データを記録部12に渡す(ステップA2)。記録部12では、記録量管理部121が、単位時間あたりの記録対象データのデータ量とDB更新可能な記録量を確認する。すなわち、記録量管理部121は、記録放棄するか否かを判定する(ステップA3)。
【0065】
記録対象データのデータ量がDB更新可能な記録量よりも多い場合、記録量管理部121は、記録放棄すると判断し(ステップA3におけるYes)、記録対象データを欠損管理部123に渡す。欠損管理部123は、記録量管理部121から受け取った記録対象データをもとに欠損情報を作成し、作成した欠損情報を欠損補完部22に渡して(ステップA6)、リアルタイム集計処理を終了する。
【0066】
一方、記録対象データのデータ量がDB更新可能な記録量以下の場合、記録量管理部121は、記録放棄しないと判断し(ステップA3におけるNo)、記録対象データをDB更新部122に渡す。そして、DB更新部122は、記録対象データを用いてリアルタイムDB13を更新する(ステップA4)。
【0067】
ここで、DB更新部122は、リアルタイムDB13への更新処理が成功したか否か判断する(ステップA5)。更新処理が成功した場合(ステップA5におけるYes)、リアルタイム集計処理を終了する。一方、更新処理が成功しなかった場合(ステップA5におけるNo)、DB更新部122は、記録対象データを欠損管理部123に渡す。そして、欠損管理部123は、DB更新部122から受け取った記録対象データをもとに欠損情報を作成し、作成した欠損情報を欠損補完部22に渡して(ステップA6)、リアルタイム集計処理を終了する。
【0068】
次に、バッチ集計処理について説明する。図3は、バッチ集計処理の例を示すフローチャートである。バッチ集計処理では、まず、欠損補完部22が、欠損管理部123から受けとった欠損情報に基づき、バッチ集計部23にバッチ集計の実行を指示する(ステップB1)。バッチ集計部23は、トラフィックDB3から対象期間の必要なトラフィック情報を取得し、集計を行う(ステップB2)。最後に、バッチ集計部23は、集計結果をもとに集計値DB21の更新処理を行い(ステップB3)、バッチ集計処理を終了する。
【0069】
次に、バルク転送処理について説明する。図4は、バルク転送処理の例を示すフローチャートである。バルク転送処理では、まず、バルク転送部14が、集計の単位時間より大きな任意の単位(例えば、1時間に1度や、1日に1度)で定期的に、リアルタイムDB13からデータを読み取る。そして、バルク転送部14は、データを読み取れたことを確認し、データを読み取れた場合にはリアルタイムDB13から読み取ったデータを削除する(ステップC1)。なお、データが読み取れなかった場合には、バルク転送部14は、処理を終了してもよく、再度データの読み取りを実行してもよい。
【0070】
次に、バルク転送部14は、読み取ったデータをバルク更新部24に渡す(ステップC2)。最後に、バルク更新部24は、受け取ったデータを集計値DB21に反映し(ステップC3)、バルク転送処理を終了する。
【0071】
なお、ステップC1でバルク転送部14が、リアルタイムDB13からデータを読み取る際、読み取られるデータのデータ形式は、データベースのバックアップに用いられるデータ形式であってもよい。このように、データベースの内部データ形式のデータを用いることで、バルク転送部14がバルク更新部24にデータを渡す処理における通信量を削減することができる。さらに、このようなデータを用いることで、バルク更新部24が集計値DB21を更新する処理効率を向上させることができる。
【0072】
次に、集計データ参照処理について説明する。図5は、集計データ参照処理の例を示すフローチャートである。集計データ参照処理では、まず、参照部4は、ユーザの指示に応じ、ユーザが抽出したい記録対象データを集計値DB21から読み取る(ステップD1)。集計値DB21から読み取った記録対象データよりも新しい(すなわち、後の時間の)データが必要な場合(ステップD2におけるYes)、参照部4は、ユーザが抽出したい記録対象データ(集計データ)をリアルタイムDB13から読み取る(ステップD3)。
【0073】
リアルタイムDB13から記録対象データを読み取ったあと、もしくは、集計値DB21から読み取った記録対象データよりも新しい(すなわち、後の時間の)データが必要でない場合(ステップD2におけるNo)、参照部4は、ユーザが他に読み取りたい(参照したい)データが存在するか否か判断する(ステップD4)。例えば、ユーザから、他に参照したいデータがあると指示された場合(ステップD4におけるYes)、参照部4は、ステップD1以降の処理を繰り返す。一方、他に参照したいデータがないと指示された場合(ステップD4におけるNo)、集計データ参照処理を終了する。
【0074】
以上のように、本実施形態によれば、逐次集計部11が、単位時間ごとの通信トラフィックをリアルタイムに集計する。そして、記録量管理部121が、単位時間ごとに集計された通信トラフィックの集計量が、上述の記録可能閾値よりも多いか否かを判定する。通信トラフィックの集計量が記録可能閾値よりも多いと判定されたときに、欠損管理部123が、通信トラフィックの集計値を集計値DB21に登録する。一方、通信トラフィックの集計量が記録可能閾値以下であると判定されたときに、DB更新部122が、通信トラフィックの集計値をリアルタイムDB13に登録する。
【0075】
具体的には、集計値DB21に通信トラフィックの集計値を登録する際に、欠損管理部123が、集計対象情報を生成する。そして、バッチ集計部23が、トラフィックDB3に記憶された通信トラフィックから単位時間あたりの通信トラフィックを集計対象情報をもとに一括で集計し、集計された集計値を集計値DB21に登録する。
【0076】
そのような構成により、リアルタイムでトラフィック集計を行う場合に、大量トラフィックが発生してもその影響を受けにくくできる。すなわち、大量トラフィックによる影響を受けにくく、リアルタイムに様々な観点でのトラフィック集計が可能になり、集計処理が出来なくなることを回避できる。
【0077】
また、本実施形態によれば、リアルタイム集計を記録するデータベース(本実施形態では、リアルタイムDB13)と、集計値を記録するデータベース(本実施形態では集計値DB21)とを別に用意している。そして、記録量管理部121が、単位時間以内にデータベースへの記録が難しいと判定したデータの登録を放棄(すなわち、欠損管理部123で記録対象データを通知)し、バルク転送部14が、定期的にリアルタイム集計を記録するデータベースのデータを、集計値を記録するデータベースに移している。このような構成により、リアルタイム集計に影響する負荷を可能な限り少なくしている。また、データベースに対する記録処理が集計単位時間内に完了しないほどトラフィック量や集計結果の情報量が多くなった場合でも、リアルタイム集計を行い続けることができる。
【0078】
一般に、リアルタイム集計では、単位時間ごとの集計値を一定の時間以内に記録する必要がある。ここで、時間内に記録することを妨げる障壁になるのが、データベースへのアクセス、特にディスクI/Oである。例えば、単位時間以内でDBに記録する集計データの記録量が多い処理が実行されると、DBへの記録処理が完了する前に、次に記録すべき集計データが用意されることになる。集計の種類が少なく、記録量の増加が一時的なものであれば、データのキャッシングや、処理のキューイングなどを併用することにより対処可能なケースも存在する。ここで、集計の種類が多岐にわたる場合には、他の種類の集計処理も行われることになる。しかし、集計データの記録量が多い処理が実行されると、集計される記録量が少ない他の種類の集計処理も影響を受け、データベースへの記録処理が遅延したり、最悪の場合、集計自体が行えなくなってしまったりという現象も発生し得る。さらに、記録量の増加が暫く続き、キャッシングやキューイングが増え続けて許容量の限界を超えてしまうと、集計自体が行えない現象が発生することもある。
【0079】
しかし、本実施形態によれば、記録量管理部121が、単位時間以内にデータベースへの記録が難しいと判定したデータの登録を放棄(すなわち、欠損管理部123で記録対象データを通知)する。そのため、ディスクI/Oの負荷が上昇することを抑え、他の集計結果をデータベースへ記録する際の影響を取り除くことができる。
【0080】
言い換えると、本実施形態によれば、データベースへの更新を行う前に記録量を推定して、単位時間以内に終了しないことが予測される場合、リアルタイムDB13へのデータの格納処理(例えば、SQL(Structured Query Language )を用いたRDB(relational database )への格納処理の場合、insert処理やupdate処理など)を行わない。そのため、他の集計処理への影響を取り除くことができる。
【0081】
また、欠損管理部123が、放棄したデータについての欠損情報を作成し、バッチ集計部23が、リアルタイム集計という時間制約を受けない別のデータベース(本実施形態では、集計値DB21)に、バッチ処理で欠損部分の集計および記録を行い、リアルタイムDB13に未登録の集計データを補完する。そのため、データ欠損を防ぐことができる。
【0082】
さらに、バルク転送部14及びバルク更新部24が、リアルタイム集計用のデータベース(本実施形態では、リアルタイムDB13)から、別のデータベース(本実施形態では、集計値DB21)へ定期的にデータを移すことで、リアルタイム集計用のデータベースに蓄積されるデータ量自体を抑えている。そのため、データベース更新に伴って発生するインデックスの更新を高速化でき、さらに、インデックスの更新に伴う負荷を低減できる。
【0083】
また、長期間にわたる過去データの抽出処理や、複雑な条件によるデータ抽出処理は、データベースのCPU負荷やディスクI/O負荷を高くしてしまう。しかし、本実施形態によれば、過去のデータはリアルタイム集計用のデータベースではない別のデータベース側に蓄積されることになる。よって、上記抽出処理を行うような場合であっても、リアルタイム集計用のデータベースにおけるCPU負荷やディスクI/O負荷が高くなることを抑制できる。
【0084】
さらに、本実施形態では、リアルタイムDB13と集計値DB21とを分離させ、データベース間でデータを連携させる機能(具体的には、欠損管理部123、欠損補完部22、バッチ集計部23及びトラフィックDB3)を備えている。そのため、トラフィック量や集計する種類の数、演算処理速度や記録処理速度などのマシンスペックなどに応じた、システム構成の変更が容易になる。
【0085】
例えば、リアルタイム集計を行うコンピュータのマシンスペックが不足している場合や、多種多様な集計を行う場合、リアルタイム集計部1をn個(nは、n>1を満たす整数)に増やして処理を分散させることでマシンスペック不足を解決することができる。なお、なお、リアルタイム集計部1を増加させた場合において、リアルタイム集計部1の各バルク転送部14が、各リアルタイムDB13から読み取ったデータを集計値DB21へ定期的に移す場合には、バルク更新部24は、各バルク転送部14から受け取ったデータの内容をマージすればよい。また、主参照集計部2も集計の種類ごとに複数用意してもよい。
【0086】
このように、集計の種類が増加した場合や、演算処理能力及び記録処理能力が不足した場合などにシステム構成を変更することで、リアルタイム集計を行い続けることが可能になる。
【0087】
次に、本発明によるトラフィック集計装置の最小構成の例を説明する。図6は、本発明によるトラフィック集計装置の最小構成の例を示すブロック図である。本発明によるトラフィック集計装置は、単位時間ごとの通信トラフィックをリアルタイムに集計するトラフィック集計手段81(例えば、逐次集計部11)と、トラフィック集計手段81が集計した通信トラフィックの集計値(例えば、記録対象データ)を第一の集計値記憶手段82(例えば、リアルタイムDB13)に登録する第一の集計値登録手段83(例えば、DB更新部122)と、単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに第一の集計値記憶手段82に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定する記録量判定手段84(例えば、記録量管理部121)と、記録量判定手段84が通信トラフィックの集計量が記録可能閾値よりも多いと判定したときに、通信トラフィックの集計値を第二の集計値記憶手段85(例えば、集計値DB21)に登録する第二の集計値登録手段86(例えば、欠損管理部123、欠損補完部22、バッチ集計部23、トラフィックDB3)とを備えている。
【0088】
第一の集計値登録手段83は、記録量判定手段84が通信トラフィックの集計量が記録可能閾値以下であると判定したときに、通信トラフィックの集計値を第一の集計値記憶手段82に登録する。
【0089】
そのような構成により、リアルタイムでトラフィック集計を行う場合に、大量トラフィックが発生してもその影響を受けにくくできる。
【0090】
また、本発明によるトラフィック集計装置は、通信トラフィックを記憶する通信トラフィック記憶手段(例えば、トラフィックDB3)を備えていてもよい。そして、第二の集計値登録手段86は、トラフィック集計手段81が集計の対象とした通信トラフィックを特定する情報である集計対象情報(例えば、欠損情報)を生成する集計対象情報生成手段(例えば、欠損管理部123)、通信トラフィック記憶手段に記憶された通信トラフィックから単位時間あたりの通信トラフィックを集計対象情報をもとに一括で集計する一括集計手段(バッチ集計部23)と、一括集計手段が集計した集計値を第二の集計値記憶手段85に登録する一括集計値登録手段(バッチ集計部23)とを含んでいてもよい。
【0091】
そのような構成によっても、リアルタイムでトラフィック集計を行う場合に、大量トラフィックが発生してもその影響を受けにくくできる。
【0092】
なお、少なくとも以下に示すようなトラフィック集計装置も、上記に示すいずれかの実施形態に開示されている。
【0093】
(1)単位時間ごとの通信トラフィックをリアルタイムに集計するトラフィック集計手段(例えば、逐次集計部11)と、トラフィック集計手段が集計した通信トラフィックの集計値(例えば、記録対象データ)を第一の集計値記憶手段(例えば、リアルタイムDB13)に登録する第一の集計値登録手段(例えば、DB更新部122)と、単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに第一の集計値記憶手段に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定する記録量判定手段(例えば、記録量管理部121)と、記録量判定手段が通信トラフィックの集計量が記録可能閾値よりも多いと判定したときに、通信トラフィックの集計値を第二の集計値記憶手段(例えば、集計値DB21)に登録する第二の集計値登録手段(例えば、欠損管理部123、欠損補完部22、バッチ集計部23、トラフィックDB3)とを備え、第一の集計値登録手段が、記録量判定手段が通信トラフィックの集計量が記録可能閾値以下であると判定したときに、通信トラフィックの集計値を第一の集計値記憶手段に登録するトラフィック集計装置。
【0094】
(2)通信トラフィックを記憶する通信トラフィック記憶手段(例えば、トラフィックDB3)を備え、第二の集計値登録手段が、トラフィック集計手段が集計の対象とした通信トラフィックを特定する情報である集計対象情報(例えば、欠損情報)を生成する集計対象情報生成手段(例えば、欠損管理部123)、通信トラフィック記憶手段に記憶された通信トラフィックから単位時間あたりの通信トラフィックを集計対象情報をもとに一括で集計する一括集計手段(バッチ集計部23)と、一括集計手段が集計した集計値を第二の集計値記憶手段に登録する一括集計値登録手段(バッチ集計部23)とを含むトラフィック集計装置。
【0095】
(3)通信トラフィック記憶手段に記憶された通信トラフィックから単位時間あたりの通信トラフィックを集計対象情報をもとに一括で集計する装置である一括集計装置に、その集計対象情報を送信する集計対象情報送信手段(例えば、欠損管理部123)を備え、一括集計値登録手段(例えば、バッチ集計部23)が、一括集計装置から受信した集計値を第二の集計値記憶手段に登録するトラフィック集計装置。
【0096】
(4)第一の集計値記憶手段から所定の時間間隔でデータを抽出する集計値抽出手段(例えば、バルク転送部14)と、集計値抽出手段が抽出したデータを第二の集計値記憶手段に更新する集計値更新手段(例えば、バルク更新部24)とを備えたトラフィック集計装置。
【0097】
(5)第一の集計値記憶手段または第二の集計値記憶手段に記憶された通信トラフィックの集計値を参照する集計値参照手段(例えば、参照部4)を備え、集計値参照手段が、第二の集計値記憶手段に記憶された集計値を参照し、その集計値よりも新しい集計値を第一の集計値記憶手段から参照するトラフィック集計装置。
【産業上の利用可能性】
【0098】
本発明は、ネットワーク上に流れる通信トラフィックを集計する場合において、大量トラフィックによる影響を受けにくいトラフィック集計装置に好適に適用される。
【0099】
なお、上記実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下の内容に限定されない。
【0100】
(付記)通信トラフィックを記憶する通信トラフィック記憶手段を備えたコンピュータに適用されるトラフィック集計プログラムであって、前記コンピュータに、第二の集計値登録処理で、トラフィック集計処理で集計の対象とされた通信トラフィックを特定する情報である集計対象情報を生成する集計対象情報生成処理、前記通信トラフィック記憶手段に記憶された通信トラフィックから単位時間あたりの通信トラフィックを前記集計対象情報をもとに一括で集計する一括集計処理、および、前記一括集計処理で集計された集計値を第二の集計値記憶手段に登録する一括集計値登録処理を実行させるトラフィック集計プログラム。
【符号の説明】
【0101】
1 リアルタイム集計部
2 主参照集計部
3 トラフィックDB
4 参照部
11 逐次集計部
12 記録部
121 記録量管理部
122 DB更新部
123 欠損管理部
13 リアルタイムDB
14 バルク転送部
21 集計値DB
22 欠損補完部
23 バッチ集計部
24 バルク更新部

【特許請求の範囲】
【請求項1】
単位時間ごとの通信トラフィックをリアルタイムに集計するトラフィック集計手段と、
前記トラフィック集計手段が集計した通信トラフィックの集計値を第一の集計値記憶手段に登録する第一の集計値登録手段と、
単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに前記第一の集計値記憶手段に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定する記録量判定手段と、
前記記録量判定手段が通信トラフィックの集計量が記録可能閾値よりも多いと判定したときに、前記通信トラフィックの集計値を第二の集計値記憶手段に登録する第二の集計値登録手段とを備え、
前記第一の集計値登録手段は、前記記録量判定手段が通信トラフィックの集計量が記録可能閾値以下であると判定したときに、通信トラフィックの集計値を前記第一の集計値記憶手段に登録する
ことを特徴とするトラフィック集計装置。
【請求項2】
通信トラフィックを記憶する通信トラフィック記憶手段を備え、
第二の集計値登録手段は、
トラフィック集計手段が集計の対象とした通信トラフィックを特定する情報である集計対象情報を生成する集計対象情報生成手段と、
前記通信トラフィック記憶手段に記憶された通信トラフィックから単位時間あたりの通信トラフィックを前記集計対象情報をもとに一括で集計する一括集計手段と、
前記一括集計手段が集計した集計値を第二の集計値記憶手段に登録する一括集計値登録手段とを含む
請求項1記載のトラフィック集計装置。
【請求項3】
通信トラフィック記憶手段に記憶された通信トラフィックから単位時間あたりの通信トラフィックを前記集計対象情報をもとに一括で集計する装置である一括集計装置に、当該集計対象情報を送信する集計対象情報送信手段を備え、
一括集計値登録手段は、前記一括集計装置から受信した集計値を第二の集計値記憶手段に登録する
請求項2記載のトラフィック集計装置。
【請求項4】
第一の集計値記憶手段から所定の時間間隔でデータを抽出する集計値抽出手段と、
前記集計値抽出手段が抽出したデータを第二の集計値記憶手段に更新する集計値更新手段とを備えた
請求項1から請求項3のうちのいずれか1項に記載のトラフィック集計装置。
【請求項5】
第一の集計値記憶手段または第二の集計値記憶手段に記憶された通信トラフィックの集計値を参照する集計値参照手段を備え、
前記集計値参照手段は、
第二の集計値記憶手段に記憶された集計値を参照し、
前記集計値よりも新しい集計値を第一の集計値記憶手段から参照する
請求項1から請求項4のうちのいずれか1項に記載のトラフィック集計装置。
【請求項6】
単位時間ごとの通信トラフィックをリアルタイムに集計し、
単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに第一の集計値記憶手段に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定し、
通信トラフィックの集計量が前記記録可能閾値よりも多いと判定されたときに、前記通信トラフィックの集計値を、前記第一の集計値記憶手段とは異なる第二の集計値記憶手段に登録し、
通信トラフィックの集計量が前記記録可能閾値以下であると判定されたときに、前記通信トラフィックの集計値を前記第一の集計値記憶手段に登録する
ことを特徴とするトラフィック集計方法。
【請求項7】
第二の集計値記憶手段に通信トラフィックの集計値を登録する際に、
集計の対象とされた通信トラフィックを特定する情報である集計対象情報を生成し、
通信トラフィックを記憶する通信トラフィック記憶手段に記憶された当該通信トラフィックから単位時間あたりの通信トラフィックを前記集計対象情報をもとに一括で集計し、
集計された集計値を第二の集計値記憶手段に登録する
請求項6記載のトラフィック集計方法。
【請求項8】
通信トラフィック記憶手段に記憶された通信トラフィックから単位時間あたりの通信トラフィックを前記集計対象情報をもとに一括で集計する装置である一括集計装置に、当該集計対象情報を送信し、
第二の集計値記憶手段には、前記一括集計装置から受信した集計値を登録する
請求項7記載のトラフィック集計方法。
【請求項9】
第一の集計値記憶手段から所定の時間間隔でデータを抽出し、
抽出したデータを第二の集計値記憶手段に更新する
請求項7または請求項8記載のトラフィック集計方法。
【請求項10】
単位時間ごとの通信トラフィックの集計値を記憶する第一の集計値記憶手段と、単位時間ごとの通信トラフィックの集計値を記憶する第二の集計値記憶手段とを備えたコンピュータに適用されるトラフィック集計プログラムであって、
前記コンピュータに、
単位時間ごとの通信トラフィックをリアルタイムに集計するトラフィック集計処理、
前記トラフィック集計処理で集計された通信トラフィックの集計値を前記第一の集計値記憶手段に登録する第一の集計値登録処理、
単位時間ごとに集計された通信トラフィックの集計量が、その単位時間あたりに前記第一の集計値記憶手段に記録できる記録量として予め定められた閾値である記録可能閾値よりも多いか否かを判定する記録量判定処理、および、
前記記録量判定処理で通信トラフィックの集計量が記録可能閾値よりも多いと判定されたときに、前記通信トラフィックの集計値を前記第二の集計値記憶手段に登録する第二の集計値登録処理を実行させ、
前記第一の集計値登録処理で、前記記録量判定処理で通信トラフィックの集計量が記録可能閾値以下であると判定されたときに、通信トラフィックの集計値を前記第一の集計値記憶手段に登録させる
ことを特徴とするトラフィック集計プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−166270(P2011−166270A)
【公開日】平成23年8月25日(2011.8.25)
【国際特許分類】
【出願番号】特願2010−24182(P2010−24182)
【出願日】平成22年2月5日(2010.2.5)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】