図1は、保守対象システム200における障害によってメッセージが発生する様子を示す図である。
保守の対象となるシステムを、以下では「保守対象システム200」という。対象システムでは、複数のホストコンピュータ100が、LAN(Local Area Network)に接続している。この例では、ホストコンピュータ100a、ホストコンピュータ100b、ホストコンピュータ100c、ホストコンピュータ100d、ホストコンピュータ100e、ホストコンピュータ100f、ホストコンピュータ100g、ホストコンピュータ100hが、LANに接続している。ホストコンピュータ100a~100h等をまとめて言うときや特に区別しないときには「ホストコンピュータ100」と総称する。
ホストコンピュータ100は、他のホストコンピュータ100と連携して動作することがある。図1に示した連結線は、連携する関係を示している。この例で、ホストコンピュータ100aは、ホストコンピュータ100b、ホストコンピュータ100c、ホストコンピュータ100d、ホストコンピュータ100eと連携する。
ホストコンピュータ100aで障害が発生すると、ホストコンピュータ100aでメッセージa、メッセージbおよびメッセージc等が発生する。ホストコンピュータ100aと連携するホストコンピュータ100bでメッセージd、メッセージeおよびメッセージf等が発生する。同様に、ホストコンピュータ100cでメッセージg、メッセージhおよびメッセージi等が発生する。同様に、ホストコンピュータ100dでメッセージj、メッセージkおよびメッセージl等が発生する。同様に、ホストコンピュータ100eでメッセージm、メッセージnおよびメッセージo等が発生する。
但し、これらのメッセージは、障害を直接示す内容であるとは限らない。メッセージは、メッセージの発生源であるモジュールが検出した異常現象や警告に相当する事態に関する報告にすぎない。メッセージの発生源であるモジュールは、どのような障害が起きているかを関知してないこともある。したがって、保守員は、これらのメッセージから状況および障害を推測する必要がある。
図2は、診断ナレッジと対応ナレッジの概要を示す図である。
保守員が状況や障害を推測する場合、リモート操作によってホストコンピュータ100のOS(Operating System)に付属するツールやその他の計測ツールなどを使って、ツールの出力に基づく判断を行う。本実施形態では、保守員の作業を軽減化するための診断ナレッジを用いる。診断ナレッジには、リモート操作の内容と確認事項などを含む診断手順が定義されている。
また、障害を解消してシステムを修復するための手順を定めた修復ナレッジも用いる。修復の作業は、リモート操作だけで行える場合もあるし、リモート操作だけでは対応しきれないこともある。特にハードウェアの故障などの場合には、リモート操作では修復できない。装置や部品の交換などの物理的作業が必要になる。差異インストールやデータの復旧については、復旧ツールがあればリモート操作で対応することができる。
図示するように、障害Aを検出するための診断ナレッジAが用意されているものとする。障害Aに対する修復を行うための修復ナレッジAも用意されているものとする。したがって、診断ナレッジAに修復ナレッジAを対応付けることができる。そして、診断ナレッジAで障害Aを検出したときに、対応する修復ナレッジAで修復を図るという一連の流れで対処できる。障害Bについても同様に、障害Bを検出するための診断ナレッジBと障害Bに対する修復を行うための修復ナレッジBが用意されている。したがって、診断ナレッジBで障害Bを検出したときに、診断ナレッジBに対応する修復ナレッジBで修復を図ることができる。
しかし、障害Aが発生している場合に、診断ナレッジBでは検出できない。同様に、障害Bが発生している場合に、診断ナレッジAでは検出できない。つまり、発生している障害に応じた診断ナレッジを用いることが、システムを早く復旧させる上での鍵となる。
障害が発生した場合、現象的にはインシデントとして表れる。インシデントとは、システムの利用において、業務や機能の利用が正常に行えない事態を意味する。インシデントは、上述した障害を原因とする。インシデントが起きたときには、その原因となっている障害に対応する診断ナレッジを保守員が選択して検査する必要がある。診断ナレッジを選択する際のヒントとして、見本メッセージが用いられる。
図3は、見本メッセージの使い方を示す図である。
診断ナレッジには、見本メッセージが対応付けられている。見本メッセージは、診断ナレッジが対象とする障害に応じて発生する可能性が高いメッセージの例である。たとえば、診断ナレッジAには、診断ナレッジAが検出対象とする障害Aによって発生すると見込まれるメッセージの代表例として、見本メッセージAが対応付けられている。同様に、診断ナレッジBには見本メッセージBが対応付けられ、診断ナレッジCには見本メッセージCが対応付けられ、診断ナレッジDには見本メッセージDが対応付けられ、診断ナレッジEには見本メッセージEが対応付けられている。
保守員がインシデントの発生の知らせを受けた時点で、障害は特定されていない。そこで、いずれかの診断ナレッジを使って障害を特定しようとする場合、保守員はまず保守対象システム200で発生したメッセージ(以下、「発生メッセージ」という。)と、各見本メッセージを比較して、近似する見本メッセージを選別する。そして、選別した見本メッセージに対応する診断ナレッジを使って検査を行う。診断ナレッジが、発生している障害を検出対象とするものであれば、障害検出が成功する。しかし、診断ナレッジが、発生している障害を検出対象とするものでなければ、障害検出が失敗し、別の診断ナレッジを試し直すことになる。診断ナレッジの選別を効率よく行うために、本実施形態では、発生メッセージに応じて診断ナレッジをリコメンド(推奨)する。
発生メッセージを検索キーとして見本メッセージを検索する機能を用いれば、発生メッセージに近似する見本メッセージを自動的に選別することができる。メッセージの検索方式は、一般的な文検索の従来技術であっても構わない。比較する2つのメッセージの近似度を出力する全文検索方式を採用してもよい。そして、発生メッセージと近似度が高い見本メッセージに対応する診断ナレッジを優先的にリコメンドすることが考えられる。
しかし、メッセージの近似度がリコメンドの確信の程度を示すとは限らない。メッセージの近似度を基準としてリコメンドされる診断ナレッジによって、障害を検出できないケースも多い。以下、その理由について説明する。
ここでいう発生メッセージは、メッセージの発生元であるホストコンピュータ100における不都合を示す異常メッセージや警戒を示す警告メッセージである。たとえば、障害を起こした連携相手のホストコンピュータ100が正常に動作しない場合に発生するメッセージは、「レスポンス待ちのタイムアウトが発生しました。」などのように、メッセージの発生元における不都合を示す。このような異常メッセージでは、連携相手のホストコンピュータ100でどのような事態になっているかがわからず、相手側の障害内容を特定することはできない。レスポンスを返さない相手側で生じている障害は、複数考えられる。
つまり、連携相手のホストコンピュータ100が正常に動作しないためにメッセージを発生させる場合、その連携相手において想定される障害が1種類であるとは限らない。想定される複数種類の障害のうちのいずれかが生じているに過ぎない。メッセージの種類と障害の種類は、1対1の関係を前提としていない。よって、ある診断ナレッジの見本メッセージはその診断ナレッジが対象とする障害によらず、別の障害によって発生する可能性がある。
また、ホストコンピュータ100において障害が生じると、障害を起こしたホストコンピュータ100だけでなく、他のホストコンピュータ100においても2次的な不具合が起きることがある。そして、2次的な不具合を原因とするメッセージも発生する。もしも検索キーとして用いた発生メッセージが、2次的な不具合に起因するものであったとすれば、その発生メッセージに基づいてリコメンドされる診断ナレッジは、2次的な不具合を検出するが、根本的な障害を検出したことにはならない。したがって、その診断ナレッジに対応する修復ナレッジでは根本的な障害に対処できないので、インシデントを解消できない。
このように見本メッセージに頼ったリコメンドは、必ずしも精度が高くない。そこで、本実施形態では診断ナレッジの使用実績に基づく学習モデルを使って、より障害の検出確率が高まるように診断ナレッジをリコメンドする。そうすれば、保守員の経験に頼らずに、早期に障害を検出してインシデントが解消されると期待できる。
図4は、学習モデルによる診断ナレッジのリコメンドの概要を示す図である。
本実施形態では、学習モデルによる診断ナレッジのリコメンドを行う。学習モデルは、たとえばニューラルネットワークを用いる。学習処理における教師データとして、診断ナレッジを用いて診断を行ったときの実績データを用いる。実績データの収集段階で使用される診断ナレッジは、メッセージの検索によってリコメンドされたものであってもよいし、保守員が判断して選択したものであってもよい。
学習モデルにおける入力変数は、複数の発生メッセージから分類された一または複数のメッセージタイプと、障害検出のために使用した診断ナレッジの種類である。診断ナレッジの種類は、診断ナレッジIDで特定される。
メッセージタイプについて説明する。たとえば、障害を起こしたホストコンピュータ100aと連携するホストコンピュータ100bがホストコンピュータ100aに対するリクエストを送信し、そのリクエストが拒否された場合に、ホストコンピュータ100bはリクエストが拒否された旨の異常メッセージを発生させる。その後もホストコンピュータ100bがリトライを繰り返せば、同種のメッセージが発生することになる。また、他のホストコンピュータ100cが同様にホストコンピュータ100aを利用しようとすれば、同じくリクエストが拒否された旨の異常メッセージが発生する。このように、同種のメッセージが多数発生する。これらは、同じメッセージタイプとして分類することができる。したがって、インシデントに伴い発生した多数のメッセージをメッセージタイプに分類すれば、全体的なメッセージの発生状況を捉えやすくなる。
学習モデルにおける出力変数は、診断ナレッジを用いた検査における障害検出の成否である。図2に関連して説明したとおり、起きている障害に合った診断ナレッジを用いれば、障害検出が成功し、起きている障害に合っていない診断ナレッジを用いれば、障害検出が失敗する。
教師データにおけるサンプルは、一のインシデントに関して、複数のメッセージから分類された一または複数のメッセージタイプと、障害検出に用いられた診断ナレッジIDと、診断ナレッジによる障害検出の成否とを含む。第1段階では、実績を示す多数のサンプルを蓄積する。
第2段階では、教師データを用いた学習処理によって、学習モデルを生成する。具体的には、ニューラルネットワークにおける各ノード間の連結の強さを示す重みデータが生成される。学習処理の詳細については、後述する。
第3段階では、発生したインシデントに関して、複数のメッセージから分類された一または複数のメッセージタイプと、障害検出に用いる候補となる診断ナレッジの種類、つまり診断ナレッジIDとを入力変数として学習モデルに適用し、出力変数として候補の診断ナレッジにおいて障害検出を実施した場合の成否に関する予測値を得る。予測値が高ければ、その診断ナレッジを用いれば障害が検出される可能性が高いことを意味する。各診断ナレッジについて予測値を求め、予測値が高いものから優先的にリコメンドする。
端的に言うと、インシデントが発生している保守対象システム200における現象的特性を、メッセージタイプの組み合わせで捉える。障害検出の成否は、現象的特性と診断ナレッジとの相性を表す。この相性は、診断ナレッジが対象とする障害と、その障害による現象的特性との関係に基づく。この関係には再現性があるので、学習モデルによる診断ナレッジのリコメンドは有意義である。
つまり、保守対象システム200における現象的特性を、メッセージタイプの組み合わせによって捉えやすくし、試行した診断ナレッジによる障害検出の成功実績と失敗実績を学習させ、間接的に現象的特性に応じて診断ナレッジの適性の程度を求められるようにする。失敗実績も学習するので、同じような過ちを避けて成功の可能性を高める点で、有利な側面がある。
なお、ここでいう現象的特性は、根本的な障害に起因する現象だけではなく、障害から誘発される二次的不具合に伴う現象に関する特性も含んでいる。二次的不具合に伴う現象は、保守対象システム200の構成や動作に依存するものであって、いわば保守対象システム200の癖に相当する。このような保守対象システム200における独特な振る舞いも加味して判断を行える点でも、本実施形態は有利な一面がある。
また、本実施形態では、診断ナレッジに含まれる手順の部分的な自動化と全体的な自動化の工夫もする。後に、機械学習の態様に関する変形例1および2を挙げる。更に、変形例3では、診断と修復も含むインシデント対応の完全な自動化にも及ぶ。
図5は、保守支援システムの構成例を示す図である。
保守支援システムは、保守支援サーバ300とユーザ端末400a~400c等によって構成される。保守支援サーバ300とユーザ端末400a~400c等は、ネットワークに接続する機能を備えている。ユーザ端末400a~400c等をまとめて言うときや特に区別しないときには「ユーザ端末400」と総称する。ユーザ端末400は、たとえば、パーソナルコンピュータ、タブレット端末やスマートフォンなどの携帯電話端末でもよい。
ユーザ端末400は、保守員が使用する端末である。保守員は、ユーザ端末400を用いて保守対象システム200におけるインシデントに対処する保守作業を行う。保守支援サーバ300は、保守員による保守対象システム200の保守作業を支援する。具体的には、保守対象システム200で発生したインシデントに対処する作業を支援する。
保守支援サーバ300とユーザ端末400は、ネットワークを介して接続している。保守支援サーバ300とユーザ端末400を接続するネットワークは、たとえばインターネット、LANあるいは専用回線などのいずれであってもよい。
保守支援サーバ300は、保守対象システム200とネットワークを介して接続している。保守支援サーバ300と保守対象システム200を接続するネットワークは、たとえばインターネット、LANあるいは専用回線などのいずれであってもよい。
ユーザ端末400も保守対象システム200とネットワークを介して接続している。ユーザ端末400と保守対象システム200を接続するネットワークは、たとえばインターネット、LANあるいは専用回線のいずれなどであってもよい。
たとえば、保守支援システムと、保守対象システム200とが別の拠点にあれば、保守支援サーバ300とユーザ端末400がLANに接続し、保守対象システム200と保守支援システムがインターネットや専用線で接続する形態が考えられる。
図6は、実施形態に係るフェーズを示す図である。
上述した第1段階を教師データ収集フェーズという(S10)。教師データ収集フェーズでは、インシデントに対処する作業に伴い実績データを収集する。教師データ収集フェーズでは、メッセージの検索によって診断ナレッジをリコメンドする。保守員は、リコメンドされた診断ナレッジおよび修復ナレッジを用いて保守作業を行う。教師データ収集フェーズでは、学習モデルを使用しない。
上述した第2段階を学習モデル生成フェーズという(S12)。学習モデル生成フェーズでは、収集した実績データを教師データとして用いて学習モデルを生成する。学習モデル生成フェーズは、インシデントに対処する作業を伴わない。
上述した第3段階を学習モデル適用フェーズという(S14)。学習モデル適用フェーズでは、インシデントに対処する作業において、生成した学習モデルを用いて診断ナレッジのリコメンドを行う。学習モデル適用フェーズにおけるリコメンドは、教師データ収集フェーズにおけるリコメンドよりも精度が高まる。つまり、リコメンドされた診断ナレッジによって障害が検出される可能性が高くなる。
診断ナレッジに含まれる手順の部分的な自動化と全体的な自動化については、教師データ収集フェーズ(S10)および学習モデル適用フェーズ(S14)のいずれにおいても実施可能である。また、診断と修復も含むインシデント対応の完全な自動化についても教師データ収集フェーズ(S10)および学習モデル適用フェーズ(S104)のいずれにおいても実施可能である。つまり、自動化の仕組みは、リコメンドの方式に依存しない。詳しくは、後述する。
続いて、ユーザ端末400のディスプレイに表示される画面の例などを示して、ユーザインターフェースおよび機能の概要について説明する。
図7は、リコメンド画面の例を示す図である。
インシデントが発生し、リコメンドされる診断ナレッジが選択されると、リコメンド画面がユーザ端末400に表示される。
診断ナレッジ名表示領域500a~500cには、推薦される診断ナレッジの名前が表示される。リコメンド指標表示領域502aからリコメンド指標表示領域502cには、診断ナレッジ毎のリコメンド指標が表示される。リコメンド指標は、リコメンドの程度を表す。
この例で、リコメンド指標が大きいものから順に3つの診断ナレッジが表示される。リコメンド指標が80である「メールボックス異常診断」が、最も推奨される診断ナレッジとして先頭に表示される。次に推奨される診断ナレッジとしてリコメンド指標が70である「オペレーティングシステムハングアップ診断」が表示される。続いて推奨される診断ナレッジとしてリコメンド指標が60である「ネットワークリンクダウン診断」が表示される。
保守員は、診断ナレッジ名表示領域500a~500cのいずれかにタッチして、使用する診断ナレッジを決める。保守員が手作業で診断を行おうとする場合には、診断ナレッジ表示ボタン504を選択する。診断ナレッジ表示ボタン504がタッチされると、診断ナレッジ画面が表示される。診断ナレッジ画面については、図9に関連して後述する。
診断ナレッジを自動実行させる場合には、保守員は診断ナレッジ自動実行ボタン506を選択する。診断ナレッジ自動実行ボタン506がタッチされると、診断ナレッジが自動実行される。診断ナレッジ自動実行ボタン506は、診断ナレッジの自動化がされている場合に限って選択できる。診断ナレッジが自動化されていないときには、診断ナレッジ自動実行ボタン506は薄い色で表示され、タッチされても反応しない。つまり、診断ナレッジ自動実行ボタン506は、非アクティブになっている。
保守員の手作業または自動実行による診断を終えると、診断結果表示領域508a~508cに診断結果が表示される。診断結果表示領域508a~508cには、検出した障害の種類あるいは「障害非検出」が表示される。診断ナレッジによる診断がされていない段階では、診断結果表示領域508a~508cには何も表示されない。なお、診断ナレッジが手作業で行われる場合あるいは自動実行される場合のいずれであっても、診断結果は、所定の診断パターンによって決定される。診断パターンについては、図8に関連して後述する。
診断によって障害が検出された場合には、修復ナレッジの手順に沿って修復が行われ、修復結果表示領域510a~510cに修復の状況が表示される。修復に関する操作については、後述する。具体的には、修復結果表示領域510a~510cに「未了」または「完了」が表示される。保守作業を終える場合、保守員は閉じるボタン512にタッチし、リコメンド画面を閉じる。
診断ナレッジ画面について説明する前に、診断ナレッジにおける診断パターンと修復ナレッジの関係について説明する。
図8は、診断パターンと修復ナレッジの関係を示す図である。
診断ナレッジには、複数の診断パターンが設定されている。診断パターンは、障害の種類を特定するための条件である。診断パターンは、診断ナレッジのパーツである子ナレッジの判定結果によって定まる。つまり、子ナレッジによる判定結果が、障害検出の基礎となる。診断ナレッジに定義される手順は、一または複数の子ナレッジから構成される。子ナレッジは、ある技術的事項に関する判定手順を定める。一つの子ナレッジによる判定結果だけで障害が特定されることもあるし、複数の子ナレッジによる判定結果の組み合わせによって障害が特定されることもある。また、一または複数の子ナレッジの判定結果によって、障害が検出されないと判定されることもある。この場合は、この診断ナレッジでインシデントの原因となっている障害の検出に失敗したことを意味する。診断ナレッジ自体や保守員の作業に問題があるわけではない。
図示した診断ナレッジCは、子ナレッジc1と子ナレッジc2を含む。子ナレッジc1の手順に沿って手作業あるいは自動実行をすれば、子ナレッジc1の判定結果として<異常>または<正常>が定まる。子ナレッジc2についても、同様に子ナレッジc2の判定結果として<異常>または<正常>が定まる。
この例では、診断パターン1から診断パターン3が設定されている。診断パターン1では、子ナレッジc1による判定結果が<異常>である場合に、障害C1が発生していると判定する。診断パターン1は、子ナレッジc2による判定結果に依存しない。このように、診断パターン1に合致すれば、診断ナレッジCによって障害C1が検出される。
診断パターン2では、子ナレッジc1による判定結果が<正常>であって、且つ子ナレッジc2による判定結果が<異常>である場合に、障害C2が発生していると判定する。このように、診断パターン2に合致すれば、診断ナレッジCによって障害C2が検出される。
診断パターン3では、子ナレッジc1による判定結果が<正常>であって、且つ子ナレッジc2による判定結果も<正常>である場合に、診断ナレッジCが対象とする障害は発生していないと判定する。つまり、診断パターン3に合致すれば、診断ナレッジCによって障害が検出されない。この場合、診断ナレッジCに関しては問題が無いが、保守対象システム200において一切障害が無いということではない。診断ナレッジCでは、障害を検出できないので、他の診断ナレッジによって障害を見つける必要がある。つまり、インシデント対応として障害検出に失敗したことを意味する。
また、障害検出に成功する診断パターン1と診断パターン2には、検出した障害について修復手順を定めた修復ナレッジが対応付けられている。この例で、診断パターン1には、障害C1から修復させるための修復ナレッジC1が対応付けられている。したがって、診断パターン1に合致した場合には、修復ナレッジC1の手順に沿って修復作業を行えば、障害C1が解消される。また、診断パターン2には、障害C2から修復させるための修復ナレッジC2が対応付けられている。したがって、診断パターン2に合致した場合には、修復ナレッジC2の手順に沿って修復作業を行えば、障害C2が解消される。障害を検出しない診断パターン3には、修復ナレッジが対応付けられていない。修復対象の障害が特定されていないからである。
図9は、診断ナレッジ画面の例を示す図である。
図7に示したリコメンド画面において、いずれかの診断ナレッジ名表示領域500が選択され、診断ナレッジ表示ボタン504がタッチされると、その診断ナレッジに関する診断ナレッジ画面が表示される。
診断ナレッジ名表示領域600には、保守員によって選択された診断ナレッジの名前が表示される。診断ナレッジ概要表示領域602には、保守員によって選択された診断ナレッジの概要が表示される。この例では、「メールボックス異常診断」という名前の診断ナレッジが、「メールボックスに関する異常を検出する」ものであることを示している。
子ナレッジ名表示領域604a、bには、診断ナレッジに含まれる子ナレッジの名前が表示される。例示した「メールボックス異常診断」の診断ナレッジには、2つの子ナレッジが設定されている。子ナレッジ名表示領域604aは、1番目の子ナレッジが「メールDBの接続確認」であることを示し、子ナレッジ名表示領域604bは、2番目の子ナレッジが「メールキューの滞留確認」であることを示している。
各子ナレッジ名表示領域604a,bの下には、子ナレッジ手順表示ボタン606a,bと子ナレッジ自動実行ボタン608a,bが表示される。保守員が子ナレッジ手順表示ボタン606a,bをタッチすると、子ナレッジの手順を示す子ナレッジ画面(図10参照)が表示される。保守員が子ナレッジ自動実行ボタン608a,bをタッチすると、子ナレッジの手順が自動的に実行される。子ナレッジ自動実行ボタン608a,bは、子ナレッジの自動化がされている場合に限って選択できる。子ナレッジが自動化されていないときには、子ナレッジ自動実行ボタン608a,bは薄い色で表示され、タッチされても反応しない。つまり、子ナレッジ自動実行ボタン608a,bは、非アクティブになっている。
この例で、保守員が手動で「メールDBの接続確認」を行う場合には、子ナレッジ手順表示ボタン606aをタッチする。子ナレッジ手順表示ボタン606aがタッチされると、「メールDBの接続確認」の手順を含む子ナレッジ画面(図10参照)が表示される。保守員は、この手順に沿って「メールDBの接続確認」の作業を行う。保守員が自動で「メールDBの接続確認」を実行させる場合には、子ナレッジ自動実行ボタン608aにタッチする。子ナレッジ自動実行ボタン608aがタッチされると、「メールDBの接続確認」の手順が自動的に実行される。
保守員が手動で作業する場合でも、自動で実行させる場合でも、「メールDBの接続確認」において、正常にメールDBが接続されていることを確認すると、「1:接続中<正常>」という判定結果になる。一方、正常にメールDBが接続されていないことが判明すると、「2:非接続<異常>」という判定結果になる。
同様に、保守員が手動で「メールキューの滞留確認」を行う場合には、子ナレッジ手順表示ボタン606bをタッチする。子ナレッジ手順表示ボタン606bがタッチされると、「メールキューの滞留確認」の手順を含む子ナレッジ画面が表示される。保守員は、この手順に沿って「メールキューの滞留確認」の作業を行う。保守員が自動で「メールDBの接続確認」を実行させる場合には、子ナレッジ自動実行ボタン608bにタッチする。子ナレッジ自動実行ボタン608bがタッチされると、「メールキューの滞留確認」の手順が自動的に実行される。
保守員が手動で作業する場合でも、自動で実行させる場合でも、「メールキューの滞留確認」において、メールキューの滞留が起きていないことを確認すると、「1:滞留無し<正常>」という判定結果になる。一方、メールキューの滞留が起きていると判明すると、「2:滞留有り<異常>」という判定結果になる。
診断ナレッジでは、診断ナレッジで用いる子ナレッジにおける判定結果に応じて診断結果を導く。上述のとおり、診断結果を導くためのパターンを「診断パターン」という。診断ナレッジ画面では、診断パターンも表示する。例示した「メールボックス異常診断」の診断ナレッジでは、診断パターン1、診断パターン2および診断パターン3が設けられている。初期段階で、診断パターン1に対応する修復ナレッジボタン616aおよび診断パターン2に対応する修復ナレッジボタン616bは、非アクティブである。つまり、薄い色で表示され、タッチされても反応しない。
診断パターン1について説明する。子ナレッジ「メールDBの接続確認」に関して、保守員が手動で作業し、あるいは自動で実行して、判定結果が「2:非接続<異常>」になると、第1子ナレッジ判定結果表示領域610aが反転表示になる。「メールDBの接続確認」の判定結果が「2:非接続<異常>」であれば診断パターン1に該当し、診断結果が「メールDB非接続」となる。そして、診断パターン1の診断結果「メールDB非接続」を示す診断結果表示領域614aが反転表示になる。これによって、「メールDB非接続」という障害が検出されたことがわかる。なお、診断パターン1に該当する場合には、「メールキューの滞留確認」について実行する必要はない。
また、「メールDBの再接続」と示された修復ナレッジボタン616aがアクティブ化される。つまり、修復ナレッジボタン616aが濃い色で表示され、タッチによって反応する状態になる。これにより、障害「メールDB非接続」を修復するために修復ナレッジ「メールDBの再接続」を使用できることがわかる。
この段階で、保守員が修復ナレッジボタン616aをタッチすれば、「メールDBの再接続」の修復ナレッジ画面へ移る。この修復ナレッジ画面には、「メールDB非接続」の障害を修復させる手順が表示される。保守員は、この手順を参照しながら、修復作業を行うことができる。また、修復ナレッジの手順が自動化されている場合には、修復ナレッジ自動実行ボタンを選択することもできる。修復ナレッジ自動実行ボタンがタッチされると、修復ナレッジの自動実行プログラムが実行される。修復ナレッジ画面については、図示しない。
診断パターン2について説明する。子ナレッジ「メールDBの接続確認」の判定結果が「1:接続中<正常>」であれば、第1子ナレッジ判定結果表示領域610bおよび第1子ナレッジ判定結果表示領域610cが反転表示になる。次に子ナレッジ「メールキューの滞留確認」に関して、保守員が手動で作業し、あるいは自動で実行して、判定結果が「2:滞留有り<異常>」になると、第2子ナレッジ判定結果表示領域612bが反転表示になる。
「メールDBの接続確認」の判定結果が「1:接続中<正常>」であって、且つ「メールキューの滞留確認」の判定結果が「2:滞留有り<異常>」であれば診断パターン2に該当し、診断結果が「メールキュー滞留」となる。そして、診断パターン2の診断結果「メールキュー滞留」を示す診断結果表示領域614bが反転表示になる。これによって、「メールキュー滞留」という障害が検出されたことがわかる。
また、「問題プロセスの再起動」と示された修復ナレッジボタン616bがアクティブ化される。これにより、障害「メールキュー滞留」を修復するために修復ナレッジ「問題プロセスの再起動」を使用できることがわかる。
この段階で、保守員が修復ナレッジボタン616bをタッチすれば、「問題プロセスの再起動」の修復ナレッジ画面へ移る。この修復ナレッジ画面には、「メールキュー滞留」の障害から修復させる手順が表示される。修復ナレッジ画面については、上述のとおりである。
診断パターン3について説明する。子ナレッジ「メールキューの滞留確認」の判定結果が「1:滞留無し<正常>」であれば、第2子ナレッジ判定結果表示領域612cが反転表示になる。
「メールDBの接続確認」の判定結果が「1:接続中<正常>」であって、且つ「メールキューの滞留確認」の判定結果が「1:滞留無し<正常>」であれば診断パターン3に該当し、診断結果が「障害非検出」となる。そして、診断パターン3の診断結果「障害非検出」を示す診断結果表示領域614cが反転表示になる。これによって、診断ナレッジ「メールボックス異常診断」によって障害が検出されなかったことがわかる。この場合には、診断ナレッジ「メールボックス異常診断」がインシデントの原因を見つけるために適していなかったことを意味する。保守員が戻るボタン618にタッチすれば、リコメンド画面に戻り、診断ナレッジを選び直すことができる。
図10は、子ナレッジ画面の例を示す図である。
この例は、図9に示した診断ナレッジ画面において、子ナレッジ手順表示ボタン606aがタッチされた場合に表示される子ナレッジ画面を示している。
子ナレッジ名表示領域700には、子ナレッジの名前が表示される。子ナレッジ概要表示領域702には、子ナレッジの概要が表示される。この例では、「メールDBの接続確認」という名前の子ナレッジが、「メールDBの接続状態を確認する」ものであることを示している。
子ナレッジ手順表示領域704には、子ナレッジにおける作業手順が表示される。作業手順には、1または複数の作業項目が含まれる。この例では、「1.ホスト名を確認する。」と「2.メールDBが接続中であることを確認する。」という作業項目が含まれる。作業項目には、リモート操作するユーザ端末400における入出力データが示される。打鍵コマンドは、ユーザ端末400のキーボードから入力するコマンドである。入力されたコマンドは、保守対象システム200へ送信される。出力例は、保守対象システム200においてコマンドを実行した結果、リターンコードと共にユーザ端末400へ返信され、ユーザ端末400のディスプレイに表示される出力コードの例である。更に、作業項目には、保守員が確認すべき内容も示される。つまり、保守員が正常であると確認するための条件が示される。保守員は、保守対象システム200におけるいずれのホストコンピュータ100にアクセスするか自ら判断してもよいし、保守支援サーバ300またはユーザ端末400において、アクセスするホストコンピュータ100を自動的に選択してもよい。アクセスするホストコンピュータ100については、発生メッセージに含まれるホスト名や保守対象システム200のシステム構成データに基づいて決められてもよい。
1番目の作業項目では、保守員がユーザ端末400に「hostname」と入力し、「TIGER123」のようにホスト名が出力されることを示している。また、同時に出力されるリターンコードが「0」であれば、正常であることを示している。この作業項目に関して、リターンコードが「0」でなければ、異常である。
2番目の作業項目では、保守員がユーザ端末400に「$Session;Get-MailboxDatabase」を含むコマンドを入力する。図中、「(中略)」と示した部分には、具体的な命令コードが示される。ここでは、説明の簡略のため省略する。また、「"Server:TIGER123"」というラインと、「"Mounted:True"」というラインを含むパラメータリストが出力されることを示している。図中、「(中略)」と示した部分には、具体的なパラメータ名とパラメータの値が示すラインが含まれる。ここでは、説明の簡略のため省略する。また、出力されたパラメータリストにおけるパラメータ「Mounted」の値が「True」であれば、正常であることを示している。この作業項目に関して、パラメータ「Mounted」の値が「True」でなければ、異常である。
子ナレッジ手順表示領域704に表示された各作業項目について保守員が作業を行い、いずれの正常条件も満たすことを確認した場合には、保守員は、この子ナレッジについて正常と判定する。1つでも正常条件を満たさない場合には、保守員は、この子ナレッジについて異常と判定する。
この例で、1番目の作業項目に関してリターンコードが「0」以外であれば、子ナレッジ「メールDBの接続確認」について、保守員は異常と判定する。また、1番目の作業項目に関してリターンコードが「0」であっても、2番目の作業項目に関して「Mounted」が「True」でなければ、保守員は異常と判定する。つまり、1番目の作業項目に関してリターンコードが「0」であって、且つ2番目の作業項目に関して「Mounted」が「True」である場合に限って、保守員は「メールDBの接続確認」について正常と判定する。
保守員が正常と判定した場合には、「1:接続中<正常>」と示された子ナレッジ判定結果ボタン706aにタッチする。保守員が異常と判定した場合には、「2:非接続<異常>」と示された子ナレッジ判定結果ボタン706bにタッチする。子ナレッジ判定結果ボタン706aまたは子ナレッジ判定結果ボタン706bがタッチされると、子ナレッジ画面が閉じて診断ナレッジ画面に戻る。子ナレッジ判定結果ボタン706aまたは子ナレッジ判定結果ボタン706bのタッチによって特定された判定結果は、上述のとおり診断ナレッジ画面(図9参照)に反映される。
また、子ナレッジの使用実績が増えた場合には、子ナレッジの手順を自動化することができる。保守員は、子ナレッジ使用回数表示領域708に表示された子ナレッジの使用回数を参照して、この子ナレッジの手順を自動化してもよいか判断する。使用回数が多ければ、この子ナレッジの手順に関して問題がないと推測できる。子ナレッジの手順を自動化させる場合には、保守員が子ナレッジ自動化ボタン710にタッチする。そして、子ナレッジを自動実行するためのホスト定義ファイルが生成される。ホスト定義ファイルの生成については、図11に関連して後述する。ホスト定義ファイルが生成され、子ナレッジの自動実行が可能になると、診断ナレッジ画面(図9参照)における子ナレッジ自動実行ボタン608がアクティブ化される。
保守員が作業を中断する場合には、戻るボタン712にタッチする。戻るボタン712がタッチされると、子ナレッジ画面を閉じて、診断ナレッジ画面に戻る。この場合には、判定結果は特定されず、診断ナレッジ画面の表示内容は元のままである。
図11は、手順書データの例を示す図である。
子ナレッジ画面の子ナレッジ手順表示領域704に表示される内容は、子ナレッジデータに含まれる手順書データに記述されている。手順書データは、マークアップ言語(例えば、HTML(HyperText Markup Language))で記述される。子ナレッジ画面表示処理部436は、マークアップ言語の記述ルールに従って手順書データから解釈された内容を表示する。
図示するように、1番目の作業項目について、打鍵コマンドに関する「cmd」と「hostname」という記述と、出力例に関する「result」と「TIGER123」という記述と、正常条件に関する「正常条件:リターンコードが『0』であること」が含まれる。また、2番目の作業項目について、打鍵コマンドに関する「cmd」と「$Session;Get-MailboxDatabase」という記述と、出力例に関する「result」と「"Server:TIGER123"」と「"Mounted:True"」という記述と、正常条件に関する「正常条件リターンコードが『Mounted』が『True』であること」という記述が含まれる。打鍵コマンドおよび出力例に関するその他の記述については、説明の簡略のため省略する。
手順書データは、子ナレッジ画面における手順表示に使用される以外に、ホスト定義ファイルの生成においても使用される。つまり、手順書データを元データとして変換を行うことによって、ホスト定義ファイルが生成される。
ホスト定義ファイルは、後述する構成管理ツールにおいて適用される。構成管理ツールは、ホスト定義ファイルにしたがって、保守対象システム200に対するリモート操作を行い、さらに保守対象システム200から出力されるデータに基づいて、各作業項目に関する判定を行う。そして、作業項目に関する判定結果に基づいて、子ナレッジの判定結果を出力する。つまり、構成管理ツールは、リモート操作モジュールに相当し、ホスト定義ファイルは、構成管理ツールにおいて動作する子ナレッジ自動実行プログラムに相当する。
具体的には、各作業項目について、コマンドに関するマークアップ言語の記述を、ホスト定義ファイルにおける記述形式に改める。コマンドは、一義的に置き換え可能であって、記述の変換は所定の変換ルールによって行われる。手順書データに記述されている出力例については、ホスト定義ファイルに含めなくてもよい。子ナレッジ画面の子ナレッジ手順表示領域704に表示される出力例は、保守員の作業を円滑にするための参考情報であって、保守対象システム200のリモート操作において必要がないからである。
また、手順書データでは、正常条件に関する記述の前後をdivタグで挟んでいる。マークアップ言語の記述ルールによれば、divタグの記述は表示されないが、表示スタイルの指定や自由記述などを付加することができる。この例で、divタグによって、正常条件に関する表示スタイルを指定する他、正常条件の判定を行うプロシージャに関する自由記述が付加されている。ホスト定義ファイルの生成処理において、プロシージャに関する自由記述に基づいて、正常条件に関して所定の判定用プロシージャが付加される。判定用プロシージャは複数用意されており、判定の仕方に応じて使い分けられる。「proc confirm=」によって指定されている番号は、判定用プロシージャの種類を示す。
この例で「proc confirm="01"」で指定される判定用プロシージャは、リターンコードの正否を判定する機能を有する。このとき「rc=」で指定されるコードは、正常値を示している。この例では「rc="0"」と記述されているので、リターンコードが「0」である場合に正常と判定し、リターンコードが「0」以外である場合に異常と判定するプロシージャが、ホスト定義ファイルにおける1番目の作業項目の判定ロジックとして付加される。
この例で「proc confirm="11"」で指定される判定用プロシージャは、出力コードに所定コードが含まれるか否かを判定する機能を有する。「string=」で指定される所定コードが含まれていれば、正常と判定する。この例では「string="Mounted:True"」と記述されているので、出力コードに「string="Mounted:True"」というコードが含まれている場合に正常と判定し、このコードが含まれていない場合に異常と判定するプロシージャが、ホスト定義ファイルにおける2番目の作業項目の判定ロジックとして付加される。
ホスト定義ファイルには、いずれかの作業項目において異常と判定された場合に、子ナレッジの判定結果として異常を出力し、いずれの作業項目においても正常と判定された場合に、子ナレッジの判定結果として正常を出力するように設定される。
なお、ホスト定義ファイルを生成するとともに、「proc confirm=」によって指定されている番号と、確認のためのパラメータ(「rc="0"」や「string="Mounted:True"」)をまとめたコーディングチェック用のデータを生成してもよい。このデータを用いて手順書データをチェックすればコーディングミスを防ぎやすくなる。
続いて、保守支援システムにおける処理の詳細について説明する。
保守支援システムに含まれる保守支援サーバ300およびユーザ端末400の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
図12~図14は、保守支援サーバ300の機能ブロック図である。
保守支援サーバ300は、通信部304、データ処理部306およびデータ格納部308を含む。図12は、通信部304の詳細を示す。図13は、データ処理部306の詳細を示す。図14は、データ格納部308の詳細を示す。
通信部304は、ネットワークを介して保守対象システム200およびユーザ端末400との通信処理を担当する。データ格納部308は各種データを格納する。データ処理部306は、通信部304により取得されたデータと、データ格納部308に格納されているデータに基づいて各種処理を実行する。データ処理部306は、通信部304およびデータ格納部308のインタフェースとしても機能する。
図12に示すように通信部304は、データを送信する送信部330と、データを受信する受信部340を含む。
送信部330は、リコメンド画面送信部332、診断ナレッジ画面送信部334、子ナレッジ画面送信部336およびホスト定義ファイル送信部338を含む。
リコメンド画面送信部332は、リコメンド画面データをユーザ端末400へ送信する。診断ナレッジ画面送信部334は、診断ナレッジ画面データをユーザ端末400へ送信する。子ナレッジ画面送信部336は、子ナレッジ画面データをユーザ端末400へ送信する。ホスト定義ファイル送信部338は、ホスト定義ファイルをユーザ端末400へ送信する。
受信部340は、インシデント通知受信部342、リコメンド画面イベント受信部344、診断ナレッジ画面イベント受信部346、子ナレッジ画面イベント受信部348、修復結果受信部349および子ナレッジ判定結果受信部350を含む。
インシデント通知受信部342は、ホストコンピュータ100からインシデント通知を受信する。リコメンド画面イベント受信部344は、ユーザ端末400からリコメンド画面で発生したイベントを受信する。診断ナレッジ画面イベント受信部346は、ユーザ端末400から診断ナレッジ画面で発生したイベントを受信する。子ナレッジ画面イベント受信部348は、ユーザ端末400から子ナレッジ画面で発生したイベントを受信する。修復結果受信部349は、ユーザ端末400から修復結果を受信する。子ナレッジ判定結果受信部350は、ユーザ端末400から子ナレッジの判定結果を受信する。
図13に示すようにデータ処理部306は、メッセージ取得部362、リコメンド処理部364、リコメンド画面生成部366、診断ナレッジ画面生成部368、子ナレッジ画面生成部370、ホスト定義ファイル生成部372、実績記録処理部374、メッセージ分類部376、診断パターン判定部378および学習モデル生成部392を含む。
メッセージ取得部362は、インシデントに伴い発生したメッセージを保守対象システム200から取得する。リコメンド処理部364は、リコメンドする診断ナレッジを選択する。リコメンド処理部364は、メッセージ検索部365と学習モデル利用部398を含む。メッセージ検索部365は、教師データ収集フェーズ(S10)において、発生メッセージに類似する見本メッセージを検索する。学習モデル利用部398は、学習モデルを利用して候補となる診断ナレッジにおける障害の検出成否の予測値を求める。
リコメンド画面生成部366は、リコメンド画面データを生成する。診断ナレッジ画面生成部368は、診断ナレッジ画面データを生成する。子ナレッジ画面生成部370は、子ナレッジ画面データを生成する。ホスト定義ファイル生成部372は、ホスト定義ファイルを生成する。実績記録処理部374は、実績データを記録する。メッセージ分類部376は、発生メッセージをメッセージタイプに分類する。診断パターン判定部378は、診断パターンの判定を行う。学習モデル生成部392は、学習エンジン394を用いて学習モデルを生成する。
図14に示すようにデータ格納部308は、システム構成データ記憶部380、メッセージ記憶部382、診断ナレッジデータ記憶部384、子ナレッジデータ記憶部386、修復ナレッジデータ記憶部387、実績データ記憶部388、メッセージタイプ定義記憶部390および学習モデル記憶部396を含む。
システム構成データ記憶部380は、保守対象システム200のシステム構成データを記憶する。システム構成データは、保守対象システム200に含まれるホストコンピュータ100のホスト名、搭載している機能モジュール、ネットワークアドレスおよびハードウェア資源などの情報を含む。メッセージ記憶部382は、取得した発生メッセージを記憶する。
診断ナレッジデータ記憶部384は、診断ナレッジデータを記憶する。診断ナレッジデータは、診断ナレッジID、診断ナレッジの名前、診断ナレッジの概要、1以上の子ナレッジIDおよび診断パターン情報を含む。診断パターン情報は、診断パターン毎に、1以上の子ナレッジに関する判定条件、診断結果および修復ナレッジIDを対応付ける。
子ナレッジデータ記憶部386は、子ナレッジデータを記憶する。子ナレッジデータは、子ナレッジID、子ナレッジの名前、子ナレッジの概要および手順書データなどの情報を含む。修復ナレッジデータ記憶部387は、修復ナレッジデータを記憶する。修復ナレッジデータは、修復ナレッジID、修復ナレッジの名前、修復ナレッジの概要および修復の手順書データなどの情報を含む。修復ナレッジデータは、修復ナレッジ自動実行プログラムを含んでもよい。
実績データ記憶部388は、実績データを記憶する。実績データは、上述したように一または複数のメッセージタイプと、診断ナレッジIDと、診断ナレッジによる障害検出の成否とを含むサンプルを多数含む。メッセージタイプ定義記憶部390は、メッセージタイプを定義するデータを記憶する。たとえば、各メッセージタイプの型を定義してもよい。メッセージタイプの型には、メッセージにおける可変部分と固定部分が定義されている。可変部分は、たとえばホスト名や発生日時などが設定される箇所である。固定部分は、たとえば「読み込みエラーが発生しました。」のような文やファンクションIDのような所定パラメータなどに相当する。あるいは、各メッセージタイプの典型を定義してもよい。学習モデル記憶部396は、学習モデルを定義するニューラルネットワークの重みデータを記憶する。
図15および図16は、ユーザ端末400の機能ブロック図である。
ユーザ端末400は、ユーザインターフェース処理部402、通信部404、データ処理部406およびデータ格納部408を含む。
図15は、ユーザインターフェース処理部402、データ処理部406およびデータ格納部408の詳細を示す。ユーザインターフェース処理部402は、キーボードやタッチパネルなどの入力デバイスを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインターフェースに関する処理を担当する。通信部404は、ネットワークを介して保守対象システム200および保守支援サーバ300との通信処理を担当する。データ格納部408は、各種データを格納する。データ処理部406は、通信部404により取得されたデータ、ユーザインターフェース処理部402を介して入力された操作指示およびデータ格納部408に格納されているデータに基づいて各種処理を実行する。データ処理部406は、通信部404、ユーザインターフェース処理部402およびデータ格納部408のインタフェースとしても機能する。データ格納部408は、アプリケーションプログラムや上述したデータなどの各種データを格納する。
ユーザインターフェース処理部402は、ユーザからの入力を受け付ける入力部410と、ユーザに対して画像や音声などの各種情報を出力する出力部430を含む。
出力部430は、リコメンド画面表示処理部432、診断ナレッジ画面表示処理部434および子ナレッジ画面表示処理部436を含む。
リコメンド画面表示処理部432は、リコメンド画面をディスプレイに表示する。診断ナレッジ画面表示処理部434は、診断ナレッジ画面をディスプレイに表示する。子ナレッジ画面表示処理部436は、子ナレッジ画面をディスプレイに表示する。
入力部410は、リコメンド画面操作受付部412、診断ナレッジ画面操作受付部414および子ナレッジ画面操作受付部416を含む。
リコメンド画面操作受付部412は、リコメンド画面におけるユーザ操作を受け付ける。診断ナレッジ画面操作受付部414は、診断ナレッジ画面におけるユーザ操作を受け付ける。子ナレッジ画面操作受付部416は、子ナレッジ画面におけるユーザ操作を受け付ける。
データ処理部406は、リモート処理部480、診断ナレッジ自動実行部482、子ナレッジ自動実行部484、修復ナレッジ実行部486および構成管理ツール488を含む。
リモート処理部480は、保守対象システム200のホストコンピュータ100とSSH(Secure SHell)接続し、ホストコンピュータ100に対するリモート操作を実現する。診断ナレッジ自動実行部482は、診断ナレッジを自動実行する。子ナレッジ自動実行部484は、子ナレッジを自動実行する。修復ナレッジ実行部486は、修復ナレッジ処理を実行する。修復ナレッジ処理で修復ナレッジの手順を示す修復ナレッジ画面を表示して、保守員が手作業で修復を行ってもよいし、修復ナレッジ処理で修復ナレッジ自動実行プログラムを自動実行してもよい。
構成管理ツール488は、本来保守対象システム200の構成管理に用いられるものである。但し、ここでは保守対象システム200へのリモート操作を行う手段として用いる。構成管理ツール488は、たとえばAnsible(登録商標)であって、リモート処理部480を介して保守対象システム200のホストコンピュータ100を自動的にリモート操作するリモート操作モジュールの例である。構成管理ツール488にホスト定義ファイル(たとえば、Ansibleに用いられるPlayBook)を適用することによって、保守対象システム200のホストコンピュータ100における設定や操作を自動的に行える。
データ格納部408は、診断ナレッジ自動実行プログラム記憶部490、ホスト定義ファイル記憶部492および修復ナレッジ自動実行プログラム記憶部494を含む。
診断ナレッジ自動実行プログラム記憶部490は、診断ナレッジを自動実行するためのプログラムを記憶する。ホスト定義ファイル記憶部492は、ホスト定義ファイルを記憶する。修復ナレッジ自動実行プログラム記憶部494は、修復ナレッジを自動実行するためのプログラムを記憶する。
図16は、通信部404の詳細を示す。通信部404は、データを送信する送信部450とデータを受信する受信部460を含む。
送信部450は、リコメンド画面イベント送信部452、診断ナレッジ画面イベント送信部454、子ナレッジ画面イベント送信部456、子ナレッジ判定結果送信部458および修復結果送信部459を含む。
リコメンド画面イベント送信部452は、リコメンド画面で発生したイベントを保守支援サーバ300へ送信する。診断ナレッジ画面イベント送信部454は、診断ナレッジ画面で発生したイベントを保守支援サーバ300へ送信する。子ナレッジ画面イベント送信部456は、子ナレッジ画面で発生したイベントを保守支援サーバ300へ送信する。子ナレッジ判定結果送信部458は、子ナレッジの判定結果を保守支援サーバ300へ送信する。修復結果送信部459は、修復結果を保守支援サーバ300へ送信する。
受信部460は、リコメンド画面受信部462、診断ナレッジ画面受信部464、子ナレッジ画面受信部466およびホスト定義ファイル受信部468を含む。
リコメンド画面受信部462は、保守支援サーバ300からリコメンド画面データを受信する。診断ナレッジ画面受信部464は、保守支援サーバ300から診断ナレッジ画面データを受信する。子ナレッジ画面受信部466は、保守支援サーバ300から子ナレッジ画面データを受信する。ホスト定義ファイル受信部468は、保守支援サーバ300からホスト定義ファイルを受信する。
図17~図19は、保守支援サーバ300のメイン処理過程を示すフローチャート図である。
以下、保守支援サーバ300における処理について説明し、さらに保守支援サーバ300と連動するユーザ端末400の処理についても併せて述べる。
なお、教師データ収集フェーズ(S10)および学習モデル適用フェーズ(S14)において、保守支援サーバ300のメイン処理過程は、大筋において共通である。教師データ収集フェーズ(S10)と学習モデル適用フェーズ(S14)とでは、リコメンドの方式が異なる。教師データ収集フェーズ(S10)では、メッセージの検索によってリコメンドする診断ナレッジを決める。学習モデル適用フェーズ(S14)では、学習モデルを用いてリコメンドする診断ナレッジを決める。
インシデント通知受信部342が保守対象システム200からインシデント通知を受信すると(S20)、メッセージ取得部362は、保守対象システム200からメッセージを取得する(S22)。取得したメッセージは、メッセージ記憶部382に記憶される。
保守支援サーバ300のリコメンド処理部364は、リコメンド処理を実行する(S24)。リコメンド処理では、まず発生メッセージの中から検索キーとするメッセージを特定する。たとえば、発生メッセージの一覧をユーザ端末400に送信し、ユーザ端末400において表示された発生メッセージの一覧の中から保守員が着目するメッセージを選択してもよい。あるいは、保守支援サーバ300において自動的に着目する発生メッセージを選別してもよい。たとえば、同種のメッセージが多数発生している場合に、発生頻度が高いメッセージを選択してもよい。
リコメンド処理部364は、選択した発生メッセージを検索キーとして、各見本メッセージとの類似判定を行う。検索キーの発生メッセージと見本メッセージの類似判定の方法は、任意であり、文類似判定の従来技術を用いてもよい。たとえば、エラスティックサーチ(登録商標)という全文検索エンジンを用いてもよい。リコメンド処理部364は、文類似判定により、発生メッセージと見本メッセージの類似度を求めることができる。リコメンド処理部364は、類似度が高い順に所定数の見本メッセージを選択する。リコメンド処理部364は、発生メッセージおよび選択した見本メッセージをそれぞれ単語に分割する。そして、発生メッセージと見本メッセージの各組み合わせにおいて、それぞれのメッセージに含まれる単語間の関連度を示すシンプソン係数を算出する。そして、シンプソン係数に基づいてリコメンド指標を算出する。たとえば、すべての単語の組み合わせについてシンプソン係数を求めて、その平均値をリコメンド指標としてもよい。あるいは、シンプソン係数の大きいものを所定数だけ抽出して、その平均値をリコメンド指標としてもよい。
このようにすれば、検索キーのメッセージに含まれる単語と意味的に近い単語を含む見本メッセージのリコメンド指数が大きい値を示すようになる。そして、リコメンド指数が大きい順にその見本メッセージに対応する診断ナレッジを優先的に推薦する。なお、診断ナレッジ毎にキーワードを設定しておき、発生メッセージにそのキーワードが含まれる場合に、その診断メッセージのリコメンド指標を高めるように補正してもよい。単純な例では、類似度をリコメンド指標としてもよい。
また、すべての発生メッセージを検索キーとして、それぞれに発生メッセージに対して推薦される診断メッセージを特定し、推薦回数が多いものを優先的に推薦するようにしてもよい。
リコメンド画面生成部366は、リコメンド処理の結果に基づいて、リコメンド画面データを生成する(S26)。リコメンド画面生成部366は、リコメンド指数が大きい順に3つの診断ナレッジ名を、診断ナレッジ名表示領域500a~500cに設定し、それらに対応するリコメンド指数をリコメンド指標表示領域502a~502cに設定する。リコメンド画面送信部332は、生成したリコメンド画面データをユーザ端末400へ送信する。
ユーザ端末400のリコメンド画面受信部462がリコメンド画面データを受信すると、リコメンド画面表示処理部432は、リコメンド画面(図7参照)を表示する。リコメンド画面操作受付部412が、リコメンド画面における診断ナレッジ名表示領域500の選択操作と、診断ナレッジ表示ボタン504へのタッチを受け付けると、リコメンド画面イベント送信部452は、診断ナレッジ表示イベントを保守支援サーバ300へ送信する。
保守支援サーバ300のリコメンド画面イベント受信部344が診断ナレッジ表示イベントを受信すると、図18のS34の処理へ移る(S28のY)。S30およびS32については、説明の便宜のため後述する。
図18の説明に移る。保守支援サーバ300の診断ナレッジ画面生成部368は、診断ナレッジデータ記憶部384に基づいて、診断ナレッジ画面データを生成する(S34)。診断ナレッジ画面送信部334は、生成した診断ナレッジ画面データをユーザ端末400へ送信する。
ユーザ端末400の診断ナレッジ画面受信部464が診断ナレッジ画面データを受信すると、診断ナレッジ画面表示処理部434は、受信したリコメンド画面データを用いてリコメンド画面を表示する。診断ナレッジ画面操作受付部414は、子ナレッジ手順表示ボタン606へのタッチ操作を受け付けると、診断ナレッジ画面イベント送信部454は、子ナレッジ手順表示イベントを保守支援サーバ300へ送信する。
保守支援サーバ300の診断ナレッジ画面イベント受信部346が子ナレッジ手順表示イベントを受信すると(S36のY)、子ナレッジ画面生成部370は、子ナレッジデータ記憶部386に基づいて子ナレッジ画面データを生成する(S38)。子ナレッジ画面送信部336は、生成した子ナレッジ画面データをユーザ端末400へ送信する。
ユーザ端末400の子ナレッジ画面受信部466が子ナレッジ画面データを受信すると、子ナレッジ画面表示処理部436は、受信した子ナレッジ画面データを用いて、子ナレッジ画面を表示する。子ナレッジ画面操作受付部416は、子ナレッジ判定結果ボタン706へのタッチ操作を受け付けると、子ナレッジ画面イベント送信部456は、子ナレッジ判定結果(<正常>または<異常>)を保守支援サーバ300へ送信する。
保守支援サーバ300の子ナレッジ判定結果受信部350が子ナレッジ判定結果を受信すると(S40のY)、診断ナレッジ画面生成部368は、図9に関連して説明したとおり子ナレッジ判定結果に応じて診断ナレッジ画面データを更新する(S42)。診断ナレッジ画面送信部334は、更新された診断ナレッジ画面データをユーザ端末400へ送信する。受信したユーザ端末400の処理および保守支援サーバ300は、S34からS36までの場合と同様である。
ユーザ端末400の子ナレッジ画面操作受付部416が子ナレッジ自動化ボタン608への操作を受け付けると(S44のY)、子ナレッジ画面イベント送信部456は、子ナレッジ自動化イベントを保守支援サーバ300へ送信する。
保守支援サーバ300の子ナレッジ画面イベント受信部348が子ナレッジ自動化イベントを受信すると(S40)、ホスト定義ファイル生成部372は、上述したように、診断ナレッジの手順書データをホスト定義ファイルへ変換して、ホスト定義ファイルを生成する(S46)。ホスト定義ファイル送信部338は。ホスト定義ファイルをユーザ端末400へ送信する。
ユーザ端末400のホスト定義ファイル受信部468がホスト定義ファイルを受信すると、受信したホスト定義ファイルをホスト定義ファイル記憶部492に記憶する。
また、保守支援サーバ300の診断ナレッジ画面生成部368は、子ナレッジ自動実行ボタン608をアクティブ化するように、診断ナレッジ画面データを更新する(S48)。診断ナレッジ画面送信部334は、更新された診断ナレッジ画面データをユーザ端末400へ送信する。受信したユーザ端末400の処理および保守支援サーバ300の処理は、S34からS36までの場合と同様である。
S36において、保守支援サーバ300の診断ナレッジ画面イベント受信部346が子ナレッジ手順表示イベントを受信していない場合には(S36のY)、図19に示したS50の処理へ移る。
図19の説明に移る。ユーザ端末400の子ナレッジ画面操作受付部416がリコメンド画面の子ナレッジ自動実行ボタン608へのタッチ操作を受け付けると、子ナレッジ自動実行部484は、選択された子ナレッジの手順を自動実行する。具体的には、子ナレッジ自動実行部484は、ホスト定義ファイル記憶部492において子ナレッジに対応付けられているホスト定義ファイルを構成管理ツール488に適用させ、構成管理ツール488に自動的なリモート操作処理を行わせる。そして、子ナレッジ判定結果送信部458は、構成管理ツール488から出力される子ナレッジ判定結果を保守支援サーバ300へ送信する。
保守支援サーバ300の子ナレッジ判定結果受信部350が子ナレッジ判定結果を受信すると(S50)、診断ナレッジ画面生成部368は、図9に関連して説明したとおり子ナレッジ判定結果に応じて診断ナレッジ画面データを更新する(S52)。診断ナレッジ画面送信部334は、更新された診断ナレッジ画面データをユーザ端末400へ送信する。受信したユーザ端末400の処理および保守支援サーバ300は、図18のS34からS36までの場合と同様である。
ユーザ端末400の診断ナレッジ画面操作受付部414がリコメンド画面の修復ナレッジボタン616へのタッチ操作を受け付けると、修復ナレッジ実行部486は、修復ナレッジ処理を実行する。修復ナレッジ処理では、修復ナレッジ画面を表示する。保守員は、修復ナレッジ画面に表示された手順に沿って、修復作業を行う。修復作業を終えて修復結果ボタンが選択されると、修復結果送信部459は、修復結果(「完了」または「未了」)を保守支援サーバ300へ送信する。修復ナレッジ画面で自動実行を指示された場合には、修復ナレッジの自動実行プログラムを実行する。修復結果送信部459は、自動実行による修復結果を保守支援サーバ300へ送信する。
保守支援サーバ300の子ナレッジ判定結果受信部350が修復結果を受信すると(S54)、実績記録処理部374は、検出成功を示す実績データを記録する(S56)。修復結果を受信したということは、障害が検出されたことを前提としているからである。
このとき、メッセージ分類部376は、インシデントに伴い発生したメッセージをメッセージタイプに分類する。具体的には、発生メッセージを、メッセージタイプ定義記憶部390に記憶されている各メッセージタイプの型と比較する。メッセージタイプの型に合致すれは、そのメッセージタイプに属すると判断する。メッセージタイプの型には、上述したようにメッセージにおける可変部分と固定部分が定義されている。可変部分は任意であるので比較を行わない。固定部分が一致した場合に、その型に合致すると判定する。あるいは、発生メッセージと、メッセージタイプ定義記憶部390に記憶されている各メッセージタイプの典型メッセージとの類似判定を行って、最も高い類似度が得られた典型メッセージのタイプに分類するようにしてもよい。発生メッセージをメッセージタイプに分類する方法は、任意であって他の従来技術を用いてもよい。
実績記録処理部374は、一つのサンプルとして、一または複数のメッセージタイプと、診断ナレッジIDと、検出成功とを含むサンプルを実績データ記憶部388に記憶する。実績記録処理部374は、更に修復結果として「完了」または「未了」を記録してもよい。
ユーザ端末400の診断ナレッジ画面操作受付部414が診断ナレッジ画面の戻るボタン618へのタッチ操作を受け付けると、子ナレッジ画面イベント送信部456は、リターンイベントを保守支援サーバ300へ送信する。リターンイベントは、検出成功を示す場合と、検出失敗を示す場合と、中断を示す場合とがある。図9で説明したように、診断パターン1又は2に合致して「メールDB非接続」あるいは「メールキュー滞留」が判定された場合のように、診断結果として障害が特定されている場合には、検出成功を示すリターンイベントが送られる。診断パターン3に合致して「障害非検出」と判定された場合には、検出失敗を示すリターンイベントが送られる。これら以外の場合には、中断を示すリターンイベントが送られる。
保守支援サーバ300の子ナレッジ画面イベント受信部348がリターンイベントを受信し(S58のY)、リターンイベントが検出成功を示している場合には、S56の場合と同様に検出成功を示す実績データを記録する(S60)。リターンイベントが検出失敗を示している場合には、実績記録処理部374は、検出失敗を示す実績データを記録する(S60)。このときメッセージ分類部376は、上述したように、インシデントに伴い発生したメッセージをメッセージタイプに分類する。実績記録処理部374は、一つのサンプルとして、一または複数のメッセージタイプと、診断ナレッジIDと、検出失敗とを含むサンプルを実績データ記憶部388に記憶する。リターンイベントが中断を示している場合には、実績データを記録しない。そして、図17に示したS28の処理へ移る。
図17の説明に戻る。ユーザ端末400のリコメンド画面操作受付部412が、リコメンド画面における診断ナレッジ名表示領域500の選択操作と、診断ナレッジ自動実行ボタン506へのタッチを受け付けると、診断ナレッジ自動実行部482は、診断ナレッジを自動実行する。診断ナレッジ自動実行処理については、図20に関連して後述する。診断ナレッジ自動実行処理の最後に、修復結果送信部459は、診断結果(「メールDB非接続」、「「メールキュー滞留」または「障害非検出」)と共に、診断ナレッジ自動実行処理による修復結果(「完了」または「未了」)を保守支援サーバ300へ送信する。
保守支援サーバ300の子ナレッジ判定結果受信部350が修復結果を受信すると(S30のY)、S26に戻って、リコメンド画面生成部366は、修復結果を設定したリコメンド画面データを生成する。リコメンド画面データの送信およびリコメンド画面の表示の処理については、上述のとおりである。これにより、修復結果が反映されたリコメンド画面が表示される。
ユーザ端末400のリコメンド画面操作受付部412が、リコメンド画面の閉じるボタン512へのタッチを受け付けると、リコメンド画面イベント送信部452は、終了イベントを保守支援サーバ300へ送信する。そして、ユーザ端末400は、リコメンド画面を閉じて処理を終える。
保守支援サーバ300のリコメンド画面イベント受信部344が終了イベントを受信すると(S32のY)、保守支援サーバ300におけるメイン処理を終える。
図20は、診断ナレッジ自動実行処理過程を示すフローチャート図である。
診断ナレッジ自動実行部482が、診断ナレッジ自動実行プログラム記憶部490に記憶されている診断ナレッジ自動実行プログラムに従って、診断ナレッジ自動実行処理を制御する。図示した例は、診断ナレッジ「メールボックス異常診断」に関する診断ナレッジ自動実行プログラムにしたがって、診断ナレッジ自動実行部482が診断ナレッジ「メールボックス異常診断」を自動実行する処理を示している。
診断ナレッジ自動実行部482は、子ナレッジ「メールDBの接続確認」を子ナレッジ自動実行部484に自動実行させる(S70)。子ナレッジ自動実行部484における子ナレッジ自動実行処理については、上述のとおりである。
子ナレッジ「メールDBの接続確認」の自動実行による判定結果が「2:非接続<異常>」であれば(S72のY)、実績記録処理部374は、検出成功を示す実績データを記録する(S74)。そして、診断ナレッジ自動実行部482は、修復ナレッジ実行部486に修復ナレッジ「メールDBの再接続」を自動実行させる。そして、修復結果送信部459は、修復ナレッジ実行部486による修復結果を保守支援サーバ300へ送信する。修復ナレッジ「メールDBの再接続」が正常に終了すれば、修復結果は「完了」となる。修復ナレッジ「メールDBの再接続」が正常終了しなければ、修復結果は「未了」となる。「メールDBの再接続」を阻む他の障害があれば、修復ナレッジ「メールDBの再接続」が正常に終了しないこともある。修復結果送信部459は、診断結果(障害の種類:「メールDB非接続」)も併せて送る。
子ナレッジ「メールDBの接続確認」の自動実行による判定結果が「1:接続中<正常>」であって、「2:非接続<異常>」でない場合には(S72のN)、診断ナレッジ自動実行部482は、子ナレッジ「メールキューの滞留確認」を子ナレッジ自動実行部484に自動実行させる(S78)。
子ナレッジ「メールキューの滞留確認」の自動実行による判定結果が「2:滞留有り<異常>」であれば(S80のY)、実績記録処理部374は、検出成功を示す実績データを記録する(S82)。診断ナレッジ自動実行部482は、修復ナレッジ実行部486に修復ナレッジ「問題プロセスの再起動」を自動実行させる。そして、修復結果送信部459は、修復ナレッジ実行部486による修復結果を保守支援サーバ300へ送信する(S88)。修復ナレッジ「問題プロセスの再起動」が正常に終了すれば、修復結果は「完了」となる。修復ナレッジ「問題プロセスの再起動」が正常終了しなければ、修復結果は「未了」となる。「問題プロセスの再起動」を阻む他の障害があれば、修復ナレッジ「問題プロセスの再起動」が正常に終了しないこともある。修復結果送信部459は、診断結果(障害の種類:「メールキュー滞留」)も併せて送る。
子ナレッジ「メールキューの滞留確認」の自動実行による判定結果が「1:滞留無し<正常>」であって、「2:滞留有り<異常>」でない場合には(S80のY)、実績記録処理部374は、検出失敗を示す実績データを記録する(S86)。この場合、修復結果送信部459は、「障害非検出」の診断結果と「未了」の修復結果を保守支援サーバ300へ送信する(S88)。
続いて、学習モデル生成フェーズ(S12)について説明する。まず、ニューラルネットワークの構成について述べる。
図21は、実施形態におけるニューラルネットワークの構成図である。
実施形態におけるニューラルネットワークは、各メッセージタイプおよび各診断ナレッジに対応する複数の入力ノードと、複数の中間ノードと、検出結果に対応する1つの出力ノードを有する。この例では、メッセージタイプIDがMT001からMT100までのメッセージタイプに対応する100個の入力ノードが設けられ、さらに診断ナレッジIDがDN001からDN050までの50個の入力ノードが設けられている。
学習モデル生成フェーズ(S12)で、学習モデル生成部392は、教師データの各サンプルについて、サンプルに含まれるメッセージタイプおよび診断ナレッジに対応する入力ノードに「1」を設定し、それ以外の入力ノードに「0」を設定する。また、検出結果が「成功」である場合に出力ノードに「1」を設定し、検出結果が「失敗」である場合に出力ノードに「0」を設定する。そして、学習モデル生成部392は、各サンプルに関して重みデータを調整する。重みデータは、学習モデル記憶部396に記憶される。
たとえば、あるインシデントにおいて発生したメッセージが、メッセージタイプIDがMT010、MT020およびMT030のメッセージタイプに分類され、診断ナレッジIDがDN040の診断ナレッジによって診断した結果、障害を検出できなかったことを示すサンプルがあった場合、メッセージタイプIDのMT010に対応する入力ノード、MT020に対応する入力ノードおよびMT030に対応する入力ノードに「1」を設定し、メッセージタイプIDのMT001~MT009に対応する各入力ノード、MT011~MT019に対応する各入力ノード、MT021~MT029に対応する各入力ノードおよびMT031~MT100に対応する各入力ノードに「0」を設定する。さらに、診断ナレッジIDのDN040に対応する入力ノードに「1」を設定し、診断ナレッジIDのDN001~DN039に対応する各入力ノードおよびDN041~DN050に対応する各入力ノードに「0」を設定し、検出結果に対応する出力ノードに「0」を設定する。そして、重みデータを調整する。
さらに、同じインシデントに関して、診断ナレッジIDがDN041の診断ナレッジによって診断した結果、障害を検出できたことを示すサンプルがあった場合、各メッセージタイプIDに対応する入力ノードについては、前回と同様に設定し、診断ナレッジIDのDN041に対応する入力ノードに「1」を設定し、診断ナレッジIDのDN001~DN040に対応する各入力ノードおよびDN042~DN050に対応する各入力ノードに「0」を設定し、検出結果に対応する出力ノードに「1」を設定する。そして、重みデータを調整する。
このようにして、ニューラルネットワークで最適解となる重みデータを学習させる。重みデータは、学習モデル記憶部396に記憶される。ニューラルネットワークを用いた学習の手順自体は、従来技術である。
続いて、学習モデル適用フェーズ(S14)について説明する。学習モデル適用フェーズ(S14)では、リコメンド処理部364は、メッセージ検索部365を用いずに、学習モデル利用部398を用いる。
図22は、学習モデルを利用したリコメンド処理過程を示すフローチャート図である。
まず、メッセージ分類部376が、発生メッセージをメッセージタイプに分類する(S90)。分類方法は、教師データ収集フェーズ(S10)で実績データを記録した場合の分類方法と同様である。
学習モデル利用部398は、各診断ナレッジを候補として、診断ナレッジ毎に学習モデルを利用して検出成功の予測値を求める。そのために学習モデル利用部398は、診断ナレッジを1つずつ特定する(S92)。
学習モデル利用部398は、メッセージタイプおよび候補とする診断ナレッジに対応する入力ノードに「1」を設定し、それ以外の入力ノードに「0」を設定する。そして、学習済みの重みデータを使用してニューラルネットワークの演算を行い、検出結果の出力ノードから候補の診断ナレッジによる検出成功の予測値を得る(S94)。
たとえば、インシデント発生の通知を受けて取得したメッセージを分類した結果、メッセージタイプIDがMT040、MT050およびMT060のメッセージタイプにまとめられ、診断ナレッジIDがDN042の診断ナレッジを用いることを想定する場合、メッセージタイプIDのMT040に対応する入力ノード、MT050に対応する入力ノードおよびMT060に対応する入力ノードに「1」を設定し、メッセージタイプIDのMT001~MT039に対応する各入力ノード、MT041~MT049に対応する各入力ノード、MT051~MT059に対応する各入力ノードおよびMT061~MT100に対応する各入力ノードに「0」を設定する。さらに、診断ナレッジIDのDN042に対応する入力ノードに「1」を設定し、診断ナレッジIDのDN001~DN041に対応する各入力ノードおよびDN043~DN050に対応する各入力ノードに「0」を設定し、学習済みの重みデータを使用してニューラルネットワークの演算を行えば、検出結果に対応するノードから診断ナレッジIDがDN042の診断ナレッジによる検出成功の予測値を得ることができる。
検出成功の予測値は、0から1までの連続値を示す。検出成功の予測値が小さい値であれば、検出成功の可能性が低く、検出成功の予測値が大きい値であれば、検出成功の可能性が高いことを意味する。
学習モデル利用部398は、すべての診断ナレッジについて検出成功の予測値を求めるまで、S92からS96の処理を繰り返す。
リコメンド処理部364は、検出成功の予測値が大きい順に診断ナレッジの列を並び替え、上位から所定数の診断ナレッジをリコメンドするものとして選択する(S98)。なお、検出成功の予測値を、リコメンド指数として用いる。
[変形例1]
変形例1では、実施形態の場合とニューラルネットワークの構成が異なる。変形例1におけるニューラルネットワークには、検出成功と検出失敗に対応する2つの出力ノードを設ける。
図23は、変形例1におけるニューラルネットワークの構成図である。
変形例1におけるニューラルネットワークは、各メッセージタイプおよび各診断ナレッジに対応する複数の入力ノードと、複数の中間ノードと、検出成功と検出失敗に対応する2つの出力ノードを有する。つまり、出力ノードの構成のみが、実施形態の場合と異なる。
学習モデル生成フェーズ(S12)で、学習モデル生成部392は、教師データの各サンプルについて、サンプルに含まれるメッセージタイプおよび診断ナレッジに対応する入力ノードに「1」を設定し、それ以外の入力ノードに「0」を設定する。また、検出結果が「成功」である場合に検出成功の出力ノードに「1」を設定し、検出失敗の出力ノードに「0」を設定する。検出結果が「失敗」である場合には、検出失敗の出力ノードに「1」を設定し、検出成功の出力ノードに「0」を設定する。そして、学習モデル生成部392は、各サンプルに関して重みデータを調整する。このようにして、ニューラルネットワークで最適解となる重みデータを学習させる。重みデータは、学習モデル記憶部396に記憶される。
実施形態で挙げたサンプル例と同様に、あるインシデントにおいて発生したメッセージが、メッセージタイプIDがMT010、MT020およびMT030のメッセージタイプに分類され、診断ナレッジIDがDN040の診断ナレッジによって診断した結果、障害を検出できなかったことを示すサンプルがあった場合、メッセージタイプIDのMT010に対応する入力ノード、MT020に対応する入力ノードおよびMT030に対応する入力ノードに「1」を設定し、メッセージタイプIDのMT001~MT009に対応する各入力ノード、MT011~MT019に対応する各入力ノード、MT021~MT029に対応する各入力ノードおよびMT031~MT100に対応する各入力ノードに「0」を設定する。さらに、診断ナレッジIDのDN040に対応する入力ノードに「1」を設定し、診断ナレッジIDのDN001~DN039に対応する各入力ノードおよびDN041~DN050に対応する各入力ノードに「0」を設定し、検出成功に対応する出力ノードに「0」を設定し、検出失敗に対応する出力ノードに「1」を設定する。そして、重みデータを調整する。
さらに、同じインシデントに関して、診断ナレッジIDがDN041の診断ナレッジによって診断した結果、障害を検出できたことを示すサンプルがあった場合、各メッセージタイプIDに対応する入力ノードについては、前回と同様に設定し、診断ナレッジIDのDN041に対応する入力ノードに「1」を設定し、診断ナレッジIDのDN001~DN040に対応する各入力ノードおよびDN042~DN050に対応する各入力ノードに「0」を設定し、検出成功に対応する出力ノードに「1」を設定し、検出失敗に対応する出力ノードに「0」を設定する。そして、重みデータを調整する。
変形例1の学習モデル適用フェーズ(S14)における学習モデルを利用したリコメンド処理過程について、図22を参考にして説明する。発生メッセージの分類(S90)および診断ナレッジの特定(S92)については、実施形態の場合と同様である。変形例1の場合、S94において検出成功の出力ノードから検出成功の予測値が得られるとともに、検出失敗の出力ノードから検出失敗の予測値も得られる。
実施形態で挙げた適用例と同様に、インシデント発生の通知を受けて取得したメッセージを分類した結果、メッセージタイプIDがMT040、MT050およびMT060のメッセージタイプにまとめられ、診断ナレッジIDがDN042の診断ナレッジを用いることを想定する場合、メッセージタイプIDのMT040に対応する入力ノード、MT050に対応する入力ノードおよびMT060に対応する入力ノードに「1」を設定し、メッセージタイプIDのMT001~MT039に対応する各入力ノード、MT041~MT049に対応する各入力ノード、MT051~MT059に対応する各入力ノードおよびMT061~MT100に対応する各入力ノードに「0」を設定する。さらに、診断ナレッジIDのDN042に対応する入力ノードに「1」を設定し、診断ナレッジIDのDN001~DN041に対応する各入力ノードおよびDN043~DN050に対応する各入力ノードに「0」を設定し、学習済みの重みデータを使用してニューラルネットワークの演算を行えば、検出成功に対応するノードから診断ナレッジIDがDN042の診断ナレッジによる検出成功の予測値を得て、さらに検出失敗に対応するノードから同診断ナレッジによる検出失敗の予測値を得ることができる。
検出成功の予測値は、0から1までの連続値を示す。検出成功の予測値が小さい値であれば、検出成功の可能性が低く、検出成功の予測値が大きい値であれば、検出成功の可能性が高いことを意味する。検出失敗の予測値も、0から1までの連続値を示す。検出失敗の予測値が小さい値であれば、検出失敗の可能性が低く、検出失敗の予測値が大きい値であれば、検出失敗の可能性が高いことを意味する。
学習モデル利用部398は、すべての診断ナレッジについて検出成功の予測値および検出失敗の予測値を求めるまで、S92からS96の処理を繰り返す。
リコメンド処理部364は、検出成功の予測値から検出失敗の予測値を引いた差分を基準値とする。その基準値が大きい順に診断ナレッジの列を並び替え、上位から所定数の診断ナレッジをリコメンドするものとして選択する。この基準値は、-1から1までの連続値を示す。リコメンド指数には、この基準値を用いる。
あるいは、リコメンド処理部364は、1から検出失敗の予測値を引いた差分を基準値としてもよい。その基準値が大きい順に診断ナレッジの列を並び替え、上位から所定数の診断ナレッジをリコメンドするものとして選択する。この基準値は、0から1までの連続値を示す。リコメンド指数に、この基準値を用いてもよい。
[変形例2]
学習モデルにおいて、上述したように診断ナレッジ毎に検出成功の予測値を求めるのではなく、一括して各診断ナレッジにおける検出成功の予測値を求めてもよい。
図24は、変形例2におけるニューラルネットワークの構成図である。
変形例2におけるニューラルネットワークは、各メッセージタイプに対応する複数の入力ノードと、複数の中間ノードと、および各診断ナレッジに対応する複数の出力ノードを有する。そして、変形例2では、教師データのうち検出結果が「成功」であるサンプルのみを用いる。
変形例2の学習モデル生成フェーズ(S12)で、学習モデル生成部392は、検出結果が「成功」である各サンプルについて、サンプルに含まれるメッセージタイプに対応する入力ノードに「1」を設定し、それ以外の入力ノードに「0」を設定する。また、サンプルに含まれる診断ナレッジIDに対応する出力ノードに「1」を設定し、それ以外の出力ノードに「0」を設定する。そして、学習モデル生成部392は、各サンプルに関して重みデータを調整する。このようにして、ニューラルネットワークに最適解となる重みデータを学習させる。重みデータは、学習モデル記憶部396に記憶される。
実施形態で挙げたサンプル例と同様に、あるインシデントにおいて発生したメッセージが、メッセージタイプIDがMT010、MT020およびMT030のメッセージタイプに分類され、診断ナレッジIDがDN040の診断ナレッジによって診断した結果、障害を検出できなかったことを示すサンプルがあった場合、このサンプルは、学習に用いない。
さらに、同じインシデントに関して、診断ナレッジIDがDN041の診断ナレッジによって診断した結果、障害を検出できたことを示すサンプルがあった場合、メッセージタイプIDのMT010に対応する入力ノード、MT020に対応する入力ノードおよびMT030に対応する入力ノードに「1」を設定し、メッセージタイプIDのMT001~MT009に対応する各入力ノード、MT011~MT019に対応する各入力ノード、MT021~MT029に対応する各入力ノードおよびMT031~MT100に対応する各入力ノードに「0」を設定する。さらに、診断ナレッジIDのDN041に対応する出力ノードに「1」を設定し、診断ナレッジIDのDN001~DN040に対応する各出力ノードおよびDN042~DN050に対応する各出力ノードに「0」を設定する。そして、重みデータを調整する。
図25は、変形例2において学習モデルを利用したリコメンド処理過程を示すフローチャート図である。
変形例2における学習モデルの利用は、一つのインシデントに関して1回で済む。まずメッセージ分類部376は、発生メッセージをメッセージタイプに分類する(S100)。分類方法は、教師データ収集フェーズ(S10)で実績データを記録した場合の分類方法と同様である。
学習モデル利用部398は、分類したメッセージタイプに対応する入力ノードに「1」を設定し、それ以外の入力ノードに「0」を設定する。そして、学習済みの重みデータを使用してニューラルネットワークの演算を行い、各出力ノードから診断ナレッジによる検出成功の予測値を得る(S102)。
実施形態で挙げた適用例と同様に、インシデント発生の通知を受けて取得したメッセージを分類した結果、メッセージタイプIDがMT040、MT050およびMT060のメッセージタイプにまとめられたことを想定する場合、メッセージタイプIDのMT040に対応する入力ノード、MT050に対応する入力ノードおよびMT060に対応する入力ノードに「1」を設定し、メッセージタイプIDのMT001~MT039に対応する各入力ノード、MT041~MT049に対応する各入力ノード、MT051~MT059に対応する各入力ノードおよびMT061~MT100に対応する各入力ノードに「0」を設定する。そして、学習済みの重みデータを使用してニューラルネットワークの演算を行えば、各診断ナレッジIDに対応する出力ノードからその診断ナレッジを用いた場合の検出成功の予測値を得ることができる。
検出成功の予測値は、0から1までの連続値を示す。検出成功の予測値が小さい値であれば、検出成功の可能性が低く、検出成功の予測値が大きい値であれば、検出成功の可能性が高いことを意味する。
リコメンド処理部364は、検出成功の予測値が大きい順に診断ナレッジの列を並び替え、上位から所定数の診断ナレッジをリコメンドするものとして選択する(S104)。検出成功の予測値がより大きい診断ナレッジを選択することは、障害検出が成功すると見込まれる診断ナレッジを推定することに相当する。なお、検出成功の予測値を、リコメンド指数として用いる。
[変形例3]
ユーザ端末400を用いずに、保守支援サーバ300の処理だけでインシデント対応を完全自動化してもよい。
変形例3では、保守支援サーバ300のデータ処理部306において、ユーザ端末400と同様のリモート処理部480、診断ナレッジ自動実行部482、子ナレッジ自動実行部484、修復ナレッジ実行部486、構成管理ツール488および完全自動実行制御部(不図示)を有する。また、保守支援サーバ300のデータ格納部308において、ユーザ端末400と同様の診断ナレッジ自動実行プログラム記憶部490、ホスト定義ファイル記憶部492および修復ナレッジ自動実行プログラム記憶部494を有する。
図26は、インシデント対応の完全自動処理過程を示すフローチャート図である。
S110からS114の処理については、図17に示したS20からS24の場合と同様である。
完全自動実行制御部は、リコメンド指標が大きい順に診断ナレッジを特定する(S116)。診断ナレッジ自動実行部482は、特定した診断ナレッジに関する診断ナレッジ自動実行処理を行なう(S118)。診断ナレッジ自動実行処理は、図20に関連して説明したとおりである。修復ナレッジは、診断ナレッジ自動実行処理の中で自動実行される。完全自動実行制御部は、診断ナレッジ自動実行処理による修復結果が「完了」を示す場合には(S120のY)、インシデント対応の完全自動処理を終える。
診断ナレッジ自動実行処理による修復結果が「完了」ではなく「未了」を示す場合には(S120のN)、次にリコメンド指標が大きい診断ナレッジを特定する(S116)。診断ナレッジ自動実行部482は、上述の診断ナレッジ自動実行処理をさらに実行する。
このようにして、修復結果が「完了」になるまでS116からS120の処理を繰り返す。所定数の診断ナレッジについて診断ナレッジ自動実行処理を行なった段階で終了するようにしてもよい。また、使用した診断ナレッジの種類、診断結果および修復結果を記録してもよい。
[その他の変形例]
機械学習アルゴリズムとして、ニューラルネットワークを用いる例を示したが、他の機械学習アルゴリズムを用いてもよい。
学習モデル適用フェーズ(S14)においても実績データを蓄積して、増大した実績データから再度学習モデルを生成するようにしてもよい。
上述の例では、保守員がインシデント対応を行う例を示したが、例えばシステム管理者が構築中のシステムをテストする場合に、診断ナレッジや修復ナレッジを用いてもよい。
診断ナレッジおよび修復ナレッジを、保守員あるいはシステム管理者が作成したり、修正したりしてもよい。ベテランの保守員あるいはシステム管理者が診断ナレッジおよび修復ナレッジを作成し、あるいは修正すれば、さまざまな対応のノウハウが蓄積され、共有される。組織的なレベルアップを図れる面もある。
上述の例の中の図4では、メッセージを分類したメッセージタイプと診断ナレッジIDを入力データと、検出成否を出力データとする教師データによって学習モデルを形成したが、入力データとしては以下のバリエーションであってもよい。以下の一のバリエーションを入力データとする教師データを用いて学習モデルを形成してもよい。
<1>(一又は複数の)メッセージ、(一又は複数の)診断ナレッジID
<2>(一又は複数の)メッセージ、(一又は複数の)診断ナレッジ
<3>(一又は複数の)メッセージ要素、(一又は複数の)診断ナレッジID
<4>(一又は複数の)メッセージ要素、(一又は複数の)診断ナレッジ
<5>(一又は複数の)メッセージ、(一又は複数の)診断ナレッジ要素
<6>(一又は複数の)メッセージ要素、(一又は複数の)診断ナレッジ要素
ここで、メッセージとはテキストを含むメッセージそのものであり、診断ナレッジもテキスト含む診断ナレッジそのものであり、メッセージ要素とはメッセージを構成する要素であって、例えば、キーワードやメッセージの形態素であり、診断ナレッジ要素とは診断ナレッジを構成する要素であって、例えば、キーワードやメッセージの形態素である。
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
本実施形態では、インシデントに伴って発生するメッセージをタイプに分類し、そのタイプを入力変数として用いる学習モデルによって、診断手順による検出成功の見込みを立てるので、情報処理システムにおけるインシデント対応に有効な診断手順を、効率よく選び出しやすくなる。
また、リコメンドされる診断手順を自動的に実行するので、さらに作業効率がよくなる。