(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022061678
(43)【公開日】2022-04-19
(54)【発明の名称】異常検知装置、異常検知方法、およびプログラム
(51)【国際特許分類】
G06F 11/07 20060101AFI20220412BHJP
【FI】
G06F11/07 151
G06F11/07 140A
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2020169755
(22)【出願日】2020-10-07
(71)【出願人】
【識別番号】397065480
【氏名又は名称】エヌ・ティ・ティ・コムウェア株式会社
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100181124
【弁理士】
【氏名又は名称】沖田 壮男
(72)【発明者】
【氏名】小杉 晃範
(72)【発明者】
【氏名】寺澤 啓司
(72)【発明者】
【氏名】瀧見 彰太
(72)【発明者】
【氏名】青木 桂子
(72)【発明者】
【氏名】桐野 洋平
(72)【発明者】
【氏名】岩下 侑輝顕
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA12
5B042JJ06
5B042JJ30
5B042MA08
5B042MA10
5B042MA13
5B042MA14
5B042MC25
5B042MC28
5B042MC35
5B042MC40
(57)【要約】 (修正有)
【課題】未知の異常を検知する異常検知装置、異常検知方法及びプログラムを提供する。
【解決手段】異常判定システム1Aにおいて、異常検知装置500は、データ処理装置200から取得したログメッセージを分析し、分析結果に基づく情報をデータ処理装置200に提供する情報処理装置であって、変換部510と、異常判定部520とを備える。変換部は、監視対象システムから収集されたログメッセージの発生数を、ログメッセージの発生日数に変換する。検知部は、変換部により変換されたログメッセージの発生日数に基づいて、監視対象システムの異常に関連するログメッセージを検知する。
【選択図】
図11
【特許請求の範囲】
【請求項1】
監視対象システムからログメッセージを収集する収集部と、
前記収集部により収集されたログメッセージの発生数を、前記ログメッセージの発生日数に変換する変換部と、
前記変換部により変換された前記ログメッセージの発生日数に基づいて、前記監視対象システムの異常に関連するログメッセージを検知する検知部と、
を備える、異常検知装置。
【請求項2】
前記収集部により収集されたログメッセージのうち所定のパラメータを削除することでインデックスを加工して登録する登録部を備え、
前記変換部は、前記インデックスの発生数を、前記インデックスの発生日数に変換する、
請求項1に記載の異常検知装置。
【請求項3】
前記検知部は、前記発生日数が閾値以下のログメッセージを、前記監視対象システムの異常に関連するログメッセージとして検知する、請求項1または2に記載の異常検知装置。
【請求項4】
監視対象システムからログメッセージを収集するステップと、
収集されたログメッセージの発生数を、前記ログメッセージの発生日数に変換するステップと、
変換された前記ログメッセージの発生日数に基づいて、前記監視対象システムの異常に関連するログメッセージを検知するステップと、
を含む、異常検知方法。
【請求項5】
コンピュータに、
監視対象システムからログメッセージを収集するステップと、
収集されたログメッセージの発生数を、前記ログメッセージの発生日数に変換するステップと、
変換された前記ログメッセージの発生日数に基づいて、前記監視対象システムの異常に関連するログメッセージを検知するステップと、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常検知装置、異常検知方法、およびプログラムに関する。
【背景技術】
【0002】
従来より、各種のシステムから出力されたログを監視し、システムの異常を検知する技術が知られている。例えば、特許文献1に記載された保守管理装置が知られている。この保守管理装置は、ログ情報を収集する収集部と、ログ情報を識別するログ識別子とログ情報の時刻情報とを関連付けて記憶する記憶部と、複数のログ識別子を時刻情報に基づいてまとめたログシーケンスを作成し、ログシーケンスの開始時刻と終了時刻との差分からシーケンス時間を算出し、ログシーケンスとシーケンス時間とを関連付けたシーケンスグループにグループ化する分析部と、を備え、分析部は、シーケンスグループが予め登録された正常シーケンスグループ及び異常シーケンスグループと一致しない場合、予め登録されたインシデント予兆グループのうち、シーケンスグループと最も適合率の高いシーケンスグループに基づいてインシデント発生までのインシデント発生見込み時間を算出する。これにより、保守管理装置は、インシデントの発生を予測することが可能であるとしている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した保守管理装置は、予め正常シーケンスグループ、異常シーケンスグループ、およびインシデント予兆グループといった情報を事前登録し、ログ情報を監視している。また、保守運用(オペレーション)の現場では、故障対応システムなどが出力するログ通知を契機として故障対応が始まることが一般的である。契機となるログは、通常運用時に出力されるログが多すぎるため、過去に発生した故障と関連したログのみを監視対象とし、それ以外のログは無視する、という運用を行うことが一般的である。
【0005】
しかし、故障にはログの出力を伴わない故障(サイレント故障)があり、監視対象のログを登録することができないため、当該サイレント故障の監視が困難となる可能性がある。さらに、監視対象が登録されていない未知の故障に対しては、ログの出力の有無にかかわらず、ユーザの申告が故障対応の契機となる。このため、既知の故障と比較して、罹障(りしょう)時間が長くかかってしまうという問題がある。
【0006】
本発明は、上記の課題に鑑みてなされたものであって、未知の異常を検知することができる異常検知装置、異常検知方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
(1)本発明の一態様は、監視対象システムからログメッセージを収集する収集部と、前記収集部により収集されたログメッセージの発生数を、前記ログメッセージの発生日数に変換する変換部と、前記変換部により変換された前記ログメッセージの発生日数に基づいて、前記監視対象システムの異常に関連するログメッセージを検知する検知部と、を備える、異常検知装置である。
【0008】
(2)本発明の一態様は、上記の異常検知装置であって、前記収集部により収集されたログメッセージのうち所定のパラメータを削除することでインデックスを加工して登録する登録部を備え、前記変換部は、前記インデックスの発生数を、前記インデックスの発生日数に変換してよい。
【0009】
(3)本発明の一態様は、上記の異常検知装置であって、前記検知部は、前記発生日数が閾値以下のログメッセージを、前記監視対象システムの異常に関連するログメッセージとして検知してよい。
【0010】
(4)本発明の一態様は、監視対象システムからログメッセージを収集するステップと、収集されたログメッセージの発生数を、前記ログメッセージの発生日数に変換するステップと、変換された前記ログメッセージの発生日数に基づいて、前記監視対象システムの異常に関連するログメッセージを検知するステップと、を含む、異常検知方法である。
【0011】
(5)本発明の一態様は、コンピュータに、監視対象システムからログメッセージを収集するステップと、収集されたログメッセージの発生数を、前記ログメッセージの発生日数に変換するステップと、変換された前記ログメッセージの発生日数に基づいて、前記監視対象システムの異常に関連するログメッセージを検知するステップと、を実行させる、プログラムである。
【発明の効果】
【0012】
本発明の一態様によれば、未知の異常を検知することができる。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態の異常検知システム1の機能的な構成の一例を示すブロック図である。
【
図2】第1実施形態における異常判定システム1の全体の処理手順を示すフローチャートである。
【
図3】メッセージ登録処理の処理手順の一例を示すシーケンス図である。
【
図5】ログメッセージの登録を説明するための図である。
【
図6】インデックス集計および異常判定の処理手順の一例を示すフローチャートである。
【
図7】異常度の計算の処理手順の一例を示すフローチャートである。
【
図9】メジャーメッセージの時間的な変化の一例を示す図である。
【
図10】異常度の時間的な変化の一例を示す図である。
【
図11】第2実施形態における異常判定システム1Aの一例を示すブロック図である。
【
図12】第2の実施形態における全体の処理手順の一例を示すフローチャートである。
【
図13】マイナーメッセージの判定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
<実施形態の概要>
実施形態の異常検知システムは、監視対象システムからログメッセージを収集し、ログメッセージのうち対象メッセージを利用して監視対象システムの異常を検知する。実施形態のメジャーメッセージは、対象メッセージに相当し、監視対象システムに異常が発生していない動作中の状態で出力されたログメッセージであって所定の頻度で発生するログメッセージである。これにより異常検知システムは、例えば、ログの出力を伴わない故障(サイレント故障)や未知の異常を検知することができる。以下、異常検知システムについて説明する。
【0015】
<第1実施形態>
<異常検知システム1の構成>
図1は、第1実施形態の異常検知システム1の機能的な構成の一例を示すブロック図である。異常検知システム1は、例えば、一又は複数の監視対象システム100と、データ処理装置200と、異常検知装置300と、ユーザ端末装置400とを備える。監視対象システム100、データ処理装置200、異常検知装置300、およびユーザ端末装置400は、例えば、通信ネットワークに接続される。通信ネットワークに接続される各装置は、NIC(Network Interface Card)や無線通信モジュールなどの通信インターフェースを備えている(
図2では不図示)。通信ネットワークは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、セルラー網などを含む。
【0016】
監視対象システム100は、データ処理装置200および異常検知装置300によってログメッセージが監視される情報処理システムである。監視対象システム100は、例えば、各種のサービスを提供するサービスサーバ装置や、ネットワーク網に含まれる多数のネットワークノードの動作状態を管理するネットワーク管理装置等である。ネットワークノードは、例えば、OS(Operation System)、VM(Virtual Machine)、HW(Hardware)、DC(Data Center)などである。監視対象システム100は、所定のトリガに従ってログメッセージをデータ処理装置200に提供する。また、監視対象システム100は、単独で動作するサーバ装置であってよいが、他のサーバ装置と連携して動作する複数のサーバ装置群であってよい。
【0017】
データ処理装置200は、例えば、ログ運用のためのOSS(オープンソースソフトウェア)を実装したコンピュータである。OSSは、例えば、Elasticsearch、Logstash、およびKibanaと称される要素により構成される。データ処理装置200は、例えば、Logstashにより構成されるフォーマット変換部202と、Elasticsearchにより構成されるデータ処理部204と、ログデータ蓄積部206と、検知結果蓄積部208と、Kibanaにより構成される可視化部210とを備える。
【0018】
フォーマット変換部202、データ処理部204、および可視化部210といった機能部は、例えばCPU(Central Processing Unit)等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。プログラムは、予めデータ処理装置200のHDD(Hard Disc Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体に格納されており、記憶媒体(非一過性の記憶媒体)がドライブ装置に装着されることでデータ処理装置200のHDDやフラッシュメモリにインストールされてもよい。ログデータ蓄積部206および検知結果蓄積部208は、例えば、HDD、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置により実現される。ログデータ蓄積部206および検知結果蓄積部208は、例えば、SAN(Storage Area Network)やNAS(Network Attached Storage)により実現されてよい。
【0019】
フォーマット変換部202は、監視対象システム100から収集したログメッセージのフォーマットを所定のフォーマットに変換する。データ処理部204は、フォーマット変換部202によりフォーマット変換されたログメッセージをログデータ蓄積部206に記憶する。このときデータ処理部204は、ログメッセージにタイムスタンプを付加して登録する。タイムスタンプはログメッセージの発生時刻を示す情報である。データ処理部204は、フォーマット変換部202からのログメッセージについて各種のデータ処理を行う。可視化部210は、シーケンス推定結果や異常判定結果をユーザが閲覧可能な可視化データに変換して、ユーザ端末装置400に提供する。
【0020】
データ処理部204は、例えば、インデックス付与部220と、登録部222と、集計部224とを備える。インデックス付与部220は、ログメッセージにインデックス値を付与する。登録部222は、ログメッセージをインデックス値としてログデータ蓄積部206に登録する。集計部224は、ログメッセージを時系列で集計する。また、データ処理装置200は、異常検知装置300の要求に応じてログデータ蓄積部206から所望のログメッセージを検索する処理や、異常検知装置300から提供された異常判定結果を検知結果蓄積部208に記憶する処理なども行う。
【0021】
ユーザ端末装置400は、例えばパーソナルコンピュータや、スマートフォンやタブレット端末などの端末装置である。ユーザ端末装置400は、例えば監視対象システム100の管理者の操作を受け付け、監視対象システム100の状態や異常に関する情報をデータ処理装置200から取得し、表示処理等を行う。
【0022】
異常検知装置300は、データ処理装置200から取得したログメッセージを分析し、分析結果に基づく情報をデータ処理装置200に提供する情報処理装置である。異常検知装置300は、例えば、スコア計算部310と、異常判定部320とを備える。スコア計算部310、および異常判定部320といった機能部は、例えばCPU等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。
【0023】
スコア計算部310は、データ処理装置200により収集されたログメッセージの変化に基づくスコア(異常度)を計算する。異常判定部320は、スコア計算部310により計算された異常度に基づいて監視対象システム100の異常を検知する。
【0024】
<異常判定システム1の全体処理>
図2は、第1実施形態における異常判定システム1の全体の処理手順を示すフローチャートである。異常判定システム1は、先ず、監視対象システム100から収集したログメッセージを登録する(ステップS100)。次に異常判定システム1は、登録したログメッセージに対応するインデックスを集計する(ステップS200)。次に異常判定システム1は、異常度を計算する(ステップS300)。次に異常判定システム1は、異常を判定する(ステップS400)。
【0025】
[メッセージ登録処理]
図3は、メッセージ登録処理の処理手順の一例を示すシーケンス図である。データ処理装置200は、監視対象システム100からログメッセージを収集する。データ処理装置200は、監視対象システム100に要求を送信し、要求に応じてログメッセージを収集してもよい。先ず、データ処理装置200は、収集したログメッセージのうち所定のパラメータを正規表現により削除する(ステップS102)。次に、データ処理装置200は、定型的なパラメータを削除したログメッセージのインデックス部分を登録する(ステップS104)。所定のパラメータは、例えば、数字が含まれる単語部分等のログメッセージの可変部分等の定型的なパラメータである。ログメッセージから定型的なパラメータを削除することで、ログメッセージ間で共通した部分を残すことができる。これにより、ログメッセージ間の重複を排除することができる。
【0026】
図4は、ログメッセージの一例を示す図である。
図4(a)に示すようにログメッセージには「fa:16:・・・」といったアドレス等を表す数字が含まれているが、データ処理装置200は、
図4(b)に示すように、当該数字を定型的なパラメータとして削除する。これにより、異常検知装置300は、
図4(a)および(b)に示すような2つのログメッセージのインデックスを、重複して登録することができる。
【0027】
図5は、ログメッセージの登録を説明するための図である。データ処理装置200は、複数種類のログメッセージx、y、z、・・・のうち、選定された一つのログメッセージyを、メジャーメッセージとしてインデックス値Aに変換する。監視対象システム100に異常が発生していない動作中の状態で出力されたログメッセージであって所定の頻度で発生するログメッセージyが、メジャーメッセージとして選定される。異常検知装置300は、正規分布における移動平均付近で高い確率で発生するログメッセージを、メジャーメッセージとして選定してもよい。異常検知装置300は、監視対象システム100の種類によって複数種類のログメッセージを、メジャーメッセージとして選定してもよい。この場合、異常検知装置300は、選定された複数種類のメジャーメッセージを同じインデックス値として登録する。データ処理装置200は、メジャーメッセージのみならず、他のログメッセージもインデックス値に変換してもよい。なお、メジャーメッセージは、監視対象システム100の管理者により選定されたログメッセージであってもよく、データ処理装置200が自動的に選定したログメッセージであってよい。
【0028】
[インデックス集計および異常判定]
図6は、インデックス集計および異常判定の処理手順の一例を示すフローチャートである。先ず、データ処理装置200は、メジャーメッセージに対応したインデックスを指定して時系列単位ごとにインデックスを集計する(ステップS210)。時系列単位は、例えば、1日や1時間などである。次に異常検知装置300は、データ処理装置200から集計結果を取得し、異常度(スコア)の計算を、時系列単位数分繰り返す。異常検知装置300は、各時系列単位の集計値から異常度(スコア)を計算する(ステップS310)。
【0029】
図7は、異常度の計算の処理手順の一例を示すフローチャートである。先ず異常検知装置300は、時系列単位でメジャーメッセージの発生数の移動平均(μ)を計算する(ステップS312)。次に異常検知装置300は、時系列単位でメジャーメッセージの発生数の移動偏差(σ)を計算する(ステップS314)。次に異常検知装置300は、移動平均(μ)および移動偏差(σ)を用いて異常度を計算する(ステップS316)。なお、移動平均(μ)および移動偏差(σ)は、選定されたログメッセージ(メジャーメッセージ)の変化の一例である。
【0030】
異常検知装置300は、収集したログメッセージの時系列単位当たりの発生数と、当該ログメッセージの発生数についての正規分布の性質とに基づく異常度を計算する。具体的には、異常検知装置300は、異常度を、下記の式1により算出する。
max(0,-(x-μ)/σ-th) (式1)
上記式1において、xはメジャーメッセージの時系列単位当たりの発生数であり、μは移動平均であり、σは移動偏差であり、thは閾値である。監視対象システム100の異常に対する感度(検出し易さ、および、検出し難さ)に応じてthを変更してよく、thは予め設定された一定値でもよい。
図8は、正規分布の性質を示す図であり、正規分布は、平均値Oの周りに値が集中する性質を持つ。正規分布における平均値OからZだけ離れた位置までに含まれる範囲は、Z=|x-μ|/σで表現される。正規分布表の性質から、thを2~3に設定すればよい場合が多い。
【0031】
図9は、メジャーメッセージの時間的な変化の一例を示す図である。
図10は、異常度の時間的な変化の一例を示す図である。監視対象システム100からメジャーメッセージが発生している、異常が発生していない通常状態において、発生数の正常範囲は、約100程度から移動平均(μ)までの範囲である。これに対し、監視対象システム100に異常が発生し、メジャーメッセージの発生数が0に近く正常値を超えると、
図10に示すように高い異常度が発生する。
【0032】
以上説明したように、実施形態の異常判定システム1によれば、監視対象システム100からログメッセージを収集する収集部(200)と、収集されたログメッセージのうち、監視対象システム100に異常が発生していない動作中の状態で出力されたログメッセージであって所定の頻度で発生するログメッセージの変化を計算するスコア計算部310と、選定されたログメッセージの変化に基づいて監視対象システム100の異常を検知する異常判定部320と、を備える、異常検知装置を実現することができる。この異常判定システム1によれば、ログメッセージが発生しない、未知の異常を検知することができる。
【0033】
具体的に、異常判定システム1によれば、システムダウンなどの監視対象システム100に致命的なエラーば発生しているが、明確なログメッセージが出力されない事例(サイレント故障の一つ)を検知することができる。また、異常判定システム1によれば、一般の機械学習で必要とされる事前学習を必要としないため、手間がかかる学習データの準備が不要であり、実運用環境に簡易に導入することができる。
【0034】
実施形態の異常判定システム1によれば、正規分布における移動平均付近で高い確率で発生するログメッセージを選定するので、正規分布の性質を利用して異常を検知することができる。
【0035】
実施形態の異常判定システム1によれば、選定されたログメッセージのうち所定のパラメータを削除することでインデックスを加工して登録するので、例えば、数値等のログメッセージの種別に関連が少ない情報を削除することができる。この異常判定システム1によれば、集計処理等の処理量を抑制することができる。
【0036】
実施形態の異常判定システム1によれば、選定された複数種類のログメッセージを同じインデックス値として登録するので、例えば監視対象システム100のメジャーメッセージが複数存在する場合の異常や、複数の監視対象システム100に関連したメジャーメッセージが複数存在する場合の異常を検知することができる。
【0037】
実施形態の異常判定システム1によれば、メジャーメッセージの単位時間当たりの発生数(メジャーメッセージが発生しなくなる性質)と、当該メジャーメッセージの発生数についての正規分布の性質とに基づく異常度を計算する。具体的に、異常判定システム1は、異常度は、max(0,-(x-μ)/σ-th)で示される計算式により算出する。異常判定システム1は、例えば、通常運用時ではメジャーメッセージの単位時間あたりの発生数が緩やかな変化を伴いながら遷移するが、異常発生時には、急激にその値が減少する性質や、異常度のスコア計算において、発生数の減少度合いを、正規分布の平均値の周りに値が集中する性質を利用して数値化して異常を検知することができる。さらに、異常判定システム1によれば、メジャーメッセージについて正規分布の仮定が厳密には成り立たなくても、移動平均の周りに大体の値があれば、アルゴリズムとして機能し、メジャーメッセージを利用して監視対象システム100の異常を検知することができる。
【0038】
また、実施形態の異常判定システム1によれば、監視対象システム100からログメッセージを収集するデータ処理部204と、複数のメジャーメッセージを同じインデックス値として登録する登録部222と、複数のメジャーメッセージを監視し、登録部222により登録されたインデックス値を集計する集計部224と、を備える、データ処理装置200と、データ処理装置200から取得したインデックス値の集計結果を用いて監視対象システム100の異常度を計算し、計算した異常度に基づいて監視対象システム100の異常を検知する異常検知装置300と、を備える、異常検知システムを実現することができる。異常判定システム1によれば、メジャーメッセージの集計をデータ処理装置200で行うことができ、異常検知装置300により異常度の計算および判定を行えばよいので、機能分担が明確になり、且つ異常検知装置300の処理を簡素化することができる。
【0039】
[第2実施形態]
以下、第2実施形態について説明する。なお、第1実施形態と同様の部分についてはその詳細な説明を省略する。第2の実施形態の異常判定システム1Aは、マイナーメッセージを検知することで監視対象システム100の異常を検知する点で、上述した実施形態とは相違する。マイナーメッセージは、ログメッセージの発生数をログメッセージの発生日数に変換することによって検知されるログメッセージである。
【0040】
図11は、第2実施形態における異常判定システム1Aの一例を示すブロック図である。異常判定システム1Aは、上述した異常検知装置300に代えて、異常検知装置500を備える。異常検知装置500は、データ処理装置200から取得したログメッセージを分析し、分析結果に基づく情報をデータ処理装置200に提供する情報処理装置である。異常検知装置500は、例えば、変換部510と、異常判定部520とを備える。変換部510、および異常判定部520といった機能部は、例えばCPU等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。変換部510は、データ処理装置200により収集されたログメッセージの発生数を、ログメッセージの発生日数に変換する。異常判定部520は、変換されたログメッセージの発生日数に基づいて、監視対象システム100の異常に関連するログメッセージを検知する。
【0041】
図12は、第2の実施形態における全体の処理手順の一例を示すフローチャートである。データ処理装置200は、インデックスごとに時系列で発生数を集計する(ステップS400)。データ処理装置200は、例えば、1日のインデックスの発生数を集計結果として取得する。また、異常検知装置300は、インデックスの発生時刻(日時)を含む情報を取得する。異常検知装置300は、インデックスの集計結果に基づいてマイナーメッセージの判定を行う(ステップS402)。異常検知装置300は、マイナーメッセージの判定によりマイナーメッセージが存在する場合、検知結果蓄積部208にマイナーメッセージを書き込む(ステップS404)。
【0042】
図13は、マイナーメッセージの判定処理の一例を示すフローチャートである。異常検知装置300は、マイナーメッセージの判定を、インデックス数分を繰り返して行う。まず異常検知装置300は、集計単位を、発生数から発生日数に変換する(ステップS410)。すなわち、異常検知装置300は、インデックスごとの集計数を、インデックスが発生した日数に変換する。異常検知装置300は、発生日数が閾値以下であるか否かを判定する(ステップS412)。異常検知装置300は、発生日数が閾値以下ではない場合(ステップS412:NO)、当該インデックスについての処理を終了する。異常検知装置300は、発生日数が閾値以下である場合(ステップS412:YES)、当該インデックスをマイナーメッセージとしてマーキングする(ステップS414)。インデックスをマイナーメッセージとしてマーキングする処理は、例えば、データ処理装置200により、マイナーメッセージである情報をインデックスに対応付ける処理である。これにより、データ処理装置200は、ログメッセージのインデックスが、マイナーメッセージに対応付けられている場合、マイナーメッセージが発生したことを検知することができる。なお、閾値は、発生日数の少なさの観点から監視対象システム100の異常を検知するために設定された値であり、異常判定システム1A全体で一つだけ設定されてよく、監視対象システム100ごとに設定されてよく、各インデックスについて設定されてもよく、複数種類のインデックスについて設定されてもよい。また、閾値は、異常レベルに応じて複数設定されてよい。
【0043】
図14は、変換処理の一例を示す図である。データ処理装置200は、
図14(a)に示すように、1月1日から1月31日まで、日単位でインデックス(X1・・・Xn)の発生数を集計し、集計結果を異常検知装置500に送信する。集計結果には、インデックスX2のログメッセージが1月2日に100回発生することで合計100回発生し、インデックスX3のログメッセージが1月1日から1月31日まで毎日1回発生することで合計31回発生したという結果が含まれている。異常検知装置500は、
図14(a)に示す集計結果を、
図14(b)に示すように、日単位で、インデックスが発生した場合には「1」、インデックスが発生しなかった場合には「0」となるように変換する。この結果、インデックスX2の集計結果は、1月2日のみが「1」であるので合計で「1」となり、インデックスX3の集計結果は、1月1日から1月31日までが「1」であるので合計で「31」となる。異常検知装置500は、発生日数が閾値以下のログメッセージとして、インデックスX2を検出し、インデックスX2を監視対象システム100の異常に関連するログメッセージとして検知する。一方、異常検知装置500は、インデックスX3を、異常に関連するログメッセージとしては検知しない。
【0044】
以上説明したように、第2実施形態の異常判定システム1Aによれば、監視対象システム100からログメッセージを収集する収集部(200)と、収集されたログメッセージの発生数を、ログメッセージの発生日数に変換する変換部510と、変換されたログメッセージの発生日数に基づいて、監視対象システム100の異常に関連するログメッセージを検知する異常判定部520と、を備える、異常検知装置300を実現することができる。これにより、異常判定部520は、発生日数が閾値以下のログメッセージを、監視対象システム100の異常に関連するログメッセージとして検知することできる。異常判定システム1Aによれば、ログメッセージの発生日数に基づいて監視対象システム100の異常に関連するログメッセージを検知することで、未知の異常を検知することができる。
【0045】
例えば、監視対象システム100の異常を検知するため、単に発生数が閾値以下のログメッセージを「マイナーメッセージ」として検知すると、誤検知の問題がある。例えば、監視対象システム100の異常発生時に、バースト的に同一メッセージが大量に発生することがあるが、発生回数が多いため、当該ログメッセージを異常であることが検知できない可能性がある。また、監視対象システム100の正常時でも、1日で1回しか発生しないログメッセージ(ログのローテーション通知など)を、発生回数が少ない、異常なログメッセージであると検知してしまう可能性がある。そこで、異常判定システム1Aは、時系列の集計の単位を、発生数から発生日数に変換し、変換後の集計結果に基づいてマイナーメッセージの検知を行うことで、誤検知の問題を抑制することができる。
【0046】
異常判定システム1Aによれば、収集されたログメッセージのうち所定のパラメータを削除することでインデックスを加工して登録し、インデックスの発生数を、インデックスの発生日数に変換する。これにより、異常判定システム1Aは、例えば、数値等のログメッセージの種別に関連が少ない情報を削除することができ、集計処理等の処理量を抑制することができる。
【0047】
[その他の実施形態]
上述した実施形態は、メジャーメッセージに基づいて監視対象システム100の異常を検知する異常判定システム1や、マイナーメッセージを検知したことにより監視対象システム100の異常を検知する異常判定システム1Aを説明したが、異常判定システムは、双方の異常検知の機能を持ってもよい。これにより、異常判定システムは、サイレントでない故障(異常)が発生した場合、メジャーメッセージに基づいて監視対象システム100の異常を検知すると共にマイナーメッセージを検知したことにより監視対象システム100の異常を検知することができ、異常と判定する確度をより高くすることができる。具体的に、監視対象システム100が今までに出力したことがないログメッセージを出力して動作を停止した場合、当該ログメッセージをマイナーメッセージとして異常判定システム1Aにより故障検知をすることができ、且つ、メジャーメッセージの発生停止により異常判定システム1により故障検知をすることができる。さらに、異常判定システム1によりメジャーメッセージで異常が検知されずに異常判定システム1Aによりマイナーメッセージを検知した場合、当該マイナーメッセージを、異常時もしくは異常発生前の予兆として発生する可能性があるログメッセージとして検出することができる。これに対し、異常判定システム(1,1A)は、異常時もしくは異常発生前の予兆として発生する可能性があるログメッセージを登録し、監視対象に設定することができる。
【0048】
なお、異常判定システムは、メジャーメッセージに基づいて監視対象システム100の異常を検知する機能と、マイナーメッセージを検知したことにより監視対象システム100の異常を検知する機能との双方を持ち、例えば、監視対象システム100の性質や利用者の要望に応じて、双方の機能を有効(アクティブ)にするよう切り換えたり、何れか一方の機能を有効(アクティブ)にするように切り換える機能を備えてもよい。
【0049】
なお、各実施形態および変形例について説明したが、一例であってこれらに限られず、例えば、各実施形態や各変形例のうちのいずれかや、各実施形態の一部や各変形例の一部を、他の1または複数の実施形態や他の1または複数の変形例と組み合わせて本発明の一態様を実現させてもよい。
【0050】
なお、本実施形態におけるデータ処理装置200や異常検知装置300の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムを、コンピュータシステムに読み込ませ、実行することにより、ユーザ端末装置100やデータ処理装置200に係る上述した種々の処理を行ってもよい。
【0051】
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリなどの書き込み可能な不揮発性メモリ、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【0052】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic
Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置などに格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。
【0053】
ここで、プログラムを伝送する「伝送媒体」は、インターネットなどのネットワーク(通信網)や電話回線などの通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0054】
1、1A 異常判定システム
100 監視対象システム
200 データ処理装置
202 フォーマット変換部
204 データ処理部
206 ログデータ蓄積部
208 検知結果蓄積部
210 可視化部
300 異常検知装置
310 スコア計算部
320 異常判定部
400 ユーザ端末装置