JP6196196B2 - ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法 - Google Patents

ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法 Download PDF

Info

Publication number
JP6196196B2
JP6196196B2 JP2014167381A JP2014167381A JP6196196B2 JP 6196196 B2 JP6196196 B2 JP 6196196B2 JP 2014167381 A JP2014167381 A JP 2014167381A JP 2014167381 A JP2014167381 A JP 2014167381A JP 6196196 B2 JP6196196 B2 JP 6196196B2
Authority
JP
Japan
Prior art keywords
causal
log
time
logs
lag
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.)
Active
Application number
JP2014167381A
Other languages
English (en)
Other versions
JP2016045556A (ja
Inventor
晃弘 下田
晃弘 下田
石橋 圭介
圭介 石橋
達明 木村
達明 木村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014167381A priority Critical patent/JP6196196B2/ja
Publication of JP2016045556A publication Critical patent/JP2016045556A/ja
Application granted granted Critical
Publication of JP6196196B2 publication Critical patent/JP6196196B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、システムから得られる時系列ログデータからログ間の関係性を抽出し、更にその関係性の変化からシステムの異常検知及び異常箇所特定を行う技術に関連するものである。
データセンタの拡大やシステムの仮想化を背景に、システムから収集されるログの種類や数が急激に増加している。これら大量のログ(以下、大規模ログ)をオペレータが逐次監視することは難しく、障害の発生要因となるログの異常を早期かつ自動的に検知することが課題の一つである。一方で、システムに障害が発生後、そのシステムが複雑に構成されている場合は障害要因の特定も容易ではなく、システム復旧までの時間が長引くことが多い。従って、大規模ログに基づく障害要因特定も大きな課題である。
上記課題を解決するアプローチの一つに、システムのログ間もしくはサーバリソースの依存関係の方向に着目した研究がある。例えば非特許文献1、2には、ある2つの時系列ログ(X,Y)が与えられた時に、その時刻のズレ幅が固定的であり、時刻によって変化しないことを仮定したアルゴリズムを用いて、それら2つの時系列ログの関係性を抽出する技術が開示されている。
具体的には、非特許文献1では、時系列ログのGranger因果テストを用いてXとYの因果の向きを判定する仮定で、XとYのラグ係数(ラグ:時系列変動のズレ)を計算する。そのラグ係数はX、Yに対して固定値である。同様に非特許文献2には、XとYに対して、それらの相関係数が最も大きくなるラグ係数を選択し、その値の正負に基づいて、XとYの因果を判定することが開示されている。そのラグ係数はX、Y毎に固定値である。
ARNOLD, Andrew; LIU, Yan; ABE, Naoki. Temporal causal modeling with graphical granger methods. In: Proceedings of the 13th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2007. p. 66-75. Pengfei Chen, Yong Qi, Pengfei Zheng, Di Hou, "CauseInfer Automatic and Distributed Performance Diagnosis with Hierarchical Causality Graph in Large Distributed Systems", proceedings of IEEE/INFOCOM 2014, pp1887-1895, 2014. SAKOE, Hiroaki; CHIBA, Seibi. Dynamic programming algorithm optimization for spoken word recognition. Acoustics, Speech and Signal Processing, IEEE Transactions on, 1978, 26.1: 43-49. RFC1157 "SNMP", http://www.ietf.org/rfc/rfc1157.txt DSTAT: Versatile Resource Statistics Tool, http://dag.wiee.rs/home-made/dstat/ P . Spirtes, C. Glymour, and R. Scheines. Causation, Prediction, and Search. The MIT Press, 2ndedition, 2000. YAN, Xifeng; YU, Philip S.; HAN, Jiawei. Substructure similarity search in graph databases. In: Proceedings of the 2005 ACM SIGMOD international conference on Management of data. ACM, 2005. p. 766-777.
上記のように、従来技術では、ラグ係数が固定値である。しかしながら、現実のシステムでは、ログ間のラグが動的に変化する場合がある。ラグが動的に変化するケースに対して、ラグ係数が固定値である方式を用いる非特許文献1、2の技術では、ラグが変化する頻度が大きい場合に、そのラグの変化を考慮して因果を判定することは難しい。一方で、時系列ログを観測する最中に、特定リソースに大きな負荷が生じた場合に、そのリソースに関わる因果に関して、因果の方向が不安定化もしくは反転する事象も観測されている。従来技術では時系列データの途中における因果の変化は想定していない。
また、上記従来技術は、ある2つのリソース間の因果を推定する手法である。しかし、システムの障害要因を特定する場合は、システム全体の因果の繋がりを考慮する必要がある。
本発明は上記の点に鑑みてなされたものであり、ログ間のラグ変動が可変的であることを考慮したログ間の因果推定技術を提供することを目的とする。また、本発明は、システム全体の因果の繋がりを考慮して、従来よりも高精度にシステムの障害要因の特定を行うことを可能とする技術を提供することを目的とする。
本発明の実施の形態によれば、監視対象システムから取得された複数リソースの時系列ログに基づいて、ログ間の因果を推定するログ間因果推定装置であって、
2つのログ間のスパイク発生時刻のラグを時系列で抽出するラグ抽出手段と、
前記ラグ抽出手段により抽出されたラグにおいて、前記2つのログのうちの一方のログを基準とした正のラグの数と負のラグの数に基づいて、前記2つのログ間の因果の方向と因果の強さを推定する因果推定手段とを備えることを特徴とするログ間因果推定装置が提供される。
また、本発明の実施の形態によれば、監視対象システムから取得された複数リソースの時系列ログから得られたログ間の因果を表す因果グラフに基づいて、当該システムの異常を検知するシステム異常検知装置であって、
第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフとを比較し、因果が追加、削除、又は反転された箇所を抽出する因果変化抽出手段と、
前記因果変化抽出手段により抽出された、第1の因果グラフと第2の因果グラフとの間の因果の変化に基づいて、前記システムにおける異常の要因を検出する異常要因検出手段とを備えることを特徴とするシステム異常検知装置が提供される。
また、本発明の実施の形態によれば、監視対象システムから取得された複数リソースの時系列ログに基づいて、ログ間の因果を推定して、当該システムの異常を検出するログ分析システムであって、
2つのログ間のスパイク発生時刻のラグを時系列で抽出するラグ抽出手段と、
前記ラグ抽出手段により抽出されたラグにおいて、前記2つのログのうちの一方のログを基準とした正のラグの数と負のラグの数に基づいて、前記2つのログ間の因果の方向と因果の強さを推定する因果推定手段と、
前記因果推定手段により推定される因果の方向と因果の強さに基づいて、第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフを推定するグラフ推定手段と、
第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフとを比較し、因果が追加、削除、又は反転された箇所を抽出する因果変化抽出手段と、
前記因果変化抽出手段により抽出された、第1の因果グラフと第2の因果グラフとの間の因果の変化に基づいて、前記システムにおける異常の要因を検出する異常要因検出手段とを備えることを特徴とするログ分析システムが提供される。
本発明の実施の形態により、ログ間のラグ変動が可変的であることを考慮したログ間の因果推定技術を提供することができる。また、システム全体の因果の繋がりを考慮して、従来よりも高精度にシステムの障害要因の特定を行うことを可能とする技術が提供される。
本発明の実施の形態に係るシステム構成図である。 2つのリソースログを比較した際に、スパイク観測時間の時刻のラグが可変である事例を示す図である。 時系列のラグ抽出手順において使用される検索ウィンドウ閾値を説明するための図である。 時系列のラグ抽出手順を示すフローチャートである。 因果の推定及び異常検知の手順を示すフローチャートである。 因果の推定の具体例を示す図である。 異常要因推定のための手順を示すフローチャートである。 図7に示す手順における具体的な分析例を示す図である。 因果の変化パターンの学習に基づく異常要因箇所推定方法を説明するための図である。 因果の変化パターンの学習に基づく異常要因箇所推定方法の具体例を説明するための図である。
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。本発明は、時系列ログデータを計測可能なあらゆるシステムに適用可能である。
(システム構成、手順概要)
図1に、本発明の実施の形態におけるシステムの構成例を示す。図1に示すように、本実施の形態のシステムは、ログ分析装置100と監視対象システム群200を有し、ログ分析装置100と監視対象システム群200とは、通信ネットワークにより通信可能に接続されている。なお、ログ分析装置100は監視対象システム群200から通信ネットワークを介してログを取得することの他、オフラインでログを取得することとしてもよい。
図1に例示されるように、監視対象システム群200には、種々のリソースを含むサーバ、ネットワーク機器等の時系列ログデータが得られるあらゆる機器が含まれる。本実施の形態は、サーバ、ネットワーク機器、プロセス、サービス等から得られるログを対象とし、当該ログの例としてCPU使用率(CPU負荷)、ネットワーク帯域使用率、ストレージ負荷、サービスに対するクエリ数、ユーザからシステムへの要求受付数、システムからユーザへの応答数、システムを構成するプロセス間の通信発生数等がある。また、本実施の形態における「リソース」は、特定のものに限定されないが、例えば、CPU、メモリ、ネットワーク、ストレージ等である。
ログ分析装置100は、監視対象システム群200から時系列のログを取得し、当該ログを分析することにより、ログ間の因果関係の推定や異常検知等を行う装置である。
図1に示すように、ログ分析装置100は、時系列ログ収集部110、ログ間因果推定部120、因果に基づくシステム異常検知部130を有する。ログ間因果推定部120は、ログ間因果判定部121とログ間異常検知部122を有し、因果に基づくシステム異常検知部130は、システム因果推定部131とシステム異常検知部132を有する。以下、ログ分析装置100における各機能部の機能概要を説明する。
<時系列ログ収集部110>
時系列ログ収集部110は、監視対象システム群200から一定時間間隔でログ(ログデータ)を収集する。ログの収集方法は特定の方法に限定されないが、既存手法が適用可能であり、例えばSimple Network Transfer Protocol(SNMP)(非特許文献4)を利用したリモートからのログ収集や、監視対象のサーバ側においてdstat(非特許文献5)のツールを利用したログ収集方式を利用できる。最終的に蓄積される情報が時系列ログデータであれば、ログの収集方式は問わない。ただし、本実施の形態における技術を適用する場合の制約条件として、ログの収集時刻は、複数ログ間で共通かつ厳密に合わせる必要がある。
<ログ間因果推定部120>
ログ間因果推定部120は、ログ間(リソース間)の因果推定を行う機能部である。ログ間因果推定部120が実行する手順を手順Aと呼び、後述するフローチャートにおいて、ログ間因果推定部120が実行するステップ番号には「A」が付されている。
ログ間因果推定部120におけるログ間因果判定部121は、時系列ログ収集部110で収集した時系列ログデータから、任意の2つのログ(例:1つのログは1つのリソースに対応)を選択して、当該2ログ間の因果を推定する(手順A1)。また、ログ間異常検知部122は、因果の変化に基づき異常を検出する(手順A2)。
より具体的には、ログ間因果判定部121は、手順A1において、比較対象の2つのログにおけるスパイクの発生時刻のラグ(時刻のずれ幅)を考慮して、ログ間の因果を推定する。なお、スパイクとは時系列ログデータにおいて値が急激に上昇する地点であり、スパイクの検出は、例えば、非特許文献7等に記載の既存アルゴリズムを適用できる。
参考として、図2に、実システムの2つリソースで観測されたログと、両者で発生したスパイクの時刻のラグの例を示す。図2に示すように、2つのログ間スパイクのラグは時間によって異なるため、ログ間因果判定部121により、この特徴を捉えることとしている。
図1におけるログ間異常検知部122は、手順A2において、ログ間の因果が、ある時刻において急激に変化した場合に、それを異常として検知することで、当該2ログ間の関係において異常が発生したことを検知する。
<因果に基づくシステム異常検知部130>
因果に基づくシステム異常検知部130は、因果に基づいて、システム全体の異常を検知する機能部である。因果に基づくシステム異常検知部130が実行する手順を手順Bと呼び、後述するフローチャートにおいて、因果に基づくシステム異常検知部130が実行するステップ番号には「B」が付されている。
因果に基づくシステム異常検知部130におけるシステム因果推定部131は、手順Aで推定したログ間の因果関係からシステム全体の因果構造を構築する(手順B1)。また、システム異常検知部132は、手順Aで観測された因果の方向の急激な変化や逆転に基づいて、システムの異常を引き起こすきっかけとなったログを推定する(手順B2)。
システム因果推定部131により実行される手順B1は、手順Aの結果を元にシステム全体の因果構造を推定する手順であり、本実施の形態ではこの手順の実行に、既存方式であるPC−algorithm(非特許文献6)等の因果推定アルゴリズムを適用することを想定する。なお、PC−algorithmを適用することは一例に過ぎない。手順B2の詳細は後述する。
以上、各機能部の概要を説明したが、ログ分析装置100における機能の区分は上記に限られるわけではなく、手順A、手順Bを実行できるのであれば、上記の機能区分以外の機能区分を持つ装置であってもよい。
また、ログ間因果推定部120と、因果に基づくシステム異常検知部130は、それぞれ単独でログ分析装置100に備えられていてもよい。つまり、ログ間因果推定部120により実行された手順Aの結果は、因果に基づくシステム異常検知部130により利用されることは必須ではない。また、因果に基づくシステム異常検知部130は、ログ間因果推定部120により実行された手順Aの結果を入力とすることの他、既存方式により得られた因果グラフを入力として手順Bを実行することもできる。
なお、因果に基づくシステム異常検知部130を備えずにログ間因果推定部120を備える装置をログ間因果推定装置と呼び、ログ間因果推定部120を備えずに因果に基づくシステム異常検知部130を備える装置をシステム異常検知装置と呼んでもよい。また、ログ分析装置100は、ログ分析システムと呼んでもよい。また、図1に示すログ分析装置(ログ分析システム)は、ログ間因果推定装置の例であるとともに、システム異常検知装置の例でもある。
本実施の形態に係るログ分析装置100は、例えば、1つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、ログ分析装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、ログ分析装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。より詳細には、例えば、ログ、ラグ、グラフ等のデータは、メモリ等の記憶手段に記憶されるとともに、プログラムに従って適宜読み出されてCPUで処理され、処理後のデータが記憶手段に記憶される。
上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
上記のようにコンピュータとプログラムで実現できる点は、ログ間因果推定装置、システム異常検知装置についても同様である。
(手順の詳細)
以下、各手順について、より詳細に説明する。
<ログ間因果判定部121:手順A1のラグ変化抽出処理>
まず、ログ間因果判定部121が実行する手順A1におけるラグ変化抽出処理について説明する。手順A1におけるラグ変化抽出処理では、図2で示したように比較対象の2つの時系列ログデータ間のラグが動的に変化する場合において、両者の時系列において短時間内に同時に発生したスパイク同士のラグを測定することで、両者の時系列間の動的なラグの変化を抽出する。
手順A1の内容を図3、図4を参照して説明する。手順A1におけるラグ変化抽出処理では、図3に示すように、事前に検索ウィンドウ閾値ΔTを定めておく。このΔTは適用対象のログや測定時間の幅によって調整が必要である。すなわち、ΔTが大きい場合、より大きい時間幅のラグを検出できる一方で、スパイクが頻繁に発生するログにおいては、因果関係が存在しないスパイクと紐付けられる可能性が高くなり、推定される因果の方向が逆に誤検知される可能性がある。一方でΔTを小さくした場合、短い時間におけるスパイク同士が紐付けられるため、因果関係の誤検知は少なくなる一方で、過負荷等によりラグの大幅な変化の検知が難しくなる。ΔTは上記を踏まえて、比較対象のスパイクの発生頻度やログの測定間隔を考慮して、設定する。
図4のフローチャートに沿って、手順A1の内容を説明する。まず、ステップA11において、基準時刻t´から時間経過の方向に2つの時系列ログ(例:図2に示す2つのリソースのログ)を同時に走査していき、どちらか一方のログにおけるスパイクを検知する。この時、スパイクが観測されたログをX、他方のログをYとし、スパイクの観測時刻をtとおく。スパイクを検知したときにステップA12へ移行する。
ステップA12において、ステップA11でスパイクを検知したログ(X)に対し、他方のログ(Y)において、時刻t±ΔTの範囲にスパイクが存在するかを検索する。該当するスパイクが存在した場合はステップA13に移行し、最もtに近いスパイクを選択してXとYのスパイク同士を紐付ける。その際のXのスパイク発生時刻tとYのスパイクの発生時刻との時間差Δtが時刻tにおけるXとYのラグとし、その値を当該時刻tとともに記録する。
ステップA13の後、もしくは、ステップA12で該当のスパイクが存在しなかった場合、時刻t+1をステップA11のt´に代入し、以後、ステップA11からステップA13を入力時系列ログのどちらか一方の終端に達するまで繰り返す。
<ログ間因果判定部121:手順A1の因果判定処理>
次に、手順A1における因果判定処理について、図5のフローチャートを参照して説明する。
図5のフローチャートにおいて、ステップA14〜A16は、手順A1において、図4の手順で記録した複数のラグの情報(Δt)を入力として、ラグの方向を元に因果の方向を判定する処理を示す。ステップA21は、比較対象の2つの時系列ログ間における異常検知を行うための手順(手順A2)である。まず、手順A1の因果判定処理を説明する。
図5に示すように、図4のステップA11〜A13で求めた紐付け情報(紐付けがあった時刻tと、スパイク時間ずれ量Δtを含む)が入力情報として使用される。
ステップA14では、ログの測定期間中において、入力の2つのログのどちらに多くラグが偏るか否かを集計する。例えば測定サンプル数が100、入力ログをそれぞれX、Yとした場合に、Xを基準にΔtが正であった割合が30サンプル、負であった割合が5サンプルである場合は、X−−>Y:30%、Y−−>X:5%となる。ここで、「X−−>Y」はXが原因、Yが結果の因果を示す。「Y−−>X」はYが原因、Xが結果の因果を示す。
次に、ステップA15において、測定期間全体にわたり、ラグの方向が反転している期間が全体のN%以上か否かを判定する。例えばN=20%の時、5%/30%=約16%となり、ステップA15はNoとなることから、ステップA16に進む。
ステップA16では、X−−>YとY−−>Xの比較により、X−Y間の因果及び因果の強さを判定する。上述の例の場合、X−−>Yの割合が高いので、X−Y間の因果は、Xが原因、Yが結果であり、X−−>Yの因果が生じていると推定できる。このとき、因果の強さCは、推定した因果の方向を正の因果とした時、
C=1−<逆の因果の割合>/<正の因果の割合>
で求める。上記の例では、C=1−5%/30%=約0.84と計算できる。以上より、上記の例においてはXとYの因果はX−−>Yの方向であり、その強さは0.84であると推測できる。ここで得られた因果の方向と強さは、手順B1においてシステムの因果グラフを推定する際に活用できる。例えば因果の方向は有向グラフのエッジの向き、因果の強さはグラフにおけるエッジの重みとして利用できる。
図6に、上記のステップA14〜A16(ステップA15がNoとなる場合)の処理の実システムに基づく具体例を示す。
図6に示すように、時系列ログ収集部110からのデータに基づいて、図4のステップA11〜A13の処理を行うことで、左下に示すような紐付け情報(ログXとログYのラグの方向を時間ごとに図示したもの)が得られる。図5のステップA14の処理を行うことで、X−−>Yの割合が8%、Y−−>Xの割合が56%となり、ログYからログXへの因果が認められる結果が得られている。そして、図5のステップA16の処理を行うことで、図6に示されるように、因果の方向が、ログYからログXの向きとして判定される。
<ログ間異常検知部122:手順A2>
図5に示す因果の推定手順の過程で、ステップA15がYesとなる場合、ステップA21(手順A2)に移行し、ラグの方向が継続的に大きく変化する時間を検出する。大きく変化するとは、例えば、ある閾値よりも大きく変化することである(例:−Aから+Bに変化した場合、A+Bが閾値より大きい)。具体的には、時刻毎に因果の方向及び大きさを判定し、ある時刻を境にラグの方向が大きく変化している場合、又はある時刻を境にラグの方向が不安定になっている場合を検出し、更にそれが一時ではなく継続している時、その時刻の境目を異常発生時刻として記録する。なお、ラグの急激な変化が一時的な場合はノイズの影響が疑われるため、ここでは継続という条件を付加している。継続の判定を行うための継続時間は予め定めておく。異常発生時刻は一度の比較において2回以上出現する場合もある。
続いて、異常発生の分類を容易にするために、記録した異常発生時刻の前後で入力データを分割し、それぞれに対して因果の推定及び因果の強さの算出(ステップA14〜A16)を行って、結果を記録する。これにより、比較対象の2つの時系列において、異常が発生した時刻に加えて、因果の方向や強さがどう変化したかの情報を加味することにより、異常の分類を行う上でサポートとなる情報となり得る。また、この異常発生時刻の前後で入力データを分割し、それぞれに対して因果を判定するという手法は、手順Bの入力データの一つとしても利用できる。
<システム異常検知部132:手順B2>
次に、システム因果グラフの変化に基づく異常検知の手順である手順B2を図7、図8を参照して説明する。なお、手順B2において用いるシステム因果グラフについては、システム因果推定部131による手順B1により生成される(図7のステップB21)。
すなわち、図7は、システムの正常時(時間帯Z)及び検査対象時刻(時間帯W)のそれぞれに対して、手順B1を適用して推定したシステム全体のログの因果グラフにおいて、両者のグラフに因果の変化が生じている箇所に着目して、異常要因を特定する手順を示す。ただし、入力データの一方は必ずしも正常時である必要はなく、ある時間帯を基準にした異常の検知という観点においては、任意の時間帯のログを入力可能である。以下、各ステップについて説明する。
図7のステップB21において、手順B1を適用し、システム因果推定部131が、正常時(Z)及び検査対象時刻(Z)それぞれのリソースログに基づくシステム因果グラフ(グラフZ,グラフW)を生成する。
上記システム因果グラフは、例えば、手順Aもしくは他の方式で推定した因果の方向に基づき、PC−algorithm(非特許文献2)などの因果グラフ推定手法を適用して推定される。手順Aの結果を利用する場合は、すべてのリソースのペアに対して手順Aを再帰的に適用し、因果の強さが一定以上の因果のペアを抽出した上で、それらの因果のペアに基づいて因果グラフ推定手法を適用する。更に手順Aの入力データを利用する場合は、他の手法と異なり、因果の強さをグラフのエッジ(枝)の重みとして割り当てることが可能である。
例えば、図8に示す例では、ステップB21において、時間帯Z、Wそれぞれにおける因果のペアの集合に対して、因果グラフ推定手法を適用して、Zに対してグラフZ(図8の上)、Wに対してグラフW(図8の下)を生成する。
なお、入力となる正常時の時間帯Zと検査対象の時間帯Wは連続した時間である必要はなく、例えばZとWは数日や1ヶ月の時間が空いていても適用可能であり、あるいは手順A2において因果が逆転した前の時間帯をZ、後の時間帯をWとして入力することが可能である。一方で、正常時と比較した異常箇所ではなく、リソース状況の変化のみ検知することが目的である場合は、Zは必ずしもシステム正常時の時間帯のものである必要はない。
ステップB22では、システム異常検知部132が、2つのシステム因果グラフ間の差分の抽出する。すなわち、ステップB21で得られたグラフZとグラフWを比較し、両者で因果の変化が生じている箇所を抽出する。ここでは因果の変化として、Zに対してWで因果が新たに発生した箇所、因果が消失した箇所、因果の方向が逆転した箇所を対象とする。因果の重みの情報が存在する場合は、因果の重みの変化も抽出対象である。図8の例では、グラフWにおいて点線で示されている変化箇所が抽出される。
ステップB23では、システム異常検知部132が、因果の変化に基づく異常発生箇所の推定を行う。すなわち、ステップB22で抽出した2つのグラフ間の因果の変化に着目し、変化を引き起こした要因となるログ(リソース)を推定する。ステップB23における推定手法として複数の方法を適用することができ、それぞれについて下記に説明する。
<システム異常検知部132:ステップB23の異常発生箇所推定方法例1>
異常発生箇所推定方法の一つとして、異常ログを基点に因果を遡る方式(従来手法)の拡張を利用することができる。この方法は非特許文献2において採用されている方法である。具体的には、別の方法(閾値等)で、あるログに異常を検知した場合に、そのログを起点にシステム因果グラフの矢印を、結果から原因の方向へ辿ることで、異常の検知(異常の原因の検知)を試みる方式である。非特許文献2では、因果グラフを辿る際にある結果に対して複数の原因が存在する場合は、最も変動が大きい原因を選択する方式も取り入れている。この非特許文献2の手法がステップB23においても適用可能である。
ここで、非特許文献2は、正常時のグラフのみを用いて要因を推定しているのに対し、本実施の形態では正常時のグラフに加えて、異常時(検査対象)のグラフの因果も同時に考慮し、更に非特許文献2では考慮していない因果の変化と重みを考慮することで、要因の検知範囲の拡大や、複数の要因の候補が存在する場合の絞り込みによる要因検知精度の向上が期待できる。例えば、正常時の因果グラフではある結果Aに対して原因が{C1,C2,C3}しか抽出されず、いずれも根本要因ではないケースがある。このとき、異常時のみに発生する因果グラフを考慮すると、結果Aに対して原因が{C1,C2,C3,C4,C5}のように原因の候補を拡充することが可能であり、原因検知の幅を広げることができる。更に本実施の形態特有のメリットとして、非特許文献2の手法は特定のログの異常を起点としてシステムに入力する必要があるが、本実施の形態の手順B2はステップB22の手順を踏まえて、正常時と比較した場合の異常時の変化を網羅的に抽出することができるため、特定ログで異常を検知する前に、本手法が可能である。すなわち手順B2により、特定ログの異常として表出する前の、システム上の初期段階の異常である予兆を捉えることができる。
<システム異常検知部132:ステップB23の異常発生箇所推定方法例2>
異常発生箇所推定方法例2では、因果グラフの変化を学習することによる異常要因検出を行う。異常発生箇所推定方法例2は、本実施の形態における独自の方法である。
システムに異常が発生した場合に、それが因果グラフに対してどのように影響を与えるかを事前に把握することは難しい。すなわち、システム上で異常が発生した際に、それがステップB22における、因果グラフ上の因果の発生/削除/反転という変化事象に結びつくルールを人力で定義することは難しい。
そこで、異常発生箇所推定方法例2では因果グラフを抽象化してパターン化し、事前に教師データとして異常要因を与えてパターンと異常箇所の関係を学習することで、未知の異常を検知することとしている。従って、本例では、因果に基づくシステム異常検知部130内に、因果変化パターンDB(データベース)133が備えられる。なお、因果変化パターンDB133は、ログ分析装置100内の備えられていなくてもよい。例えば、外部のデータベースサーバに備え、当該データベースサーバに通信ネットワークを介してアクセスすることとしてもよい。
本例が機能するには一定量の学習が必要であることから、学習を用いない前者の手法(異常発生箇所推定方法例1)と比較して即応性には劣るものの、十分な学習データを蓄積することで、前者の手法を上回る精度を得ることが期待できる。
異常発生箇所推定方法例2における、システム異常検知部132の処理手順を図9に示し、その具体例を図10に示す。
図9、図10に示す処理では、因果の構造変化をパターンとして抽出し、すでに自明である故障箇所と対応させて学習しておくことで、未知の因果の変化パターンに対して、最も可能性の高い故障箇所を推定可能とする。つまり、学習フェーズと判定フェーズを有する。
図9に示すように、学習フェーズと判定フェーズのいずれも入力は手順B2のステップB22で抽出した因果の変化箇所のサブグラフであるが、事前に当該グラフの各ノード(ログ)の名前を取り除き、抽象化したグラフに変換をする。具体例は、図10の左側に示される。
図9、図10に示す学習フェーズ(ステップB31)において、システム異常検知部132は、抽象化したグラフパターンに対して、既に判明済みの故障箇所の情報を与えることで、グラフパターンに対応する異常箇所の関係性を抽出し、因果の変化パターンと異常箇所の対応関係を因果変化パターンDB133に格納する。図10の例では、故障箇所がマークされていることが示される。
図9、図10に示す判定フェーズ(ステップB32)において、システム異常検知部132は、故障箇所が未知の場合において、抽象化したグラフパターンと因果変化パターンDB133を照合することにより、最も可能性の高い異常箇所を推定する。因果変化パターンDB133への照合方法としては、グラフのパターンが厳密に一致していなくとも、類似のグラフパターンを検索可能である既存方式(例えば、非特許文献7)を適用する。
異常発生箇所推定方法例2は事前にパターンを蓄積する必要があるものの、すでに判明している因果変化及び類似のパターンに対しては、より精度の高い故障要因箇所の推定を実現する。
(実施の形態のまとめ)
以上、説明したように、本実施の形態では、監視対象システムから取得された複数リソースの時系列ログに基づいて、ログ間の因果を推定するログ間因果推定装置であって、2つのログ間のスパイク発生時刻のラグを時系列で抽出するラグ抽出手段と、前記ラグ抽出手段により抽出されたラグにおいて、前記2つのログのうちの一方のログを基準とした正のラグの数と負のラグの数に基づいて、前記2つのログ間の因果の方向と因果の強さを推定する因果推定手段とを備えるログ間因果推定装置が提供される。
前記ラグ抽出手段は、予め検索ウィンドウ閾値ΔTを保持し、前記2つのログを時系列に走査し、いずれかのログにおいて時刻tに第1のスパイクを検知した場合に、他方のログにおいて時刻t±ΔTにスパイクが存在するか否かを判定し、該当するスパイクが存在する場合に、最も時刻tに近いスパイクを第2のスパイクとして選択し、第1のスパイクと第2のスパイクの発生時刻の時間差を時刻tにおける2つのログ間のラグとすることができる。
前記ログ間因果推定装置は、前記ラグ抽出手段で抽出されたラグの正負の方向が反転している期間が所定閾値よりも大きい場合、ある時刻を境にラグの方向が大きく変化すること、又はある時刻を境にラグの方向が不安定になることが継続することを検知した場合に、当該時刻を異常発生時刻として検出するログ間異常検知手段を更に備えることとしてもよい。
また、本発明の実施の形態によれば、監視対象システムから取得された複数リソースの時系列ログから得られたログ間の因果を表す因果グラフに基づいて、当該システムの異常を検知するシステム異常検知装置であって、第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフとを比較し、因果が追加、削除、又は反転された箇所を抽出する因果変化抽出手段と、前記因果変化抽出手段により抽出された、第1の因果グラフと第2の因果グラフとの間の因果の変化に基づいて、前記システムにおける異常の要因を検出する異常要因検出手段とを備えるシステム異常検知装置が提供される。
前記異常要因検出手段は、例えば、前記因果が変化した箇所についての因果を逆に辿ることで異常の要因を検出する。
また、前記異常要因検出手段は、既知の異常箇所の情報に基づいて、第1の因果グラフと第2の因果グラフとの間の因果の変化パターンと、異常箇所との対応関係を因果変化パターンデータベースに記録する学習手段と、異常箇所が未知の因果の変化パターンと前記因果変化パターンデータベースとを照合することにより、当該因果の変化パターンにおける異常箇所を判定する判定手段とを備えることとしてもよい。
また、本実施の形態によれば、監視対象システムから取得された複数リソースの時系列ログに基づいて、ログ間の因果を推定して、当該システムの異常を検出するログ分析システムであって、2つのログ間のスパイク発生時刻のラグを時系列で抽出するラグ抽出手段と、前記ラグ抽出手段により抽出されたラグにおいて、前記2つのログのうちの一方のログを基準とした正のラグの数と負のラグの数に基づいて、前記2つのログ間の因果の方向と因果の強さを推定する因果推定手段と、前記因果推定手段により推定される因果の方向と因果の強さに基づいて、第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフを推定するグラフ推定手段と、第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフとを比較し、因果が追加、削除、又は反転された箇所を抽出する因果変化抽出手段と、前記因果変化抽出手段により抽出された、第1の因果グラフと第2の因果グラフとの間の因果の変化に基づいて、前記システムにおける異常の要因を検出する異常要因検出手段とを備えるログ分析システムが提供される。
(実施の形態の効果等)
上記のように、本実施の形態では、ログ間のラグ変動が可変的であることに着目し、更にラグの変動が時間経過によって変動することを考慮したログ間の因果推定技術が提供される。本実施の形態では、因果推定結果を元に構築したシステム全体の因果グラフを元に、因果の方向が時間によって変化もしくは反転する特徴を用いた障害要因推定技術が提供される。
ログ間の因果推定において、非特許文献1、2では、ログ間のラグ変動が可変的であることや、ラグの変動が時間経過によって変動することが考慮されていない。また、因果グラフ構築後の異常要因検知方法に関して、前述したように、非特許文献2では異常を検知したログを起点に因果グラフの結果から原因に向けて辿ることで故障要因を推定する。しかし、非特許文献2では「サービス数が多い」、「収集データサンプル数が少ない」、「障害箇所が複数」の状況下で検知精度が悪化することが述べられており、仮にこれらの条件が理想状態である場合も検知精度は90%に及ばない。それに対し、本実施の形態に係る技術は、リソース間の因果関係の判定方法を高度化(手順A)し、例えば異常発生前と後の異なる時間帯における因果グラフを構築し、ログの因果関係が時間経過により新規に追加/削除/反転する特徴を利用(手順B2)して、従来方式よりも高い精度の異常検知が可能である。
なお、本実施の形態における図4の方式(手順A1)を実装するにあたり、時系列比較アルゴリズムの一つであるDynamic Time Warping(DTW)にWindow制約(非特許文献3)を設けた方式が、スパイク間のラグを比較するためのアルゴリズムが近似的に適用できることを確認している。DTWは比較対象の2つのデータ系列においてズレが存在する場合に、そのズレの変化を検出可能なアルゴリズムである。DTWアルゴリズムは一般に音声認識や文字列認識、画像認識等の分野で利用されている。一方で、本実施の形態のようなサーバリソース等におけるログ間のラグの検出と変化にDTWを適用する例は見当たらない。
以上、説明したように、本発明の実施の形態によれば、システムの異常発生時もしくは性能劣化時の迅速な要因の特定が可能となり、更には従来のログ分析手法やオペレータの判断では検知が困難であったシステムの特異な振る舞いを検知し、故障や異常の早期の検知が可能となる。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
100 ログ分析装置
110 時系列ログ収集部
120 ログ間因果推定部
121 ログ間因果判定部
122 ログ間異常検知部
130 因果に基づくシステム異常検知部
131 システム因果推定部
132 システム異常検知部

Claims (8)

  1. 監視対象システムから取得された複数リソースの時系列ログに基づいて、ログ間の因果を推定するログ間因果推定装置であって、
    2つのログ間のスパイク発生時刻のラグを時系列で抽出するラグ抽出手段と、
    前記ラグ抽出手段により抽出されたラグにおいて、前記2つのログのうちの一方のログを基準とした正のラグの数と負のラグの数に基づいて、前記2つのログ間の因果の方向と因果の強さを推定する因果推定手段と
    を備えることを特徴とするログ間因果推定装置。
  2. 前記ラグ抽出手段は、予め検索ウィンドウ閾値ΔTを保持し、前記2つのログを時系列に走査し、いずれかのログにおいて時刻tに第1のスパイクを検知した場合に、他方のログにおいて時刻t±ΔTにスパイクが存在するか否かを判定し、該当するスパイクが存在する場合に、最も時刻tに近いスパイクを第2のスパイクとして選択し、第1のスパイクと第2のスパイクの発生時刻の時間差を時刻tにおける2つのログ間のラグとする
    ことを特徴とする請求項1に記載のログ間因果推定装置。
  3. 前記ラグ抽出手段で抽出されたラグの正負の方向が反転している期間が所定閾値よりも大きい場合、ある時刻を境にラグの方向が大きく変化すること、又はある時刻を境にラグの方向が不安定になることが継続することを検知した場合に、当該時刻を異常発生時刻として検出するログ間異常検知手段
    を更に備えることを特徴とする請求項1又は2に記載のログ間因果推定装置。
  4. 監視対象システムから取得された複数リソースの時系列ログから得られたログ間の因果を表す因果グラフに基づいて、当該システムの異常を検知するシステム異常検知装置であって、
    第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフとを比較し、因果が追加、削除、又は反転された箇所を抽出する因果変化抽出手段と、
    前記因果変化抽出手段により抽出された、第1の因果グラフと第2の因果グラフとの間の因果の変化に基づいて、前記システムにおける異常の要因を検出する異常要因検出手段と
    を備えることを特徴とするシステム異常検知装置。
  5. 前記異常要因検出手段は、前記因果が変化した箇所についての因果を逆に辿ることで異常の要因を検出する
    ことを特徴とする請求項4に記載のシステム異常検知装置。
  6. 前記異常要因検出手段は、
    既知の異常箇所の情報に基づいて、第1の因果グラフと第2の因果グラフとの間の因果の変化パターンと、異常箇所との対応関係を因果変化パターンデータベースに記録する学習手段と、
    異常箇所が未知の因果の変化パターンと前記因果変化パターンデータベースとを照合することにより、当該因果の変化パターンにおける異常箇所を判定する判定手段と
    を備えることを特徴とする請求項4に記載のシステム異常検知装置。
  7. 監視対象システムから取得された複数リソースの時系列ログに基づいて、ログ間の因果を推定して、当該システムの異常を検出するログ分析システムであって、
    2つのログ間のスパイク発生時刻のラグを時系列で抽出するラグ抽出手段と、
    前記ラグ抽出手段により抽出されたラグにおいて、前記2つのログのうちの一方のログを基準とした正のラグの数と負のラグの数に基づいて、前記2つのログ間の因果の方向と因果の強さを推定する因果推定手段と、
    前記因果推定手段により推定される因果の方向と因果の強さに基づいて、第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフを推定するグラフ推定手段と、
    第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフとを比較し、因果が追加、削除、又は反転された箇所を抽出する因果変化抽出手段と、
    前記因果変化抽出手段により抽出された、第1の因果グラフと第2の因果グラフとの間の因果の変化に基づいて、前記システムにおける異常の要因を検出する異常要因検出手段と
    を備えることを特徴とするログ分析システム。
  8. 監視対象システムから取得された複数リソースの時系列ログに基づいて、ログ間の因果を推定して、当該システムの異常を検出するログ分析システムが実行するログ分析方法であって、
    2つのログ間のスパイク発生時刻のラグを時系列で抽出するラグ抽出ステップと、
    前記ラグ抽出ステップにより抽出されたラグにおいて、前記2つのログのうちの一方のログを基準とした正のラグの数と負のラグの数に基づいて、前記2つのログ間の因果の方向と因果の強さを推定する因果推定ステップと、
    前記因果推定ステップにより推定される因果の方向と因果の強さに基づいて、第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフを推定するグラフ推定ステップと、
    第1の時間帯におけるログに基づく第1の因果グラフと、第2の時間帯におけるログに基づく第2の因果グラフとを比較し、因果が追加、削除、又は反転された箇所を抽出する因果変化抽出ステップと、
    前記因果変化抽出ステップにより抽出された、第1の因果グラフと第2の因果グラフとの間の因果の変化に基づいて、前記システムにおける異常の要因を検出する異常要因検出ステップと
    を備えることを特徴とするログ分析方法。
JP2014167381A 2014-08-20 2014-08-20 ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法 Active JP6196196B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014167381A JP6196196B2 (ja) 2014-08-20 2014-08-20 ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014167381A JP6196196B2 (ja) 2014-08-20 2014-08-20 ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法

Publications (2)

Publication Number Publication Date
JP2016045556A JP2016045556A (ja) 2016-04-04
JP6196196B2 true JP6196196B2 (ja) 2017-09-13

Family

ID=55636108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014167381A Active JP6196196B2 (ja) 2014-08-20 2014-08-20 ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法

Country Status (1)

Country Link
JP (1) JP6196196B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6623128B2 (ja) * 2016-08-01 2019-12-18 株式会社日立製作所 ログ分析システム、ログ分析方法及びログ分析装置
JP6823265B2 (ja) * 2017-03-28 2021-02-03 富士通株式会社 分析装置、分析システム、分析方法および分析プログラム
JP6954379B2 (ja) * 2018-01-12 2021-10-27 日本電信電話株式会社 異常箇所特定装置、異常箇所特定方法及びプログラム
JP7036697B2 (ja) 2018-09-27 2022-03-15 株式会社日立製作所 監視システム及び監視方法
CN110750412B (zh) * 2019-09-02 2022-10-21 北京云集智造科技有限公司 日志异常检测方法
CN114338248B (zh) * 2022-03-15 2022-08-05 北京大学 基于机器学习的用户异常行为检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3489279B2 (ja) * 1995-07-21 2004-01-19 株式会社日立製作所 データ分析装置

Also Published As

Publication number Publication date
JP2016045556A (ja) 2016-04-04

Similar Documents

Publication Publication Date Title
JP6196196B2 (ja) ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法
US10860939B2 (en) Application performance analyzer and corresponding method
US10291463B2 (en) Large-scale distributed correlation
Bodik et al. Fingerprinting the datacenter: automated classification of performance crises
US8078913B2 (en) Automated identification of performance crisis
US8635498B2 (en) Performance analysis of applications
Vilalta et al. Predictive algorithms in the management of computer systems
US8463899B2 (en) System, method and computer program product for optimized root cause analysis
JP6183450B2 (ja) システム分析装置、及び、システム分析方法
US20140365829A1 (en) Operation management apparatus, operation management method, and program
Jiang et al. Efficient fault detection and diagnosis in complex software systems with information-theoretic monitoring
CN106104496A (zh) 用于任意时序的不受监督的异常检测
CN111309539A (zh) 一种异常监测方法、装置和电子设备
US10404524B2 (en) Resource and metric ranking by differential analysis
JP6183449B2 (ja) システム分析装置、及び、システム分析方法
US20160255109A1 (en) Detection method and apparatus
JP2018165857A (ja) 分析装置、分析システム、分析方法および分析プログラム
Wu et al. Identifying root-cause metrics for incident diagnosis in online service systems
Gurumdimma et al. Towards detecting patterns in failure logs of large-scale distributed systems
US10742535B2 (en) Monitoring a resource consumption of an application
US9397921B2 (en) Method and system for signal categorization for monitoring and detecting health changes in a database system
WO2021109874A1 (zh) 拓扑图生成方法、异常检测方法、装置、设备及存储介质
Bhattacharyya et al. Online phase detection and characterization of cloud applications
AU2021269196B2 (en) Performance event troubleshooting system
US9473368B1 (en) Network graph representation of physically connected network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170726

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170817

R150 Certificate of patent or registration of utility model

Ref document number: 6196196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150