JP7335378B1 - Message classifier, message classifier method, and program - Google Patents
Message classifier, message classifier method, and program Download PDFInfo
- Publication number
- JP7335378B1 JP7335378B1 JP2022031838A JP2022031838A JP7335378B1 JP 7335378 B1 JP7335378 B1 JP 7335378B1 JP 2022031838 A JP2022031838 A JP 2022031838A JP 2022031838 A JP2022031838 A JP 2022031838A JP 7335378 B1 JP7335378 B1 JP 7335378B1
- Authority
- JP
- Japan
- Prior art keywords
- log
- message
- log messages
- unit
- messages
- 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
Links
- 238000000034 method Methods 0.000 title claims description 103
- 230000008569 process Effects 0.000 claims description 62
- 230000010365 information processing Effects 0.000 claims description 12
- 238000005070 sampling Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 abstract description 49
- 238000001514 detection method Methods 0.000 description 154
- 238000012545 processing Methods 0.000 description 142
- 230000005856 abnormality Effects 0.000 description 33
- 230000002159 abnormal effect Effects 0.000 description 14
- 239000000284 extract Substances 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 238000012800 visualization Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 238000013480 data collection Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000002547 anomalous effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000003657 Likelihood-ratio test Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】ログメッセージを分類するためのコンフィグレーション作業の手間を省くこと。【解決手段】本発明の一態様は、監視対象システムからログメッセージを収集する収集部と、収集部により収集された複数のログメッセージのそれぞれをベクトル化するベクトル化部と、ベクトル化部によりベクトル化されたログメッセージを分類するための閾値を設定する閾値設定部と、閾値設定部により設定された閾値を用いて複数のログメッセージをクラスタリングし、クラスタリングされたログメッセージを識別する識別子を設定するクラスタリング部と、収集部により新たなログメッセージを取得した場合に、取得した新たなログメッセージにクラスタリング部により設定された識別子を付与する分類部と、を備える、メッセージ分類装置である。【選択図】図2[Problem] To eliminate the hassle of configuration work for classifying log messages. One aspect of the present invention includes a collection unit that collects log messages from a monitored system, a vectorization unit that vectorizes each of a plurality of log messages collected by the collection unit, and a vectorization unit that vectorizes each of the plurality of log messages collected by the collection unit. a threshold setting unit that sets a threshold for classifying the clustered log messages; a threshold setting unit that clusters a plurality of log messages using the threshold set by the threshold setting unit; and sets an identifier for identifying the clustered log messages. A message classification device includes a clustering unit, and a classification unit that, when a new log message is acquired by a collection unit, gives an identifier set by the clustering unit to the acquired new log message. [Selection diagram] Figure 2
Description
本発明は、メッセージ分類装置、メッセージ分類方法、およびプログラムに関する。 The present invention relates to a message classification device, a message classification method, and a program.
従来より、各種のシステムから出力されたログを監視し、システムの異常を検知する技術が知られている。例えば、特許文献1に記載された保守管理装置が知られている。この保守管理装置は、ログ情報を収集する収集部と、ログ情報を識別するログ識別子とログ情報の時刻情報とを関連付けて記憶する記憶部と、複数のログ識別子を時刻情報に基づいてまとめたログシーケンスを作成し、ログシーケンスの開始時刻と終了時刻との差分からシーケンス時間を算出し、ログシーケンスとシーケンス時間とを関連付けたシーケンスグループにグループ化する分析部と、を備え、分析部は、シーケンスグループが予め登録された正常シーケンスグループ及び異常シーケンスグループと一致しない場合、予め登録されたインシデント予兆グループのうち、シーケンスグループと最も適合率の高いシーケンスグループに基づいてインシデント発生までのインシデント発生見込み時間を算出する。これにより、保守管理装置は、インシデントの発生を予測することが可能であるとしている。
2. Description of the Related Art Conventionally, there has been known a technique for monitoring logs output from various systems and detecting system anomalies. For example, a maintenance management device described in
しかしながら、上述した保守管理装置は、予め正常シーケンスグループ、異常シーケンスグループ、およびインシデント予兆グループといった情報を事前登録し、ログ情報を監視している。しかしながら、各種の情報を事前登録するためには手作業で実施されている場合がある。例えば、ログメッセージに含まれる情報を検知してログメッセージを分類する必要があるが、検知対象の情報を設定する作業(コンフィグレーション作業)を手作業で行うため手間が大きくなるという課題があった。 However, the maintenance management device described above pre-registers information such as a normal sequence group, an abnormal sequence group, and an incident sign group, and monitors log information. However, in some cases, pre-registration of various information is performed manually. For example, it is necessary to detect information contained in log messages and classify the log messages, but there was a problem that the work of setting the information to be detected (configuration work) was done manually, which was a lot of work. .
本発明は、上記の課題に鑑みてなされたものであって、ログメッセージを分類するためのコンフィグレーション作業の手間を省くことができるメッセージ分類装置、メッセージ分類方法、およびプログラムを提供することを目的としている。 SUMMARY OF THE INVENTION It is an object of the present invention to provide a message classification device, a message classification method, and a program that can save the trouble of configuration work for classifying log messages. and
(1)本発明の一態様は、監視対象システムからログメッセージを収集する収集部と、前記収集部により収集された複数のログメッセージのそれぞれをベクトル化するベクトル化部と、前記ベクトル化部によりベクトル化されたログメッセージを分類するための閾値を設定する閾値設定部と、前記閾値設定部により設定された前記閾値を用いて前記複数のログメッセージをクラスタリングし、クラスタリングされたログメッセージを識別する識別子を設定するクラスタリング部と、前記収集部により新たなログメッセージを取得した場合に、取得した新たなログメッセージに前記クラスタリング部により設定された識別子を付与する分類部と、を備える、メッセージ分類装置である。 (1) One aspect of the present invention is a collection unit that collects log messages from a monitored system, a vectorization unit that vectorizes each of the plurality of log messages collected by the collection unit, and a threshold setting unit for setting a threshold for classifying vectorized log messages; and clustering the plurality of log messages using the threshold set by the threshold setting unit to identify the clustered log messages. A message classification device, comprising: a clustering unit that sets an identifier; and a classifying unit that, when a new log message is acquired by the collecting unit, adds the identifier set by the clustering unit to the acquired new log message. is.
(2)本発明の一態様は、上記のメッセージ分類装置であって、前記ベクトル化部は、前記ログメッセージに含まれる単語ごとに、前記単語の出現位置が前記ログメッセージの先頭に近いほど重みを高く計算し、前記単語に数値が含まれる場合に前記重みを低く計算し、計算された前記重みに基づいてベクトル化を行ってよい。 (2) An aspect of the present invention is the above-described message classification device, wherein the vectorization unit weights each word included in the log message as the appearance position of the word is closer to the beginning of the log message. may be calculated high, the weight may be calculated low if the word contains a numerical value, and vectorization may be performed based on the calculated weight.
(3)本発明の一態様は、上記のメッセージ分類装置であって、前記クラスタリング部は、前記ログメッセージの集合のうちクラスタに含まれていない一部のログメッセージをサンプリングする処理と、サンプリングしたログメッセージに対してクラスタリングする処理と、を複数回行ってクラスタ集合を取得し、取得した前記クラスタ集合に識別子を設定してよい。 (3) An aspect of the present invention is the message classification device described above, wherein the clustering unit includes a process of sampling some log messages that are not included in the cluster from the set of log messages; and clustering the log messages a plurality of times to obtain a cluster set, and an identifier may be set to the obtained cluster set.
(4)本発明の一態様は、上記のメッセージ分類装置であって、前記閾値設定部は、前記クラスタリング部により複数の閾値候補のそれぞれを用いてクラスリングを行わせ、前記ログメッセージの集合に含まれるログメッセージ数、前記クラスタ集合のそれぞれに含まれるクラスタ数に基づいてAIC(Akaike information criterion, 赤池情報量規準)またはBIC(Bayesian information criterion, ベイズ情報量規準)を計算し、AICまたはBICが最小となる閾値候補を前記閾値として採用してよい。 (4) An aspect of the present invention is the message classification device described above, wherein the threshold setting unit causes the clustering unit to perform classification using each of a plurality of threshold candidates, and the set of log messages Calculate AIC (Akaike information criterion) or BIC (Bayesian information criterion) based on the number of log messages included, the number of clusters included in each of the cluster sets, and determine whether AIC or BIC is A minimum threshold candidate may be adopted as the threshold.
(5)本発明の一態様は、情報処理装置が、監視対象システムからログメッセージを収集するステップと、前記情報処理装置が、収集された複数のログメッセージのそれぞれをベクトル化するステップと、前記情報処理装置が、ベクトル化されたログメッセージを分類するための閾値を設定するステップと、前記情報処理装置が、前記閾値を用いて前記複数のログメッセージをクラスタリングし、クラスタリングされたログメッセージを識別する識別子を設定するステップと、前記情報処理装置が、新たなログメッセージを取得した場合に、取得した新たなログメッセージに前記識別子を付与するステップと、を含む、メッセージ分類方法である。 (5) An aspect of the present invention is an information processing device collecting log messages from a monitored system; the information processing device vectorizing each of the plurality of collected log messages; an information processing device setting a threshold for classifying the vectorized log messages; and the information processing device clustering the plurality of log messages using the threshold and identifying the clustered log messages. and, when the information processing device acquires a new log message, assigning the identifier to the acquired new log message.
(6)本発明の一態様は、コンピュータに、監視対象システムからログメッセージを収集するステップと、収集された複数のログメッセージのそれぞれをベクトル化するステップと、ベクトル化されたログメッセージを分類するための閾値を設定するステップと、前記閾値を用いて前記複数のログメッセージをクラスタリングし、クラスタリングされたログメッセージを識別する識別子を設定するステップと、新たなログメッセージを取得した場合に、取得した新たなログメッセージに前記識別子を付与するステップと、を実行させる、プログラムである。 (6) An aspect of the present invention provides a computer with the steps of collecting log messages from a monitored system, vectorizing each of the plurality of collected log messages, and classifying the vectorized log messages. clustering the plurality of log messages using the threshold, setting an identifier for identifying the clustered log messages, and acquiring a new log message, the acquired and giving the identifier to a new log message.
本発明の一態様によれば、監視対象システムの未知な異常や複雑な異常を検知することができる。 According to one aspect of the present invention, it is possible to detect an unknown anomaly or a complicated anomaly in a monitored system.
以下、本発明を適用したメッセージ分類装置、メッセージ分類方法、およびプログラム、学習システム、および学習方法を、図面を参照して説明する。 A message classification device, a message classification method, a program, a learning system, and a learning method to which the present invention is applied will be described below with reference to the drawings.
<実施形態の概要>
本発明を適用したメッセージ分類装置、メッセージ分類方法、およびプログラム、学習システム、および学習方法は、実施形態のシーケンス推定システムにより実現される。実施形態のシーケンス推定システムは、監視対象システムからログメッセージを収集し、複数のログメッセージからなるシーケンスを抽出するシステムである。シーケンス推定システムは、一または複数の監視対象システムから出力される多数のログメッセージのうち関係性の高いログメッセージを一つの集合として抽出し、抽出結果を、異常の検知や異常箇所の特定等のオペレーションで利用できるようにする。また、シーケンス推定システムは、集合におけるログメッセージ間の順列の誤りを明確にして、オペレーションで利用できるようにする。これにより、シーケンス推定システムは、未知の異常や、複数の監視対象システムに跨る複雑な異常などが発生した場合、異常箇所の特定精度の向上や、異常箇所の特定に必要なログトレースの時間を短縮することができる。
<Overview of Embodiment>
A message classification device, a message classification method, a program, a learning system, and a learning method to which the present invention is applied are realized by the sequence estimation system of the embodiments. A sequence estimation system of an embodiment is a system that collects log messages from a monitored system and extracts a sequence composed of a plurality of log messages. A sequence estimation system extracts a set of highly related log messages from a large number of log messages output from one or more monitored systems, and uses the extraction results to detect anomalies, identify anomalous locations, etc. Make it available for operations. The sequence estimation system also accounts for permutation errors between log messages in the set and makes them available for operation. As a result, the sequence estimation system can improve the accuracy of identifying anomalies and reduce the log trace time required to identify anomalous locations when an unknown anomaly or a complex anomaly that spans multiple monitored systems occurs. can be shortened.
図1は、ログメッセージの一例を示す図である。例えば、任意の監視対象システムやシステム内の構成要素から、数日に亘り収集したログメッセージ群1、ログメッセージ群2およびログメッセージ群3が存在するものとする。シーケンス推定システムに実装された推定モデルは、12月21日から28日に亘り、ログメッセージ群1~3間で関連性の高い「正常なシーケンス」を学習しているものとする。この正常なシーケンスは、ログメッセージ群1に含まれるログメッセージ「aaaaa」、ログメッセージ群2に含まれるログメッセージ「bbbbb」、およびログメッセージ群3に含まれるログメッセージ「ccccc」が時系列的な順列で発生するというシーケンスである。例えば、12月29日においてログメッセージ群1に含まれるログメッセージ「aaaaa」、ログメッセージ群2に含まれるログメッセージ「xxxxx」、およびログメッセージ群3に含まれるログメッセージ「ccccc」が時系列的な順列で発生した場合、シーケンス推定システムは、当該シーケンスが正常ではない「エラーシーケンス」であると検知することができる。このように、シーケンス推定システムは、例えば、「正常なシーケンス」を学習しておくことにより、未知の異常なシーケンスを検知することができる。
以下、このようなシーケンス推定システムについて説明する。
FIG. 1 is a diagram showing an example of a log message. For example, it is assumed that there are
Such a sequence estimation system will be described below.
<シーケンス推定システム1の構成>
図2は、実施形態のシーケンス推定システム1の機能的な構成の一例を示すブロック図である。シーケンス推定システム1は、例えば、一又は複数の監視対象システム100と、データ処理装置200と、異常検知装置300と、ユーザ端末装置400と、を備える。監視対象システム100、データ処理装置200、異常検知装置300、およびユーザ端末装置400は、例えば、通信ネットワークに接続される。通信ネットワークに接続される各装置は、NIC(Network Interface Card)や無線通信モジュールなどの通信インターフェースを備えている(図2では不図示)。通信ネットワークは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、セルラー網などを含む。
<Configuration of
FIG. 2 is a block diagram showing an example of the functional configuration of the
監視対象システム100は、データ処理装置200および異常検知装置300によってログメッセージが監視される情報処理システムである。監視対象システム100は、例えば、各種のサービスを提供するサービスサーバ装置や、ネットワーク網に含まれる多数のネットワークノードの動作状態を管理するネットワーク管理装置等である。ネットワークノードは、例えば、OS(Operation System)、VM(Virtual Machine)、HW(Hardware)、DC(Data Center)などである。監視対象システム100は、所定のトリガに従ってログメッセージをデータ処理装置200に提供する。また、監視対象システム100は、単独で動作するサーバ装置であってよいが、他のサーバ装置と連携して動作する複数のサーバ装置群であってよい。
The monitored
データ処理装置200は、例えば、ログ運用のためのOSS(オープンソースソフトウェア)を実装したコンピュータである。OSSは、例えば、Elasticsearch、Logstash、およびKibanaと称される要素により構成される。データ処理装置200は、例えば、Logstashにより構成されるフォーマット変換部202と、Elasticsearchにより構成されるデータ処理部204と、ログデータ蓄積部206と、検知結果蓄積部208と、Kibanaにより構成される可視化部210とを備える。データ処理装置200は、監視対象システム100からログメッセージを収集する収集部の一例である。
The
フォーマット変換部202、データ処理部204、および可視化部210といった機能部は、例えばCPU(Central Processing Unit)等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。プログラムは、予めデータ処理装置200のHDDやフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体に格納されており、記憶媒体(非一過性の記憶媒体)がドライブ装置に装着されることでデータ処理装置200のHDDやフラッシュメモリにインストールされてもよい。ログデータ蓄積部206および検知結果蓄積部208は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置により実現される。
Functional units such as the
フォーマット変換部202は、異常検知装置300により供給されたコンフィグレーション情報に基づいて、監視対象システム100から収集したログメッセージにメッセージIDを追加する。コンフィグレーション情報は、ログメッセージにメッセージIDを付与するルールを示す情報である。メッセージIDは、ログメッセージを登録するために参照される情報であって、例えばログメッセージの種類を識別する情報である。データ処理部204は、フォーマット変換部202によりメッセージIDが追加されたログメッセージをログデータ蓄積部206に記憶する。データ処理部204は、異常検知装置300の要求に応じてログデータ蓄積部206から所望のログメッセージを検索し、検索したログメッセージを異常検知装置300に提供する。データ処理部204は、異常検知装置300から提供されたシーケンス推定結果や異常判定結果を検知結果蓄積部208に記憶する。可視化部210は、シーケンス推定結果や異常判定結果をユーザが閲覧可能な可視化データに変換して、ユーザ端末装置400に提供する。
The
ユーザ端末装置400は、例えばパーソナルコンピュータや、スマートフォンやタブレット端末などの端末装置である。ユーザ端末装置400は、例えば監視対象システム100の管理者の操作を受け付け、監視対象システム100の状態や異常に関する情報をデータ処理装置200から取得し、表示処理等を行う。
The
異常検知装置300は、データ処理装置200から取得したログメッセージを分析し、分析結果に基づく情報をデータ処理装置200に提供する情報処理装置である。異常検知装置300は、例えば、コンフィグレーション作成部310と、メッセージ登録部320と、学習部330と、推定部340とを備える。コンフィグレーション作成部310、メッセージ登録部320、学習部330、および推定部340といった機能部は、例えばCPU等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。なお、本実施形態はコンフィグレーション作成部310およびメッセージ登録部320を異常検知装置300に搭載する一例について説明するが、コンフィグレーション作成部310およびメッセージ登録部320の機能は、異常検知装置300に代えてデータ処理装置200に搭載してよく、データ処理装置200以外の別装置に搭載してよい。
The
コンフィグレーション作成部310は、例えば、AIOps(Artificial Intelligence for IT Operations)を利用する。コンフィグレーション作成部310は、例えばログデータ蓄積部206に蓄積されたログメッセージを用いてログメッセージにメッセージIDを付与するルールを作成し、コンフィグレーション情報(図中ではID付与ルール)をフォーマット変換部202に供給する。これによりコンフィグレーション作成部310は、フォーマット変換部202によりログメッセージにメッセージIDを追加させる。メッセージIDを付与するルールは、ログメッセージを分類するルールに相当し、コンフィグレーション作成部310は、データ処理装置200にログメッセージを分類する機能を持たせる。
The
メッセージ登録部320は、ログデータ蓄積部206に蓄積されたログメッセージを学習処理および推定処理に用いる情報として登録する。学習部330は、例えばメッセージ集合推定部332と、モデル作成部334とを備える。メッセージ集合推定部332は、ログメッセージの集合を推定する。モデル作成部334は、シーケンスを推定するためのモデルを作成する。推定部340は、例えば、シーケンス推定部342と、異常判定部344とを備える。シーケンス推定部342は、一連のログメッセージを含むシーケンスを推定する。一連のログメッセージは、例えば、時系列的に関連した複数のログメッセージである。異常判定部344は、シーケンス推定部342により推定された結果に基づいて異常を判定する。異常検知装置300は、シーケンス推定結果や異常判定結果を、異常検知装置300の分析結果に基づく情報としてデータ処理装置200に提供する。
The
<シーケンス推定システム1の全体処理>
図3は、実施形態におけるシーケンス推定システム1の全体の処理手順を示すフローチャートである。シーケンス推定システム1は、先ず、監視対象システム100から収集したログメッセージを仮登録する(ステップS100)。次にシーケンス推定システム1は、仮登録したログメッセージを用いてコンフィグレーション情報を作成することで、ログメッセージを分類する(ステップS110)。シーケンス推定システム1は、監視対象システム100から収集したログメッセージを登録する(ステップS200)。このときシーケンス推定システム1は、ログメッセージにメッセージIDおよびタイムスタンプを付加して登録する。タイムスタンプはログメッセージの発生時刻を示す情報である。次にシーケンス推定システム1は、ログメッセージの集合を推定する(ステップS300)。次にシーケンス推定システム1は、推定モデルを作成する(ステップS400)。ステップS200からステップS400までの処理が、学習フェーズに相当する。
<Overall Processing of
FIG. 3 is a flow chart showing the overall processing procedure of the
次にシーケンス推定システム1は、シーケンスを推定する(ステップS500)。シーケンスの推定処理は、定期的なタイミングやログメッセージが所定量だけ蓄積したタイミングなどの所定の条件が成立した場合に開始してよい。次にシーケンス推定システム1は、異常を判定する(ステップS600)。ステップS500およびステップS600は、推定・検知フェーズに属する。なお、シーケンス推定システム1は、シーケンスの異常を判定することなく、シーケンス抽出結果だけをデータ処理装置200に提供してもよい。また、シーケンス推定システム1は、シーケンス推定タイミング、異常判定タイミングや、異常のレベルなどを監視対象システム100に応じて変更してもよい。また、シーケンス推定システム1は、監視対象システム100から随時供給されるログメッセージを用いて、学習フェーズと推定・検知フェーズを並行して実行してよい。
以下、ステップS100からステップS600までの各処理を詳細に説明する。
Next, the
Each process from step S100 to step S600 will be described in detail below.
[メッセージ分類処理]
以下、メッセージ分類処理について説明する。メッセージ分類処理は、仮登録されたログメッセージのそれぞれをベクトル化するベクトル化処理と、ベクトル化されたログメッセージを分類するための閾値を設定する閾値設定処理と、閾値を用いて複数のログメッセージを分類し、分類されたログメッセージ群を識別するメッセージID(識別子)を設定するID設定処理と、データ処理装置200により新たなログメッセージを取得した場合に、取得した新たなログメッセージにメッセージIDを付与する分類処理とを含む。メッセージ分類処理は、コンフィグレーション作成部310により実行される。これによりコンフィグレーション作成部310は、ベクトル化部、閾値設定部、ID(識別子)設定部、分類部といった機能部を実現する。
[Message classification process]
The message classification process will be described below. The message classification processing includes vectorization processing for vectorizing each of the temporarily registered log messages, threshold setting processing for setting a threshold for classifying the vectorized log messages, and a plurality of log messages using the threshold. and setting a message ID (identifier) for identifying the classified log message group; and a classification process that assigns The message classification process is executed by the
図4は、ベクトル化処理の一例を説明するための図であり、図4(A)は、ベクトル化処理のうち単語を抽出処理の一例を示す図である。コンフィグレーション作成部310は、例えばログデータ蓄積部206からログメッセージを取り出し、ログメッセージに含まれる単語を抽出する。コンフィグレーション作成部310は、例えば、スペース等を区切り文字とした文字を単語として抽出する。例えば、「今日は、10day.」というログメッセージがある場合、コンフィグレーション作成部310は、「今日は」、「10」、「day.」という3個の単語を抽出する。
FIG. 4 is a diagram for explaining an example of vectorization processing, and FIG. 4A is a diagram illustrating an example of word extraction processing in the vectorization processing. The
比較例としてn-shingles(n-gram)と称される重み付き処理がある。このn-shinglesは、「今日は、」というログメッセージに対し、「今日は」という要素1と、「日は、」という要素2と、「は、f」という要素3とに分割し、要素1に「1.0」の重みを付与し、要素2に「0.5」の重みを付与し、要素3に「0.3」の重みを付与する。このようなn-shinglesでは、データ処理装置200において利用されるアプリケーションと連携することが困難であること、ログメッセージの可変部分と固定部分の区別が難しいこと、単語の出現位置を考慮したベクトル化を行うことが困難であること、単語数が増えやすいという不都合がある。これに対し、図4を参照して説明した処理によれば、これらの不都合を回避することができる。
As a comparative example, there is weighted processing called n-shingles (n-gram). This n-shingles divides the log message "today" into an
図4(B)は、ベクトル化処理のうち単語の出現位置を考慮する処理の一例を示す図である。コンフィグレーション作成部310は、抽出した単語の出現したログメッセージ中の位置も考慮してベクトルを作成する。ログメッセージにおいて同じ単語が複数回出現する場合がある。ただし、ログメッセージは予め設定されたテンプレートに従って単語が配置されている場合が多い。したがって、同じテンプレートに従った複数のログメッセージにおいては、ログメッセージ中の同じ位置に同じ単語が出現する可能性が高い。そこでコンフィグレーション作成部310は、単語に加えて、当該単語の出現した位置を考慮してベクトルを作成する。コンフィグレーション作成部310は、単語の出現位置を表す情報を一次元情報に変換してベクトルを作成する。コンフィグレーション作成部310は、例えば、「今日は」、「10」、「day.」という3個の単語を、「1_今日は」、「2_10」、「3_day.」という3個の情報に変換する。単語の出現位置を考慮すると次元が増えて、2次元のベクトル(マトリクス)になってしまうが、数学的に扱いにくいという問題点がある。2次元のベクトルを次元圧縮することもできるが、情報の損失を避けるため、実施形態のコンフィグレーション作成部310は、単語の出現位置を単語にマージすることで1次元情報に変換する。
FIG. 4B is a diagram showing an example of a vectorization process that considers the appearance positions of words. The
図4(C)は、ベクトル化処理のうち単語に重み係数を設定する処理の一例を示す図である。コンフィグレーション作成部310は、単語をベクトル化するときに単語に重み係数を導入してよい。重みは、単語の出現位置をnとしたとき1/nであってよい。すなわち重みは、単語の出現位置の先頭から末尾に向かって反比例的に減じてよい。例えば、「今日は」に1.0の重みを付与し、「10」に0.5の重みを付与し、「day.」に0.3の重みを付与する。ログメッセージは、ログメッセージの先頭に近い単語ほど重要性が高い傾向があるため、当該傾向を重みに反映することができる。数字を含む単語についての重みを小さくしてよい。例えば「10」という単語の重みを0.005に減じてよい。ログメッセージにおける日付部分などは数字で表現されることが多く、数字を含む単語の重要性が低い傾向があるため、当該傾向を重みに反映することができる。重みは、単語の出現位置を示すパラメータと単語に数字を含むか否かを示すパラメータの双方を含む関数を用いて導出されてよい。図4に示したベクトル化処理を行うことにより、コンフィグレーション作成部310は、「今日は、10day.」というログメッセージを、(1.0,0.005,0.3)という数値化されたベクトルに変換することができる。
FIG. 4C is a diagram showing an example of processing for setting weighting factors to words in the vectorization processing. The
図5は、分類処理の一例を示す図である。コンフィグレーション作成部310は、サンプリングを利用したクラスタリングを行う。コンフィグレーション作成部310は、例えば、サンプリングのアルゴリズムはアンサンブルのboosting方式を利用する。具体的には以下の通りである。まず、コンフィグレーション作成部310は、ログデータ蓄積部206からメッセージ集合を取得する。コンフィグレーション作成部310は、1回目のサンプリング(Phase.1またはPh.1と記載する)においてメッセージ集合から複数のメッセージをサンプリングする。コンフィグレーション作成部310は、サンプリングした複数のログメッセージに対してクラスタリングを行う。コンフィグレーション作成部310は、例えば、メッセージ分類処理における教師なし学習であるクラスタリング法としてDBSCAN(Density-Based Spatial Clustering of Applications with Noise)によりクラスタリングを行う。次にコンフィグレーション作成部310は、Phase.1で縮退したクラスタ(クラスタに属するメッセージに共通する単語のみが含まれたもの)と重複しないログメッセージをサンプリングし(Phase.2)、サンプリングしたログメッセージに対してクラスタリングを行う。次にコンフィグレーション作成部310は、Phase.1およびPhase.2で縮退したクラスタと重複しないログメッセージをサンプリングし(Phase.3)、サンプリングしたログメッセージに対してクラスタリングを行う。このようにコンフィグレーション作成部310は、Phase.1~Phase.x-1で縮退したクラスタと重複しないログメッセージをサンプリングし(Phase.x)、サンプリングしたログメッセージに対してクラスタリングを行う。これによりコンフィグレーション作成部310は、X個のクラスタを集合させることで最終的なクラスタ集合を取得する。コンフィグレーション作成部310は、メッセージ集合に対して1度でクラスタリングを行うのではなく、複数回のサンプリングのそれぞれでクラスタリングを行う。これにより、メッセージ集合に偏りがある場合でも、少ないサンプリング量、すなわち少ないメモリでメッセージ分類を行うことができる。
FIG. 5 is a diagram illustrating an example of classification processing. The
コンフィグレーション作成部310は、クラスタリングの閾値を調整する。閾値は、DBSCANなどのクラスタリングにおいて対象となるログメッセージをクラスタに含めるか否かを判定するための値である。コンフィグレーション作成部310は、AIC(Akaike information criterion, 赤池情報量規準)、BIC(Bayesian information criterion, ベイズ情報量規準)の何れかを用いて閾値を算出する。図6は、AICの算出式およびBICの算出式を示す図である。コンフィグレーション作成部310は、ログメッセージのデータ数、パラメータ数、および偏差に基づいてAICまたはBICを算出する。ログメッセージのデータ数は、サンプリング数に相当し、パラメータ数はDBSCANによるクラスタ数に相当する。コンフィグレーション作成部310は、複数の閾値候補の値(vth-1, vth-2, …)で複数のメッセージ分類を行った後、各メッセージ分類についてAICまたはBICを算出し、AICまたはBICが最小となる閾値候補(vth-min)を閾値として採用する。
The
図7は、コンフィグレーションを作成する処理の一例を示すフローチャートを示す図である。コンフィグレーション作成部310は、先ず所定のフェーズ数だけステップS120からステップS126の処理を繰り返す。ステップS120においてコンフィグレーション作成部310は、ログメッセージ集合からログメッセージをサンプリングする(ステップS120)。コンフィグレーション作成部310は、2回目以降のフェースにおいては、前回までのフェーズでクラスタに属するログメッセージを除くログメッセージをサンプリングする。次にコンフィグレーション作成部310は、サンプリングしたログメッセージを単語列に変換し、各単語のログメッセージにおける出現位置を認識する(ステップS122)。次にコンフィグレーション作成部310は、各単語の重みを用いてログメッセージをベクトル化する(ステップS124)。次にコンフィグレーション作成部310は、DBSCANによりログメッセージをクラスタリングする(ステップS126)。
FIG. 7 is a diagram illustrating a flowchart illustrating an example of processing for creating a configuration. First, the
次にコンフィグレーション作成部310は、閾値候補数だけステップS129およびステップS130を繰り返す。コンフィグレーション作成部310は、所定のフェーズ分のクラスタに対して閾値候補(vth-x)を用いたDBSCANによりクラスタリングを行い(ステップS129)、クラスタリングの結果からAICまたはBICを算出する(ステップS130)。これによりコンフィグレーション作成部310は、閾値候補数だけAICまたはBICを算出する。次にコンフィグレーション作成部310は、AICまたはBICが最小となったクラスタリング結果を採用する(ステップS132)。次にコンフィグレーション作成部310は、クラスタリングの結果として得られたクラスタに属するログメッセージを識別するためのルールおよびメッセージIDを含むコンフィグレーション情報を生成する。ログメッセージを識別するためのルールは、例えば、ログメッセージにどのような単語が出現するかを特定する情報であり、例えば、単語A、単語B、および単語Cが含まれる場合に、当該ログメッセージにログメッセージID:aを付与することを表す。
Next, the
図8は、コンフィグレーションを設定する処理の一例を示すフローチャートである。異常検知装置300は、コンフィグレーション作成部310により作成したコンフィグレーション情報をデータ処理装置200に送信し(ステップS140)、データ処理装置200は、異常検知装置300から受信したコンフィグレーション情報を更新する(ステップS142)。また、異常検知装置300は、仮登録されたログメッセージにメッセージ種別としてメッセージIDを書き込む(ステップS144)。
FIG. 8 is a flowchart illustrating an example of processing for setting the configuration. The
図9は、ログメッセージを登録する処理の一例を示すフローチャートである。監視対象システム100は、新たなログメッセージをデータ処理装置200に送信したとき、データ処理装置200は、コンフィグレーション情報に含まれるルールに基づいてログメッセージを解析し、ログメッセージにメッセージIDを追加する(ステップS150)。データ処理装置200は、異常検知装置300にメッセージIDが追加されたログメッセージを異常検知装置300に送信する。シーケンス推定システム1は、コンフィグレーション情報に従って自動的にログメッセージにメッセージIDを追加することで、ログメッセージを分類するためのコンフィグレーション作業の手間を省くことができる。
FIG. 9 is a flowchart illustrating an example of processing for registering a log message. When the monitored
[メッセージ集合推定処理]
メッセージ集合推定処理は、ログメッセージIDに含まれるログメッセージの集合を特定する処理である。同じログメッセージIDは、一連の動作や異常といった同じ機会で出現するものが多いため、同じ機会で出現するログメッセージが集合を形成するものとする。なお、実施形態において、「ログメッセージの集合」を、「ログメッセージのシーケンス」と読み替えてよい。メッセージ集合推定処理は、ログメッセージの集合のキーとなるログメッセージIDを指定するID指定処理と、キーを指定しない処理である自動推定処理の少なくとも一方を含む。
[Message set estimation process]
The message set estimation process is a process of identifying a set of log messages included in the log message ID. Since many of the same log message ID appear at the same opportunity such as a series of operations or anomalies, it is assumed that log messages appearing at the same opportunity form a set. In addition, in the embodiment, "a set of log messages" may be read as "a sequence of log messages". The message set estimation process includes at least one of an ID designation process of designating a log message ID that is a key of a set of log messages and an automatic estimation process that is a process of not designating a key.
図10は、メッセージ集合推定処理の処理手順の一例を示すフローチャートである。先ず、異常検知装置300は、対象とするログメッセージXを決定する(ステップS302)。異常検知装置300は、ID指定処理を行う場合、予め指定された2つのログメッセージIDに属するログメッセージXを、処理対象として決定する。異常検知装置300は、自動推定処理を行う場合、全てのログメッセージIDにおけるログメッセージXを、処理対象として決定する。異常検知装置300は、決定されたログメッセージXの数分だけ、ステップS304からステップS320までの処理を繰り返す。
FIG. 10 is a flowchart illustrating an example of a processing procedure for message set estimation processing. First, the
先ず異常検知装置300は、データ処理装置200から、決定したログメッセージXの発生時刻のリストを取得する(ステップS304)。次に異常検知装置300は、ステップS306からステップS316までのブートストラップ法を、規定回数だけ繰り返す。規定回数は、ブートストラップ法により作成する疑似データの数に相当する。図11は、相関係数を計算する処理の一例を説明するための図である。異常検知装置300は、ログメッセージXをオリジナルデータとして用いて、例えば3個の疑似データ(1)~(3)を含む疑似データセットを生成する。本例において、規定回数は「3」であり、疑似データごとに相関係数を計算する。
First, the
異常検知装置300は、発生時刻リストから所定数の発生時刻Tを取得し(ステップS306)、相関係数の計算用の行列Mを作成する(ステップS308)。次に異常検知装置300は、取得した全ての発生時刻Tについて、ステップS310からステップS314までの処理を繰り返す。異常検知装置300は、発生時刻Tから所定期間内に出現するログメッセージYを取得し(ステップS310)、行列Mの発生時刻Tの行とログメッセージY’の各列との対応箇所に1をマークし(ステップS312)、行列Mの発生時刻Tの行とログメッセージY以外の各列との対応箇所に0をマークする(ステップS314)。
The
次に異常検知装置300は、行列Mを用いて、ログメッセージXとログメッセージYの相互の時系列的な相関度合いを表す相関係数Cを計算する(ステップS316)。異常検知装置300は、疑似データ(1)~(3)のそれぞれについて、下記の式により相関係数C(1)~C(3)を計算する。下記式においてx、yは疑似データにおける所定期間内の2つのログメッセージX,Yであり、nはデータ数であり、xバーはxの相加平均であり、yバーはyの相加平均であり、相関係数は、標本共分散を標本標準偏差で除算することにより算出される。
次に異常検知装置300は、相関係数Cの平均値C’を計算し(ステップS318)、相関係数Cの平均値C’が所定値以上のログメッセージIDZを取り出す(ステップS320)。これにより、異常検知装置300は、ログメッセージXのそれぞれについて、当該ログメッセージXと時系列的な相関が高いログメッセージID(Z)を取得する。
Next, the
次に異常検知装置300は、ステップS302から自動推定処理を実行しているか否かを判定する(ステップS322)。異常検知装置300は、自動推定処理を実行していない場合(ステップS322:NO)、本処理を終了する。異常検知装置300は、自動推定処理を実行している場合(ステップS322:YES)、ログメッセージID(Z)と包含関係にある他のログメッセージIDを統合する処理を、全てのログメッセージID(Z)について実行する(ステップS324)。次に異常検知装置300は、ログメッセージID(Z)と同時発生関係にある他のログメッセージIDを統合する処理を、全てのログメッセージID(Z)について実行する(ステップS326)。
Next, the
図12は、メッセージ集合推定処理における自動推定処理を説明するための図である。異常検知装置300は、ログメッセージIDに含まれるログメッセージを用いてブートストラップ法を利用した疑似データセットの作成、およびアンサンブル法を利用した相関係数の算出処理を行う。これにより、異常検知装置300は、行数がログメッセージID数であり且つ列数がログメッセージID数である、相関係数のマトリクスを作成する。
FIG. 12 is a diagram for explaining automatic estimation processing in message set estimation processing. The
異常検知装置300は、時系列的に相関係数が高いログメッセージの集合であっても、実質的に重複するログメッセージの集合が含まれるために、補正を行う。異常検知装置300は、包含関係にあるログメッセージの集合同士を、同じログメッセージIDに補正する。図13は、包含関係にあるログメッセージの集合の一例を示す図である。例えば、メッセージNo.406のログメッセージの集合と、メッセージNo.418のログメッセージの集合とはログメッセージの番号(405,404,407)が包含関係にある。包含関係とは、一方のログメッセージの集合が他方のログメッセージの集合を含む関係である。異常検知装置300は、包含関係にあるログメッセージの集合同士を同じログメッセージIDとして補正(統合)する。
The
異常検知装置300は、同時発生関係にあるログメッセージの集合同士を同じログメッセージIDに補正する。図14は、同時発生関係にあるログメッセージの集合の一例を示す図である。例えば、メッセージNo.406のログメッセージの集合と、メッセージNo.418のログメッセージの集合とは同じ時刻に発生している。同時発生関係とは、時間的に同じタイミングで発生するログメッセージ集合同士の関係である。異常検知装置300は、同時発生関係にあるログメッセージの集合同士を同じログメッセージIDとして補正(統合)する。
The
[モデル作成処理]
図15は、モデル作成処理の全体を示すフローチャートであり、図16は、学習データの収集処理の処理手順の一例を示すフローチャートであり、図17は、カーネル密度推定による学習データ収集処理の一例を示すフローチャートである。
[Model creation process]
FIG. 15 is a flow chart showing the entire model creation process, FIG. 16 is a flow chart showing an example of the processing procedure of the learning data collection process, and FIG. 17 is an example of the learning data collection process by kernel density estimation. It is a flow chart showing.
異常検知装置300は、図15に示すように、先ず、学習データを収集し(ステップS400)、学習データを用いてモデルを作成する(ステップS402)。
As shown in FIG. 15, the
異常検知装置300は、図16に示すように、学習データの収集において、ステップS410からステップS420までの処理を、メッセージ集合数分繰り返す。
異常検知装置300は、先ず、対象のログメッセージの集合XとログメッセージIDが重複するメッセージの集合Yを算出する(ステップS410)。次に異常検知装置300は、データ処理装置200からログメッセージの集合Xの発生時刻およびログメッセージの集合Yの発生時刻を取得する(ステップS412)。次に異常検知装置300は、ステップS412において取得した発生時刻のうち、前後に所定間隔の空きがある発生時刻Tを抜き出す(ステップS414)。次に異常検知装置300は、メッセージの集合Xに属するログメッセージIDをインデックスとして、ステップS414において抜き出した発生時刻Tから所定時間内にあるログメッセージLを取り出す(ステップS416)。次に異常検知装置300は、ステップS416において発生時刻Tから所定時間内にあるログメッセージL、すなわち学習データがあるか否かを判定する(ステップS418)。異常検知装置300は、学習データがあるときには(ステップS418:YES)、ステップS410以降の処理を繰り返し、学習データがないときには(ステップS418:NO)、カーネル密度推定によるデータ収集を行って(ステップS420)、ステップS410以降の処理を繰り返す。これにより異常検知装置300は、メッセージの集合ごとに学習データ(L)を収集する。
As shown in FIG. 16, the
The
例えば、メッセージの集合を含む期間(全ての日付け・時刻)において高密度にログメッセージが発生している場合、学習データが取得できない(ステップS418:NO)。高密度にログメッセージが発生するとは、例えばログメッセージ同士の間隔が短く連続的にログメッセージが発生しているために、ステップS414において発生時刻Tが特定できない場合などである。この場合、異常検知装置300は、図17に示すカーネル密度推定による学習データ収集(ステップS420)において、図18に示すステップS4200~ステップS4203の処理を規定回数繰り返す。図18はカーネル密度推定による学習データを収集する処理の一例を示す図である。
For example, when log messages are generated at high density during a period (all dates and times) including a set of messages, learning data cannot be obtained (step S418: NO). Log messages are generated at high density, for example, when the interval between log messages is short and the log messages are generated continuously, so that the generation time T cannot be specified in step S414. In this case,
まず異常検知装置300は、対象となるログメッセージと、当該対象となるログメッセージと相関性の高いログメッセージとを含むログメッセージ集合をサンプリングする(ステップS4200)。異常検知装置300は、例えば、メッセージIDが同じ(mid=A)である複数のログメッセージを、ログメッセージ集合(sampling001、sampling002、・・・)をサンプリングする。
First, the
次に異常検知装置300は、サンプリングしたログメッセージ集合におけるログメッセージ間の時間差分を算出する(ステップS4202)。異常検知装置300は、例えば、あるログメッセージ(mid-A)を取得し、当該ログメッセージと時間的に近傍にあるmid-A1、mid-A2との時間差分(tA1, ,tA2,… )を算出する。次に異常検知装置300は、時間差分(tA1, tA2,… )ごとに、カーネル密度推定を行うことで確率が最大となる時間差分(tA1-max, tA2-max,… )を算出する(ステップS4204)。次に異常検知装置300は、確率が最大となる時間差分(tA1-max, tA2-max,… )をソートし、シーケンスを推定する(ステップS4203)。異常検知装置300は、例えば、ログメッセージのメッセージIDごとに、規定回数だけステップS4200~ステップS4203の処理を繰り返す。次に、異常検知装置300は、ソートした結果、上位から所定数割の時間差分(tA1-max, tA2-max,… )に出現するログメッセージを、メッセージIDがmid-Aのログメッセージの順序(シーケンス)であると推定する(ステップS4204)。次に異常検知装置300は、メッセージIDが同じ順序で配列したシーケンスと同じ順序となる複数のログメッセージを、学習データとして収集する(ステップS4205)。
Next, the
例えば、図18に示すように、複数のサンプリング001~100について、mid-Aに関連するログメッセージとしてmid-A2、mid-A1、…をサンプリングしたとき、mid-Aとmid-A2との差分(tA2)、mid-Aとmid-A1との差分(tA1)、…を算出し、差分(tA2)の分布において確率密度が最大となる差分(tA2-max)、差分(tA1)の分布において確率密度が最大となる差分(tA1-max)、…を算出し、ソートしたとする。ソートした結果、mid-A、mid-A2、mid-A1、…の順序のシーケンスが91個であり、mid-A、mid-A1、mid-A2、…の順序のシーケンスが9個であったとする。異常検知装置300は、mid-A、mid-A2、mid-A1、…の順序のシーケンスを採用し、当該シーケンスと同じシーケンスを学習データとして取得することができる。これにより異常検知装置300は、複数のログメッセージが高密度で隔たっていても、学習データを取得することができる。
For example, as shown in FIG. 18, when sampling mid-A2, mid-A1, . (tA2), the difference between mid-A and mid-A1 (tA1), etc. are calculated. Suppose that the difference (tA1-max) with the maximum probability density is calculated and sorted. As a result of sorting, there were 91 sequences in the order of mid-A, mid-A2, mid-A1, … and 9 sequences in the order of mid-A, mid-A1, mid-A2, … do. The
異常検知装置300は、図19に示すように、モデル作成処理において、ステップS420からステップS424までの処理をメッセージ集合数分だけ繰り返す。図20は、通常マルコフモデルおよび優先マルコフモデルの作成処理の一例を示す図である。
異常検知装置300は、先ず、ログメッセージLの集合を学習データとして通常マルコフモデルMを作成する(ステップS430)。通常マルコフモデルMは、例えば、シーケンスを構成するログメッセージと、当該ログメッセージ間の遷移確率を表す情報とを含む。異常検知装置300は、学習データをマルコフモデルの機械学習アルゴリズムに入力し、機械学習アルゴリズムの出力誤差を最小にするように機械学習アルゴリズムのパラメータを調整する。次に異常検知装置300は、作成した通常マルコフモデルMに含まれる各ログメッセージのデュレーション値を算出する(ステップS432)。デュレーション値とは、ログメッセージ間の時間差を表す情報である。図21は、デュレーション値の一例を示す図である。次に異常検知装置300は、ログメッセージLのうち優先メッセージを学習データとして優先モデルを作成する(ステップS434)。
As shown in FIG. 19, the
The
図22は、一つの学習データおよび複数の学習データを示す図である。優先メッセージは、一シーケンス当たりの発生数は少ないが、一シーケンス当たりの発生確率が高いログメッセージの集合である。「一シーケンス当たりの発生数は少ないログメッセージ」とは、一つの学習データの中でそれほど繰り替えして発生しないログメッセージである。優先メッセージは、例えば、任意のログメッセージの発生数よりも少ない発生数のログメッセージである。「一シーケンス当たりの発生確率が高いログメッセージ」とは、どの学習データ(L1、L2、・・・Ln)でも出現するログメッセージである。 FIG. 22 is a diagram showing one learning data and a plurality of learning data. A priority message is a set of log messages with a low number of occurrences per sequence but a high probability of occurrence per sequence. “Log messages with a small number of occurrences per sequence” are log messages that do not occur repeatedly in one set of learning data. A priority message is, for example, a log message with a lower number of occurrences than any of the log messages. A “log message with a high occurrence probability per sequence” is a log message that appears in any learning data (L1, L2, . . . Ln).
異常検知装置300は、図20に示すように、メッセージ群A,B,C・・・を含むログメッセージLを用いて通常マルコフモデルMを作成し、ログメッセージLのうちメッセージ群A,Cを含む優先メッセージを用いて優先マルコフモデルを作成する。また、異常検知装置300は、メッセージ集合数分だけステップS420からステップS424までの処理を繰り返すことで、メッセージの集合数分の通常マルコフモデルおよび優先マルコフモデルの作成を行う。
As shown in FIG. 20, the
(優先モデルの作成)
図23は、優先モデルを作成する処理の処理手順の一例を示すフローチャートである。
異常検知装置300は、ステップS440からステップS442までのブートストラップ法を、所定数だけ繰り返す。先ず異常検知装置300は、対象となるメッセージの集合Xの学習データLから所定数の学習データL’を抜き出し(ステップS440)、学習データL’の中でそれほど繰り替えして発生しないログメッセージIDのメッセージL’’を抜き出す(ステップS441)。異常検知装置300は、例えば学習データL’のうち出現数が最小のログメッセージIDのメッセージL’’を抜き出してよい。これにより異常検知装置300は、所定数の学習データL’のセットごとにメッセージL’’を含む疑似データを作成することで、複数の疑似データを含む疑似データセットを作成する(ブートストラップ法)。次に異常検知装置300は、学習データL’’の1回の学習データあたりの各ログメッセージIDの出現確率Cを算出する(ステップS442)。これにより異常検知装置300は、疑似データごとに出現確率Cを取得する。
(Creation of preferred model)
FIG. 23 is a flowchart illustrating an example of a processing procedure for creating a priority model;
次に異常検知装置300は、出現確率Cの平均値C’を算出し(ステップS443)、出現確率平均値C’が所定値以上のログメッセージID(Z)を取り出し(ステップS444)、対象のログメッセージの集合Xの学習データLからログメッセージID(Z)のメッセージL’’’を抜き出す(ステップS445)。次に異常検知装置300は、学習データL’’’からAICを算出し(ステップS446)、学習データL’’’からn次マルコフモデルM’を作成する(ステップS447)。次に異常検知装置300は、作成したマルコフモデルM’に含まれる各ログメッセージのデュレーション値を算出する(ステップS448)。
Next, the
(デュレーション値の算出)
図24は、デュレーション値の算出処理の処理手順の一例を示すフローチャートである。異常検知装置300は、ステップS450~ステップS462のデュレーション値の算出処理をマルコフモデルM’の状態遷移数分だけ繰り返して行う。
(Calculation of duration value)
FIG. 24 is a flowchart illustrating an example of a processing procedure of duration value calculation processing. The
先ず異常検知装置300は、ブートストラップ法およびアンサンブル法によって所定数だけ、ステップS450~ステップS458の処理を繰り返す。異常検知装置300は、日単位でデュレーション値を集計する処理として学習期間の日数分、ステップS450~ステップS454を繰り返す。まず、異常検知装置300は、対象とする状態遷移における対象とする日のデュレーション値を、学習データから抜き出し(ステップS450)、デュレーション値のクラスタリングを行う(ステップS452)。次に異常検知装置300は、デュレーション値の各クラスタから所定数のデュレーション値Cを取り出す(ステップS454)。次に異常検知装置300は、デュレーション値Cの集合をクラスタリングする(ステップS456)。次に異常検知装置300は、デュレーション値Cのクラスタのうちデュレーション値が所定数以下のクラスタを破棄する(ステップS458)。
First, the
次に異常検知装置300は、デュレーション値C’の集合をクラスタリングし(ステップS460)、デュレーション値C’のクラスタの平均および偏差を算出する(ステップS462)。
Next, the
(デュレーション値のクラスタリング)
図25は、デュレーション値のクラスタリング処理を処理手順の一例を示すフローチャートである。先ず異常検知装置300は、停止条件が成立したか否かを判定し、成立した場合には本フローチャートの処理を終了し、成立していない場合にはk-meansを用いてデュレーション値の集合を、2つのデュレーション値の集合(D1およびD2)に分割する(ステップS472)。次に異常検知装置300は、分割されたデュレーション値の集合のそれぞれを、デュレーション値を再帰的にクラスタリングする(ステップS474)。異常検知装置300は、停止条件が成立するまでにデュレーション値の集合の2分割、および分割された各デュレーション値の集合の再帰的なクラスタリングを繰り返す。これにより、異常検知装置300は、複数のデュレーション値のクラスタを生成することができる。
(Clustering of duration values)
FIG. 25 is a flowchart illustrating an example of a procedure for clustering processing of duration values. First, the
図26は、デュレーション値のクラスタリング処理の一例を示す図である。例えば1~1010[μsec]まで複数のデュレーション値が存在するものとし、停止条件はCV<0.5且つZ<1であるものする。CVは変動係数であり、変動係数は偏差σ/平均μであり、Zは平均から最大乖離度(max|x-μ|/σ)である。異常検知装置300は、複数のデュレーション値を、2つのデュレーション値の集合(D1,D2)に分割し、デュレーション値の集合D1をさらに、2つのデュレーション値の集合(D11,D12)に分割し、デュレーション値の集合D11をさらに2つのデュレーション値の集合(D111,D112)に分割し、デュレーション値の集合D12をさらに2つのデュレーション値の集合(D121,D122)に分割する。この結果、異常検知装置300は、5個のデュレーション値のクラスタに分割することができる。これにより異常検知装置300は、処理前にクラスタ数を設定していなくても、停止条件を満たすクラスタを生成することができる。
FIG. 26 is a diagram illustrating an example of duration value clustering processing. For example, it is assumed that there are a plurality of duration values from 1 to 1010 [μsec], and the stop conditions are CV<0.5 and Z<1. CV is the coefficient of variation, where the coefficient of variation is deviation σ/mean μ, and Z is the maximum divergence from the mean (max|x−μ|/σ). The
なお、デュレーション値のクラスタリング処理は、デュレーション値の大きさおよびバラツキという複数の条件に基づいてクラスタリングを行えれば、上述したk-meansを利用したクラスタリング処理以外の処理を行ってもよい。例えば、デュレーション値が1000msecと1010msecとを同じクラスタとし、1msecと10msecとで別のクラスタを生成できればよい。 It should be noted that the duration value clustering process may be any process other than the above-described clustering process using k-means as long as clustering can be performed based on a plurality of conditions such as duration value magnitude and variation. For example, it is sufficient if duration values of 1000 msec and 1010 msec are treated as the same cluster, and different clusters are generated for duration values of 1 msec and 10 msec.
(デュレーション値の異常の排除)
図27は、異常値を考慮したデュレーション値のクラスタリングを説明するための図である。異常検知装置300は、デュレーション値の異常値を排除する処理を行うことが望ましい。異常検知装置300は、上述したように日単位で集計したデュレーション値をクラスタリングした後、全学習期間における各クラスタのサンプル数を、ブートストラップ法により所定数に補正する。次に異常検知装置300は日単位の各クラスタのサンプル数を結合すると、学習期間に多く発生しているデュレーション値は多く積み上がり、学習期間における発生数が少ないデュレーション値は積み上がりが少ない。異常検知装置300は、結合後のデュレーション値のうち所定の閾値よりも積み上がりが少ないデュレーション値を切り捨てることを決定する。これにより異常検知装置300は、日単位のデュレーション値から、切り捨て対象のデュレーション値を排除することができる。この結果、異常検知装置300は、学習期間に亘って発生回数が少ないデュレーション値を異常値として排除し、正常値からなるデュレーション値のクラスタを作成することができる。異常検知装置300は、デュレーション値から高い精度で異常値を排除するために、複数回に亘り、日単位のデュレーション値を所定数に補正する処理、学習期間でデュレーション値を積み上げる処理、および所定の閾値よりも少ないデュレーション値を切り捨てる処理を行うことが望ましい。
(Elimination of abnormal duration values)
FIG. 27 is a diagram for explaining clustering of duration values in consideration of abnormal values. It is desirable that the
デュレーション値の異常値はバースト的に発生する場合があるので、学習期間の合計回数ではなく、日単位の発生回数に基づいてデュレーション値が異常であるか否かを判定することが望ましい。しかし、デュレーション値は連続値であるため、デュレーション値に閾値を設けて異常値を判定しようとしても正確に異常値を排除することはできない。そこで、上述したように、日単位でクラスタリングしたデュレーション値の発生回数を学習期間において比較することで、日単位で発生回数が少ないデュレーション値を異常値として排除することができる。また、異常検知装置300は、上述した処理を複数回繰り返すことでデュレーション値の精度を向上させることができる。
Abnormal duration values may occur in bursts, so it is desirable to determine whether or not the duration value is abnormal based on the number of occurrences per day rather than the total number of times during the learning period. However, since the duration value is a continuous value, even if an attempt is made to determine an abnormal value by setting a threshold value for the duration value, the abnormal value cannot be accurately eliminated. Therefore, as described above, by comparing the number of occurrences of duration values clustered on a daily basis during the learning period, it is possible to eliminate duration values with a small number of occurrences on a daily basis as abnormal values. Further, the
(マルコフモデルの高次化)
図28は、優先マルコフモデルを高次化する処理を説明するための図である。
既知の単純マルコフモデルは1つ前のログメッセージを考慮して次のログメッセージを推定するが、異常検知装置300は、推定精度を向上させるために、2つ前以上のログメッセージを考慮してログメッセージを推定する高次マルコフモデルを作成してよい。しかし、単純マルコフモデルに代えて高次マルコムモデルを適用すると推定精度が落ちてしまう場合がある。特に、メッセージ集合から推定されるシーケンスの長さがかなり長い場合、推定精度の劣化が起きやすい。そこで、異常検知装置300は、高次化する範囲を制限し、優先マルコフモデルのみ高次化する部分高次化処理を行う。
(Higher-order Markov model)
FIG. 28 is a diagram for explaining processing for increasing the order of the prioritized Markov model.
Although the known simple Markov model estimates the next log message considering the log message one before, the
異常検知装置300は、優先メッセージを用いて高次マルコフモデル作成処理を行う。異常検知装置300は、下記式のAIC(赤池情報量基準)を用いて次数kを選択し、k次マルコフモデルを作成する。下記の式において、kηmは尤度比統計量(likelihood ratio statistics)であり「-2×(LLk-LLm)」と表現され、LLk(log likelihood for k-order markov chain)は、k次マルコフチェーンの対数尤度であり、LLm(log likelihood for m-order markov chain)は、m次マルコフチェーンの対数尤度であり、Sm-Sk(S-1)は、尤度比検定統計量(likelihood ratio test statistics)であり、Sは、もともとの状態数(original number of states)である。。これにより、異常検知装置300は、シーケンスの長さが長くても安定的に高い推定精度を得ることができる。
[シーケンス推定処理]
図29は、シーケンス推定処理の一例を示すシーケンス図である。
監視対象システム100は、データ処理装置200にログメッセージを送信し、データ処理装置200は、上述したように、コンフィグレーション情報に基づいてログメッセージを解析し(ステップS502)、ログメッセージにメッセージIDを追加する(ステップS504)。データ処理装置200は、メッセージIDが追加されたログメッセージを異常検知装置300に送信し、異常検知装置300は、メッセージIDを用いてシーケンスを推定し(ステップS506)、シーケンスを示すシーケンス値をデータ処理装置200に送信する。これにより、データ処理装置200は、シーケンス値を表す情報や、当該シーケンスに関する情報をユーザ端末装置400に提供することができる。
[Sequence estimation process]
FIG. 29 is a sequence diagram illustrating an example of sequence estimation processing.
The monitored
図30は、シーケンス推定処理の処理手順の一例を示すシーケンス図である。異常検知装置300は、先ずログメッセージを取り出し(ステップS510)、シーケンスを推定する。シーケンスの推定は、競合調整済である優先マルコフモデルもしくは競合調整済みでない優先マルコフモデルのいずれか、通常マルコフモデルの順で、マルコフモデルを用いて行う。競合調整済みであるマルコフモデルについては後述する。
FIG. 30 is a sequence diagram illustrating an example of a processing procedure of sequence estimation processing. The
まず、異常検知装置300は、競合調整済である優先マルコフモデルもしくは競合調整済みでない優先マルコフモデルのいずれかの作成を行い(ステップS512)、ログメッセージの推定を行う(ステップS513)。異常検知装置300は、競合調整済みである優先マルコフモデルの作成およびログメッセージの推定を、ステップS510で取り出したログメッセージの数分を繰り返して行う。なお、競合調整済みである優先マルコフモデルを用いない場合、競合調整済みである優先マルコフモデルの作成を行わなくてよい。異常検知装置300は、競合調整済である優先マルコフモデルもしくは競合調整済みでない優先マルコフモデルのいずれかを用いてログメッセージの数分を繰り返してシーケンスの推定を行い、通常マルコフモデルを用いてログメッセージの数分を繰り返してシーケンスの推定を行う。
First, the
図31は、競合調整済みマルコフモデルの作成処理の処理手順の一例を示すフローチャートである。先ず異常検知装置300は、通常マルコフモデルの学習データと優先マルコフモデルの学習データとの間に、時間的に近いログメッセージである共通メッセージが存在するか否かを判定する(ステップS520)。異常検知装置300は、共通メッセージがない場合(ステップS520:NO)、本フローチャートの処理を終了し、共通メッセージがある場合(ステップS520:YES)、ステップS522の処理を行う。ステップS522において、異常検知装置300は、学習データから共通メッセージを除く。次に異常検知装置300は、共通データを除いた学習データを用いて優先マルコフモデルを作成する(ステップS524)。
FIG. 31 is a flowchart illustrating an example of a processing procedure for creating a conflict-adjusted Markov model. First, the
図32は、競合調整済みの優先マルコフモデルの作成処理の一例を説明するための図である。例えば、優先マルコフモデルがログメッセージの集合Xに含まれる優先メッセージにより学習され、通常マルコフモデルがログメッセージの集合Yにより学習されたものとする。上述したように、異常検知装置300は、優先マルコフモデルによりシーケンスを推定した後、通常マルコフモデルによりシーケンスを推定する。
FIG. 32 is a diagram for explaining an example of processing for creating a conflict-adjusted prioritized Markov model. For example, it is assumed that the priority Markov model is trained with the priority messages contained in the set X of log messages, and the normal Markov model is trained with the set Y of log messages. As described above, the
しかし、図32に示すようにログメッセージの集合Xとログメッセージの集合Yとが時間的に重複している場合、ログメッセージの集合Xの優先メッセージX’に含まれるが、ログメッセージの集合Yの優先メッセージY’に含まれないログメッセージMが存在する。この場合、ログメッセージMは、ログメッセージの集合Xに偏っていることになる。そこで、異常検知装置300は、ログメッセージの集合Xおよびログメッセージの集合Yについて優先メッセージから共通メッセージMを除外して優先マルコフモデルの作成を行う。すなわち、異常検知装置300は、メッセージの集合Xに含まれる優先メッセージX’から共通メッセージMを除いた共通メッセージM’を用いて競合調整済みの優先マルコフモデルを作成する。共通メッセージM’は、ログメッセージの集合Xに含まれる優先メッセージX’から、ログメッセージの集合Yとログメッセージの集合Yに含まれる優先メッセージY’との差分に含まれる共通ログメッセージMを除いたログメッセージである。以上のように、異常検知装置300によれば、時間的に近いログメッセージが一方のログメッセージの集合の優先メッセージに偏ることを回避することができる。
However, when log message set X and log message set Y overlap in time as shown in FIG. There is a log message M that is not included in the priority message Y' of . In this case, the log messages M are biased towards the set X of log messages. Therefore, the
なお、マルコフモデルの作成時に競合調整済みの優先マルコフモデルを作成せずに、シーケンスの推定時に競合調整済みの優先マルコフモデルを作成することが望ましい。マルコフモデルの作成時には、ログメッセージの集合同士が時間的に近いタイミングで発生するか否かを判定する処理を行っていないためである。仮に、マルコフモデルの作成時に、他のマルコフモデルを作成するために用いたログメッセージと時間的に近いことを判定すると、優先メッセージが減少して優先マルコフモデルのシーケンス推定精度が低下するためである。 It is preferable to create a conflict-adjusted prioritized Markov model when estimating a sequence without creating a conflict-adjusted prioritized Markov model when creating a Markov model. This is because when the Markov model is created, the process of determining whether or not sets of log messages occur at timings close to each other is not performed. This is because, if it is determined at the time of creating a Markov model that the log message used to create another Markov model is close in time, priority messages will decrease and the sequence estimation accuracy of the priority Markov model will decrease. .
図33は、ログメッセージについてのシーケンス推定処理の処理手順の一例を示すフローチャートである。まず異常検知装置300は、対象のログメッセージについてシーケンスが推定済であるか否かを判定し(ステップS530)、対象のログメッセージについてシーケンスが推定済である場合には本フローチャートの処理を終了する(ステップS530:YES)。異常検知装置300は、ログメッセージについてのシーケンスが推定済でない場合には(ステップS530:NO)、対象のログメッセージxについてマルコフモデルの状態遷移に合致する、ログメッセージxよりも時系列的に前のログメッセージyを抜き出す(ステップS532)。次に異常検知装置300は、ステップS532においてログメッセージyの候補が存在するか否かを判定する(ステップS534)。異常検知装置300は、ログメッセージyの候補が存在する場合(ステップS534:YES)、ログメッセージxにログメッセージyと同じシーケンス値を付与する(ステップS536)。異常検知装置300は、ログメッセージyの候補が存在しない場合(ステップS534:NO)、ログメッセージxに時間的に最も近いログメッセージを抜き出し、ログメッセージxに、当該抜き出したログメッセージと同じシーケンス値を付与する(ステップS538)。
FIG. 33 is a flowchart illustrating an example of a sequence estimation process procedure for log messages. First, the
図34は、優先マルコフモデルおよび通常マルコフモデルを用いたシーケンス推定処理を説明するための図である。
異常検知装置300は、取り出したログメッセージの集合を、優先メッセージと優先メッセージ以外のログメッセージとに分割する。異常検知装置300は、優先メッセージを優先マルコフモデルのみに入力して、優先メッセージに含まれるシーケンスを推定する。次に異常検知装置300は、優先メッセージ以外のログメッセージを通常マルコフモデルに入力して、優先メッセージ以外のログメッセージに含まれるシーケンスを推定する。これにより、異常検知装置300は、優先マルコフモデルによるシーケンス推定結果と、通常マルコフモデルによるシーケンス推定結果とを取得することができる。
FIG. 34 is a diagram for explaining sequence estimation processing using a priority Markov model and a normal Markov model.
The
図35は、シーケンス推定処理の他の一例を示すフローチャートである。異常検知装置300は、デュレーション値を利用して補助的なシーケンス推定を行ってよい。異常検知装置300は、シーケンス推定結果を参照し、複数のシーケンス値が付与されているログメッセージを検索し、シーケンス候補が複数存在するログメッセージが存在するか否かを判定する(ステップS540)。異常検知装置300は、複数のシーケンス値が付与されたログメッセージがない場合は(ステップS540:NO)、シーケンス推定処理を終了する。
FIG. 35 is a flowchart illustrating another example of sequence estimation processing. The
異常検知装置300は、複数のシーケンス値が付与されたログメッセージがある場合(ステップS540:YES)、ログメッセージのデュレーション値と、マルコフモデルのデュレーション値とを比較する(ステップS542)。異常検知装置300は、推定されたシーケンスに含まれるログメッセージ間の状態遷移分のデュレーション値を計算し、計算したデュレーション値と、推定された複数のシーケンス値それぞれに対応する複数のマルコフモデルにおけるデュレーション値とを比較する。異常検知装置300は、ログメッセージのシーケンス値と最も近いデュレーション値を持つマルコフモデルに対応するシーケンス値に決定する(ステップS544)。
If there is a log message with a plurality of sequence values (step S540: YES), the
図36は、シーケンスを決定する処理を説明するための図である。例えば、ログメッセージm11、m12、およびm13の順に並ぶメッセージ群(シーケンスS1)が、シーケンスS2およびシーケンスS3であると推定されたとする。この場合、異常検知装置300は、シーケンスS1のデュレーション値d11およびd12を計算し、計算したd11およびd12とシーケンスS2のデュレーション値d21およびd22との差が、計算したd11およびd12とシーケンスS3のデュレーション値d31およびd32との差よりも大きいと判定する。この結果、異常検知装置300は、メッセージ群(シーケンスS1)がシーケンスS3であることを推定することができる。
FIG. 36 is a diagram for explaining processing for determining a sequence. For example, assume that a group of messages (sequence S1) arranged in order of log messages m11, m12, and m13 is estimated to be sequence S2 and sequence S3. In this case,
[異常判定処理]
図37は、異常判定処理の処理手順の一例を示すフローチャートである。異常検知装置300は、シーケンス推定処理によりシーケンス値が付与されたログメッセージXの数分を、異常判定処理(ステップS610)を繰り返して行う。異常検知装置300は、異常判定処理により異常であることが判定されたログメッセージXに対応づけて、異常フラグを検知結果蓄積部208に書き込む(ステップS612)。
[Abnormality determination process]
FIG. 37 is a flowchart illustrating an example of a processing procedure for abnormality determination processing. The
図38は、異常判定処理の処理内容の一例を示すフローチャートである。異常検知装置300は、対象とするログメッセージXについて優先マルコフモデルおよび通常マルコフモデルの何れか一つのマルコフモデルに一致するか否かを判定し(ステップS610)、何れか一つのマルコフモデルに一致する場合(ステップS610:YES)、デュレーション値に一致するか否かを判定する(ステップS612)。
FIG. 38 is a flowchart illustrating an example of processing contents of abnormality determination processing. The
異常検知装置300は、優先マルコフモデルおよび通常マルコフモデルの何れか一つのマルコフモデルに一致しない場合(ステップS610:NO)、対象とするログメッセージXについての異常フラグをONに設定する(ステップS614)。異常検知装置300は、一致したマルコフモデルにおけるデュレーション値に、対象とするログメッセージXと同じシーケンス値のログメッセージ間のデュレーション値が一致しない場合(ステップS612:NO)、対象とするログメッセージXについての異常フラグをONに設定する(ステップS614)。
If the
<実施形態の効果>
以上説明したように、実施形態のシーケンス推定システム1によれば、データ処理装置200により収集された複数のログメッセージのそれぞれをベクトル化し、ベクトル化されたログメッセージを分類するための閾値を設定し、設定された閾値を用いて複数のログメッセージを分類し、分類されたログメッセージ群を識別する識別子(ID)を設定する。これにより、シーケンス推定システム1は、データ処理装置200にIDを付与するルールを設定することができる。そしてシーケンス推定システム1は、データ処理装置200により新たなログメッセージを取得した場合に、取得した新たなログメッセージにメッセージIDを付与することができる。これによりシーケンス推定システム1によれば、ログメッセージを分類するためのコンフィグレーション作業の手間を省くことができる。
<Effects of Embodiment>
As described above, according to the
なお、各実施形態および変形例について説明したが、一例であってこれらに限られず、例えば、各実施形態や各変形例のうちのいずれかや、各実施形態の一部や各変形例の一部を、他の1または複数の実施形態や他の1または複数の変形例と組み合わせて本発明の一態様を実現させてもよい。 Although each embodiment and modifications have been described, these are only examples and are not limited to these. A section may be combined with one or more embodiments or one or more modified examples to realize one aspect of the present invention.
なお、本実施形態におけるデータ処理装置200や異常検知装置300の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムを、コンピュータシステムに読み込ませ、実行することにより、データ処理装置200や異常検知装置300に係る上述した種々の処理を行ってもよい。
A program for executing each process of the
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリなどの書き込み可能な不揮発性メモリ、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。 Note that the “computer system” referred to here may include hardware such as an OS and peripheral devices. The "computer system" also includes the home page providing environment (or display environment) if the WWW system is used. In addition, "computer-readable recording medium" means writable non-volatile memory such as flexible disk, magneto-optical disk, ROM, flash memory, portable medium such as CD-ROM, hard disk built in computer system, etc. storage device.
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic
Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置などに格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。
Furthermore, "computer-readable recording medium" means a volatile memory (e.g., DRAM (Dynamic
Random Access Memory)), which holds a program for a certain period of time. Also, the program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium.
ここで、プログラムを伝送する「伝送媒体」は、インターネットなどのネットワーク(通信網)や電話回線などの通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。 Here, the "transmission medium" for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Further, the program may be for realizing part of the functions described above. Further, it may be a so-called difference file (difference program) that can realize the above-described functions in combination with a program already recorded in the computer system.
1 シーケンス推定システム
100 監視対象システム
200 データ処理装置
202 フォーマット変換部
204 データ処理部
206 ログデータ蓄積部
208 検知結果蓄積部
210 可視化部
300 異常検知装置
310 コンフィグレーション作成部
320 メッセージ登録部
330 学習部
332 メッセージ集合推定部
334 モデル作成部
340 推定部
342 シーケンス推定部
344 異常判定部
400 ユーザ端末装置
1
Claims (6)
前記収集部により収集された複数のログメッセージのそれぞれをベクトル化するベクトル化部と、
前記ベクトル化部によりベクトル化されたログメッセージを分類するための閾値を設定する閾値設定部と、
前記閾値設定部により設定された前記閾値を用いて前記複数のログメッセージをクラスタリングし、クラスタリングされたログメッセージを識別する識別子を設定するクラスタリング部と、
前記収集部により新たなログメッセージを取得した場合に、取得した新たなログメッセージに前記クラスタリング部により設定された識別子を付与する分類部と、
を備える、メッセージ分類装置。 a collector that collects log messages from the monitored system;
a vectorization unit that vectorizes each of the plurality of log messages collected by the collection unit;
a threshold setting unit that sets a threshold for classifying log messages vectorized by the vectorization unit;
a clustering unit that clusters the plurality of log messages using the threshold set by the threshold setting unit and sets an identifier for identifying the clustered log messages;
a classifying unit that assigns an identifier set by the clustering unit to the acquired new log message when the collecting unit acquires a new log message;
A message classifier, comprising:
前記情報処理装置が、収集された複数のログメッセージのそれぞれをベクトル化するステップと、
前記情報処理装置が、ベクトル化されたログメッセージを分類するための閾値を設定するステップと、
前記情報処理装置が、前記閾値を用いて前記複数のログメッセージをクラスタリングし、クラスタリングされたログメッセージを識別する識別子を設定するステップと、
前記情報処理装置が、新たなログメッセージを取得した場合に、取得した新たなログメッセージに前記識別子を付与するステップと、
を含む、メッセージ分類方法。 an information processing device collecting log messages from a monitored system;
the information processing device vectorizing each of the plurality of collected log messages;
the information processing device setting a threshold for classifying vectorized log messages;
a step of the information processing device clustering the plurality of log messages using the threshold and setting an identifier for identifying the clustered log messages;
when the information processing device acquires a new log message, assigning the identifier to the acquired new log message;
Message classification method, including
監視対象システムからログメッセージを収集するステップと、
収集された複数のログメッセージのそれぞれをベクトル化するステップと、
ベクトル化されたログメッセージを分類するための閾値を設定するステップと、
前記閾値を用いて前記複数のログメッセージをクラスタリングし、クラスタリングされたログメッセージを識別する識別子を設定するステップと、
新たなログメッセージを取得した場合に、取得した新たなログメッセージに前記識別子を付与するステップと、
を実行させる、プログラム。 to the computer,
collecting log messages from the monitored system;
vectorizing each of the collected plurality of log messages;
setting a threshold for classifying the vectorized log messages;
clustering the plurality of log messages using the threshold and setting an identifier to identify the clustered log messages;
when acquiring a new log message, assigning the identifier to the acquired new log message;
The program that causes the to run.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022031838A JP7335378B1 (en) | 2022-03-02 | 2022-03-02 | Message classifier, message classifier method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022031838A JP7335378B1 (en) | 2022-03-02 | 2022-03-02 | Message classifier, message classifier method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP7335378B1 true JP7335378B1 (en) | 2023-08-29 |
JP2023127887A JP2023127887A (en) | 2023-09-14 |
Family
ID=87764165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022031838A Active JP7335378B1 (en) | 2022-03-02 | 2022-03-02 | Message classifier, message classifier method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7335378B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015072085A (en) | 2013-10-03 | 2015-04-16 | ダイヤモンド電機株式会社 | Compressor motor control device for refrigerator |
JP2016035617A (en) | 2014-08-01 | 2016-03-17 | 日本電気株式会社 | Log processor, log processing method and its program |
JP2017081865A (en) | 2015-10-30 | 2017-05-18 | 森永乳業株式会社 | Bone disease improver |
JP2020140580A (en) | 2019-02-28 | 2020-09-03 | 日本電信電話株式会社 | Detection device and detection program |
CN111625625A (en) | 2020-05-27 | 2020-09-04 | 腾讯科技(深圳)有限公司 | Method and device for determining abnormal log, computer equipment and storage medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2015072085A1 (en) * | 2013-11-12 | 2017-03-16 | 日本電気株式会社 | Log analysis system, log analysis method, and program |
WO2017081865A1 (en) * | 2015-11-13 | 2017-05-18 | 日本電気株式会社 | Log analysis system and method, and recording medium |
-
2022
- 2022-03-02 JP JP2022031838A patent/JP7335378B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015072085A (en) | 2013-10-03 | 2015-04-16 | ダイヤモンド電機株式会社 | Compressor motor control device for refrigerator |
JP2016035617A (en) | 2014-08-01 | 2016-03-17 | 日本電気株式会社 | Log processor, log processing method and its program |
JP2017081865A (en) | 2015-10-30 | 2017-05-18 | 森永乳業株式会社 | Bone disease improver |
JP2020140580A (en) | 2019-02-28 | 2020-09-03 | 日本電信電話株式会社 | Detection device and detection program |
CN111625625A (en) | 2020-05-27 | 2020-09-04 | 腾讯科技(深圳)有限公司 | Method and device for determining abnormal log, computer equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP2023127887A (en) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10353685B2 (en) | Automated model management methods | |
US10721256B2 (en) | Anomaly detection based on events composed through unsupervised clustering of log messages | |
CN110826648B (en) | Method for realizing fault detection by utilizing time sequence clustering algorithm | |
US8037533B2 (en) | Detecting method for network intrusion | |
US7724784B2 (en) | System and method for classifying data streams using high-order models | |
US10019492B2 (en) | Stop word identification method and apparatus | |
CN109257383B (en) | BGP anomaly detection method and system | |
JP2017091113A (en) | Event analysis device, event analysis system, event analysis method, and event analysis program | |
CN110659175A (en) | Log trunk extraction method, log trunk classification method, log trunk extraction equipment and log trunk storage medium | |
CN111314329A (en) | Traffic intrusion detection system and method | |
JP2019159576A (en) | Learning program, learning method and learning device | |
CN111291824A (en) | Time sequence processing method and device, electronic equipment and computer readable medium | |
CN112528022A (en) | Method for extracting characteristic words corresponding to theme categories and identifying text theme categories | |
US6522768B1 (en) | Predicting system behavior of a managed system using pattern recognition techniques | |
CN111240942A (en) | Log abnormity detection method and device | |
JP7335378B1 (en) | Message classifier, message classifier method, and program | |
JP7335379B1 (en) | LEARNING APPARATUS, LEARNING METHOD, AND PROGRAM | |
US20100005043A1 (en) | Active learning system, active learning method and program for active learning | |
CN113315851A (en) | Domain name detection method, device and storage medium | |
JP7182586B2 (en) | LEARNING APPARATUS, ESTIMATION APPARATUS, SEQUENCE ESTIMATION SYSTEM AND METHOD, AND PROGRAM | |
CN115269288A (en) | Fault determination method, device, equipment and storage medium | |
CN114528909A (en) | Unsupervised anomaly detection method based on flow log feature extraction | |
CN111143303B (en) | Log classification method based on information gain and improved KNN algorithm | |
JP4036009B2 (en) | Image data classification device | |
CN111258788A (en) | Disk failure prediction method, device and computer readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230530 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230721 |
|
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: 20230808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230817 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7335378 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |