JP6666489B1 - 障害予兆検知システム - Google Patents

障害予兆検知システム Download PDF

Info

Publication number
JP6666489B1
JP6666489B1 JP2019031822A JP2019031822A JP6666489B1 JP 6666489 B1 JP6666489 B1 JP 6666489B1 JP 2019031822 A JP2019031822 A JP 2019031822A JP 2019031822 A JP2019031822 A JP 2019031822A JP 6666489 B1 JP6666489 B1 JP 6666489B1
Authority
JP
Japan
Prior art keywords
trace information
failure
event
failure sign
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019031822A
Other languages
English (en)
Other versions
JP2020135739A (ja
Inventor
康雄 柳瀬
康雄 柳瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2019031822A priority Critical patent/JP6666489B1/ja
Application granted granted Critical
Publication of JP6666489B1 publication Critical patent/JP6666489B1/ja
Publication of JP2020135739A publication Critical patent/JP2020135739A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】センサ等のハードウェア機構を必要とせずに、トレース情報から障害の予兆を検知することを可能とする障害予兆検知システムを提供する。【解決手段】実施形態によれば、障害予兆検知システムは、第1装置と、第1装置の障害予兆を検知する第2装置とを具備する。第1装置は、第1装置内のハードウェア制御を実行するプログラムに関する関数の呼び出し回数を含むトレース情報を記録するトレース情報記録部を具備する。第2装置は、学習モデル生成部と、予測部とを具備する。学習モデル生成部は、トレース情報と、トレース情報に対して関連づけられた第1装置の事象とに基づき、1関数以上の関数の呼び出し回数から第1装置の事象を予測するための決定木の学習モデルを生成する。予測部は、第1装置から新たに収集されたトレース情報と学習モデルとを用いて、第1装置の事象を予測する。【選択図】図3

Description

本発明の実施形態は、障害予兆検知システムに関する。
近年、様々な業種で業務の電子化が図られており、たとえばオフィスなどでは数多くの電子装置が使用されている。LAN(Local Area Network)などと称される社内ネットワークが敷設されるオフィスなどで使用される電子装置は、その社内ネットワークに接続可能に設置される。
このような環境下で稼働する電子装置の障害発生時の対処法として、たとえば、障害を発生させた電子装置自身またはその電子装置に接続された電子計算機などが障害の検知と保守部門への通知とを行い、この通知を受けた保守部門が復旧作業を実施する、といったことが行われている。
また、電子装置内に組み込まれたセンサや負荷情報を用いることにより、部品故障の予兆を検知するといったことも行われている。たとえば、センサ情報とアプリケーションプログラムの稼働状態とを回帰分析することにより、障害の予兆が生じた部位を検知する方法などが提案されている。
特許第4572251号公報
しかしながら、障害の通知を受けた保守部門が復旧作業を実施する場合、障害発生後から障害復旧までの間、障害を発生させた電子装置を適用するシステムが停止したり、システムの冗長性を失ったりする等の問題があった。
また、従来の障害予兆を検知するシステムにおいては、センサで検出できない部位または種類の障害予兆を検知できない等の問題があった。さらには、センサ等のハードウェア部品の実装が必要であるため、コストが高くなってしまうという問題があった。
本発明が解決しようとする課題は、センサ等のハードウェア機構を必要とせずに、トレース情報から障害の予兆を検知することを可能とする障害予兆検知システムを提供することである。
実施形態によれば、障害予兆検知システムは、第1装置と、第2装置とを具備する。前記第2装置は、1以上の前記第1装置の障害予兆を検知する。前記第1装置は、トレース情報記録部を具備する。前記トレース情報記録部は、前記第1装置内のハードウェア制御を実行するプログラムに関する関数の呼び出し回数と、呼び出し回数の計数対象とする関数の一部または全部を変更するための前記プログラムの更新が行われるごとに値が増加する前記プログラムの改定番号とを含むトレース情報を記録する。前記第2装置は、学習モデル生成部と、予測部とを具備する。前記学習モデル生成部は、前記改定番号ごとに前記トレース情報を分類し、分類した前記トレース情報と、前記トレース情報に対して関連づけられた前記第1装置の事象とに基づき、1関数以上の前記関数の呼び出し回数から前記第1装置の事象を予測するための決定木の学習モデルを生成する。前記予測部は、前記第1装置から新たに収集された前記トレース情報と前記学習モデルとを用いて、前記第1装置の事象を予測する。
第1実施形態の障害予兆検知システムの一構成例を示す図。 第1実施形態の障害予兆検知システムにおけるターゲット機器の部分ブロック図。 第1実施形態の障害予兆検知システムにおける障害予兆検知装置の部分ブロック図。 第1実施形態の障害予兆検知システムにおける保守部の部分ブロック図。 第1実施形態の障害予兆検知システムにおいて用いられるトレース情報の一例を示す図。 第1実施形態の障害予兆検知システムにおいて用いられる組み込みソフトウェアを構成するプログラムと、そのプログラムに設置されたトレースポイントとの一例を示す図。 第1実施形態の障害予兆検知システムにおいて用いられるトレース情報テーブルの一例を示す図。 第1実施形態の障害予兆検知システムにおける学習モデル生成処理のフローチャート。 第1実施形態の障害予兆検知システムにおいて用いられる決定木学習アルゴリズムの訓練データを2つの関数の呼び出し回数を軸とする2次元空間にプロットした例を示す図。 第1実施形態の障害予兆検知システムにおいて用いられる決定木学習アルゴリズムの決定木の一構造例を示す図。 第1実施形態の障害予兆検知システムにおける分類処理のフローチャート。 第1実施形態の障害予兆検知システムにおいてランダムフォレストによってターゲット機器のトレース情報から障害予兆を分類する様子を示す図。 第1実施形態の障害予兆検知システムにおいて用いられる保守情報テーブルの一例を示す図。 第2実施形態の障害予兆検知システムの一構成例を示す図。 第2実施形態の障害予兆検知システムにおける開発部の部分ブロック図。 第2実施形態の障害予兆検知システムにおいて用いられる寄与度テーブルの一例を示す図。 第3実施形態の障害予兆検知システムの一構成例を示す図。
以下、実施形態について図面を参照して説明する。
(第1実施形態)
まず、第1実施形態を説明する。
図1は、本実施形態の障害予兆検知システム1の一構成例を示す図である。
図1に示すように、障害予兆検知システム1は、障害予兆検出の対象となる単体または複数の同一機種であるターゲット機器10−1〜10−nと、ターゲット機器10−1〜10−nの障害予兆を検知する障害予兆検知装置20と、障害予兆検知装置20が検知した障害予兆を分析し、予防保全等の保守作業を実施する保守部30とで構成される。ターゲット機器10−1〜10−nと障害予兆検知装置20と、障害予兆検知装置20と保守部30とは、ネットワークによって接続される。以下、ターゲット機器10−1〜10−nを、ターゲット機器10と総称することがある。
図2は、ターゲット機器10−1〜10−nの部分ブロック図である。
図2に示すように、ターゲット機器10−1〜10−nは、組み込みソフトウェア100と、記憶部110と、トレース情報送信部120とを備える。
組み込みソフトウェア100は、ターゲット機器10−1〜10−n内のハードウェア制御を行うプログラムである。つまり、ターゲット機器10−1〜10−nは、組み込みソフトウェア100を実行するプロセッサを備えている。組み込みソフトウェア100には、関数の呼び出し回数(トレース情報111)をカウントするトレースポイントが設置されている。組み込みソフトウェア100は、カウントしたトレース情報111を記憶部110に保存する。トレース情報111については後述する(図5参照)。つまり、組み込みソフトウェア100は、トレース情報記録部としても機能する。
記憶部110は、組み込みソフトウェア100によってカウントされたトレース情報111を保持する。トレース情報送信部120は、記憶部110に保持されるトレース情報111を障害予兆検知装置20に送信する。
図3は、障害予兆検知装置20の部分ブロック図である。
図3に示すように、障害予兆検知装置20は、トレース情報受信部200と、学習モデル生成部220と、予測部230と、障害予兆通知部240と、トレース情報テーブル操作部250とを備える。
トレース情報受信部200は、ターゲット機器10−1〜10−nのトレース情報送信部120から送信されたトレース情報111を受信する。記憶部210は、トレース情報受信部200によって受信されたトレース情報111が反映される、後述するトレース情報テーブル211(図7参照)を保持する。
学習モデル生成部220は、記憶部210に保持されるトレース情報テーブル211から訓練データを抽出し、抽出した訓練データから学習モデルを生成する。学習モデル生成部220は、生成した学習モデルを記憶部210に保存する。
予測部230は、記憶部210から読み込んだ未知トレース情報と学習モデルとを用いて、ターゲット機器10−1〜10−nに障害の予兆があるかどうかを予測し、障害が発生する確率を算出する。未知トレース情報は、後述する未知トレース情報テーブルから取り出されたトレース情報である。
障害予兆通知部240は、予測部230が障害予兆を検知した場合に、保守部30に障害予兆の情報を送信する。トレース情報テーブル操作部250は、トレース情報テーブル211を操作するインタフェースである。
学習モデル生成部220および予測部230は、メモリに格納されてプロセッサによって実行されるソフトウェアとして実現されてもよいし、電気回路などのハードウェアとして実現されてもよい。ここでは、学習モデル生成部220および予測部230は、ソフトウェアとして実現されていることを想定する。つまり、障害予兆検知装置20は、このソフトウェアを実行するプロセッサを備えている。
図4は、保守部30の部分ブロック図である。
図4に示すように、保守部30は、障害予兆受信部300と、障害分析部門310と、保守実行部門330と、障害登録部門340と、トレース情報管理部350とを備える。
障害予兆受信部300は、障害予兆検知装置20の障害予兆通知部240から通知された障害予兆情報を受信する。障害分析部門310は、障害予兆受信部300によって受信された障害予兆情報から実際に障害の可能性があるかどうかを判断する。障害の可能性があると判断した場合、障害分析部門310は、保守実行部門330に保守作業の指示を出し、また、障害登録部門340に障害登録の指示を出す。
保守データベース320は、過去の障害情報を保持する。保守実行部門330は、障害分析部門310から指示された手順にしたがってターゲット機器10−1〜10−nの保守作業を実行する。障害登録部門340は、新たな障害情報を保守データベース320に登録し、また、障害分析部門310によって障害予兆が障害と判定された場合に、トレース情報管理部350を用いて、障害予兆検知装置20の記憶部210に保持されるトレース情報テーブル211を更新する。トレース情報管理部350は、障害予兆検知装置20のトレース情報テーブル操作部250を介してトレース情報を管理する。なお、障害分析部門310、保守実行部門330および障害登録部門340は、障害分析、保守実行、障害登録に携わる人員を含む各種リソースの総称である。
図5は、ターゲット機器10−1〜10−nの記憶部110に保持されるトレース情報111の一例を示す図である。
図5に示すように、トレース情報111は、機器ID、開始日、終了日、トレースポイントが設置された関数名、その関数がコールされた回数を保持している。
機器IDは、ターゲット機器10−1〜10−nを一意に識別できる、たとえばシリアルIDのような固有の識別子である。レビジョンは、組み込みソフトウェア100のレビジョン番号である。開始日は、トレース情報111の収集を開始した日付である。終了日は、トレース情報111の収集を終了した日付である。
図5に示すトレース情報111は、機器IDが1000番のターゲット機器10について当該ターゲット機器10上で動作するレビジョン番号1.0の組み込みソフトウェア100によって2018年9月1日から2018年9月7日までに関数A1、関数B1、関数C1、関数A2の読み出し回数がカウントされたものであって、その回数が、108431回、7回、3216回、1246回であったことを示している。つまり、レビジョン番号1.0の組み込みソフトウェア100には、関数A1、関数B1、関数C1、関数A2の読み出し回数がカウントされるようにトレースポイントが設置されている。
図6は、組み込みソフトウェア100を構成するプログラムと、そのプログラムに設置されたトレースポイントとの一例を示す図である。
トレースポイントは、プログラムの関数内の先頭に設置される命令であり、この命令が実行されると、その命令に関連付けられたカウンタに1を加算することで関数の呼び出し回数を数えるものとする。カウンタは、記憶部110のトレース情報111に保持されており、トレースポイントが設置された関数名で検索することができる。関数名で検索して見つかれば、その関数名のカウンタに1を加算する。トレース情報111に関数名が見つからなければ、新たに当該関数名の列を追加しカウンタに1を設定する。
図6によると、プログラムAは、関数A1から関数A2と関数A3とを呼び出す構造であり、トレースポイントは、関数A1と関数A2とには設置され、関数A3には設置されていない。したがって、関数A1と関数A2の呼び出しはカウントされるが、関数A3の呼び出しはカウントされない。
同様に、プログラムBは関数B1、プログラムCは関数C1にトレースポイントが設置され、それぞれの関数の呼び出し回数がカウントされる。トレースポイントを設置する位置は任意であるが、障害予兆の検出に寄与する箇所に多く設置することが望ましい。トレースポイント設置個所の調整については、後述の第2実施形態において説明する。
トレース情報送信部120は、ターゲット機器10の起動時に、トレース情報111をリセットする。リセットとは、開始日に現在日付を、終了日には空を設定し、関数名の列をすべて削除することを意味する。一方、組み込みソフトウェア100は、常にトレース情報を更新するため、トレース情報111がトレース情報送信部120によってリセットされると、トレース情報111には、リセットした時点以降の関数名と関数呼び出し回数とが記録される。
トレース情報送信部120には、タイマが設定されており、予め設定された日時になると、記憶部110からトレース情報111の終了日に現在の日付を設定し、トレース情報111を障害予兆検知装置20のトレース情報受信部200に送信する。送信する手段には、例えば電子メールなどがある。また、送信と同時に、トレース情報送信部120は、トレース情報111をリセットする。なお、トレース情報送信部120に設定するタイマの日時は、ターゲット機器10−1〜10−nの間で同じ日時にすることが望ましい。これにより、後述する訓練用のトレース情報と予測用のトレース情報との分割が、日付を使って行えるために容易となる。また、タイマの周期は1週間などにするのが望ましい。これは、機器に対する負荷には一般に時間帯や曜日によって変動する季節変動があり、その季節変動を平準化するためである。
図7に、障害予兆検知装置20の記憶部210が保持するトレース情報テーブル211の一例を示す。
障害予兆検知装置20のトレース情報受信部200は、ターゲット機器10−1〜10−nよりトレース情報111を受信すると、記憶部210に保存されたトレース情報テーブル211に行を追加し、受信したトレース情報111の内容を記録する。なお、事象列には「正常」を記録し、関数名の列には関数名で検索して一致する列に関数の呼び出し回数を記録する。関数名が存在しない場合は、新たに関数名の列を追加し回数を記録するとともに、他の行には0を記録する。最後に、追加した行で関数呼び出し回数が空となっている箇所には0を記録する。また、詳細は後述するが、ターゲット機器10に障害が発生すると、トレース情報テーブル操作部250によって当該ターゲット機器10の機器IDの不調期間の行について、事象列が「正常」から「障害A」等の障害を表す事象に書き換えられる。
次に、学習モデル生成部220の処理について説明する。
本実施形態においては、学習モデルとして機械学習の手法の一つであるランダムフォレストを用いる。ランダムフォレストとは、訓練データから多数の決定木を生成し、それぞれの決定木で予測し、それらの結果を多数決することによって予測精度を高めるアンサンブル学習と呼ばれる手法である。ランダムフォレストの特徴として、比較的精度が高く、学習および分類が高速であることに加え、訓練データの正規化といった前処理が不要であること、特徴量の寄与度を算出可能であること、分類結果の根拠を人間が解析しやすいことなどが挙げられ、本実施形態の学習モデルに適している。なお、サポートベクターマシンやニューラルネットワークといった他の機械学習手法を用いても、トレースポイントを用いた障害予兆の学習モデルを作成することは可能であるが、処理が重いため大規模データに向かない、訓練データの正規化といった前処理が必要になる、後述の第2実施形態において説明する特徴量の寄与度の算出が難しいといった欠点がある。
学習モデル生成部220には、タイマが設定されており、設定された日時になると学習モデルの生成処理を開始する。
図8に示す学習モデル生成処理のフローチャートに従って、学習モデルの生成処理について説明する。
まず、学習モデル生成部220は、記憶部210に保持されるトレース情報テーブル211を参照し、最新日付より1周期前の日付について、レビジョン列に記録されたレビジョン毎に分類し、これをサンプルデータとする(ステップA1)。
学習モデル生成部220は、レビジョン毎に分類されたサンプルデータごとにステップA2〜ステップA8(ループA)を繰り返す。また、学習モデル生成部220は、決定木の本数を表すMを100に初期化し、後述する精度が向上しなくなるまで、MにMの10%を加算しながらステップA3〜ステップA7(ループB)を繰り返す。
学習モデル生成部220は、サンプルデータに対してブートストラップサンプリングをM回繰り返し、M組の訓練データとテストデータの対を作成する(ステップA4)。ブートストラップサンプリングとは、n個からなるデータを重複を許してランダムにn回復元抽出することでm個のサンプルを抽出し、これをM回繰り返すことで、1個のサンプルからm個の訓練データとn−m個のテストデータの対をM個生成するリサンプリング手法である。また、訓練データの特徴量(本実施形態における関数名)がK個である場合に、Kの平方根の個数の特徴量がランダムに選択される。
次に、学習モデル生成部220は、M組の訓練データからM本の決定木を生成する(ステップA5)。決定木の生成手順については後述する。学習モデル生成部220は、M本の決定木それぞれを、対となるM組のテストデータで評価して精度の平均を計算する(ステップA6)。精度とは、テストデータを評価した分類結果と、テストデータに含まれる実際の結果とを比較し、正しく識別した比率である。学習モデル生成部220は、最後に生成した決定木をレビジョンとともに記憶部210に保存し、レビジョンから決定木を取り出せるようにしておく(ステップA7)。
ここで、決定木と、決定木を生成する決定木学習アルゴリズムとについて説明する。
決定木は、図10に示すような木構造であり、決定木学習アルゴリズムは、親集合を各ノードの分割条件によって子集合に分割していくことで分類する学習モデルである。決定木は訓練データを元に決定木学習アルゴリズムによって生成する。決定木学習アルゴリズムは一般に知られた手法である。図9と図10の例を用いて、決定木学習アルゴリズムを本実施形態におけるトレース情報111に適用する方法を説明する。
図9は、訓練データを2つの関数の呼び出し回数を軸とする2次元空間にプロットしたものである。なお、実際の訓練データの特徴量がK個ある場合はK次元空間となるが、ここでは視覚的に分かり易くするために2次元空間を用いる。図9中、{黒丸}は「正常」、×は「障害A」、▲は「障害B」の事象に属しているデータであることを表している。
ここで、決定学習アルゴリズムで用いる不純度と情報利得について説明する。
不純度とは、一般にエントロピーやジニ係数で計算される値であり、ある集合においてある1つの種類が大多数を占めるほど不純度が低くなり、逆に、ある集合内に多数の種類が混在しているほど不純度が高くなる。情報利得とは分割の良さを表す値であり、ある集合を分割する前の集合を親集合、2つに分割した後の集合を子集合としたとき、親集合とすべての子集合の不純度をそれぞれ計算し、親集合の不純度からすべての子集合の不純度を引くことで計算する。情報利得が大きい程、親集合をより純度の高い2つの子集合に分割できたことを表す。
本実施形態にかかる決定木学習アルゴリズムでは、まず、訓練データ全体の集合を親集合とし、情報利得が最大になるように再帰的に子集合に分割していことにより、木構造を生成する。具体的には、訓練データのある一つの特徴量、すなわち関数名に注目し、その関数名に記録された関数の呼び出し回数の範囲をいくつか均等な境界に分ける(図9の点線部)。次に、すべての境界について情報利得を計算し、情報利得が最大となる境界を選択する。この要領で、全ての関数名について最大となる情報利得と境界を計算し、全関数の中で情報利得が最大となる関数名と境界を選択する(図9:θ1)。選択した関数名と境界から「関数Aの呼び出し回数<θ1」という分割条件のノードを作成する(図10:a1)。
次に、求めた分割条件で訓練データの全体集合を分割すると、図9における境界θ1で分割した2つの子集合となる。これらの子集合に対して分割を再帰的に繰り返し、それ以上分割できなくなる、つまり情報利得が0となると、そのノードに含まれる単一の事象を葉ノードとして登録する(図10:a11〜a14)。
また、過学習を防ぐために、予め設定した分割回数(ノードの深さ)に達すると分割を停止し、そのノードに多く含まれる事象を葉ノードとすることがある(剪定と呼ぶ)。剪定には様々な手法が知られているが、一つの手法としてはクロスバリデーション(交差検定)がある。クロスバリデーションとは、学習モデル生成において訓練とテストを繰り返して分類精度が高くなるようにパラメーターを決定する手法であり、図8のフローチャートに示すように、決定木の本数Mを決定する際に使用している。ノードの深さについても同様に、クロスバリデーションの手法で決定することができる。なお、図10に示す決定木は、図9の訓練データからノードの深さを4に設定して作成した決定木である。
次に、予測部230の処理を説明する。
図11は、分類処理のフローチャートを示し、図12は、ランダムフォレストによってターゲット機器10のトレース情報111から障害予兆を分類する様子を示す。
予測部230は、記憶部210が保持するトレース情報テーブル211から現在日時に最も近い開始日のトレース情報テーブルを抽出する。このトレース情報テーブルは学習モデルの生成には用いられていないため、ここでは未知トレース情報テーブルと呼ぶ。未知トレース情報テーブルから1行ずつターゲット機器のトレース情報(図12:未知トレース情報b1)を取り出す(図11:ステップB1)。
次に、予測部230は、取り出したターゲット機器10−1〜10−nのそれぞれの未知トレース情報b1について、記録されているレビジョンをキーとして、記憶部210に保存されたM本の決定木b2−1〜b2−Mを取り出し、未知トレース情報b1を決定木b2−1〜b2−Mを用いて分類する。なお、決定木による分類方法は、未知トレース情報b1に記録された関数名と関数呼び出し回数を決定木の親ノードに記述された分割条件で判定し、左右どちらかの子ノードを辿る。これをルートノードから繰り返し、最終的に辿りついた葉ノードが分類結果b3−1〜b3−Mである(図11:ステップB2)。
未知トレース情報b1をM本の決定木で分類することで、M個の分類結果b3−1〜b3−Mを得ることができる。予測部230は、この分類結果を事象ごとにグループに分けて、グループ内に存在する決定木の数をそれぞれMで割ることによって(図12:b4)、各事象の発生確率b5を求める。また、正常の確率が50%未満の場合は、多数決により障害発生の予兆ありと判定する。例えば、100本の決定木があり、「正常」に分類された決定木が13本、「障害A」が7本、「障害B」が80本だった場合、正常である確率は13%、障害Aが発生する確率は7%、障害Bが発生する確率は80%である。また、正常の確率が50%未満であることから、多数決により障害発生の予兆ありと判定する(図11:ステップB3)。予測部230は、障害発生の予兆ありと判定した場合は、そのターゲット機器10の未知トレースと、分類結果(各事象の発生確率)を障害予兆通知部240に渡す(図11:ステップB4)。
障害予兆通知部240は、障害予兆ありと判定されたターゲット機器10の未知トレースと事象発生確率を受けると、これらを保守部30の障害予兆受信部300に通知する。通知する手段は例えば電子メールなどがある。
次に、保守部30について説明する。
障害予兆受信部300は、障害予兆検知装置20より、障害予兆ありと判定されたターゲット機器10の未知トレースと事象発生確率情報を受信すると、障害分析部門310に情報を送信し、障害予兆を検知したことを通知する。障害分析部門310は、受信した未知トレース情報内の機器IDからターゲット機器10を特定し、ターゲット機器のログなどの機器情報から、障害予兆検知装置20が予測した事象が発生する可能性があるかどうかを総合的に判断する。障害の可能性があると判断した場合は、保守データベース320のたとえば図13に示すような保守情報テーブル321から事象に対応する対処方法を検索して対処方法を調べ、保守実行部門330に機器IDと対処方法に記載の保守作業を指示する。さらに、障害予兆検知装置20が保持する当該未知トレースの事象を「正常」から当該事象に更新するよう障害登録部門340に依頼する。
障害登録部門340は、障害分析部門310から未知トレースの事象を「正常」から当該障害に更新するよう依頼があると、障害予兆検知装置20のトレース情報テーブル操作部250を介して、当該未知トレースと同一の行をトレース情報テーブル211から検索して、その行の事象を当該障害に書き換える。他に、障害登録部門340は、ターゲット機器10−1〜10−nにおいて障害が発生した場合も、そのターゲット機器の機器IDと障害が発生した直近の1週間のトレースをトレース情報テーブル211から検索して事象を障害に書き換える。また、この障害が保守データベース320に存在しない障害である場合、障害登録部門340は、保守データベース320の保守情報テーブル321に事象、原因、対処方法を追加する。
以上のように、本実施形態の障害予兆検知システム1によれば、ターゲット機器10の状態を関数の呼び出し回数で数値化して障害の予兆を検知し、その障害の事象と発生確率を保守部門に通知するため、障害が発生する前に予防保全することができ、システム停止あるいは冗長性の喪失を防ぐことができる。また、センサ等のハードウェア機構をターゲット機器に組み込む必要がないため低コストで実現できる。
つまり、本実施形態の障害予兆検知システム1は、センサ等のハードウェア機構を必要とせずに、トレース情報から障害の予兆を検知することを可能とする。
(第2実施形態)
次に、第2実施形態を説明する。なお、第1実施形態と同一の構成要件については同一の符号を使用し、重複した説明を省略する。
本実施形態の障害予兆検知システム1においては、さらに、組み込みソフトウェア100に設置されるトレースポイントが障害予兆検知にどれだけ寄与したかを示す寄与度を算出し、寄与度が低いトレースポイントを学習モデル生成における特徴量から除外することで、障害予兆検知の精度を高める。また、組み込みソフトウェア100の開発部門にトレースポイントの寄与度を伝える仕組みを追加することで、開発部門は次のレビジョンの組み込みソフトウェア100のより効果の高い箇所にトレースポイントを設置することができ、障害予兆検知の精度を向上させることが可能となる。
図14は、本実施形態の障害予兆検知システム1の一構成例を示す図である。
図14に示すように、本実施形態の障害予兆検知システム1においては、第1実施形態の障害予兆検知システム1と比較して、さらに、保守部30と接続された開発部40を備える。
図15は、開発部40の部分ブロック図である。
図15に示すように、開発部40は、保守部30の保守データベース320を参照するための保守データベース端末部400と、組み込みソフトウェア100の開発を実施する組み込みソフトウェア開発部門410とを備える。なお、組み込みソフトウェア開発部門410は、組み込みソフトウェア100の開発に携わる人員を含む各種リソースの総称である。
図16は、本実施形態における学習モデル生成部220が作成するトレースポイントの寄与度テーブル212である。
寄与度テーブル212は、組み込みソフトウェア100のレビジョンと、各レビジョンに設定されたトレースポイントと、そのトレースポイントが障害予兆検知にどれだけ寄与したかを示す寄与度とから構成されるテーブルである。
決定木による特徴量の寄与度(重要度とも呼ぶ)の算出方法は一般的に知られており、決定木の各ノードの情報利得と、子ノードに分割する前の集合に存在するサンプル数を掛け合わせた値を特徴量毎に合計し、正規化することで算出する。
第1実施形態で用いた図9と図10を援用して寄与度の計算を具体的に説明する。
図9によると、全サンプル数({黒丸}と×と▲の総数)は36個あり、そのうち正常なサンプル数は25個、障害Aのサンプル数は7個、障害Bのサンプル数は4個である。全体集合の不純度をジニ係数を使って計算すると0.468である。次に、図10の決定木のノードa1は、関数Aの呼び出し回数でノードa11とノードa2の集合に分割される。ノードa11の子集合のサンプル数は13個であり、すべて正常であるため、不純度を計算すると0となる。一方、ノードa2の子集合のサンプル数は23個であり、正常が12個、障害Aが7個、障害Bが4個であり、不純度を計算すると0.605となる。ノードa1の情報利得はノードa1からノードa11とノードa2の不純度の差分を計算したものであり、0.468−0×13/36−0.605×23/36=0.081と計算される。情報利得にサンプル数を掛けると、そのノードの能力が計算される。ノードa1の関数Aは0.081×36=2.92、ノードa2の関数Bは6.38、ノードa3の関数Aは2.50の能力があることが計算される。最後に関数毎に能力を足して、全体の能力で割ることで寄与度が求める。以上により、トレースポイントの寄与度を計算すると、関数Aが45.9%、関数Bが54.1%となる。つまり、関数Aと関数Bの寄与率はほぼ同等であり、どちらも障害予兆の分類に寄与していることが分かる。
学習モデル生成部220は、M本の決定木それぞれでトレースポイントの寄与度を求めて、M本の決定木からトレースポイントの平均を求め、トレースポイントの寄与度テーブル212を生成し、記憶部210に保存する。次に、学習モデル生成部220は寄与度テーブル212を参照し、たとえば1%未満などの寄与率が低いトレースポイントを除外して、再度ランダムフォレストを生成することで学習モデルの精度を高めることができる。
また、トレース情報管理部350は、トレース情報テーブル操作部250を介して寄与度テーブル212を取得し、保守データベース320に保存する。
開発部40の組み込みソフトウェア開発部門410は、保守データベース端末部400を介して、保守部30の保守データベース320に保存されている寄与度テーブル212を参照することで、どのトレースポイントが障害予兆に寄与しているかを見ることができる。組み込みソフトウェア開発部門410は、次のレビジョンの組み込みソフトウェア100を作成する場合に、寄与度の低いトレースポイントを削除したり、寄与度が高いトレースポイントを含む関数と類似した関数にトレースポイントを追加したりする。
以上のように、本実施形態の障害予兆検知システム1によれば、組み込みソフトウェア100におけるトレースポイントの寄与度を算出し、寄与度の低いトレースポイントを除外して再学習させることで障害予兆検知の精度を高めることができる。また、開発部40が寄与度テーブル212を参考にすることでトレースポイントをより寄与する箇所に設置することができ、次のレビジョンの組み込みソフトウェア100の障害予兆検知の精度を高めることができる。
(第3実施形態)
次に、第3実施形態を説明する。なお、第1実施形態と同一の構成要件については同一の符号を使用し、重複した説明を省略する。
障害予兆検知システム1では、正常データのサンプル数が多く、障害データのサンプル数が少ないというデータの不均衡が発生することが考えられる。データの不均衡がある場合、ランダムフォレストではラベル(本発明における事象)に重みを付けたり、サンプリングする正常データを減らすことでバランスを取る手法が知られている。しかし、組み込みソフトウェア100のレビジョンアップ直後などは、障害データが存在しないか少なすぎるため障害予兆検知の精度が低下することが考えられる。そこで、本実施形態では、不調な部品を実装した不調ターゲット機器を接続し、疑似ターゲット機器に対して様々なパターンの入力を行うことで、障害事象の訓練データを増やす。
図17は、本実施形態の障害予兆検知システムの一構成例を示す図である。
図17に示すように、本実施形態の障害予兆検知システム1においては、第1実施形態の障害予兆検知システム1と比較して、さらに、障害予兆検知装置20に接続されたターゲット機器10−1〜10−nと同じ構成のターゲット機器10に不調な部品を故意に実装した不調ターゲット機器11と、不調ターゲット機器11と接続され種々のI/Oを発生可能なI/O発生装置50とを備える。
ターゲット機器10−1〜10−nが、例えばストレージ装置である場合、ターゲット機器10−1〜10−nと同じ機種のストレージ装置に不調なHDD(Hard Disk Drive)やHBA(Host Bus Adaptor)等の部品を実装し、ターゲット機器10−1〜10−nと同じレビジョンの組み込みソフトウェア100を組み込むことで不調ターゲット機器11を作成することができる。
また、不調ターゲット機器11と接続されたI/O発生装置50は、例えばホスト計算機に様々なブロックサイズや種別や頻度のI/Oを発行するソフトウェアや、例えば、レプリケーションやスナップショットなどターゲット機器10の様々な機能を繰り替えし実行するソフトウェアを動作させることで作成することができる。
不調ターゲット機器11を接続すると、保守部30の障害登録部門340は、保守データベース320に保存されている保守情報テーブル321に、不調ターゲット機器11に実装した不調部品に関する事象と原因と対処方法とを追記する。障害予兆検知装置20のトレース情報テーブルに不調ターゲット機器11のトレース情報が追加されると、障害登録部門340は、トレース情報管理部350を介して、当該機器IDとレビジョンの事象列を不調部位品に関する事象に書き換える。
以上のように、本実施形態の障害予兆検知システム1によれば、不調な部品を実装した不調ターゲット機器11に対して、I/O発生装置50から様々なI/Oを発行し続けることで、組み込みソフトウェア100をレビジョンアップした直後など障害データが存在しない場合や、障害データのサンプル数が少ない場合であっても、障害データを生成することができるため、障害予兆検知の精度を向上させることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…障害予兆検知システム、10…ターゲット機器、11…不調ターゲット機器、20…障害予兆検知装置、30…保守部、40…開発部、50…I/O発生装置、100…組み込みソフトウェア、110…記憶部、111…トレース情報、120…トレース情報送信部、200…トレース情報受信部、210…記憶部、211…トレース情報テーブル、212…寄与度テーブル、220…学習モデル生成部、230…予測部、240…障害予兆通知部、250…トレース情報テーブル操作部、300…障害予兆受信部、310…障害分析部門、320…保守データベース、321…保守情報テーブル、330…保守実行部門、340…障害登録部門、350…トレース情報管理部、400…保守データベース端末部、410…組み込みソフトウェア開発部門、420…込みソフトウェア開発部門。

Claims (5)

  1. 第1装置と、
    1以上の前記第1装置の障害予兆を検知する第2装置と、
    を具備し、
    前記第1装置は、
    前記第1装置内のハードウェア制御を実行するプログラムに関する関数の呼び出し回数と、呼び出し回数の計数対象とする関数の一部または全部を変更するための前記プログラムの更新が行われるごとに値が増加する前記プログラムの改定番号とを含むトレース情報を記録するトレース情報記録部
    を具備し、
    前記第2装置は、
    前記改定番号ごとに前記トレース情報を分類し、分類した前記トレース情報と、前記トレース情報に対して関連づけられた前記第1装置の事象とに基づき、1関数以上の前記関数の呼び出し回数から前記第1装置の事象を予測するための決定木の学習モデルを生成する学習モデル生成部と、
    前記第1装置から新たに収集された前記トレース情報と前記学習モデルとを用いて、前記第1装置の事象を予測する予測部と、
    を具備する障害予兆検知システム。
  2. 前記プログラムが更新された直後における前記学習モデル生成部による前記決定木の学習モデルの生成時、障害に相当する事象が予測されるべき前記トレース情報を収集するための不調の前記第1装置が増設される請求項1に記載の障害予兆検知システム。
  3. 第1装置と、
    1以上の前記第1装置の障害予兆を検知する第2装置と、
    障害に相当する前記第1装置の事象を予測した前記第2装置から前記第1装置の障害予兆が検知された旨を示す通知を受信する第3装置と、
    を具備し、
    前記第1装置は、
    前記第1装置内のハードウェア制御を実行するプログラムに関する関数の呼び出し回数を含むトレース情報を記録するトレース情報記録部
    を具備し、
    前記第2装置は、
    前記第1装置の事象の予測に対する1関数以上の前記関数の呼び出し回数の寄与度を算出し、前記トレース情報と、前記トレース情報に対して関連づけられた前記第1装置の事象とに基づき、1関数以上の前記関数の呼び出し回数から前記第1装置の事象を予測するための決定木の学習モデルを複数生成する学習モデル生成部と、
    前記第1装置から新たに収集された前記トレース情報と、複数の前記学習モデルとを用いて、複数の前記学習モデルごとに前記第1装置の事象を予測し、複数の前記学習モデルそれぞれによる前記第1装置の事象の複数の予測結果に基づき、予測した前記第1装置の事象の確率を算出する予測部と、
    を具備し、
    前記第3装置は、
    前記第1装置の事象とその復旧手順とを記憶する記憶部と、
    前記第2装置から通知された前記第1装置の事象に対応する復旧手順を前記記憶部から取得して提示する提示部と、
    を具備する障害予兆検知システム。
  4. 前記学習モデル生成部は、前記複数の決定木のそれぞれにおける1関数以上の前記関数の呼び出し回数の寄与度を算出し、かつ、前記複数の決定木の全体における1関数以上の前記関数の呼び出し回数の寄与度の平均値を算出することによって、前記第1装置の事象の予測に対する1関数以上の前記関数の呼び出し回数の寄与度を算出する請求項3に記載の障害予兆検知システム。
  5. 前記学習モデル生成部は、前記寄与度が閾値以下の関数の読み出し回数を除いて前記複数の決定木を再作成する請求項4に記載の障害予兆検知システム。
JP2019031822A 2019-02-25 2019-02-25 障害予兆検知システム Active JP6666489B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019031822A JP6666489B1 (ja) 2019-02-25 2019-02-25 障害予兆検知システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019031822A JP6666489B1 (ja) 2019-02-25 2019-02-25 障害予兆検知システム

Publications (2)

Publication Number Publication Date
JP6666489B1 true JP6666489B1 (ja) 2020-03-13
JP2020135739A JP2020135739A (ja) 2020-08-31

Family

ID=70000435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019031822A Active JP6666489B1 (ja) 2019-02-25 2019-02-25 障害予兆検知システム

Country Status (1)

Country Link
JP (1) JP6666489B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4148575A4 (en) * 2020-10-08 2023-11-29 Panasonic Intellectual Property Management Co., Ltd. METHOD AND SYSTEM FOR PROVIDING MAINTENANCE SERVICE FOR A RECORDING MEDIUM INCLUDED IN AN ELECTRONIC DEVICE

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5214656B2 (ja) * 2010-03-29 2013-06-19 株式会社東芝 評価装置および評価プログラム
JP2014115768A (ja) * 2012-12-07 2014-06-26 Toshiba Corp ログ判定システム、ログ判定基準構築装置及びログ判定方法
JP5948257B2 (ja) * 2013-01-11 2016-07-06 株式会社日立製作所 情報処理システム監視装置、監視方法、及び監視プログラム
JP6375200B2 (ja) * 2014-10-23 2018-08-15 株式会社日立製作所 計算機システムの異常予兆検出装置および方法
JP6655361B2 (ja) * 2015-11-11 2020-02-26 日立オートモティブシステムズ株式会社 車両制御装置
JP7054820B2 (ja) * 2017-07-04 2022-04-15 パナソニックIpマネジメント株式会社 眠気検知装置、眠気検知方法、及び、プログラム記録媒体

Also Published As

Publication number Publication date
JP2020135739A (ja) 2020-08-31

Similar Documents

Publication Publication Date Title
US9672085B2 (en) Adaptive fault diagnosis
JP7158586B2 (ja) ハードディスク故障発生時期の予測方法、装置及び記憶媒体
JP4318643B2 (ja) 運用管理方法、運用管理装置および運用管理プログラム
CN110413227B (zh) 一种硬盘设备的剩余使用寿命在线预测方法和系统
US20230385141A1 (en) Multi-factor cloud service storage device error prediction
JP6233411B2 (ja) 障害分析装置、障害分析方法、および、コンピュータ・プログラム
WO2014184934A1 (ja) 障害分析方法、障害分析システム及び記憶媒体
US20160378583A1 (en) Management computer and method for evaluating performance threshold value
CN102597966B (zh) 运行管理装置以及运行管理方法
KR101948634B1 (ko) 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법
CN112214369A (zh) 基于模型融合的硬盘故障预测模型建立方法及其应用
JP6988304B2 (ja) 運用管理システム、監視サーバ、方法およびプログラム
Han et al. Toward adaptive disk failure prediction via stream mining
Di et al. Exploring properties and correlations of fatal events in a large-scale hpc system
KR20210108874A (ko) 기계 학습을 사용하여 스토리지 장치 장애를 예측하는 시스템 및 장치
CN111061581B (zh) 一种故障检测方法、装置及设备
CN112988437B (zh) 一种故障预测方法、装置及电子设备和存储介质
US11334410B1 (en) Determining aberrant members of a homogenous cluster of systems using external monitors
JP6666489B1 (ja) 障害予兆検知システム
WO2024118188A1 (en) Computer application error root cause diagnostic tool
Nikiforov Clustering-based anomaly detection for microservices
Shilpika et al. Toward an in-depth analysis of multifidelity high performance computing systems
Soualhia et al. Automated traces-based anomaly detection and root cause analysis in cloud platforms
JP6405851B2 (ja) 予兆検知支援プログラム、方法、装置、及び予兆検知プログラム、
Wang et al. Identifying execution anomalies for data intensive workflows using lightweight ML techniques

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191227

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: 20200121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200220

R150 Certificate of patent or registration of utility model

Ref document number: 6666489

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150