JP2009277023A - データ紐付けプログラム,情報処理装置およびデータ紐付け方法 - Google Patents
データ紐付けプログラム,情報処理装置およびデータ紐付け方法 Download PDFInfo
- Publication number
- JP2009277023A JP2009277023A JP2008127805A JP2008127805A JP2009277023A JP 2009277023 A JP2009277023 A JP 2009277023A JP 2008127805 A JP2008127805 A JP 2008127805A JP 2008127805 A JP2008127805 A JP 2008127805A JP 2009277023 A JP2009277023 A JP 2009277023A
- Authority
- JP
- Japan
- Prior art keywords
- data
- event data
- linking
- search condition
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】イベントデータの分散処理において,イベントデータの紐付けを行うマシンの台数を増やしても通信コストを増大させないことが可能となる技術を提供する。
【解決手段】特定の装置を出発地とするイベントデータが入力部11により入力され,データ保管部12に保管される。紐付け判定部14は,入力された検索子の検索条件とイベントデータとのマッチングを行い,双方がマッチする場合には,紐付け部16により,イベントデータと検索子が持つイベントデータ紐付けの途中結果との紐付けを行う。検索子生成部18は,次に紐付けるイベントデータの検索条件とそれまでのイベントデータの紐付け途中結果を含む検索子を生成する。出力部19は,最後に紐付けられたイベントデータの到着地となる装置から発行されるイベントデータを保管するシステム可視化サーバ1に,生成された検索子を出力する。
【選択図】図4
【解決手段】特定の装置を出発地とするイベントデータが入力部11により入力され,データ保管部12に保管される。紐付け判定部14は,入力された検索子の検索条件とイベントデータとのマッチングを行い,双方がマッチする場合には,紐付け部16により,イベントデータと検索子が持つイベントデータ紐付けの途中結果との紐付けを行う。検索子生成部18は,次に紐付けるイベントデータの検索条件とそれまでのイベントデータの紐付け途中結果を含む検索子を生成する。出力部19は,最後に紐付けられたイベントデータの到着地となる装置から発行されるイベントデータを保管するシステム可視化サーバ1に,生成された検索子を出力する。
【選択図】図4
Description
本発明は,関係するイベントデータ同士の紐付け処理を行う技術に関するものであり,特に,複数の情報処理装置によって紐付け処理を行う場合に,効率的なイベントデータの分散配置を可能とし,紐付け処理を行う情報処理装置の台数を増やしても通信コストを増大させないことを可能とするデータ紐付けプログラム,情報処理装置およびデータ紐付け方法に関するものである。
イベントデータ,もしくはストリームデータと呼ばれるデータは,現在,様々な場面で利用され始めている。イベントデータとは,“ある時点(time)における事象(data)”を表した時系列データである。スタンフォード大学の研究チームでは,イベントデータを,
"Continuous, unbounded, rapid, time-varying streams of data elements"
と定義している。
"Continuous, unbounded, rapid, time-varying streams of data elements"
と定義している。
近年,物流の世界から広がりを見せているRFID(Radio Frequency IDentification)タグを読み取った結果であるセンサデータも,イベントデータの一種である。また,携帯機器の発達やWeb2.0 ,クラウドコンピューティングに代表されるネットワークを介したサービスの充実によって増加しているネットワークトラフィックデータも,イベントデータである。
ここで,イベントデータ処理の応用の1つとして,システム可視化技術を紹介する。
世界中に存在するインターネット上のITサービスの多くは,Web3階層モデルを採用したシステム環境で提供されている。ITサービスのシステム環境は,その重要性が高まる一方で複雑性を増し,部分最適化はできても全体最適化がきわめて難しいという状況が顕在化し始めている。これは,多種多様なコンポーネントからなるITシステムの不具合や性能劣化の発見ならびに特定が難しいということにもつながる。結果として,システム運用管理も煩雑になり,サービス品質(QoS:Quality of Service)の低下を引き起こす可能性がある。
そこで,システム運用者の負荷を軽減し,ITサービスを安定稼働させることを目指して,ITサービスのシステム全体の動作を外部から観測し,リアルタイムで可視化する技術が重要になる。このような技術を,ここでは“システム可視化”と呼ぶ。
以下,システム可視化の実現するための技術の例と,その課題を説明する。
図14は,システム可視化の技術の概要を説明する図である。図14において,システム可視化の対象となるITシステム300は,複数のシステム可視化対象サーバ310から構成されている。
図14に示すシステム可視化では,まず,可視化の対象となるITシステム300のネットワーク機器320(ルータやスイッチ等)を行き来する通信メッセージを,ポートミラーリングと呼ばれる技術を使って外部から観測する。ポートミラーリングは,ネットワーク機器320を通過するメッセージのコピーを,ネットワーク機器320のミラーポートから取得する技術である。この観測方法は,システム可視化対象サーバ310に特別なエージェント等を組み入れる必要がないため,導入が容易であり,かつ対象とするサーバやOSを選ばないというメリットがある。
次に,観測したメッセージから必要な情報を取り出し,ITシステム内部で進行中の業務トランザクションの処理状況を読み解く。このとき,あらかじめデータマイニング技術によって取得された,通常の動作タイミングやフローと業務とを紐付けた“挙動モデル”をもとに,現在の業務トランザクションを一つ一つ判断する。
このようにして得られた情報を,処理内容ごとにまとめた統計情報として,ITシステム300の動作ログとして蓄積したり,グラフやシーケンス図で表示したりすることができる。例えば,図14には,クライアント(Cliant)からメッセージが発行されてから,Webサーバ,アプリケーションサーバ(APサーバ),データベースサーバ(DBサーバ)へと順に関連するメッセージが発行され,逆順を辿ってクライアントに応答のメッセージが返るまでの一連の業務処理において,各サーバの業務処理タイミングが可視化された表示例が示されている。
図15は,システム可視化によって得られた統計情報の表示例を示す図である。図14に示す表示例の他にも,例えば,図15(A)に示すような業務ごとの平均処理時間と内訳を示すグラフや,図15(B)に示すような業務の発生頻度と平均処理時間の分布,図15(C)に示すような業務の平均処理時間の時系列変化など,システム可視化の技術によって様々な統計情報を得ることができる。
システム可視化におけるイベントデータとは,ネットワークを流れるメッセージのことである。イベントデータの特徴の1つとして,関係のある複数のイベントデータを結びつけることにより意味のある情報が得られるというものがある。このような関係のあるイベントデータ同士を結びつけることを,“紐付け”と呼ぶ。システム可視化では,このイベントデータをポートミラーリングによって拾い上げ,それらの中から関係のあるもの同士を紐付けることで,システム環境の挙動の可視化を図る。
図16は,システム可視化の技術における紐付けの例を説明する図である。例えば,図16に示すWeb3階層モデルのシステムにおいて,ユーザPC311がWebサーバ312にHTTPリクエストを送り,HTTPリクエストを受けたWebサーバ312がユーザPC311からのHTTPリクエストに応じたIIOPリクエストをアプリケーションサーバ313に送り,IIOPリクエストを受けたアプリケーションサーバ313がWebサーバ312からのIIOPリクエストに応じたDBリクエストをデータベースサーバ314に送ることを,一連の処理とする。
一連の処理における各イベントデータ(各メッセージ)を,ポートミラーリングにより収集し,関係するもの同士を紐付けする。関係するイベントデータとは,例えば,メッセージ中に同じsession_id番号を持つイベントデータなどである。図16に示す一連の処理の場合,ポートミラーリングにより収集された多数のイベントデータから,一連の処理の流れで順に発行されたHTTPリクエスト,IIOPリクエスト,DBリクエストの互いに関係する組合せを,一連のイベントデータに共通する情報の検出などにより抽出し,それらのイベントデータの紐付けを行い,その紐付け結果を得る。
このようなシステム可視化の技術において,精度の高いシステム可視化を実現するためには,すべてのイベントデータについて何らかの処理を行う必要がある。例えば,システム可視化対象サーバ310が10台あれば,その10台から出されるすべてのイベントデータに対して,「他のイベントデータと紐付けできるか」や「関係のないイベントデータなのか」などの処理を行わなければならない。また,イベントデータは,流量や種類が多く,決まった型が存在するわけではない。さらに,1つのイベントデータに対して,それと紐付けるべきイベントデータが複数であることも多い。つまり,1つのイベントデータに対して行うべき処理は1つと決まっているわけではなく,状況によって変動する。
これらのことは,システム可視化対象サーバ310の台数が多ければ多いほど,イベントデータに対する処理量が増えることを意味する。つまり,大規模なITシステム300にシステム可視化を適用するときには,多数のシステム可視化対象サーバ310から発行されるすべてのイベントデータを処理可能な,高い能力のマシン(情報処理装置)が必要とされる。
しかし,この高性能イベントデータ処理を,1台のマシンで実現することは困難である。システム可視化で要求されるイベントデータ処理のスループットは,システム可視化対象サーバ310の台数に比例する。単純にイベントデータを受け取ることを考えてみても,10台のシステム可視化対象サーバ310から最大性能で出力されるイベントデータを,1台のマシンで受けとることはできない。
さらに,ITシステム300は,利用するユーザ数に合わせて,日々成長する。このことを鑑みると,たとえスタートアップ時には1台のマシンでシステム可視化を実現できていたとしても,処理しなければならないイベントデータの量が1台のマシンでの処理能力を超える日がくることは明らかである。そのため,システム可視化を1台でなく複数のマシンで分散処理することで,処理のスループットを向上させる機構が重要になる。
しかし,大量のイベントデータを複数のマシンで分散処理しようとしても,それぞれのイベントデータについて,発見すべきすべての紐付けモデルに対してあらかじめ最適化したイベントデータの分散配置を用意することはできないため,イベントデータの配置だけを工夫しても効率的な分散処理は実現できない。
ここで,紐付けモデルとは,紐付けするイベントデータがあらかじめ定義されたモデルである。例えば,図16に示す例において紐付けされる一連のイベントデータ,すなわちHTTPリクエスト→IIOPリクエスト→DBリクエストの定義が,紐付けモデルである。
図17は,イベントデータの分散配置の課題を説明する図である。例えば,図17に示すWeb3階層モデルのシステムにおいて,Webサーバ312は,IIOPリクエストをアプリケーションサーバ313に送る。また,アプリケーションサーバ313は,DBリクエストをデータベースサーバ314に送る。図17に示すように,ポートミラーリングによって,#01〜#04の4つのIIOPリクエストと,#11〜#14の4つのDBリクエストが収集されたものとする。
なお,ここでは,イベントデータを解析し,あらかじめ定義された紐付けモデルに従ってイベントデータの紐付けを行う情報処理装置を,解析装置100と呼ぶものとする。
1つのIIOPリクエストと,そのIIOPリクエストに応じた1つのDBリクエストとが紐付けられたものが,紐付けモデルであるものとし,それぞれ対応する組合せのリクエスト(イベントデータ)が同じ解析装置100(a〜d)に配置され,そこで紐付けの処理が行われるようにしたいものとする。ところが,イベントデータが収集された時点では,どのイベントデータとどのイベントデータとが紐付けられるかが分からないため,互いに紐付けられるイベントデータを同じ解析装置100(a〜d)に配置することは,容易ではない。
また,紐付けモデルが1つであるとは限らず,複数の紐付けモデルが定義されており,ある紐付けモデルに定義されたイベントデータが,他の紐付けモデルにも定義されているケースも考えられる。このとき,複数の紐付けモデルに定義されたイベントデータを,どの解析装置100(a〜d)に配置すればよいのかを決定することは容易ではない。それぞれの紐付きモデルに対応する複数の解析装置100(a〜d)にコピーして配置することも考えられるが,もともと膨大な量のイベントデータがコピーによりさらに増えることになり,それらのイベントデータの管理は容易ではない。
このように,紐付けするイベントデータ同士を同じ解析装置100に配置することを考えても,効率的な分散処理は実現できない。
また,分散処理において重要なのは,スケーラビリティである。一般的に,台数効果を阻害する要因は,マシン間の通信オーバヘッドである。効率的なイベントデータの分散処理には,マシンの台数によらず通信コストが変わらないことが重要となる。
図18は,イベントデータの分散処理における通信コストの課題を説明する図である。例えば,図18に示すWeb3階層モデルのシステムにおいて,Webサーバ312がIIOPリクエストをアプリケーションサーバ313に送り,IIOPリクエストを受けたアプリケーションサーバ313がWebサーバ312からのIIOPリクエストに応じたDBリクエストをデータベースサーバ314に送ることを,一連の処理とする。
図18に示すように,ポートミラーリングによって,#01〜#04の4つのIIOPリクエストと,#11〜#14の4つのDBリクエストが収集されたものとする。収集されたイベントデータが単純に複数の解析装置100(a〜h)に配置され,解析装置100(a〜h)間の通信により紐付け相手となるイベントデータが配置された解析装置100(a〜h)を探索する場合において,図18に示すように,収集された8つのイベントデータが,別々の解析装置100(a〜h)に配置されてしまったものとする。
図18において,IIOPリクエスト#01に関係するDBリクエストは,DBリクエスト#11である場合に,IIOPリクエスト#01が配置された解析装置100aは,IIOP#01に関係するDBリクエスト#11が配置された解析装置100eを探索するために,すべての解析装置100(b〜h)に対して通信を行う必要があり,大きな通信オーバヘッドが生じてしまう。このような通信オーバヘッドは,並列処理を行う解析装置100の台数の増加によって増大するため,解析装置100の台数による効果が膨大な通信オーバヘッドによって阻害されてしまう。
このように,イベントデータを分散処理する場合には,データ処理に適したデータ配置を考慮した上で利用するマシンを増やし,スループットをスケーラブルに向上することが必要となる。
なお,複数のノードで分散処理を実行する分散環境において,イベント処理を行う技術がある。この技術では,分散環境における複数のノードのうちいずれかのノードにイベントマネージャを設け,各ノードからの登録イベントと通知イベントとを管理し,いずれかのノードからイベント発生通知があった場合には,管理された登録イベントとの条件比較を行い,一致したときに,そのイベントを登録したノードを呼び出している。
特開平8−129536号公報
本発明は,上記の問題点の解決を図り,効率的なイベントデータの分散配置が可能となり,またイベントデータの紐付けを行うマシンの台数を増やしても通信コストを増大させないことが可能となる技術を提供することを目的とする。
イベントデータの紐付けを行う複数のマシンに対して,イベントデータの出発地ごとに,イベントデータを分散配置し,次に紐付けするイベントデータの検索条件を含む検索子を,イベントデータの到着先情報に基づいてマシン間で転送することにより,関係するイベントデータの紐付けを行う。
具体的には,情報処理装置は,出発地となる装置から到着先の装置までのネットワークを流れる各イベントデータのうち,ある出発地のイベントデータを保存するデータ保管部と,因果関係を有するインベントデータを紐付けするにあたって,紐付け対象イベントデータを検索する検索条件と,紐付けの先頭となるイベントデータまたは既に紐付けが行われている場合にはそのイベントデータ同士の紐付け途中結果である紐付けデータと,を含む紐付け処理要求(後述の検索子に相当)が入力される入力部と,紐付け処理要求に含まれる検索条件に従ってデータ保管部に保存されているイベントデータを検索し,検索条件にマッチするイベントデータが存在する場合に,紐付け処理要求に含まれる紐付け元のイベントデータまたは紐付け途中結果である紐付けデータに,検索条件にマッチするイベントデータを紐付けして新たな紐付けデータを生成する紐付け処理部と,検索条件にマッチするイベントデータの到着先情報に基づいて,紐付け処理要求を送信する装置を決定し,該装置に対し,紐付け対象イベントデータを検索する検索条件と新たな紐付けデータとを含む紐付け処理要求を送信する出力部とを備える。
イベントデータの紐付けを行う複数のマシンに対して出発地ごとにイベントデータを分散配置し,次に紐付けするイベントデータの検索条件を含む検索子をイベントデータの到着先情報に基づいてマシン間で転送することにより関係するイベントデータの紐付けを行うので,イベントデータの紐付けを行うマシンの台数によらず,同じ通信コストでイベントデータの紐付け処理を行うことが可能となる。
以下,本発明の実施の形態について,図を用いて説明する。
図1は,本実施の形態によるシステム可視化構成の概略を示す図である。本実施の形態では,図1に示すように,Web3階層モデルである可視化対象システム3のシステム可視化を例とする。
システム可視化サーバ1は,可視化対象システム3から収集されたイベントデータを解析し,関係するイベントデータ同士の紐付けを行う装置である。本実施の形態によるシステム可視化では,複数のシステム可視化サーバ1により,イベントデータ紐付けの分散処理を行う。
データ分散配置装置2は,可視化対象システム3からポートミラーリングにより収集されたイベントデータを,所定のポリシに従って各システム可視化サーバ1に分散配置する。
図1の例に示す可視化対象システム3は,スイッチ30,Webサーバ31,AP(アプリケーション)サーバ32,DB(データベース)サーバ33,LB(ロードバランサー)34,FW(ファイアウォール)35,DNS(ドメインネームシステム)36を有する。
イベントデータには,その送り手となる装置と受け手となる装置とがある。図1に示すようなWeb3階層モデルにおいて,例えば,リクエストのイベントデータは,ユーザPC(図示省略)からWebサーバ31へ,そのWebサーバ31からAPサーバ32へ,そのAPサーバ32からDBサーバ33へと,順に発行される。そのレスポンスとなるイベントデータは,同じサーバを介して,DBサーバ33から同じAPサーバ32へ,そのAPサーバ32から同じWebサーバ31へ,そのWebサーバから最初のユーザPCへと,返される。
また,あるイベントデータAが発行された場合,そのイベントデータAに関係する次のイベントデータBが発行される装置は,イベントデータAの受け手となる装置である。図1に示すようにAPサーバ32が複数台用意してある場合でも,Webサーバ31のリクエストを受けたAPサーバ32と異なるAPサーバ32から,そのWebサーバ31のリクエストに関係する次のリクエストがDBサーバ33に発行されることはない。すなわち,イベントデータAの受け手である装置が,イベントデータAに関係する次のイベントデータBの送り手の装置となる。
これらのことから,イベントデータをその出発地となる装置ごとにシステム可視化サーバ1に分散させておけば,システム可視化サーバ1では,これから紐付けしようとするイベントデータの到着先情報(宛先の装置を示す情報)を用いて,そのイベントデータと紐付けるべき次のイベントデータが,どのシステム可視化サーバ1に送られるかが予測できる。すなわち,紐付けしようとするイベントデータの到着先となる装置から発行されたイベントデータの分散配置先となるシステム可視化サーバ1に,その紐付けしようとするイベントデータに関係する次のイベントデータが配置される。
データ分散配置装置2は,ポートミラーリングにより,可視化対象システム3の各スイッチ30のミラーポートから,可視化対象システム3のネットワークを流れるイベントデータを収集する。また,収集された各イベントデータを,それぞれのイベントデータの出発地となる装置ごとに分散されるように,各システム可視化サーバ1に分散配置する。
イベントデータの分散配置を行う手法としては,例えば,ハッシュ関数を用いる手法などがある。本実施の形態では,IPアドレスなどのイベントデータの発行元となる装置を特定する情報にハッシュ関数を用い,得られたハッシュ値で分散配置先のシステム可視化サーバ1を決定する。このようなハッシュ関数を用いた手法では,特定のシステム可視化サーバ1に集中的にイベントデータが配置されることを防ぎつつ,イベントデータをその出発地となる装置ごとに各システム可視化サーバ1に分散配置することができる。
各システム可視化サーバ1は,データ分散配置装置2から受け取ったイベントデータを解析し,他のシステム可視化サーバ1との的確な通信により,関係するイベントデータ同士の紐付けを行う。
図2は,本実施の形態の分散並列処理によるイベントデータ紐付け手法の概要を説明する図である。本実施の形態では,イベントデータの配置だけでなく,イベントデータ紐付け処理にも工夫がなされている。
図2において,ある装置から別の装置にイベントデータAが送信される。イベントデータAを受け取った別の装置は,イベントデータAに関係するイベントデータBを発行する。ここでは,イベントデータAの出発地となる装置を特定する情報をp,イベントデータAの到着地すなわちイベントデータBの出発地となる装置を特定する情報をqとする。
ポートミラーリングで取得されたイベントデータAとイベントデータBは,データ分散配置装置2により,それぞれ出発地ごとに各システム可視化サーバ1に分散配置される。ここでは,ハッシュ関数(p)で特定されるシステム可視化サーバ1a,ハッシュ関数(q)で特定されるシステム可視化サーバ1bに,それぞれイベントデータA,イベントデータBが配置されるものとする。
各システム可視化サーバ1は,常に入力を監視している。システム可視化サーバ1aは,入力としてイベントデータAを発見すると,イベントデータA内にある到着地となる装置の情報qを基に,ハッシュ関数(q)で特定されるシステム可視化サーバ1bに検索子を送り込む。
検索子は,次に紐付けを行う紐付け対象イベントデータの情報(検索条件と呼ぶ)と,それまでの紐付け途中結果とを有する。図2に示す例の場合,検索子はイベントデータAの次に検索すべきイベントデータBを検索するための情報と,それまでに紐付けたイベントデータAの情報とを持つ。
検索子を受け取ったシステム可視化サーバ1bは,まず,検索対象となっているイベントデータBがすでに届いているかを確認する。まだ届いていない場合には,検索子が検索子のリストに追加保存される。なお,イベントデータと検索子とのどちらが先に届くかはわからない。この状態でイベントデータBが到着すると,保存されている検索子とのマッチングが行われ,検索子内の紐付け結果にイベントデータBが紐付けられ,紐付け結果はイベントデータA→イベントデータBとなる。
このように,イベントデータをその出発地で各システム可視化サーバ1に分散配置し,次のイベントデータの検索条件とそれまでの紐付け結果を含む検索子を,イベントデータの到着地を辿ってシステム可視化サーバ1間で送受信し合うことにより,少ない通信で関係するイベントデータの紐付けを行うことができる。
図3は,本実施の形態によるイベントデータ紐付けの具体的な例を示す図である。図3(A)に示すように,ユーザPC37(図1では省略)がWebサーバ31にHTTPリクエストを送り,HTTPリクエストを受けたWebサーバ31がHTTPリクエストに応じたIIOPリクエストをAPサーバ32に送り,IIOPリクエストを受けたAPサーバ32がIIOPリクエストに応じたDBリクエストをDBサーバ314に送る処理を,一連の処理とする。
ユーザPC37を示す情報としてpを,Webサーバ31を示す情報としてqを,APサーバ32を示す情報としてrを,DBサーバ33を示す情報としてsを用いる。p,q,r,sは,例えばIPアドレスなどである。
イベントデータは,その発行元装置を示す情報に所定のハッシュ関数を用いてハッシュ値を求め,得られたハッシュ値ごとに各システム可視化サーバ1に分散される。図3(B)において,ユーザPC37(p)から発行されたイベントデータはシステム可視化サーバ1aに入力され,Webサーバ31(q)から発行されたイベントデータはシステム可視化サーバ1bに入力され,APサーバ32(r)から発行されたイベントデータはシステム可視化サーバ1cに入力される。
各システム可視化サーバ1は,紐付けするイベントデータが定義された紐付けモデルの情報を持っている。ここでは,一連の処理としてログインモデルを例とする。紐付けモデルとしては,
(HTTPログイン,ユーザ名,パスワード)
→(IIOP認証,ユーザ名,パスワード)
→(DBパスワード問い合わせ,ユーザ名)
が定義されている。この紐付けモデルにおいて,括弧に囲まれたものが1つのイベントデータの型を意味し,矢印が紐付け順を意味する。括弧内の一番左が,イベントデータの種別を意味し,それ以外がイベントデータに少なくとも含まれるデータの種別を示す。
(HTTPログイン,ユーザ名,パスワード)
→(IIOP認証,ユーザ名,パスワード)
→(DBパスワード問い合わせ,ユーザ名)
が定義されている。この紐付けモデルにおいて,括弧に囲まれたものが1つのイベントデータの型を意味し,矢印が紐付け順を意味する。括弧内の一番左が,イベントデータの種別を意味し,それ以外がイベントデータに少なくとも含まれるデータの種別を示す。
ユーザPC37から発行されたHTTPリクエストは,システム可視化サーバ1aに入力される。ここで,入力されたイベントデータ#1が,
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi,... )
であるとすると,イベントデータ#1は上記の紐付けモデルの最初に指定されたイベントデータにマッチする。
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi,... )
であるとすると,イベントデータ#1は上記の紐付けモデルの最初に指定されたイベントデータにマッチする。
システム可視化サーバ1aは,イベントデータ#1から必要なデータを抽出し,その時点での紐付け結果とする。この時点での紐付け結果は,
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
となる。
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
となる。
また,システム可視化サーバ1aは,次の検索すべきイベントデータの検索条件を生成する。ここでは,上記の紐付けモデルとイベントデータから抽出されたデータ(この場合にはユーザ名とパスワード)とから,
(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
という検索条件が生成される。
(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
という検索条件が生成される。
システム可視化サーバ1aは,検索条件と紐付け結果とから検索子#1を生成する。生成された検索子#1は,{検索条件,紐付け結果}で表記すると,
{(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
,(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)}
イベントデータ#1の次のイベントデータ#2は,イベントデータ#1の到着地となるWebサーバ31(q)から発行される。システム可視化サーバ1aは,イベントデータ#1に含まれるWebサーバ31を示す情報qと所定のハッシュ関数とに基づいて特定される,Webサーバ31(q)から発行されたイベントデータが入力されるシステム可視化サーバ1bに,生成された検索子#1を送る。
{(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
,(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)}
イベントデータ#1の次のイベントデータ#2は,イベントデータ#1の到着地となるWebサーバ31(q)から発行される。システム可視化サーバ1aは,イベントデータ#1に含まれるWebサーバ31を示す情報qと所定のハッシュ関数とに基づいて特定される,Webサーバ31(q)から発行されたイベントデータが入力されるシステム可視化サーバ1bに,生成された検索子#1を送る。
システム可視化サーバ1bは,検索子#1を入力すると,検索子#1の検索条件にマッチするイベントデータが保持されているかを確認する。ここでは,まだ該当するイベントデータが保持されていないものとする。入力された検索子#1を保持しておく。
その後,Webサーバ31(p)から発行されたIIOPリクエストが,システム可視化サーバ1bに入力される。ここで,入力されたイベントデータ#2は,
(IIOP認証,ユーザ名=小橋,パスワード=kobashi,... )
であるとする。システム可視化サーバ1bは,イベントデータ#2を入力すると,イベントデータ#2とマッチする検索条件を有する検索子が保持されているかを確認し,検索子#1が検出される。
(IIOP認証,ユーザ名=小橋,パスワード=kobashi,... )
であるとする。システム可視化サーバ1bは,イベントデータ#2を入力すると,イベントデータ#2とマッチする検索条件を有する検索子が保持されているかを確認し,検索子#1が検出される。
システム可視化サーバ1bは,イベントデータ#2から必要なデータを抽出し,検索子#1に含まれた紐付け結果との紐付けを行い,新たな紐付け結果とする。この時点での紐付け結果は,
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
→(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
となる。
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
→(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
となる。
この時点では,まだ上記の紐付けモデルを満たす紐付け結果が得られていない。システム可視化サーバ1bは,次の検索すべきイベントデータの検索条件を生成する。ここでは,上記の紐付けモデルとイベントデータから抽出されたデータ(この場合にはユーザ名)とから,
(DBパスワード問い合わせ,ユーザ名=小橋)
という検索条件が生成される。
(DBパスワード問い合わせ,ユーザ名=小橋)
という検索条件が生成される。
システム可視化サーバ1bは,検索条件と紐付け結果とから検索子#2を生成する。生成された検索子#2は,
{(DBパスワード問い合わせ,ユーザ名=小橋)
,(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
→(IIOP認証,ユーザ名=小橋,パスワード=kobashi)}
となる。
{(DBパスワード問い合わせ,ユーザ名=小橋)
,(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
→(IIOP認証,ユーザ名=小橋,パスワード=kobashi)}
となる。
イベントデータ#2の次のイベントデータ#3は,イベントデータ#2の到着地となるAPサーバ32(r)から発行される。システム可視化サーバ1bは,イベントデータ#2に含まれるAPサーバ32を示す情報rと所定のハッシュ関数とに基づいて特定される,APサーバ32(r)から発行されたイベントデータが入力されるシステム可視化サーバ1cに,生成された検索子#2を送る。
システム可視化サーバ1cは,検索子#2を入力すると,検索子#2の検索条件にマッチするイベントデータが保持されているかを確認する。ここでは,まだ該当するイベントデータが保持されていないものとする。入力された検索子#2を保持しておく。
その後,APサーバ32(r)から発行されたDBリクエストが,システム可視化サーバ1cに入力される。ここで,入力されたイベントデータ#3は,
(DBパスワード問い合わせ,ユーザ名=小橋,... )
であるとする。システム可視化サーバ1cは,イベントデータ#3を入力すると,イベントデータ#3とマッチする検索条件を有する検索子が保持されているかを確認し,検索子#2が検出される。
(DBパスワード問い合わせ,ユーザ名=小橋,... )
であるとする。システム可視化サーバ1cは,イベントデータ#3を入力すると,イベントデータ#3とマッチする検索条件を有する検索子が保持されているかを確認し,検索子#2が検出される。
システム可視化サーバ1cは,イベントデータ#3から必要なデータを抽出し,検索子#2に含まれた紐付け結果との紐付けを行い,新たな紐付け結果とする。この時点での紐付け結果は,
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
→(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
→(DBパスワード問い合わせ,ユーザ名=小橋)
となる。
(HTTPログイン,ユーザ名=小橋,パスワード=kobashi)
→(IIOP認証,ユーザ名=小橋,パスワード=kobashi)
→(DBパスワード問い合わせ,ユーザ名=小橋)
となる。
ここで得られた紐付け結果は,上記の紐付けモデルを満たす。すなわち,ここで得られた紐付け結果が最終的な紐付け結果となる。システム可視化サーバ1cは,得られた紐付け結果を保持する。
図4は,本実施の形態によるシステム可視化サーバの構成例を示す図である。システム可視化サーバ1は,イベントデータ紐付け部10を備える。
イベントデータ紐付け部10は,関係するイベントデータ同士の紐付けを行う手段であり,システム可視化サーバ1のコンピュータが備えるCPU,メモリ等のハードウェアと,ソフトウェアプログラムとにより実現される。イベントデータ紐付け部10は,入力部11,データ保管部12,検索子格納部13,紐付け判定部14,紐付けモデル記憶部15,紐付け部16,モデル解析部17,検索子生成部18,出力部19を備える。
入力部11は,データ分散配置装置2から分散配置されたイベントデータや,システム可視化サーバ1からの検索子を入力する。入力されたイベントデータは,データ保管部12に保管される。また,入力された検索子は,検索子格納部13に保持される。
紐付け判定部14は,イベントデータが入力された場合には,そのイベントデータと検索子格納部13に格納されている検索子の検索条件とのマッチング処理を行う。このとき,マッチする検索子がないときには,紐付けモデル記憶部15に記憶された紐付けモデルで定義された最初のイベントデータにマッチするかを確認する。また,検索子が入力された場合には,その検索子の検索条件とデータ保管部12に保管されているイベントデータとのマッチング処理を行う。
紐付け部16は,イベントデータと検索子の検索条件とがマッチした場合に,その検索子内の紐付けデータとそのイベントデータとの紐付けを行い,新たな紐付けデータとする。また,入力されたイベントデータが紐付けモデルで定義された最初のイベントデータにマッチする場合に,そのイベントデータを紐付け元のイベントデータとする最初の紐付けデータを生成する。
モデル解析部17は,生成された紐付けデータと紐付けモデル記憶部15に記憶された紐付けモデルとのマッチングによる解析処理を行う。生成された紐付けデータが紐付けモデル記憶部15に記憶されたいずれかの紐付けモデルと全体がマッチしている場合には,その紐付けデータは完成していることになる。完成した紐付けデータを,データ保管部12に保管する。
検索子生成部18は,生成された紐付けデータがまだ完成形でない場合に,紐付けデータと紐付けモデルとの解析結果から,次に紐付けすべきイベントデータの検索条件を生成し,生成された検索条件と紐付けデータとを含む検索子を生成する。
出力部19は,生成された検索子を,紐付けデータで最後に紐付けられたイベントデータの到着地となる装置から発行されたイベントデータを保管するシステム可視化サーバ1に出力する。このとき,出力先のシステム可視化サーバ1の特定には,データ分散配置装置2と同じポリシに従う。
図5は,本実施の形態による各データの構成例を示す図である。図5(A)は,イベントデータのデータ構成例を示す。イベントデータ(event_data)は,そのイベントデータの種別を示すタイプ(type;例えば,プロトコル(HTTP,IIOP,... )など),そのイベントデータが生成された時間(timestamp),そのイベントデータの出発地となる装置を特定する情報(src;例えば,送信元IPアドレスなど),そのイベントデータの到着地となる装置を特定する情報(dest;例えば宛て先IPアドレスなど),そのイベントデータ内部に保持された各データ(data;例えば,ユーザ名=小橋,品物=本,金額=1000など)等の情報を有する。
図5(B)は,検索子のデータ構成例を示す。検索子(probe)は,次に紐付けすべきイベントデータの情報である検索条件,それまでの紐付け処理の途中結果である紐付けデータ(union)等の情報を有する。検索条件は,例えば,
・(タイプ=HTTP,ユーザ名=小橋):
タイプがHTTPで,ユーザ名=小橋のデータを有するイベントデータを検索,
・(タイプ=IIOP,ユーザ名=小橋,品物=*):
タイプがIIOPで,ユーザ名=小橋のデータ,種別が品物である何らかのデータ(*はワイルドカードを示す)を有するイベントデータを検索,
などである。
・(タイプ=HTTP,ユーザ名=小橋):
タイプがHTTPで,ユーザ名=小橋のデータを有するイベントデータを検索,
・(タイプ=IIOP,ユーザ名=小橋,品物=*):
タイプがIIOPで,ユーザ名=小橋のデータ,種別が品物である何らかのデータ(*はワイルドカードを示す)を有するイベントデータを検索,
などである。
図5(C)は,紐付けデータのデータ構成例を示す。紐付けデータは,それまで紐付けられたイベントデータごとに,そのイベントデータが紐付けられたシステム可視化サーバ1を示す情報(pack名;システム可視化サーバ1のIPアドレスなど),そのイベントデータのタイプ,そのイベントデータ内部のデータなどの情報を有する。
紐付けデータは,例えば,
・((168.1.1.10,HTTP,ユーザ名=小橋),):
IPアドレスが168.1.1.10のシステム可視化サーバ1が保持する,タイプがHTTPで,ユーザ名=小橋のデータを有するイベントデータが最初に紐付けられただけの紐付けデータ,
・((168.1.1.10,HTTP,ユーザ名=小橋),
(168.1.1.11,IIOP,ユーザ名=小橋,品物=本),):
上記の紐付けデータに,さらにIPアドレスが168.1.1.11のシステム可視化サーバ1が保持する,タイプがIIOPで,ユーザ名=小橋のデータ,品物=本のデータを有するイベントデータが紐付けられた紐付けデータ,
などである。
・((168.1.1.10,HTTP,ユーザ名=小橋),):
IPアドレスが168.1.1.10のシステム可視化サーバ1が保持する,タイプがHTTPで,ユーザ名=小橋のデータを有するイベントデータが最初に紐付けられただけの紐付けデータ,
・((168.1.1.10,HTTP,ユーザ名=小橋),
(168.1.1.11,IIOP,ユーザ名=小橋,品物=本),):
上記の紐付けデータに,さらにIPアドレスが168.1.1.11のシステム可視化サーバ1が保持する,タイプがIIOPで,ユーザ名=小橋のデータ,品物=本のデータを有するイベントデータが紐付けられた紐付けデータ,
などである。
なお,紐付けデータのデータ形式としては,例えば,イベントデータをそのまま紐付ける形式,イベントデータから必要な情報のみを抽出して紐付ける形式,イベントデータの保管場所へのポインタ情報を紐付ける形式など,さまざまな形式が考えられる。
図5(D)は,紐付けモデルのデータ構成例を示す。紐付けモデルは,イベントデータの紐付け関係があらかじめ定義された情報であり,システム可視化サーバ1は,紐付けモデルの定義に従って,イベントデータの紐付け処理を行う。このような紐付けモデルを用いることにより,イベントデータ間の関係を明らかにすることができる。
紐付けモデルは,紐付けすべきイベントデータの順ごとに,イベントデータのタイプ,イベントデータに含まれるデータの種別(data種別;例えば,ユーザ名,パスワード,品物,金額など),そのイベントデータの前に断絶があるか否かを示すフラグ(gap)などの情報を有する。gapについては,別に説明する。
紐付けモデルは,例えば,
・(HTTPログイン,ユーザ名,パスワード)
→(IIOP認証,ユーザ名,パスワード)
→(DBパスワード問い合わせ,ユーザ名):
タイプがHTTPログインで,ユーザ名,パスワードのデータを有するイベントデータと,そのイベントデータと関係する,タイプがIIOP認証で,同じユーザ名,パスワードのデータを有するイベントデータと,そのイベントデータに関係する,タイプがDBパスワード問い合わせで,同じユーザ名のデータを有するイベントデータとを紐付ける,
などである。
・(HTTPログイン,ユーザ名,パスワード)
→(IIOP認証,ユーザ名,パスワード)
→(DBパスワード問い合わせ,ユーザ名):
タイプがHTTPログインで,ユーザ名,パスワードのデータを有するイベントデータと,そのイベントデータと関係する,タイプがIIOP認証で,同じユーザ名,パスワードのデータを有するイベントデータと,そのイベントデータに関係する,タイプがDBパスワード問い合わせで,同じユーザ名のデータを有するイベントデータとを紐付ける,
などである。
図6は,本実施の形態によるイベントデータ紐付け処理フローチャートである。各システム可視化サーバ1は,データを入力するごとに,図6に示すイベントデータ紐付け処理を実行する。
入力部11によりデータを取得し(ステップS10),その取得データがイベントデータであれば(ステップS11),データ保管部12に取得されたイベントデータを格納する(ステップS12)。
紐付け判定部14により,取得されたイベントデータと,検索子格納部13に格納された検索子の検索条件とのマッチングを行い,マッチする検索子が存在すれば(ステップS13),紐付け部16により,検出された検索子に含まれるそれまでの紐付けデータと取得されたイベントデータとをもとに新たな紐付けデータを生成する(ステップS14)。モデル解析部17により,生成された紐付けデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,生成された紐付けデータがいずれかの紐付けモデルを網羅していれば(ステップS15),その完成された紐付けデータをデータ保管部12に保管し(ステップS16),処理を終了する。
ステップS15において,生成された紐付けデータがまだ完成されたものでなければ,検索子生成部18により,生成された紐付けデータでの紐付けモデルの参照結果に基づいて,次に検索すべきイベントデータの検索条件を生成し,生成された検索条件と紐付けデータとから検索子を生成する(ステップS17)。出力部19により,紐付けデータの最後のイベントデータの到着地の情報から求められる,検索すべき次のイベントデータを保持するシステム可視化サーバ1に,生成された検索子を転送し(ステップS18),処理を終了する。
ステップS13において,マッチする検索子が存在しなければ,取得されたイベントデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,取得されたイベントデータと最初のイベントデータがマッチする紐付けモデルが存在しなければ(ステップS19),処理を終了する。取得されたイベントデータがいずれかの紐付けモデルで定義された最初のイベントデータとマッチすれば(ステップS19),紐付け部16により,そのイベントデータを紐付け元のイベントデータとする最初の紐付けデータを生成する(ステップS20)。検索子生成部18により,検索子を生成し(ステップS17),出力部19により,検索すべき次のイベントデータを保持するシステム可視化サーバ1に検索子を転送し(ステップS18),処理を終了する。
入力部11により取得されたデータが検索子であれば(ステップS21),検索子格納部13に取得された検索子を格納する(ステップS22)。
紐付け判定部14により,取得された検索子の検索条件と,データ保管部12に保管されたイベントデータとのマッチングを行い,マッチするイベントデータが存在しなければ(ステップS23),処理を終了する。
ステップS23において,マッチするイベントデータが存在すれば,紐付け部16により,取得された検索子に含まれるそれまでの紐付けデータと検出されたイベントデータとをもとに新たな紐付けデータを生成する(ステップS14)。モデル解析部17により,生成された紐付けデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,生成された紐付けデータがいずれかの紐付けモデルを網羅していれば(ステップS15),その完成された紐付けデータをデータ保管部12に保管し(ステップS16),処理を終了する。生成された紐付けデータがまだ完成されたものでなければ,検索子生成部18により,検索子を生成し(ステップS17),出力部19により,検索すべき次のイベントデータを保持するシステム可視化サーバ1に検索子を転送し(ステップS18),処理を終了する。
図7は,本実施の形態によるイベントデータ紐付け処理の例を示す図である。ここでは,図7を用いて,イベントデータ紐付け部10によるイベントデータ紐付け処理の流れが,どのように機能するかの具体的な例を説明する。なお,図7の説明において,各ステップは,図6のフローチャートのステップに対応する。
以下では,説明を簡単にするため,図7に示すように,イベントデータ,検索子,紐付けデータ,紐付けモデルの表記を一般化する。
図7において,各システム可視化サーバ1内に定義された紐付けモデル(点線の枠内)は,
A(x)→B(x,y)→C(y,z)
と表記されている。この紐付けモデルにおいて,A(x),B(x,y),C(y,z)は,紐付けるべきイベントデータの型を示している。大文字のアルファベットA,B,Cは,紐付けるべきイベントデータの型を示し,括弧内の小文字のアルファベットx,y,zは,紐付けるべきイベントデータが有するデータの種別を示す。また,矢印は,次に紐付けすべきイベントデータの関係を示す。
A(x)→B(x,y)→C(y,z)
と表記されている。この紐付けモデルにおいて,A(x),B(x,y),C(y,z)は,紐付けるべきイベントデータの型を示している。大文字のアルファベットA,B,Cは,紐付けるべきイベントデータの型を示し,括弧内の小文字のアルファベットx,y,zは,紐付けるべきイベントデータが有するデータの種別を示す。また,矢印は,次に紐付けすべきイベントデータの関係を示す。
なお,同じ小文字アルファベットが使用されている場合には,データの種別だけでなくデータ自身も共通していることを示し,種別が同じでもデータが異なる場合には,違う小文字アルファベットを用いて表記を行う。例えば,A(x),B(x,y)との表記は,紐付けるべき2つのイベントデータにおいて,xに該当するデータは,データ種別だけではなく,データ自身も同じものである必要がある。
図7において,イベントデータは,例えば,
A(x1 )
のように表記される。この場合,大文字アルファベットAは,イベントデータのタイプを示し,括弧内の添字付き小文字アルファベットx1 は,イベントデータ内に含まれたデータを示す。なお,出発地,到着地となる装置を特定する情報などは,一般化の表記上では省略されているが,実際には存在する。なお,図7においてイベントデータを示す矢印の元はイベントデータの出発地となる装置のIPアドレスを示し,矢印の先はイベントデータの到着地となる装置のIPアドレスを示している。
A(x1 )
のように表記される。この場合,大文字アルファベットAは,イベントデータのタイプを示し,括弧内の添字付き小文字アルファベットx1 は,イベントデータ内に含まれたデータを示す。なお,出発地,到着地となる装置を特定する情報などは,一般化の表記上では省略されているが,実際には存在する。なお,図7においてイベントデータを示す矢印の元はイベントデータの出発地となる装置のIPアドレスを示し,矢印の先はイベントデータの到着地となる装置のIPアドレスを示している。
図7において,紐付けデータは,例えば,
A(x1 )→B(x1 ,y1 )
のように表記される。この例の表記では,タイプがAでx1 のデータを含むイベントデータと,タイプがBでx1 とy1 のデータを含むイベントデータとが紐付けられていることを示している。なお,データx1 は,紐付けられた双方のイベントデータにおいて,データの値が同じである。
A(x1 )→B(x1 ,y1 )
のように表記される。この例の表記では,タイプがAでx1 のデータを含むイベントデータと,タイプがBでx1 とy1 のデータを含むイベントデータとが紐付けられていることを示している。なお,データx1 は,紐付けられた双方のイベントデータにおいて,データの値が同じである。
図7において,検索子は,例えば,
{B(x1 ,*y),A(x1 )}
のように表記される。この例の表記において,左側のB(x1 ,*y)は検索条件を示し,右側のA(x1 )はそれまでの紐付けデータを示す。検索条件において,大文字アルファベットBは,次に紐付けすべきイベントデータのタイプを示し,括弧内の小文字アルファベットは,次に紐付けすべきイベントデータ内に含まれるデータを示す。括弧内のデータのうち,添字付きのデータx1 は,そのデータがそのまま含まれている必要があることを示し,*(ワイルドカード)付きのデータ*yは,紐付けモデルにおいてyで定義されたデータ種別の何らかのデータが含まれている必要があることを示す。
{B(x1 ,*y),A(x1 )}
のように表記される。この例の表記において,左側のB(x1 ,*y)は検索条件を示し,右側のA(x1 )はそれまでの紐付けデータを示す。検索条件において,大文字アルファベットBは,次に紐付けすべきイベントデータのタイプを示し,括弧内の小文字アルファベットは,次に紐付けすべきイベントデータ内に含まれるデータを示す。括弧内のデータのうち,添字付きのデータx1 は,そのデータがそのまま含まれている必要があることを示し,*(ワイルドカード)付きのデータ*yは,紐付けモデルにおいてyで定義されたデータ種別の何らかのデータが含まれている必要があることを示す。
図7において,IPアドレスpの装置から発行されたイベントデータはシステム可視化サーバ1aに入力され,IPアドレスqの装置から発行されたイベントデータはシステム可視化サーバ1bに入力され,IPアドレスrの装置から発行されたイベントデータはシステム可視化サーバ1cに入力される。
各システム可視化サーバ1には,あらかじめ紐付けモデル(点線の枠内),
A(x)→B(x,y)→C(y,z)
が定義されている。
A(x)→B(x,y)→C(y,z)
が定義されている。
システム可視化サーバ1aは,イベントデータA(x1 )が入力されると,そのイベントデータを格納する(ステップS10〜S12)。イベントデータA(x1 )にマッチする検索条件を有する検索子はなく(ステップS13),イベントデータA(x1 )は,紐付けモデルの最初に定義されているイベントデータの型A(x)にマッチするので(ステップS19),イベントデータA(x1 )から最初の紐付けデータA(x1 )を生成する(ステップS20)。紐付けモデルにおいて次に紐付けすべきイベントデータの型は,B(x,y)であるので,すでに決まっているデータx1 を用いて検索条件B(x1 ,*y)を生成し,検索子{B(x1 ,*y),A(x1 )}を生成する(ステップS17)。最後に紐付けられたイベントデータA(x1 )の到着地のIPアドレスがqであるので,生成された検索子{B(x1 ,*y),A(x1 )}を,システム可視化サーバ1bに転送する(ステップS18)。
システム可視化サーバ1bは,検索子{B(x1 ,*y),A(x1 )}が入力されると,その検索子を格納する(ステップS10,S21,S22)。この時点では,入力された検索子の検索条件B(x1 ,*y)にマッチするイベントデータがないので(ステップS23),処理を終了する。
システム可視化サーバ1bは,イベントデータB(x1 ,y1 )が入力されると,そのイベントデータを格納する(ステップS10〜S12)。イベントデータB(x1 ,y1 )にマッチする検索条件B(x1 ,*y)を有する検索子があるので(ステップS13),その検索子が有する紐付けデータA(x1 )と,イベントデータB(x1 ,y1 )とから,新たな紐付けデータA(x1 )→B(x1 ,y1 )を生成する(ステップS14)。この時点で,新たに生成された紐付けデータは,まだ紐付けモデルを網羅していない(ステップS15)。紐付けモデルにおいて次に紐付けすべきイベントデータの型は,C(y,z)であるので,すでに決まっているデータy1 を用いて検索条件C(y1 ,*z)を生成し,検索子{C(y1 ,*z),A(x1 )→B(x1 ,y1 )}を生成する(ステップS17)。最後に紐付けられたイベントデータB(x1 ,y1 )の到着地のIPアドレスがrであるので,生成された検索子{C(y1 ,*z),A(x1 )→B(x1 ,y1 )}を,システム可視化サーバ1cに転送する(ステップS18)。
システム可視化サーバ1cは,検索子{C(y1 ,*z),A(x1 )→B(x1 ,y1 )}が入力されると,その検索子を格納する(ステップS10,S21,S22)。この時点では,入力された検索子の検索条件C(y1 ,*z)にマッチするイベントデータがないので(ステップS23),処理を終了する。
システム可視化サーバ1cは,イベントデータC(y1 ,z1 )が入力されると,そのイベントデータを格納する(ステップS10〜S12)。イベントデータC(y1 ,z1 )にマッチする検索条件C(y1 ,*z)を有する検索子があるので(ステップS13),その検索子が有する紐付けデータA(x1 )→B(x1 ,y1 )と,イベントデータC(y1 ,z1 )とから,新たな紐付けデータA(x1 )→B(x1 ,y1 )→C(y1 ,z1 )を生成する(ステップS14)。この時点で,新たに生成された紐付けデータは紐付けモデルを網羅するので(ステップS15),目的とする紐付けデータが完成となる。完成された紐付けデータA(x1 )→B(x1 ,y1 )→C(y1 ,z1 )を保存する(ステップS16)。
ここまでは,比較的シンプルな紐付けモデルを例に,本実施の形態によるイベントデータ紐付け処理について説明した。しかし,本来は関係があるイベント同士であっても,互いに共通するデータを持たないため,イベントデータ同士の紐付けが困難となる場合がある。
図8は,断絶が発生するイベントデータの例を示す図である。図8の例に示すイベントデータの流れを紐付ける紐付けモデルを考えると,
A(x)→B(x,y)→C(z)→D(y,z)
となる。ここで,B(x,y)とC(z)とは,関係あるイベント同士ではあるが,互いに共通するデータを持たない。B(x,y)とC(z)との関係は,D(y,z)を介して見ることができる。
A(x)→B(x,y)→C(z)→D(y,z)
となる。ここで,B(x,y)とC(z)とは,関係あるイベント同士ではあるが,互いに共通するデータを持たない。B(x,y)とC(z)との関係は,D(y,z)を介して見ることができる。
このようなケースは,例えば,Webサーバ31からAPサーバ32に何らかの情報A(x)が送られ,APサーバ32では,Webサーバ31からのデータ=xとAPサーバ32で処理をした結果のデータ=yとをDBサーバ33に保存依頼B(x,y)し,DBサーバ33が保存した結果のID=zがAPサーバ32に送り返されC(z),APサーバ32は,ID=zに処理結果のデータ=yを合わせてWebサーバ31に送り返す,といった場合などに発生する。
以下では,途中に共通のデータを持たないイベントデータの紐付けが定義されている部分を,断絶と呼ぶ。
図9は,断絶が存在する場合の問題点を説明する図である。図9において,IPアドレスpの装置から発行されたイベントデータはシステム可視化サーバ1aに入力され,IPアドレスqの装置から発行されたイベントデータはシステム可視化サーバ1bに入力され,IPアドレスrの装置から発行されたイベントデータはシステム可視化サーバ1cに入力され,IPアドレスsの装置から発行されたイベントデータはシステム可視化サーバ1dに入力される。
各システム可視化サーバ1には,あらかじめ紐付けモデル(点線の枠内),
A(x)→B(x,y)→C(z)→D(y,z)
が定義されている。
A(x)→B(x,y)→C(z)→D(y,z)
が定義されている。
システム可視化サーバ1aでは,イベントデータA(x1 )が入力され,検索子{B(x1 ,*y),A(x1 )}が生成されて,システム可視化サーバ1bに送られる。
システム可視化サーバ1bでは,検索子の検索条件B(x1 ,*y)と入力されたイベントデータB(x1 ,y1 )とのマッチングにより,紐付けデータA(x1 )→B(x1 ,y1 )が生成される。また,紐付けモデルにおいて次に紐付けすべきイベントデータの型は,C(z)であるので,検索条件C(*z)が生成される。検索子{C(*z),A(x1 )→B(x1 ,y1 )}が生成され,システム可視化サーバ1cに転送される。
システム可視化サーバ1cでは,検索子の検索条件C(*z)と入力されたイベントデータとのマッチングが行われる。ところが,検索条件C(*z)にはすでに決まっているデータの条件がなく,Cで示されるイベントデータのタイプと,zで示されるデータ種別のみが条件となっている。図9に示すように,検索条件とマッチできるイベントデータの絞込みができず,多数のイベントデータC(z1 ),C(z2 ),... ,C(zn )とマッチしてしまう。そのため,次に紐付けるべきイベントデータを検索するための検索子が,多数生成され,システム可視化サーバ1dに送られることになる。
システム可視化サーバ1dでは,システム可視化サーバ1cから受け取った多数の検索子によるイベントデータとのマッチング処理が行われる。
このように,紐付きモデルに断絶が存在すると,その断絶後に多くの無駄な処理が発生し,システム可視化サーバ1の処理や,システム可視化サーバ1間の通信に大きな負荷がかかるようになる。
以下では,断絶が存在する場合でも,効率的にイベントデータの紐付けが可能となるイベントデータ紐付け処理の実施の形態を説明する。
図10は,本実施の形態による断絶がある場合のイベントデータ紐付け処理の例を示す図である。図10において,システム可視化サーバ1bにおいて,紐付けデータA(x1 )→B(x1 ,y1 )を生成するまでは,図9と同様である。
図10において,システム可視化サーバ1bは,それまでに紐付けられたイベントデータと,紐付けモデルで定義された次に紐付けすべきイベントデータとの間に共通するデータがなければ,そこに断絶があると判断する。このとき,システム可視化サーバ1bは,それまでに紐付けられたイベントデータと共通するデータが定義された,次のイベントデータまでの検索条件を生成する。図10に示す例では,C(z)の後にyを含むD(y,z)があるので,すでに決まっているデータy1 を用いて,C(z)からそのD(y,z)までを含む検索条件,すなわち検索条件C(*z)→D(y1 ,*z)を生成する。この検索条件は,イベントデータの検索条件ではなく,紐付けデータの検索条件である。検索子{C(*z)→D(y1 ,*z),A(x1 )→B(x1 ,y1 )}を生成し,次のシステム可視化サーバ1cに送る。
システム可視化サーバ1cは,入力された検索子の検索条件C(*z)→D(y1 ,*z)とマッチする紐付けデータがまだないので,検索子{C(*z)→D(y1 ,*z),A(x1 )→B(x1 ,y1 )}を保存しておく。
また,システム可視化サーバ1cは,イベントデータC(z1 )が入力されたときに,そのイベントデータC(z1 )が,紐付けモデルの断絶後の最初の紐付けすべきイベントデータの型C(z)にマッチするので,イベントデータC(z1 )をもとに紐付けデータC(z1 )を生成し,紐付けモデルにおいて次に紐付けすべきイベントデータの型D(y,z)から,すでに決まっているデータz1 を用いて,検索条件D(*y,z1 )を生成する。検索子{D(*y,z1 ),C(z1 )}を生成し,次のシステム可視化サーバ1dに送る。
システム可視化サーバ1dは,検索子の検索条件D(*y,z1 )と入力されたイベントデータD(y1 ,z1 )とのマッチングにより,紐付けデータC(z1 )→D(y1 ,z1 )を生成する。ここで生成された紐付けデータC(z1 )→D(y1 ,z1 )は,紐付けモデルの断絶後の部分の紐付けの定義を満たしている。システム可視化サーバ1dは,生成された紐付けデータC(z1 )→D(y1 ,z1 )の先頭のイベントデータC(z1 )を保管するシステム可視化サーバ1cに,生成された紐付けデータC(z1 )→D(y1 ,z1 )を送る。
システム可視化サーバ1cは,入力された紐付けデータC(z1 )→D(y1 ,z1 )と,保存された検索子の検索条件C(*z)→D(y1 ,*z)とのマッチングにより,紐付けデータA(x1 )→B(x1 ,y1 )→C(z1 )→D(y1 ,z1 )を生成する。ここで生成された紐付けデータは,定義された紐付けモデルを網羅しているので,完成形となる。
このように,断絶がある場合でも,システム可視化サーバ1の処理や,システム可視化サーバ1間の通信に大きな無駄を発生させずに,イベントデータ紐付け処理を行うことができる。
このような断絶がある場合には,図4に示すイベントデータ紐付け部10における各機能ブロックの機能の一部に,変更が必要となる。
入力部11は,データ分散配置装置2からのイベントデータや,システム可視化サーバ1からの検索子,紐付けデータを入力する。入力されたイベントデータ,紐付けデータは,データ保管部12に保管される。また,入力された検索子は,検索子格納部13に保持される。
紐付け判定部14は,イベントデータが入力された場合には,そのイベントデータと検索子格納部13に格納されている検索子の検索条件とのマッチング処理を行う。このとき,マッチする検索子がない場合には,紐付けモデル記憶部15に記憶された紐付けモデルで定義された最初のイベントデータ,または断絶後の最初のイベントデータにマッチするかを確認する。また,検索子が入力された場合には,その検索子の検索条件とデータ保管部12に保管されているイベントデータ,または紐付けデータとのマッチング処理を行う。
紐付け部16は,イベントデータと検索子の検索条件とがマッチした場合に,その検索子内の紐付けデータとそのイベントデータとの紐付けを行い,新たな紐付けデータとする。また,入力されたイベントデータが紐付けモデルで定義された最初のイベントデータ,または断絶後の最初のイベントデータにマッチする場合に,そのイベントデータを紐付け元のイベントデータとする最初の紐付けデータを生成する。また,紐付けデータと検索子の検索条件とがマッチした場合に,その紐付けデータと,その検索子内の紐付けデータとの紐付けを行い,新たな紐付けデータとする。
モデル解析部17は,生成された紐付けデータと紐付けモデル記憶部15に記憶された紐付けモデルとのマッチングによる解析処理を行う。生成された紐付けデータが紐付けモデル記憶部15に記憶されたいずれかの紐付けモデルと全体がマッチしている場合には,その紐付けデータは完成していることになる。完成した紐付けデータを,データ保管部12に保管する。
検索子生成部18は,生成された紐付けデータがまだ完成形でなく,また紐付けモデルの断絶後の部分を満たしていない場合に,紐付けデータと紐付けモデルの解析結果とから,次に紐付けすべきイベントデータの検索条件を生成し,生成された検索条件と紐付けデータとを含む検索子を生成する。このとき,次に紐付けすべきイベントデータの前に断絶がある場合には,次に紐付けすべきイベントデータからそれまでの紐付けデータと共通するデータが含まれるイベントデータ部分までの紐付けデータの検索条件を生成する。
出力部19は,生成された検索子を,紐付けデータで最後に紐付けられたイベントデータの到着地となる装置から発行されたイベントデータを保管するシステム可視化サーバ1に出力する。このとき,出力先のシステム可視化サーバ1の特定には,データ分散配置装置2と同じポリシに従う。また,生成された紐付けデータが紐付けモデルの断絶後の部分定義を満たしている場合には,生成された紐付けデータを,その紐付けデータの先頭となっているイベントデータを管理するシステム可視化サーバ1に出力する。
ここで,図5(D)に示す紐付けモデルのデータ構成例におけるgapについて説明する。前述したように,gapは,そのイベントデータの前(後でもよい)に断絶があるか否かを示すフラグである。例えば,gap=1でそのイベントデータの前に断絶があることを示し,gap=0でそのイベントデータの後に断絶がないことを示す。
断絶が存在するか否かは,紐付けモデルの隣り合ったイベントデータの型の定義のデータの比較によって見つけることができる。ただし,紐付けモデルの定義の段階ですでに断絶が存在するか否かが分かるので,このときにgapのフラグを定義するようにすれば,紐付けモデルから断絶を検出する処理を省くことができる。
図11,図12は,本実施の形態による断絶への対処を含むイベントデータ紐付け処理フローチャートである。各システム可視化サーバ1は,データを入力するごとに,図11,図12に示すイベントデータ紐付け処理を実行する。
入力部11によりデータを取得し(ステップS30),その取得データがイベントデータであれば(ステップS31),データ保管部12に取得されたイベントデータを格納する(ステップS32)。
紐付け判定部14により,取得されたイベントデータと,検索子格納部13に格納された検索子の検索条件とのマッチングを行い,マッチする検索子が存在すれば(ステップS33),紐付け部16により,検出された検索子に含まれるそれまでの紐付けデータと取得されたイベントデータとをもとに新たな紐付けデータを生成する(ステップS34)。モデル解析部17により,生成された紐付けデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,生成された紐付けデータがいずれかの紐付けモデルを網羅していれば(ステップS35),その完成された紐付けデータをデータ保管部12に保管し(ステップS36),処理を終了する。
ステップS35において,生成された紐付けデータがまだ完成されたものでない場合に,ステップS30で取得され,ステップS34で紐付けられたイベントデータが紐付けモデルの最後に定義されたイベントデータでなければ(ステップS37),検索子生成部18により,生成された紐付けデータでの紐付けモデルの参照結果に基づいて,次に検索すべきイベントデータの検索条件を生成し,生成された検索条件と紐付けデータとから検索子を生成する(ステップS38)。出力部19により,紐付けデータの最後のイベントデータの到着地の情報から求められる,検索すべき次のイベントデータを保持するシステム可視化サーバ1に,生成された検索子を転送し(ステップS39),処理を終了する。なお,ステップS38の検索子の生成において,次に検索すべきイベントデータとの間に断絶が存在する場合には,次に紐付けすべきイベントデータから紐付けモデルにおいて次に紐付けデータのイベントデータと共通するデータが定義されたイベントデータまでの検索条件を生成する。
ステップS37において,ステップS30で取得され,ステップS34で紐付けられたイベントデータが紐付けモデルの最後に定義されたイベントデータであれば,出力部19により,紐付けデータの先頭のイベントデータが保持されたシステム可視化サーバ1に,紐付けデータを転送し(ステップS40),処理を終了する。
ステップS33において,マッチする検索子が存在しなければ,取得されたイベントデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,取得されたイベントデータと最初のイベントデータ,または断絶後の最初のイベントデータがマッチする紐付けモデルが存在しなければ(ステップS41),処理を終了する。取得されたイベントデータがいずれかの紐付けモデルで定義された最初のイベントデータ,または断絶後の最初のイベントデータとマッチすれば(ステップS41),紐付け部16により,そのイベントデータを紐付け元のイベントデータとする最初の紐付けデータを生成する(ステップS42)。検索子生成部18により,検索子を生成し(ステップS38),出力部19により,検索すべき次のイベントデータを保持するシステム可視化サーバ1に検索子を転送し(ステップS39),処理を終了する。なお,ステップS38の検索子の生成において,次に検索すべきイベントデータとの間に断絶が存在する場合には,次に紐付けすべきイベントデータから紐付けモデルにおいて次に紐付けデータのイベントデータと共通するデータが定義されたイベントデータまでの検索条件を生成する。
入力部11により取得されたデータが紐付けデータであれば(ステップS43),データ保管部12に取得された紐付けデータを格納する(ステップS44)。
紐付け判定部14により,取得された紐付けデータと,検索子格納部13に格納された検索子の検索条件とのマッチングを行い,マッチする検索子が存在しなければ(ステップS45),処理を終了する。
ステップS45において,マッチする検索子が存在すれば,紐付け部16により,検出された検索子に含まれるそれまでの紐付けデータと取得された紐付けデータとをもとに新たな紐付けデータを生成する(ステップS46)。モデル解析部17により,生成された紐付けデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,生成された紐付けデータがいずれかの紐付けモデルを網羅していれば(ステップS47),その完成された紐付けデータをデータ保管部12に保管し(ステップS48),処理を終了する。
ステップS47において,生成された紐付けデータがまだ完成されたものでなければ,出力部19により,紐付けデータの先頭のイベントデータが保持されたシステム可視化サーバ1に,紐付けデータを転送し(ステップS49),処理を終了する。
入力部11により取得されたデータが検索子であれば(ステップS50),検索子格納部13に取得された検索子を格納する(ステップS51)。
紐付け判定部14により,取得された検索子の検索条件と,データ保管部12に保管されたイベントデータまたは紐付けデータとのマッチングを行い,マッチするイベントデータまたは紐付けデータが存在しなければ(ステップS52),処理を終了する。
ステップS52において,マッチするイベントデータが存在すれば,紐付け部16により,取得された検索子に含まれるそれまでの紐付けデータと検出されたイベントデータとをもとに新たな紐付けデータを生成する(ステップS34)。モデル解析部17により,生成された紐付けデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,生成された紐付けデータがいずれかの紐付けモデルを網羅していれば(ステップS35),その完成された紐付けデータをデータ保管部12に保管し(ステップS36),処理を終了する。
ステップS35において,生成された紐付けデータがまだ完成されたものでない場合に,データ保管部12に保管されており,ステップS34で紐付けられたイベントデータが紐付けモデルの最後に定義されたイベントデータでなければ(ステップS37),検索子生成部18により,検索子を生成し(ステップS38),出力部19により,検索すべき次のイベントデータを保持するシステム可視化サーバ1に検索子を転送し(ステップS39),処理を終了する。なお,ステップS38の検索子の生成において,次に検索すべきイベントデータとの間に断絶が存在する場合には,次に紐付けすべきイベントデータから紐付けモデルにおいて次に紐付けデータのイベントデータと共通するデータが定義されたイベントデータまでの検索条件を生成する。
ステップS37において,データ保管部12に保管されており,ステップS34で紐付けられたイベントデータが紐付けモデルの最後に定義されたイベントデータであれば,出力部19により,紐付けデータの先頭のイベントデータが保持されたシステム可視化サーバ1に,紐付けデータを転送し(ステップS40),処理を終了する。
ステップS52において,マッチする紐付けデータが存在すれば,紐付け部16により,取得された検索子に含まれるそれまでの紐付けデータと検出された紐付けデータとをもとに新たな紐付けデータを生成する(ステップS46)。モデル解析部17により,生成された紐付けデータと紐付けモデル記憶部15に保持された紐付けモデルとのマッチングを行い,生成された紐付けデータがいずれかの紐付けモデルを網羅していれば(ステップS47),その完成された紐付けデータをデータ保管部12に保管し(ステップS48),処理を終了する。生成された紐付けデータがまだ完成されたものでなければ(ステップS47),出力部19により,紐付けデータの先頭のイベントデータが保持されたシステム可視化サーバ1に,紐付けデータを転送し(ステップS49),処理を終了する。
ここで,図10を用いて,イベントデータ紐付け部10による断絶への対処を含むイベントデータ紐付け処理の流れが,どのように機能するかの具体的な例を説明する。なお,図10の説明において,各ステップは,図11,図12のフローチャートのステップに対応する。
図10において,IPアドレスpの装置から発行されたイベントデータはシステム可視化サーバ1aに入力され,IPアドレスqの装置から発行されたイベントデータはシステム可視化サーバ1bに入力され,IPアドレスrの装置から発行されたイベントデータはシステム可視化サーバ1cに入力され,IPアドレスsの装置から発行されたイベントデータはシステム可視化サーバ1dに入力される。
各システム可視化サーバ1には,あらかじめ紐付けモデル(点線の枠内),
A(x)→B(x,y)→C(z)→D(y,z)
が定義されている。
A(x)→B(x,y)→C(z)→D(y,z)
が定義されている。
システム可視化サーバ1aは,イベントデータA(x1 )が入力されると,そのイベントデータを格納する(ステップS30〜S32)。イベントデータA(x1 )にマッチする検索条件を有する検索子はなく(ステップS33),イベントデータA(x1 )は,紐付けモデルの最初に定義されているイベントデータの型A(x)にマッチするので(ステップS41),イベントデータA(x1 )から最初の紐付けデータA(x1 )を生成する(ステップS42)。紐付けモデルにおいて次に紐付けすべきイベントデータの型は,B(x,y)であるので,すでに決まっているデータx1 を用いて検索条件B(x1 ,*y)を生成し,検索子{B(x1 ,*y),A(x1 )}を生成する(ステップS38)。最後に紐付けられたイベントデータA(x1 )の到着地のIPアドレスがqであるので,生成された検索子{B(x1 ,*y),A(x1 )}を,システム可視化サーバ1bに転送する(ステップS39)。
システム可視化サーバ1bは,検索子{B(x1 ,*y),A(x1 )}が入力されると,その検索子を格納する(ステップS30,S50,S51)。この時点では,入力された検索子の検索条件B(x1 ,*y)にマッチするイベントデータがないので(ステップS52),処理を終了する。
システム可視化サーバ1bは,イベントデータB(x1 ,y1 )が入力されると,そのイベントデータを格納する(ステップS30〜S32)。イベントデータB(x1 ,y1 )にマッチする検索条件B(x1 ,*y)を有する検索子があるので(ステップS33),その検索子が有する紐付けデータA(x1 )と,イベントデータB(x1 ,y1 )とから,新たな紐付けデータA(x1 )→B(x1 ,y1 )を生成する(ステップS34)。この時点で,新たに生成された紐付けデータは,まだ紐付けモデルを網羅していない(ステップS35)。また,紐付けデータの最後のイベントデータB(x1 ,y1 )は,紐付けモデルで定義された最後のイベントデータの型にはマッチしていない(ステップS37)。さらに,紐付けモデルにおいて次に紐付けすべきイベントデータの型は,C(z)であるので,ここに断絶が存在する。紐付けモデルにおいてC(z)の次に紐付けすべきイベントデータの型はD(y,z)であり,これまでの紐付けデータに共通するデータyを含むので,すでに決まっているデータy1 を用いて,検索条件C(*z)→D(y1 ,*z)を生成し,検索子{C(*z)→D(y1 ,*z),A(x1 )→B(x1 ,y1 )}を生成する(ステップS38)。最後に紐付けられたイベントデータB(x1 ,y1 )の到着地のIPアドレスがrであるので,生成された検索子{C(*z)→D(y1 ,*z),A(x1 )→B(x1 ,y1 )}を,システム可視化サーバ1cに転送する(ステップS39)。
システム可視化サーバ1cは,検索子{C(*z)→D(y1 ,*z),A(x1 )→B(x1 ,y1 )}が入力されると,その検索子を格納する(ステップS30,S50,S51)。この時点では,入力された検索子の検索条件C(*z)→D(y1 ,*z)にマッチする紐付けデータがないので(ステップS52),処理を終了する。
システム可視化サーバ1cは,イベントデータC(z1 )が入力されると,そのイベントデータを格納する(ステップS30〜S32)。イベントデータC(z1 )にマッチする検索条件を有する検索子はなく(ステップS33),イベントデータC(z1 )は,紐付けモデルの断絶後の最初に定義されているイベントデータの型C(z)にマッチするので(ステップS41),イベントデータC(z1 )から最初の紐付けデータC(z1 )を生成する(ステップS42)。紐付けモデルにおいて次に紐付けすべきイベントデータの型は,D(y,z)であるので,すでに決まっているデータz1 を用いて検索条件D(*y,z1 )を生成し,検索子{D(*y,z1 ),C(z1 )}を生成する(ステップS38)。最後に紐付けられたイベントデータC(z1 )の到着地のIPアドレスがsであるので,生成された検索子{D(*y,z1 ),C(z1 )}を,システム可視化サーバ1dに転送する(ステップS39)。
システム可視化サーバ1dは,検索子{D(*y,z1 ),C(z1 )}が入力されると,その検索子を格納する(ステップS30,S50,S51)。この時点では,入力された検索子の検索条件D(*y,z1 )にマッチするイベントデータがないので(ステップS52),処理を終了する。
システム可視化サーバ1dは,イベントデータD(y1 ,z1 )が入力されると,そのイベントデータを格納する(ステップS30〜S32)。イベントデータD(y1 ,z1 )にマッチする検索条件D(*y,z1 )を有する検索子があるので(ステップS33),その検索子が有する紐付けデータC(z1 )と,イベントデータD(y1 ,z1 )とから,新たな紐付けデータC(z1 )→D(y1 ,z1 )を生成する(ステップS34)。この時点で,新たに生成された紐付けデータは,まだ紐付けモデルを網羅していない(ステップS35)。また,紐付けデータの最後のイベントデータD(y1 ,z1 )は,紐付けモデルで定義された最後のイベントデータの型にマッチしてる(ステップS37)。生成された紐付けデータC(z1 )→D(y1 ,z1 )を,紐付けデータの先頭のイベントデータC(z1 )を保管しているシステム可視化サーバ1cに転送する(ステップS40)。
システム可視化サーバ1cは,紐付けデータC(z1 )→D(y1 ,z1 )が入力されると,その紐付けデータを格納する(ステップS10,S43,S44)。紐付けデータC(z1 )→D(y1 ,z1 )にマッチする検索条件C(*z)→D(y1 ,*z)を有する検索子があるので(ステップS45),その検索子が有する紐付けデータA(x1 )→B(x1 ,y1 )と,紐付けデータC(z1 )→D(y1 ,z1 )とから,新たな紐付けデータA(x1 )→B(x1 ,y1 )→C(z1 )→D(y1 ,z1 )を生成する(ステップS46)。この時点で,新たに生成された紐付けデータは紐付けモデルを網羅するので(ステップS47),目的とする紐付けデータが完成となる。完成された紐付けデータA(x1 )→B(x1 ,y1 )→C(z1 )→D(y1 ,z1 )を保存する(ステップS48)。
このように,断絶がある場合でも,システム可視化サーバ1の処理や,システム可視化サーバ1間の通信に大きな無駄を発生させずに,イベントデータ紐付け処理を行うことができる。
図13は,本実施の形態による複数の断絶がある場合のイベントデータ紐付け処理の例を示す図である。ここまで説明した本実施の形態による断絶への対処を含むイベントデータ紐付け処理を用いれば,複数の断絶が存在する場合でも,十分対処可能である。ここでは,図13を用いて,複数の断絶がある場合のイベントデータ紐付け処理の例を説明する。なお,ここまで詳細に説明した断絶がある場合のイベントデータ紐付け処理を適用するだけであるので,図13の説明は簡潔に留める。
図13において,IPアドレスpの装置から発行されたイベントデータはシステム可視化サーバ1aに入力され,IPアドレスqの装置から発行されたイベントデータはシステム可視化サーバ1bに入力され,IPアドレスrの装置から発行されたイベントデータはシステム可視化サーバ1cに入力され,IPアドレスsの装置から発行されたイベントデータはシステム可視化サーバ1dに入力され,IPアドレスtの装置から発行されたイベントデータはシステム可視化サーバ1eに入力され,IPアドレスuの装置から発行されたイベントデータはシステム可視化サーバ1fに入力される。
各システム可視化サーバ1には,あらかじめ紐付けモデル(点線の枠内),
A(g)→B(g,h)→C(i)→D(h,i,j)→E(k)→F(j,k)
が定義されている。
A(g)→B(g,h)→C(i)→D(h,i,j)→E(k)→F(j,k)
が定義されている。
システム可視化サーバ1aは,イベントデータA(g1 )を入力し,検索子{B(g1 ,*h),A(g1 )}を生成して,システム可視化サーバ1bに送る。
システム可視化サーバ1bは,検索子{B(g1 ,*h),A(g1 )}を保持しておき,イベントデータB(g1 ,h1 )を入力すると,次に断絶があるので,検索子{C(*i)→D(h1 ,*i,*j),A(g1 )→B(g1 ,h1 )}を生成して,システム可視化サーバ1cに送る。
システム可視化サーバ1cは,検索子{C(*i)→D(h1 ,*i,*j),A(g1 )→B(g1 ,h1 )}を保持しておく。システム可視化サーバ1cは,イベントデータC(i1 )を入力し,検索子{D(*h,i1 ,*j),C(i1 )}を生成して,システム可視化サーバ1dに送る。
システム可視化サーバ1dは,検索子{D(*h,i1 ,*j),C(i1 )}を保持しておき,イベントデータD(h1 ,i1 ,j1 )を入力すると,次に断絶があるので,検索子{E(*k)→F(j1 ,*k),C(i1 )→D(h1 ,i1 ,j1 )}を生成して,システム可視化サーバ1eに送る。
システム可視化サーバ1eは,検索子{E(*k)→F(j1 ,*k),C(i1 )→D(h1 ,i1 ,j1 )}を保持しておく。システム可視化サーバ1eは,イベントデータE(k1 )を入力し,検索子{F(*j,k1 ),E(k1 )}を生成して,システム可視化サーバ1fに送る。
システム可視化サーバ1fは,検索子{F(*j,k1 ),E(k1 )}を保持しておき,イベントデータF(j1 ,k1 )を入力すると,イベントデータF(j1 ,k1 )紐付けモデルの最終イベントデータの型にマッチするので,紐付けデータE(k1 )→F(j1 ,k1 )を生成して,システム可視化サーバ1eに送る。
システム可視化サーバ1eは,紐付けデータE(k1 )→F(j1 ,k1 )を入力すると,保持された検索子{E(*k)→F(j1 ,*k),C(i1 )→D(h1 ,i1 ,j1 )}とあわせて,紐付けデータC(i1 )→D(h1 ,i1 ,j1 )→E(k1 )→F(j1 ,k1 )を生成し,まだ紐付けモデルの全体が網羅されていないので,紐付けデータC(i1 )→D(h1 ,i1 ,j1 )→E(k1 )→F(j1 ,k1 )をシステム可視化サーバ1cに送る。
システム可視化サーバ1cは,紐付けデータC(i1 )→D(h1 ,i1 ,j1 )→E(k1 )→F(j1 ,k1 )を入力すると,保持された検索子{C(*i)→D(h1 ,*i,*j),A(g1 )→B(g1 ,h1 )}とあわせて,紐付けデータA(g1 )→B(g1 ,h1 )→C(i1 )→D(h1 ,i1 ,j1 )→E(k1 )→F(j1 ,k1 )を生成する。これで紐付けモデルの全体が網羅され,目的とする紐付けデータが完成される。
このように,複数の断絶がある場合でも,システム可視化サーバ1の処理や,システム可視化サーバ1間の通信に大きな無駄を発生させずに,イベントデータ紐付け処理を行うことができる。
以上説明したシステム可視化サーバ1のイベントデータ紐付け部10による処理は,コンピュータとソフトウェアプログラムとによって実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
以上,本実施の形態について説明したが,本発明は本実施の形態に限られるものではない。例えば,本実施の形態では,収集されたイベントデータを,その出発地となる装置(例えば,IPアドレス)ごとに,各システム可視化サーバ1に分散配置しているが,イベントデータの出発地となる装置ごとだけではなく,さらにイベントデータのタイプ(種別:プロトコルなど)ごとに(例えば,IPアドレス+ポートNo.ごとに),各システム可視化サーバ1に分散配置するようにしてもよい。例えば,イベントデータの出発地となる装置+イベントデータのタイプにハッシュ関数を用いてイベントデータを分散配置すれば,よりバランスよく各システム可視化サーバ1に分散することが可能となる。
1 システム可視化サーバ
2 データ分散配置装置
3 可視化対象システム
10 イベントデータ紐付け部
11 入力部
12 データ保管部
13 検索子格納部
14 紐付け判定部
15 紐付けモデル記憶部
16 紐付け部
17 モデル解析部
18 検索子生成部
19 出力部
2 データ分散配置装置
3 可視化対象システム
10 イベントデータ紐付け部
11 入力部
12 データ保管部
13 検索子格納部
14 紐付け判定部
15 紐付けモデル記憶部
16 紐付け部
17 モデル解析部
18 検索子生成部
19 出力部
Claims (7)
- コンピュータを,
出発地となる装置から到着先の装置までのネットワークを流れる各イベントデータのうち,ある出発地のイベントデータを保存するデータ保管部,
因果関係を有するインベントデータを紐付けするにあたって,紐付け対象イベントデータを検索する検索条件と,紐付けの先頭となるイベントデータまたは既に紐付けが行われている場合にはそのイベントデータ同士の紐付け途中結果である紐付けデータと,を含む紐付け処理要求が入力される入力部,
前記紐付け処理要求に含まれる検索条件に従って前記データ保管部に保存されているイベントデータを検索し,検索条件にマッチするイベントデータが存在する場合に,前記紐付け処理要求に含まれる紐付け元のイベントデータまたは紐付け途中結果である紐付けデータに,前記検索条件にマッチするイベントデータを紐付けして新たな紐付けデータを生成する紐付け処理部,
前記検索条件にマッチするイベントデータの到着先情報に基づいて,紐付け処理要求を送信する装置を決定し,該装置に対し,紐付け対象イベントデータを検索する検索条件と前記新たな紐付けデータとを含む紐付け処理要求を送信する出力部として,
機能させるためのデータ紐付けプログラム。 - 前記紐付け処理部は,
イベントデータの紐付け関係があらかじめ定義された情報である紐付けモデルを保持する紐付けモデル保持部と,
前記紐付けモデルを参照して前記紐付けデータを解析するモデル解析部と,
前記モデル解析部による解析結果に基づいて,次に紐付けを行う紐付け対象イベントデータの検索条件を含む紐付け処理要求を生成する生成部とを備える
ことを特徴とする請求項1に記載のデータ紐付けプログラム。 - 前記入力部は,紐付けられた先頭のイベントデータが前記出発地のイベントデータである紐付けデータが入力され,
前記データ保管部は,前記入力された紐付けデータを保存し,
前記紐付け処理部は,前記紐付け処理要求に含まれる検索条件に前記保存された紐付けデータがマッチする場合に,前記紐付け処理要求に含まれる紐付けの先頭となるイベントデータまたは紐付け途中結果である紐付けデータに,前記検索条件にマッチする紐付けデータを紐付けして新たな紐付けデータを生成する
ことを特徴とする請求項2に記載のデータ紐付けプログラム。 - 前記紐付けモデルは,定義された紐付けを行うイベントデータごとに,そのイベントデータの前のイベントデータまたは後のイベントデータとの間に,共通するデータを持っているか否かを示す情報を有し,
前記モデル解析部は,前記紐付けモデルが有する共通するデータを持っているか否かを示す情報を参照することにより,次に紐付けを行う紐付け対象イベントデータが,それ以前に紐付けられたイベントデータと共通するデータを持っているか否かの判定を行う
ことを特徴とする請求項2または請求項3に記載のデータ紐付けプログラム。 - 前記出力部は,前記検索条件にマッチするイベントデータの到着先情報と種別を示す情報とに基づいて,紐付け処理要求を送信する装置を決定し,該装置に対し,紐付け対象イベントデータを検索する検索条件と前記新たな紐付けデータとを含む紐付け処理要求を送信する
ことを特徴とする請求項1から請求項4までのいずれかに記載のデータ紐付けプログラム。 - 出発地となる装置から到着先の装置までのネットワークを流れる各イベントデータのうち,ある出発地のイベントデータを保存するデータ保管部と,
因果関係を有するインベントデータを紐付けするにあたって,紐付け対象イベントデータを検索する検索条件と,紐付けの先頭となるイベントデータまたは既に紐付けが行われている場合にはそのイベントデータ同士の紐付け途中結果である紐付けデータと,を含む紐付け処理要求が入力される入力部と,
前記紐付け処理要求に含まれる検索条件に従って前記データ保管部に保存されているイベントデータを検索し,検索条件にマッチするイベントデータが存在する場合に,前記紐付け処理要求に含まれる紐付け元のイベントデータまたは紐付け途中結果である紐付けデータに,前記検索条件にマッチするイベントデータを紐付けして新たな紐付けデータを生成する紐付け処理部と,
前記検索条件にマッチするイベントデータの到着先情報に基づいて,紐付け処理要求を送信する装置を決定し,該装置に対し,紐付け対象イベントデータを検索する検索条件と前記新たな紐付けデータとを含む紐付け処理要求を送信する出力部とを備える
ことを特徴とする情報処理装置。 - コンピュータが,
出発地となる装置から到着先の装置までのネットワークを流れる各イベントデータのうち,ある出発地のイベントデータをデータ記憶装置に保存するデータ保管過程と,
因果関係を有するインベントデータを紐付けするにあたって,紐付け対象イベントデータを検索する検索条件と,紐付けの先頭となるイベントデータまたは既に紐付けが行われている場合にはそのイベントデータ同士の紐付け途中結果である紐付けデータと,を含む紐付け処理要求が入力される入力過程と,
前記紐付け処理要求に含まれる検索条件に従って前記データ記憶装置に保存されているイベントデータを検索し,検索条件にマッチするイベントデータが存在する場合に,前記紐付け処理要求に含まれる紐付け元のイベントデータまたは紐付け途中結果である紐付けデータに,前記検索条件にマッチするイベントデータを紐付けして新たな紐付けデータを生成する紐付け処理過程と,
前記検索条件にマッチするイベントデータの到着先情報に基づいて,紐付け処理要求を送信する装置を決定し,該装置に対し,紐付け対象イベントデータを検索する検索条件と前記新たな紐付けデータとを含む紐付け処理要求を送信する出力過程とを実行する
ことを特徴とするデータ紐付け方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008127805A JP2009277023A (ja) | 2008-05-15 | 2008-05-15 | データ紐付けプログラム,情報処理装置およびデータ紐付け方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008127805A JP2009277023A (ja) | 2008-05-15 | 2008-05-15 | データ紐付けプログラム,情報処理装置およびデータ紐付け方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009277023A true JP2009277023A (ja) | 2009-11-26 |
Family
ID=41442396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008127805A Withdrawn JP2009277023A (ja) | 2008-05-15 | 2008-05-15 | データ紐付けプログラム,情報処理装置およびデータ紐付け方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009277023A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134513A (ja) * | 2008-12-02 | 2010-06-17 | Fujitsu Ltd | データ紐付けプログラム,情報処理装置およびデータ紐付け方法 |
JP2011113268A (ja) * | 2009-11-26 | 2011-06-09 | Nomura Research Institute Ltd | クラウドファサード管理システム |
JP2011258057A (ja) * | 2010-06-10 | 2011-12-22 | Fujitsu Ltd | 解析プログラム、解析方法、および解析装置 |
JP2013105190A (ja) * | 2011-11-10 | 2013-05-30 | Ns Solutions Corp | 生存監視システム |
JP2017199126A (ja) * | 2016-04-26 | 2017-11-02 | 株式会社日立製作所 | ログ情報解析装置およびログ情報解析方法 |
-
2008
- 2008-05-15 JP JP2008127805A patent/JP2009277023A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134513A (ja) * | 2008-12-02 | 2010-06-17 | Fujitsu Ltd | データ紐付けプログラム,情報処理装置およびデータ紐付け方法 |
JP2011113268A (ja) * | 2009-11-26 | 2011-06-09 | Nomura Research Institute Ltd | クラウドファサード管理システム |
JP2011258057A (ja) * | 2010-06-10 | 2011-12-22 | Fujitsu Ltd | 解析プログラム、解析方法、および解析装置 |
JP2013105190A (ja) * | 2011-11-10 | 2013-05-30 | Ns Solutions Corp | 生存監視システム |
JP2017199126A (ja) * | 2016-04-26 | 2017-11-02 | 株式会社日立製作所 | ログ情報解析装置およびログ情報解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kaur et al. | A comprehensive survey of service function chain provisioning approaches in SDN and NFV architecture | |
Orsini et al. | BGPStream: a software framework for live and historical BGP data analysis | |
CN101099345B (zh) | 利用采样和试探在网络元件处解释应用消息的方法和设备 | |
CN101371237B (zh) | 在网络元件中代表应用执行消息有效载荷处理功能 | |
US11023511B1 (en) | Mobile device composite interface for dual-sourced incident management and monitoring system | |
Zheng et al. | Investigating QoS of real-world web services | |
US11601324B1 (en) | Composite display of multi-sourced IT incident related information | |
US9331932B2 (en) | Network system | |
JP2022500963A (ja) | ネットワークのセキュリティモニタリング方法、ネットワークのセキュリティモニタリング装置及びシステム | |
CN107078921A (zh) | 用于基于商业意图驱动策略的网络业务表征、监视和控制的方法和系统 | |
CN112540948A (zh) | 通过事件流处理集群管理器进行路由管理 | |
JP5229028B2 (ja) | システム分析方法、装置及びプログラム | |
CN106603582A (zh) | 一种网络微服务发现方法 | |
US11301475B1 (en) | Transmission handling of analytics query response | |
JP2009277023A (ja) | データ紐付けプログラム,情報処理装置およびデータ紐付け方法 | |
US9055113B2 (en) | Method and system for monitoring flows in network traffic | |
JP5268589B2 (ja) | 情報処理装置及び情報処理装置の運用方法 | |
JP2005323322A (ja) | ログ情報の蓄積および解析システム | |
US20150088958A1 (en) | Information Processing System and Distributed Processing Method | |
US10924365B2 (en) | Method and system for generating directed graphs | |
Dos Santos et al. | On using mashups for composing network management applications | |
Hershey et al. | SOA monitoring for enterprise computing systems | |
US20140025840A1 (en) | Network analysis in a file transfer system | |
JP2015215827A (ja) | 送信順序決定プログラム、送信順序決定装置及び送信順序決定方法 | |
JP2019176255A (ja) | ネットワークシステム、制御装置、処理規則設定方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110802 |