JP6201079B2 - 監視システムおよび監視方法 - Google Patents
監視システムおよび監視方法 Download PDFInfo
- Publication number
- JP6201079B2 JP6201079B2 JP2017501743A JP2017501743A JP6201079B2 JP 6201079 B2 JP6201079 B2 JP 6201079B2 JP 2017501743 A JP2017501743 A JP 2017501743A JP 2017501743 A JP2017501743 A JP 2017501743A JP 6201079 B2 JP6201079 B2 JP 6201079B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- event
- monitoring
- time
- pair
- 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.)
- Expired - Fee Related
Links
- 238000012544 monitoring process Methods 0.000 title claims description 201
- 238000000034 method Methods 0.000 title claims description 55
- 230000008859 change Effects 0.000 claims description 24
- 238000005070 sampling Methods 0.000 claims description 14
- 239000013598 vector Substances 0.000 claims description 13
- 238000009826 distribution Methods 0.000 claims description 7
- 230000014509 gene expression Effects 0.000 description 57
- 238000004364 calculation method Methods 0.000 description 44
- 230000006870 function Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 29
- 238000012545 processing Methods 0.000 description 22
- 238000013523 data management Methods 0.000 description 17
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 238000012706 support-vector machine Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000003860 storage Methods 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000007477 logistic regression Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000010079 rubber tapping Methods 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- BYHQTRFJOGIQAO-GOSISDBHSA-N 3-(4-bromophenyl)-8-[(2R)-2-hydroxypropyl]-1-[(3-methoxyphenyl)methyl]-1,3,8-triazaspiro[4.5]decan-2-one Chemical compound C[C@H](CN1CCC2(CC1)CN(C(=O)N2CC3=CC(=CC=C3)OC)C4=CC=C(C=C4)Br)O BYHQTRFJOGIQAO-GOSISDBHSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012880 independent component analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、種々のシステムを監視対象とした監視システムおよび監視方法に関する。
様々な情報通信サービスや社会インフラサービスが、膨大な計算機、および、計算機を内蔵した各種の機器・設備を含むシステムに支えられている。昨今、このようなシステムは、より便利なサービスの提供、高度な最適化のために大規模化・複雑化が進んでいる。また、コスト低減の要請から、第三者が提供するハードウェアやソフトウェア、あるいはOSS(Open Source Software)などを組み合わせて、システムが構築されることが一般化している。このため、ブラックボックスな部分を含むシステムの運用監視が求められ、運用監視者に掛かる負荷は増大している。このため、システムの運用監視の省力化・自動化が強く求められている。
一般的なシステム監視ソフトウェアは、ユーザの省力化を目的として柔軟な検索機能や予め登録したルール(データの閾値チェックや出現パターン)をチェックする機能を提供している。しかし、これらの機能を活用しても、運用監視者が監視のために見るべきデータは膨大にあり、またルールの登録作業なども負荷となっている。
特許文献1では、複数の被管理装置から複数種の性能項目毎の性能情報を取得し、その性能情報の時系列変化を示す性能系列情報から相関モデルを生成し、新たに取得される性能情報に基づいて、相関モデルの変化を分析する技術が開示されている。
しかしながら、特許文献1記載の技術は、CPU(Central Processing Unit)やメモリの使用状況に代表される性能情報を対象としているため、計算機や計算機を内蔵した各種の機器・設備の一側面の状態しか監視できない。すなわち、syslogやミドルウェアのログ(Webサーバのログ、通信ログ等)のような、監視対象システムの多くの計算機の内部状態を含む情報を活用することができず、特に複数のメーカーの製品を組合せて構築された監視対象システムでは、監視に十分な情報が性能情報からだけでは得られない。
一般にCPUやメモリの使用状況のような性能情報は、定常的に収集可能であり、時間軸に対して比較的滑らかに変化する。しかも、性能情報は、収集時点で1次元の実数もしくは低次元の実数ベクトルである。このため、一般的な相関(ピアソンの積率相関等)が有効に働く可能性が高い。また、低次の線形多項式などの統計モデルによくフィッティングできる可能性も高い。ところが、ログは日時とテキスト表現されたメッセージを少なくとも含むイベントの集合であって、各イベントの数値表現は自明ではない。しばしば単語ごとに個別のIDを割り当て、各IDを要素とする超高次元かつ疎なベクトルとして表現する方法がとられる。しかし、イベントは文書やWebページほど単語を含まない。そのため、例えば、ある単語に絞って観察した場合、その単語の発生はまばらで、低次の線形多項式でうまく表現することも難しい。また、そもそもイベントが発生するタイミングは非定常である。したがって、特許文献1記載の技術をそのままログに適用しようとしても適切な相関関係を見出せない可能性が高い。
そこで、監視に十分な情報である、非定常かつ数値表現が自明でないログを活用できる監視システムが望まれる。
開示する監視システムは、監視対象システムから出力され、少なくとも時刻とメッセージを含むイベントの集合である第1のログに含まれるイベントの分散表現を生成し、2種類のイベントの集合の分散表現に関して、時刻が所定時間内のイベントのペアの第1の相関値を算出し、所定値以上の第1の相関値に対応する第1のログのペアを選定し、第1のログのペアを構成する第1のログに含まれるイベントの集合から監視対象とするイベントを抽出する関数を生成する監視対象選定部、および、稼働中の監視対象システムから出力される第2のログに含まれる、選定された第1のログのペアに対応する第2のログのペアに関して、第2のログのペアを構成する第2ログに含まれるイベントの集合から、関数を用いて、監視対象とするイベントを抽出し、抽出したイベントのペアの第2の相関値を算出し、第1の相関値から第2の相関値への変化を検出する監視部を有する。
開示する監視システムによれば、監視に十分な情報である、非定常かつ数値表現が自明でないログを活用できる。
本実施形態では、情報通信サービス、あるいは、社会インフラサービスを支える計算機システムや計算機を内蔵した各種の機器・設備により構成したシステム(監視対象システムと呼ぶ。)が出力するログの相関関係から、監視対象システムのシステム状態の変化が反映される相関関係の変化を監視・検出する監視システムを説明する。
監視システムの処理は、監視対象システムが出力した正常時のログから相関値が所定の値以上となるログのペア(組合わせ)を監視対象として選定し、各ログのイベント群から監視対象となるイベントのサブセットを抽出する関数を生成する監視対象選定フェーズと、監視対象システムが出力するログを監視し、相関関係に大きな変化がある場合には、運用監視者にその状況を提示する監視フェーズとに分けられる。
監視対象選定フェーズでは、監視システムは、監視対象システムを構成する各装置から収集したOSやミドルウェアのログを解析し、ログに含まれる単語や熟語等の連語(言語表現)、あるいは、IPアドレスなどの計算機固有の表現を抽出し、辞書に登録し、登録した表現にID付けする。次に、ID表現されたイベントのメッセージを使って低次元密な実数ベクトル(分散表現)を生成する。そして、ログの各組合せについて、イベント群のサブセットの相関値が所定の値以上となるログのペアを監視対象として選定する。この際、相関値には、MIC(Maximal information coefficient)やヒルベルト-シュミット独立基準などの独立性に基づく非線形な相関値を用いる。また、各ログのイベント群から監視対象となるイベントのサブセットを抽出する関数(監視イベント判別関数と呼ぶ)を生成する。
監視フェーズでは、監視システムは、監視対象選定フェーズで選定されたログのペアについて次の処理を実行する。まず、監視対象システムの稼働中のログから、監視イベント判別関数を用いて、監視対象となるログのイベント群のサブセットを抽出する。次に、サブセットに含まれるイベントについて、監視対象選定フェーズと同様の手順で分散表現を生成し、相関値を算出する。そして、算出した相関値に、監視対象選定フェーズで算出した相関値から大きな変化が検出された場合には運用監視者にその変化を通知する。このように、運用監視者は正常時のログのペアを監視対象として選定することによって、ログを自動的に監視できるようになる。
図1は、監視システムの構成例である。監視システム1は、監視対象となる高い相関が見られたログのペアを選定し、また、各ログのイベント群から監視対象となるイベントのサブセットを抽出する関数を生成する選定サーバ11と、選定されたログのペアの相関値を監視する監視サーバ12と、相関値に変化が検出された場合に、その状況を運用監視者に提示する表示端末13とを備える。選定サーバ11、監視サーバ12、および表示端末13は、LAN(Local Area Network)等のネットワークで接続される。また、監視サーバ12は、後述の監視対象システム2の各サブシステムと、LAN等のネットワークで接続される。
監視対象システム2は、1つまたは複数の被監視装置21を備える。各被監視装置21はLAN等のネットワークで接続される。なお、本実施形態では監視システム1の選定サーバ11等の各サブシステム、監視対象システム2の各被監視装置21である各サブシステム、および、監視システム1と、監視対象システム2がLAN等のネットワークで接続されるが、各接続は、例えばWWW(World Wide Web)等の他のネットワークを介して接続されていても良い。また、上記各サブシステムは一例であって、サブシステムの数は増減してもよく、一つのネットワークで接続されていても、さらに階層分けされて接続されていてもよい。例えば、選定サーバ11と監視サーバ12が同一のサーバであってもよいし、選定サーバ11や監視サーバ12が複数台のサーバで分散的に構成されていてもよい。また、例えば、選定サーバ11に含まれるデータ管理部114がデータ管理サーバなど、他の計算機であってもよい。
図2は、監視システム1の各サブシステムを実現するサーバ(計算機)のハードウェア構成例である。図1と図2を参照して、各サブシステムの構成とハードウェアの対応を説明する。
選定サーバ11が備える分散表現生成部111、相関算出部112、監視対象選定部113、およびデータ管理部114の各処理部は、CPU(Central Processing Unit)1101が、ROM(Read Only Memory)1102もしくは外部記憶装置1104に格納されたプログラムをRAM(Read Access Memory)1103に読み込み、読み込んだプログラムを実行することにより、通信I/F(Interface)1105、マウスやキーボード等に代表される入力装置1106、ディスプレイなどに代表される出力装置1107を制御することで実現される。
監視サーバ12が備える分散表現生成部121、相関算出部122、および監視部123の各処理部は、CPU1101が、ROM1102もしくは外部記憶装置1104に格納されたプログラムをRAM1103に読み込み、読み込んだプログラムを実行することにより、通信I/F1105、マウスやキーボード等に代表される入力装置1106、ディスプレイなどに代表される出力装置1107を制御することで実現される。
表示端末13が備える表示部131は、CPU1101が、ROM1102もしくは外部記憶装置1104に格納されたプログラムをRAM1103に読み込み、読み込んだプログラムを実行することにより、通信I/F1105、マウスやキーボード等に代表される入力装置1106、ディスプレイなどに代表される出力装置1107を制御することで実現される。
被監視装置21が備えるデータ管理サービスやリソース最適化などの処理(図示略)は、CPU1101が、ROM1102もしくは外部記憶装置1104に格納されたプログラムをRAM1103に読み込み、読み込んだプログラムを実行することにより、通信I/F1105、マウスやキーボード等に代表される入力装置1106、ディスプレイなどに代表される出力装置1107を制御することで実現される。
図3は、監視サーバ12が監視対象システム2から収集するログの具体例140である。ログ140には通常1つ以上のイベントが含まれる。例えば、ログ140は、BSD(登録商標)あるいはLinux(登録商標)系OSで一般的なログの一つであるsyslogの例である。各イベントは、そのイベントが生成された日時(時刻)、発行したデータソース名、およびイベントの内容を表す短いテキストが記載されていることが多い。ログ140の1行目のイベントは、イベントが生成された日時が“May 1 10:00:00”であり、データソース名が“machine1 anacron[1055]”であり、イベントの内容が“Job `cron.daily' terminated”である。また、イベントの重要度(info, error等)が付与される場合もある。syslogやwebサーバログなどでは図3で示すように1行で、1つのイベントの情報が記載されるが、他の種別のログでは複数行にわたってより詳細に情報が記載されている場合もある。本実施形態ではこういった記載形式に係らず、日時、データソース名を除いた部分を総称して単にメッセージと呼ぶ。
図4は、監視サーバ12が監視対象システム2から収集し、選定サーバ11のデータ管理部114で蓄積されるログデータ150の例である。ログデータ150は、ログに含まれる各イベントをテーブルの1レコードに対応させたデータであって、ログID151と、日時152、データソース名153、およびメッセージ154の項目を備える。ログID151に対応する各項目の内容は基本的に元のログ140と同じである。ただし、日時152はフォーマットをISO8601などに共通の形式に統一する。
図5は、選択サーバ11のデータ管理部114で管理される監視対象データ160の例である。監視対象データ160は、選定サーバ11の監視対象選定部113が選定したログのペア(ログ1、ログ2)と関連するパラメータに関するデータであって、監視単位を識別する監視ID161、ペアの期待されるログの相関の高さを表す相関値162、ペアの各ログの識別子を表すログ1−ID163、ログ2−ID164、ペアの各ログに含まれるイベントのどれが監視対象となるかを判別する関数のパラメータを表すログ1−イベント判別関数パラメータ165、ログ2−イベント判別関数パラメータ166、ペアの各ログに含まれるイベントがどのクラスタに所属するかを判別する関数のパラメータを表すログ1−クラスタ判別関数パラメータ167、ログ2−クラスタ判別関数パラメータ168を備える。
ここで、未知イベントの判別にSVM(Surport Vector Machine)、既知イベントのクラスタリングおよび未知イベントのクラスタ判別にK−meansを用いるため、イベント判別関数のパラメータはSVMのパラメータを表す実数値列、クラスタ判別関数のパラメータは重心の位置を表す実数値列のクラスタ数分のリストとなる。
なお、本実施形態ではSVM、K−meansを用いるが、他の方法、例えば、イベント判別にロジスティック回帰やパーセプトロン、クラスタ判別にスペクトラルクラスタリングや情報量最大化クラスタリングなどを使っても良い。その場合は、用いる手法に応じたパラメータを各項目(165〜168)に設定する。
図6は、分散表現を生成するための分散表現生成モデルパラメータ170の例である。本実施形態では分散表現生成にSkipgramを拡張したモデルを用いる。このため、本質的にパラメータは重み行列である。重み行列の縦の要素数は、辞書に登録した語(表現)のIDの数、横の要素数は、システム設計者により設定された分散表現自体の数である。辞書に登録した語(表現)のIDは、監視対象システム2を構成する各装置21から収集したOSやミドルウェアのログを解析し、含まれる単語や熟語等の連語(言語表現)、あるいは、IPアドレスなどの計算機固有の表現を抽出し、辞書に登録するために付した識別子である。従って、分散表現生成モデルパラメータ170は、ログを識別するログID171と、重み行列を表すパラメータ172を備える。なお、本実施形態ではSkipgramを拡張したモデルを用いるが、Recurent Neuralnetworkを用いたニューラル言語モデル等他の方法を使っても良い。その場合は、用いる手法に応じてパラメータ172を設定する。
図7は、監視サーバ12の監視部123で算出され、選定サーバ11のデータ管理部114で管理される運用時相関値データ180の例である。運用時相関値データ180は、運用中(監視対象システム2が稼働中)のデータを使って監視部123が計算した監視IDごとの相関値の時系列データであって、監視ID181(監視ID161に対応)、日時12、および相関値183を備える。この運用時相関値データ180は、表示端末13の表示部131に表示されるデータとなる。
図8は、監視対象選定部113の、ある2種類のログに対する監視対象選定処理の処理フローチャートである。なお、本処理の実行に先立って監視サーバ12が監視対象システム2の正常時のログを収集し、選定サーバ11のデータ管理部114にログデータ150を登録済みであるとする。
監視対象選定部113は、分散表現生成部111を用いて、データ管理部114のログデータ150から、各イベントの前後に発生するイベントに基づいて、イベントの低次元密な実数ベクトルである分散表現を生成する(S101)。分散表現生成部111による分散表現の生成方法については後述する。
監視対象選定部113は、生成した分散表現を用いて、ログデータ150のイベントをK個にクラスタリングする(S102)。本実施形態においてKは100とし、クラスタリングにはK-means法を用いる。なお、Kの値はログデータ150に含まれる語彙の複雑さと、選定サーバ11や監視サーバ12の計算機リソースを鑑みて他の値に設定することができる。また、他のクラスタリング手法を使っても良い。さらに、分散表現をクラスタリングする前に、オートエンコーダやRestricted Boltzmann Machine(RBM)などの抽象化処理を1または複数回実行してもよい。
監視対象選定部113は、分散表現生成部111および相関算出部112を用いて、ある2つのログID151のログについて、それぞれクラスタを一つの要素としたときのべき集合の組合せから、相関値が所定値以上であり、かつ、相関算出が可能な範囲が大きいクラスタの組合せ(ペア)を選定する(S103)。分散表現生成部111および相関算出部112による、相関の算出方法、相関算出が可能な範囲の大きさの決め方、および、クラスタの組合せ(ペア)の選定方法については後述する。
監視対象選定部113は、選定されたログのペア(選定ペア)が存在するかを確認する(S104)。選定ペアが存在しない場合、処理を終了する。
選定ペアが存在する場合、監視対象選定部113は、選定ペアに含まれる各ログについて、相関算出に用いられたイベントを判別する監視イベント判別関数を学習(判別関数のパラメータを決定)する(S105)。監視イベント判別関数は、監視対象システム2の監視時に、運用時のイベント(未知イベント)を相関算出に用いるかどうかを判別するために用いられる。本実施形態では、判別関数のモデルにはSVMを用い、その入力には分散表現をそのまま用いる。なお、ロジスティック回帰など他のモデルを用いても良い。また、入力に、データソース名153等の他の情報を追加してもよい。また、より単純に、S106で学習するクラスタを入力として、判別する関数を構成してもよい。
監視対象選定部113は、選定ペアに含まれる各ログについて、相関算出に用いられたイベントのクラスタを判別するクラスタ判別関数を学習する(S106)。クラスタ判別関数は、監視対象システム2の監視時に、未知イベントをどのクラスタに割り当てるかを判別するために用いられる。本実施形態では、K−menasでクラスタリングするので、クラスタ判別関数は、重心ベクトルを記憶しておき、最も近い重心を持つクラスタを割り当てる関数となる。なお、Self-taught learningの考えに基づき多値のSVMやロジスティック回帰などでクラスタ判別関数を学習してもよい。
監視対象選定部113は、以上のように算出または学習した内容を、監視対象データ160として、監視ID161に対応させて、相関値162〜ログ2−クラスタ判別関数パラメータ168の各項目に登録する(S107)。なお、各項目は、算出または学習結果が得られた段階でその都度登録されてもよい。
図9および図10を用いて、イベントの分散表現の生成処理(S101)を説明する。図9は、分散表現生成部111の処理フローチャートである。図10は、Skipgramを拡張したモデルを表す図である。
分散表現生成部111は、ログデータ150の各イベントのメッセージ154を構文解析(パース)し、含まれる単語や熟語等の連語(言語表現)、あるいは、IPアドレスなどの計算機固有の表現を抽出する(S201)。この際、分散表現生成部111は名詞や動詞などの機能語だけを抽出してもよい。
分散表現生成部111は、抽出した単語や熟語等の表現に固有の表現IDをつけて辞書に登録する(S202)。ここで、表現IDは自然数(0、1、2、…)とする。また、表現ID=0は、イベントが存在しないことを表す特殊IDとする。この使用方法は後述する。
分散表現生成部111は、ログデータ150の各イベントのメッセージ部154に対応する表現IDのリストを作成する(S203)。
分散表現生成部111は、同じログID151に関して、図10に示すSkipgramを拡張したモデルを用いて、前後で発生したイベントに基づいて各イベントの分散表現生成モデルを学習する。そして、分散表現生成モデルの学習結果(後述のWi)をログID151ごとにログID171に対応付けて、分散表現生成モデルパラメータ170のパラメータ172に登録する(S204)。
分散表現生成モデルの学習の手順を詳しく説明する。まず、e(t)を時刻tに発生したイベントとする。入力層1211および出力層1213の各ベクトルの次元は辞書の表現IDの総数であり、ベクトルの各要素は各表現IDの値に対応しているとする。また、中間層1212の次元は500、出力層1213のコンテキスト数は10(t-5、t-4、t-3、t-2、t-1、t+1、t+2、t+3、t+4、t+5)とする。また、Wi(1214)およびWo(1215)は、それぞれ辞書の表現IDの総数×500、500×辞書の表現IDの総数となるような行列であり、分散表現生成モデルのパラメータである。このとき、学習時の入力層1211には、イベントe(t)の表現IDのリストに含まれる要素は1、それ以外は0となるような、x of K表現された疎なベクトルを与える。この結果、出力層1213の予測値には、中間層1212の値h=Wi e(t)を介してWo hが出力される。これが前後で発生したイベント(e(t-5)〜e(t+5))と近くなるようにWiおよびWoを学習する。このとき、前後で発生したイベント(e(t-5)〜e(t+5))は、イベントe(t)と同様にイベントの表現IDのリストに含まれる要素は1、それ以外は0となるような、x of K表現された疎なベクトルである。なお、イベントe(t±k)の発生日時がe(t)の発生日時に対し所定時間5分以上離れた場合は、所定時間内でイベントが発生していないことを示すコンテキストを表すために、表現ID=0(特殊ID)を与える。この分散表現生成モデルの学習には確率的勾配降下法等を用いることができる。学習された結果、Wiが分散表現生成モデルの学習結果となる。つまり、あるイベントe(t)に対し、分散表現はWi e(t)で与えられることとなる。なお、中間層1212の次元を500、コンテキスト数を10、表現ID=0(特殊ID)を割り当てるイベントを所定時間5分以上離れたイベントとしたが、これらはログの傾向に応じて適宜変更することができる。
以上の手順により、前後で似たイベントが発生したイベントは同じような値をとる低次元密なベクトルを得ることができる。すなわち、近い意味の2つのイベントについて、コサイン距離などの距離が小さくなる。なお、Skipgramが一単語に関する分散表現を与えていたのに対し、Skipgramが拡張されたモデルでは次の2点が異なる。まず、イベント中の複数の単語や熟語に対する分散表現を与えるために、入力や出力が1 of K表現ではなくx of K表現となっている。ここで、xはメッセージ中の語数に対応し、通常Kに対して十分小さい。また、時間的に大きく離れた(本実施形態では5分以上離れた)イベントは、ログ中で連続して並んでいたとしても意味がなく、また、そのような箇所はある連続したイベントパターンの始点や終点であることが多いため、イベントがないことを表す表現ID=0(特殊ID)を割り当てている。
分散表現生成部111は、各ログのイベントの分散表現を学習した分散表現生成モデルのパラメータ172を用いて生成し、処理を終了する(S205)。
図11を用いて、ある2つのログについて、相関値が所定値以上で相関算出が可能な範囲が大きいイベント群のペアの選定処理(S103)を説明する。図11は、相関算出部112の処理フローチャートである。
相関算出部112は、選定リストを空に初期化する(S301)。相関算出部112は、ログデータ150の各ログについて、ログデータ150のイベントをK個にクラスタリングしたクラスタのイベント群(クラスタの組合せ)に関する相関値とサンプリング成功率を算出する(S302)。例えば、ログ1にクラスタ{A、B、C}、ログ2に{D、E、F}というクラスタがある場合、クラスタの組合せは、{A:D}、{A:E}、{A:F}、{B:D}、{B:E}、{B:F}、{C:D}、{C:E}、{C:F}となる。ここで{A:D}はログ1のクラスタAとログ2のクラスタDの組合せを表すものであり、他も同様である。これらの組合せについて、相関値とサンプリングの成功率を算出する。相関値とサンプリングの成功率の算出については後述する。
相関算出部112は、相関値が所定値以上のクラスタの組合せがあるかを確認する(S303)。所定値以上のクラスタの組合せが有る場合、S304に処理を移す。そうでない場合、S308に処理を移す。なお、本実施形態では、所定値を0.85とし、相関値が0.85以上の組合せかどうかを確認するが、ログに応じて適宜適切な値を所定値として設定できる。
相関値が所定値以上のクラスタの組合せがあった場合、相関算出部112は、相関値が所定値以上のクラスタの組合せとその相関値とサンプリング成功率を選定リストへ追加する(S304)。
相関算出部112は、クラスタの組み合わせが元のログ(前述した例の{A:D}、{A:E}、・・・、{C:F})に一致しているかを確認する(S305)。一致している場合はS308に処理を移す。そうでない場合はS306に処理を移す。
クラスタの組み合わせが元のログに一致しない場合、相関算出部112は、相関値が所定値以上のクラスタの組合せについて、それらを統合した新たなクラスタの組合せを生成する(S306)。例えば、相関値が所定値以上のクラスタの組合せが、前述の例で{A、D}、{A、E}、{C、F}である場合、{A:(D、E)}、{(A、C):(D、F)}、{(A、C):(E、F)}が新しいクラスタの組合せとなる。ここで、(D、E)はクラスタDとEに含まれるイベントを統合した新しいクラスタを表すものであり、他も同様である。
相関算出部112は、新しいクラスタの組合せに関して相関値とサンプリング成功率を算出し(S307)、S303に戻る。相関値とサンプリングの成功率の算出については後述する。
S303で所定値以上のクラスタの組合せがない場合、もしくはS305でクラスタの組合せが元のログに一致している場合、選定リストからサンプリング成功率が最も高いクラスタの組合せを相関算出が可能な範囲が大きいクラスタの組合せとして監視対象として選定し、処理を終了する(S308)。
以上の相関算出部112の処理により、相関値が小さいクラスタの組合せの計算を適宜省きながら網羅的にクラスタの組合せを探すことができる。なお、さらに高速化が必要な場合は、あらかじめ与えられたクラスタ数をさらに減らしておくなどしておいてもよい。また、そもそも多重系を構成する装置のログなどで分割処理をしなくても高い相関値が出ることが期待される場合には、サブセット(個々の装置)に分割せず全体(多重構成の装置)で相関値を算出してもかまわない。
図12は、相関算出部112による相関値およびサンプリング成功率の算出(図11のS302、S307)の処理フローチャートである。
相関算出部112は、サンプルリストを空に初期化し、変数CNTとSUCESSを0に初期化する(S401)。
相関算出部112は、相関値算出の対象となっている2つのイベント群の最も古いイベントの時刻を下限、最も新しいイベントの時刻を上限とする範囲の時刻集合から時刻をランダムに選択する(S402)。選択した時刻を時刻tとする。
相関算出部112は、2つのイベント群について、時刻t-τ〜時刻t+τまでに含まれるイベントを抽出する(S403)。本実施形態ではτ(微小時間)は1分とする。なお、τ(微小時間)は、イベントがほぼ時刻tに発生したと見做すための時間であるので、対象とするログに応じてτは他の値でもよい。
相関算出部112は、S403で条件に合致するイベントが2つのイベント群の各々に1つ以上あるかどうかを確かめる(S404)。条件に合致するイベントがある場合、S405に処理を移す。そうでない場合、処理をS407に移す。
S404で合致するイベントがある場合、各イベント群について、抽出した1つ以上のイベントから、各イベントの時刻の2乗の逆数に比例する確率分布でそれぞれから1つずつサンプリングし、サンプルリストにサンプリングした2つのイベントを登録する(S405)。なお、本実施形態では時刻の2乗の逆数に比例する確率分布としたが、他の確率分布、例えば逆数に比例する確率分布等でもよい。
相関算出部112は、変数SUCESSを1インクリメントし(S406)、変数CNTをインクリメントする(S407)。
相関算出部112は、変数SUCESSが指定回数より小さいかを確認する(S407)。ここで、本実施形態における指定回数は1000とする。指定回数より小さい場合は、S402に処理を移す。そうでない場合は、S409に処理を移す。
相関算出部112は、変数SUCCSSを変数CNTで割った値を成功率(=SUCCSS/CNT)として算出する(S409)。
相関算出部112は、サンプルリストの1000のサンプルを用いて、独立性に基づく相関値の一種であるMICを計算し処理を終了する(S410)。具体的には、サンプルリストの各サンプルに対応する各クラスタリング結果(クラスタ番号)を比較する。なお、相関値の算出のために前述のクラスタ数Kよりも大きなクラスタ数Mでクラスタリングした結果を用いてもよい。
なお、ヒルベルト-シュミット独立基準などのほかの非線形な相関値を用いても良い。また、MIC等の独立性に基づく相関性を評価するのは、分散表現された結果、および、それをクラスタリングした結果(クラスタ番号)には、一般に時系列データとして滑らかさを有さないためである。なお、隣り合う時刻の値の差の和が最小となるようにクラスタ番号入れ替える等の処理(滑らかさの復元処理)を実行した上で、ピアソンの積率相関等を評価する等をしてもよい。この場合、イベント群が比例関係にある2つのセンサーに由来するログ、例えば、ある値以上は異常であるとして、ほとんどセンサーの値を言い換えたようなイベントが出力される場合について相関関係を見出すことができる。
以上が基本的な相関算出の手順であるが、2つのログの時刻をずらして相関計算を行い、最も高い相関値を採用するなどしてもよい。また、クラスタリングした結果の非線形な相関を算出するとしたが、例えば分散表現を主成分分析や独立成分分析した結果の非線形な相関を算出してもよい。また、同一種類のログを比較したり、2つのログのイベントを併せてクラスタリングしたりするなどによって、クラスタ番号が2つのログの間で共通となる場合には、サンプルリストに含まれる各ログのイベントについて、対応するクラスタの要素数などの分布を算出し、分布間のダイバージェンスを相関値に用いても良い。
図13を用いて、監視対象選定部113により選定されたあるログのペアに関する運用時の監視処理を説明する。図13は、監視部123の処理フローチャートである。
なお、本処理の実行に先立って監視サーバ12が監視対象システム2から運用中のログを収集し、選定サーバ11のデータ管理部114にログデータ150を登録済みであるとする。
監視部123は、監視対象選定処理で生成した、データ管理部114で管理されている各ログのイベント判別関数パラメータ(165、166)を読み込み、そのパラメータで表現される監視イベント判別関数を用いて、各ログから監視対象となるイベント群を判別する(S501)。
監視部123は、監視対象選定処理で生成した、データ管理部114で管理されている各ログのクラスタ判別関数パラメータ(167、168)を読み込み、そのパラメータで表現されるクラスタ判別関数を用いて、各ログの各イベントのクラスタ番号を判別する(S502)。
監視部123は、分散表現生成部121および相関算出部122を用いて、監視対象選定処理の説明と同様の手順により相関値を算出する(S503)。分散表現生成部121は分散表現生成部111と同様の処理であり、相関算出部122は相関算出部112と同様の処理である。
監視部123は、算出した相関値に、所定期間5分間にデータ管理部114で管理されている相関値162の値から所定値0.3(相関値の減少幅に関する所定値)以上減少した箇所がある場合、処理をS505に移す。そうでない場合、本処理を終了する(S504)。なお、本実施形態では、所期間に変動した箇所があるか否かで変化を定義したが、変化の積分値などを用いてもよい。また、監視対象選定処理フェーズで、相関値の分散等を求めておき、その分散に応じた閾値を設定するなどしてもよい。
S504で相関値が所定値以上減少した箇所がある場合、監視部123は表示端末13の表示部131に通知し(S505)、本処理を終了する。その通知を受けて、表示部131はその状況や監視しているログの内容をユーザに提示する。
以上の監視対象選定処理ならびに監視処理は、相関を算出する対象がどちらもログの場合を説明したが、本手法はログと性能情報やセンサー値などとの組合せであっても有効である。その際には、性能情報やセンサー値が密な1次元もしくは低次元の密ベクトルとなっている点を踏まえて、それらの分散表現を生成する処理を省いて実行すればよい。
図14は、表示端末13の表示部131がユーザに提示するメイン画面としての監視画面1310の例である。監視画面1310は、監視対象リスト1311、急変した監視対象一覧1312、監視対象一覧1313を備える。
表示部131は、監視対象リスト1311に、監視対象を識別する監視ID(監視対象データ160の監視ID161)と、現在の相関値(監視部123がS503で算出した相関値)と、相関値を算出している2つのログID(監視ID161に対応するログID163、164)と、急変しているかどうか(監視部123による最近の監視処理の結果、S504でYESかとなっているかどうか)の一覧を表示する。
表示部131は、急変した監視対象一覧1312に、急変した監視対象の監視ID(監視対象データ160の監視ID161)と、最近の相関値(監視部123がS503で算出した相関値)の時系列変化を、横軸に時間、縦軸に相関値をとったグラフとして表示する。なお、グラフ上で急変を検出した区間はハッチングや表示色を変えるなどにより強調表示する。これによってユーザがすぐに異常が発生した箇所(監視ID161に対応するログID163、164のログを生成した箇所)を把握可能となる。
表示部131は、監視対象一覧1313に、急変した監視対象一覧1312と同様のグラフを全ての監視対象(監視ID161)について表示する。
ユーザは、監視画面1310のリストあるいはグラフをクリック・タップ等により選択することで、後述の詳細監視画面(タイプAもしくはタイプB)を見ることができる。
図15は、詳細監視画面(タイプA)1320の一例である。詳細監視画面(タイプA)1320は、監視画面1310からユーザがクリック・タップ等により選択することによって表示される監視項目単位の詳細画面の一つである。
詳細監視画面(タイプA)1320は、相関値(監視部123がS503で算出した相関値)の時系列変化を表すグラフ1321と、ログの比較表示1322を備える。
相関値の時系列変化を表すグラフ1321は、急変した監視対象一覧1312や監視対象一覧1313のグラフと同様である。
ログの比較表示1322は、時刻と、監視対象となっている2つのログ(監視ID161に対応するログID163、164)の内容が表示される。このとき、図に示すように同一時刻のイベントが並んで表示されるように行を調整して表示する。また、監視イベント判別関数で監視対象のイベントと判別されたイベントをハッチングや表示色を変えるなどにより強調表示する。これによって、ユーザはどのイベント群の相関関係が崩れたのかを把握しやすくする。
図16は、詳細監視画面(タイプB)1330の一例である。詳細監視画面(タイプB)1330は、監視画面1310からユーザがクリック・タップ等により選択することによって表示される監視項目単位の詳細画面の一つである。
詳細監視画面(タイプB)1330は、相関値(監視部123がS503で算出した相関値)の時系列変化を表すグラフ1331と、監視対象となっている2つのログ(監視ID161に対応するログID163、164)の分散表現もしくはクラスタ番号の時系列変化を表すグラフ(1332、1333)を備える。
相関値の時系列変化を表すグラフ13311は、急変した監視対象一覧1312や監視対象一覧1313のグラフと同様である。
分散表現もしくはクラスタ番号の時系列変化を表すグラフ(1332、1333)は、各ログ(監視ID161に対応するログID163、164のログ)の分散表現もしくはクラスタ番号の時系列変化が、縦軸を時間、横軸を分散表現の値もしくはクラスタ番号としたグラフとして表示される。ここで、分散表現を表示する場合、分散表現は一次元とはなっていないため、主成分分析した結果の第一主成分等、次元圧縮した後に表示する。また、クラスタ番号を表示する場合、できる限り表示がなだらかになるように、例えば時刻tのイベントのクラスタ番号をc(t)とするとき、Σ(c(t)-c(t+1))が最小となるように予めクラスタ番号を振りなおしてもよい。これによってユーザのログのパターンの視認性を向上することができる。
以上に説明したように、本実施形態によれば、監視に十分な情報である、非定常かつ数値表現が自明でないログを活用できる。
また、本実施形態によれば、非定常かつ数値表現が自明でないログの各種組合せから相関関係を導出し、監視できるので、システムの監視に掛かる運用監視者の負荷を削減できる。
また、本実施形態によれば、分散表現されたログをクラスタリング等して分割し、その組合せについて相関値を求めているので、syslogのように1つのログに実質的に複数種類のイベントが混じりこんでいるような場合でも相関関係を見出すことができる。
また、本実施形態によれば、分散表現されたログをクラスタリング等して1次元化することで、一般に日時とメッセージなどの文字列で表現されるログを時間変化するグラフとして視覚的に表示できる。これによって運用監視者は、わざわざログの内容を見なくてもログ全体の大まかなパターンをつかむことができるようになる。
なお、本実施形態では監視対象システムから出力するログを対象としたが、本質的に日時とメッセージを含む時系列データであれば、例えばマイクロブログ等であっても同様の方法で、相関関係を求めることも、変化を検出ことも可能である。
1:監視システム、2:監視対象システム、11:選定サーバ、12:監視サーバ、13:表示端末、21:被監視装置、111:分散表現生成部、112:相関算出部、113:監視対象選定部、114:データ管理部、121:分散表現生成部、122:相関算出部、123:監視部、131:表示部。
Claims (15)
- 監視対象システムから出力され、少なくとも時刻とメッセージを含むイベントの集合である第1のログに含まれる前記イベントの分散表現を生成し、2種類の前記イベントの集合の分散表現に関して、前記時刻が所定時間内の前記イベントのペアの第1の相関値を算出し、所定値以上の前記第1の相関値に対応する前記第1のログのペアを選定し、前記第1のログのペアを構成する前記第1のログに含まれる前記イベントの集合から監視対象とする前記イベントを抽出する関数を生成する監視対象選定部、および、
稼働中の前記監視対象システムから出力される第2のログに含まれる、選定された前記第1のログのペアに対応する前記第2のログのペアに関して、前記第2のログのペアを構成する前記第2ログに含まれる前記イベントの集合から、前記関数を用いて、監視対象とする前記イベントを抽出し、抽出した前記イベントのペアの第2の相関値を算出し、前記第1の相関値から前記第2の相関値への変化を検出する監視部を有することを特徴とする監視システム。 - 前記分散表現は、前記メッセージに含まれる表現を用いた、前記メッセージを表す低次元密な実数ベクトルであることを特徴とする請求項1に記載の監視システム。
- 前記低次元密な実数ベクトルは、前記イベントの前記時刻から前記所定時間内に他のイベントが存在しない場合、前記他のイベントが存在しないことを表す要素を含むことを特徴とする請求項2に記載の監視システム。
- 前記監視対象選定部は、前記イベントの集合から前記イベントをサンプリングした集合の前記分散表現に関して、前記時刻が前記所定時間内の前記イベントのペアの前記第1の相関値を算出することを特徴とする請求項1に記載の監視システム。
- 前記監視対象選定部は、前記イベントの集合の前記時刻が、最も古い前記イベントの時刻を下限とし、最も新しい前記イベントの時刻を上限として、ランダムに選択した時刻から前記所定時間内の前記イベントを抽出し、抽出した前記イベントの前記時刻の2乗の逆数に比例する確率分布で、前記イベントの集合から前記イベントをサンプリングすることを特徴とする請求項4に記載の監視システム。
- 前記監視対象選定部は、前記第1のログのペアの中から、ランダムに選択した前記時刻でサンプリングできた場合を成功、サンプリングできなかった場合を失敗としてサンプリングの成功率を算出し、前記成功率が最大となる前記第1のログのペアを選定することを特徴とする請求項5に記載の監視システム。
- 前記第1及び第2の相関値は、非線形な相関値であることを特徴とする請求項1に記載の監視システム。
- 前記第1及び第2の相関値は、Maximal information coefficientおよびヒルベルト-シュミット独立基準の一方の独立性に基づくことを特徴とする請求項1に記載の監視システム。
- 前記第1の相関値から前記第2の相関値への変化を表示する表示部をさらに有することを特徴とする請求項1に記載の監視システム。
- 前記表示部は、前記第1のログのペアの前記第1の相関値と、前記第1のログのペアを構成する、前記第1のログの内容及び前記第1のログに含まれる前記イベントの分散表現を圧縮したデータの一方とを時系列表示することを特徴とする請求項9に記載の監視システム。
- 前記表示部は、前記第1のログの内容を表示するとき、前記第1のログに含まれる前記イベントの集合を強調表示することを特徴とする請求項9に記載の監視システム。
- 監視システムによる監視方法であって、前記監視システムは、
監視対象システムから出力され、少なくとも時刻とメッセージを含むイベントの集合である第1のログに含まれる前記イベントの分散表現を生成し、
2種類の前記イベントの集合の分散表現に関して、前記時刻が所定時間内の前記イベントのペアの第1の相関値を算出し、
所定値以上の前記第1の相関値に対応する前記第1のログのペアを選定し、
前記第1のログのペアを構成する前記第1のログに含まれる前記イベントの集合から監視対象とする前記イベントを抽出する関数を生成し、
稼働中の前記監視対象システムから出力される第2のログに含まれる、選定された前記第1のログのペアに対応する前記第2のログのペアに関して、前記第2のログのペアを構成する前記第2ログに含まれる前記イベントの集合から、前記関数を用いて、監視対象とする前記イベントを抽出し、
抽出した前記イベントのペアの第2の相関値を算出し、
前記第1の相関値から前記第2の相関値への変化を検出することを特徴とする監視方法。 - 前記第1及び第2の相関値は、非線形な相関値であることを特徴とする請求項12に記載の監視方法。
- 前記第1及び第2の相関値は、Maximal information coefficientおよびヒルベルト-シュミット独立基準の一方の独立性に基づくことを特徴とする請求項13に記載の監視方法。
- 前記監視システムは、前記イベントの集合から前記イベントをサンプリングした集合の前記分散表現に関して、前記時刻が前記所定時間内の前記イベントのペアの前記第1の相関値を算出することを特徴とする請求項12に記載の監視方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/074517 WO2017037801A1 (ja) | 2015-08-28 | 2015-08-28 | 監視システムおよび監視方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017037801A1 JPWO2017037801A1 (ja) | 2017-08-31 |
JP6201079B2 true JP6201079B2 (ja) | 2017-09-20 |
Family
ID=58188413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017501743A Expired - Fee Related JP6201079B2 (ja) | 2015-08-28 | 2015-08-28 | 監視システムおよび監視方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6201079B2 (ja) |
WO (1) | WO2017037801A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6756648B2 (ja) * | 2017-03-16 | 2020-09-16 | ヤフー株式会社 | 生成装置、生成方法および生成プログラム |
JP6981063B2 (ja) | 2017-06-28 | 2021-12-15 | 富士通株式会社 | 表示制御プログラム、表示制御方法、及び表示制御装置 |
JP7184078B2 (ja) * | 2018-04-19 | 2022-12-06 | 日本電気株式会社 | ログ分析システム、ログ分析方法及びプログラム |
US11409754B2 (en) * | 2019-06-11 | 2022-08-09 | International Business Machines Corporation | NLP-based context-aware log mining for troubleshooting |
US20240143482A1 (en) * | 2022-10-31 | 2024-05-02 | Bitdrift, Inc | Systems and methods for providing a timeline view of log information for a client application |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193939B (zh) * | 2010-03-10 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 信息导航的实现方法、信息导航服务器和信息处理系统 |
JP6210867B2 (ja) * | 2013-12-05 | 2017-10-11 | 株式会社日立製作所 | データ関連性解析システムおよびデータ管理装置 |
JP5948358B2 (ja) * | 2014-02-13 | 2016-07-06 | 日本電信電話株式会社 | 監視機器情報分析装置及び方法及びプログラム |
-
2015
- 2015-08-28 JP JP2017501743A patent/JP6201079B2/ja not_active Expired - Fee Related
- 2015-08-28 WO PCT/JP2015/074517 patent/WO2017037801A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2017037801A1 (ja) | 2017-08-31 |
WO2017037801A1 (ja) | 2017-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6643211B2 (ja) | 異常検知システム及び異常検知方法 | |
JP6201079B2 (ja) | 監視システムおよび監視方法 | |
US9996409B2 (en) | Identification of distinguishable anomalies extracted from real time data streams | |
US10002144B2 (en) | Identification of distinguishing compound features extracted from real time data streams | |
CN111885040A (zh) | 分布式网络态势感知方法、系统、服务器及节点设备 | |
JP5948257B2 (ja) | 情報処理システム監視装置、監視方法、及び監視プログラム | |
CN109842628A (zh) | 一种异常行为检测方法及装置 | |
JP6919569B2 (ja) | ログ分析システム、方法、及び記録媒体 | |
JP4890806B2 (ja) | 予測プログラムおよび予測装置 | |
Fischer et al. | NStreamAware: Real-time visual analytics for data streams to enhance situational awareness | |
WO2014196129A1 (ja) | 障害分析装置、障害分析方法、および、記録媒体 | |
WO2017131774A1 (en) | Log event summarization for distributed server system | |
CN113515434B (zh) | 异常分类方法、装置、异常分类设备及存储介质 | |
CN112669188A (zh) | 危机事件预警模型构建、危机事件预警方法和电子设备 | |
JP2020035039A (ja) | 更新支援装置、更新支援方法およびプログラム | |
JP5466622B2 (ja) | 運用監視装置、運用監視方法、および運用監視プログラム | |
JP4383484B2 (ja) | メッセージ解析装置、制御方法および制御プログラム | |
JP2016122273A (ja) | アラート発信方法、プログラム、及び装置 | |
JP6988827B2 (ja) | 異常識別システム、方法及びプログラム | |
Wladdimiro et al. | Disaster management platform to support real-time analytics | |
CN114300082B (zh) | 一种信息处理方法、装置和计算机可读存储介质 | |
Gaykar et al. | Faulty Node Detection in HDFS Using Machine Learning Techniques. | |
JP2009187395A (ja) | トピック分析装置、方法及びプログラム | |
JP6070338B2 (ja) | 多階層システムに含まれる処理システムの分類装置及び多階層システムに含まれる処理システムの分類プログラム並びに多階層システムに含まれる処理システムの分類方法 | |
JP2018005607A (ja) | 情報処理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20170801 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170828 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6201079 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |