(57)【要約】【課題】情報システムで発生したイベントへのガイドの対応づけの判断を向上する技術を提供する。【解決手段】情報システムで発生した事象に関連する文字列で示されたイベントメッセージを含むイベントを監視するイベント監視装置は、文字列で示されたガイドメッセージを含みイベントへの対処方法を示す複数のガイドと、それぞれのガイドのガイドメッセージのイベントメッセージとの類似度に関する閾値とを対応づけて記憶するガイド記憶部と、情報システムからのイベントを記録するイベント記憶部と、イベントに含まれるイベントメッセージとガイドのガイドメッセージとの類似度を計算し、類似度が閾値を超えていたガイドをイベントに対応付けるガイド引き当て部と、を備える。【選択図】図１
2020009154.tif 000002
【特許請求の範囲】
【請求項１】
情報システムで発生した事象に関連する文字列で示されたイベントメッセージを含むイベントを監視するイベント監視装置であって、
文字列で示されたガイドメッセージを含み前記イベントへの対処方法を示す複数のガイドと、それぞれの前記ガイドのガイドメッセージのイベントメッセージとの類似度に関する閾値とを対応づけて記憶するガイド記憶部と、
前記情報システムからの前記イベントを記録するイベント記憶部と、
前記イベントに含まれる前記イベントメッセージと前記ガイドのガイドメッセージとの類似度を計算し、前記類似度が閾値を超えていたガイドを前記イベントに対応付けるガイド引き当て部と、を備えるイベント監視装置。
【請求項２】
前記ガイド引き当て部は、前記ガイドメッセージを構成する単語のうちどの程度の割合の単語が前記イベントメッセージに含まれているかという指標を前記類似度とする、請求項１記載のイベント監視装置。
【請求項３】
前記ガイド引き当て部は、過去の複数のイベントに基づく閾値の学習が可能なガイドについて前記閾値を学習して前記ガイドに対応づけて前記ガイド記憶部に記録し、前記ガイドの閾値が学習済であればその閾値を新規のイベントと前記ガイドとの類似度に対して用い、前記閾値が学習済でなければ学習済である他のガイドの閾値に基づいて推定した閾値を新規のイベントと前記ガイドとの類似度に対して用いる、
請求項１に記載のイベント監視装置。
【請求項４】
前記ガイド引き当て部は、過去の複数のイベントのそれぞれについてイベントメッセージと前記ガイドのガイドメッセージとの類似度を算出し、前記算出された複数の類似度の中に、他の類似度と分離可能な程度に大きい１つまたは複数の類似度からなる部分集合があれば、前記部分集合に含まれる類似度と前記他の類似度とを分離する値を前記ガイドの閾値とする、
請求項３に記載のイベント監視装置。
【請求項５】
前記ガイド引き当て部は、前記閾値が学習済である他のガイドのガイドメッセージを説明変数とし、前記他のガイドの学習済の前記閾値を目的変数として回帰器を生成し、前記回帰器を用いて前記学習済でない閾値を推定する、
請求項３に記載のイベント監視装置。
【請求項６】
前記ガイド引き当て部は、前記イベントに対して、前記イベントのイベントメッセージとガイドメッセージの類似度が閾値を超えるガイドを該当ガイドと判断し、前記イベントのイベントメッセージとガイドメッセージの類似度が閾値を超えないガイドを非該当ガイドと判断し、前記該当ガイドと前記非該当ガイドのそれぞれを前記類似度の順に表示する、
請求項３に記載のイベント監視装置。
【請求項７】
前記ガイド引き当て部は、前記該当ガイドのそれぞれについての判断が正しいか否かを入力可能にし、前記該当ガイドについての前記判断が正しいという入力が得られかつ前記ガイドの閾値が学習済でなければ、前記判断に用いられた前記類似度未満の閾値を前記ガイドに設定して前記ガイドの閾値を学習済とする、
請求項６に記載のイベント監視装置。
【請求項８】
前記ガイド引き当て部は、前記非該当ガイドのそれぞれについての判断が正しいか否かを入力可能にし、前記非該当ガイドについての判断が正しくないという入力が得られかつ前記ガイドの閾値が学習済でなければ、前記判断に用いられた前記類似度未満の閾値を前記ガイドに設定して前記ガイドの閾値を学習済とする、
請求項６に記載のイベント監視装置。
【請求項９】
前記ガイド引き当て部は、前記非該当ガイドのそれぞれについての判断が正しくないという入力が得られかつ前記ガイドの閾値が学習済であれば、前記ガイドのガイドメッセージとして、前記イベントのイベントメッセージを登録する、
請求項８に記載のイベント監視装置。
【請求項１０】
前記ガイド引き当て部は、新たに閾値を学習済とした前記ガイドを含む、閾値が学習済であるガイドのガイドメッセージを説明変数とし、前記ガイドの学習済の前記閾値を目的変数として回帰器を生成し、前記回帰器を用いて前記学習済でない閾値を推定する、
請求項７、８記載のイベント監視装置。
【請求項１１】
情報システムで発生した事象に関連する文字列で示されたイベントメッセージを含むイベントを監視するイベント監視装置であって、文字列で示されたガイドメッセージを含み前記イベントへの対処方法を示す複数のガイドと、それぞれの前記ガイドのガイドメッセージとイベントメッセージとの類似度に関する閾値とを対応づけて記憶し、前記情報システムからの前記イベントを記録し、前記イベントに含まれる前記イベントメッセージと前記ガイドのガイドメッセージとの類似度を計算し、前記類似度が閾値を超えていたガイドを前記イベントに対応付けるイベント監視装置と、
前記イベント監視装置と通信可能に接続し、文字列で示されたガイドメッセージを含み前記イベントへの対処を示す共通ガイドと、前記共通ガイドのガイドメッセージの類似度に関する閾値である共通閾値とを対応づけて記憶する共通ガイド管理装置と、
を有し、
前記イベント監視装置は、前記共通ガイドを前記共通ガイド管理装置からダウンロードし、前記共通ガイドのガイドメッセージと自身が持つ前記複数のガイドのガイドメッセージとの類似度を計算し、類似度が最も高いガイドの閾値として、前記共通ガイドに対応した共通閾値を設定する、
イベント管理システム。
【請求項１２】
前記イベント監視装置は、過去のイベントに基づいて前記ガイドの閾値を学習し、前記ガイドと前記閾値とを互いに対応づけて前記共通ガイド管理装置に送信し、
前記共通ガイド管理装置は、前記イベント管理装置から受信した前記ガイドを共通ガイドとし、前記閾値を共通閾値として互いに対応づけて記憶する、
請求項１１に記載のイベント管理システム。
【請求項１３】
情報システムで発生した事象に関連する文字列で示されたイベントメッセージを含むイベントを監視するためのイベント監視方法であって、
文字列で示されたガイドメッセージを含み前記イベントへの対処方法を示す複数のガイドと、それぞれの前記ガイドのガイドメッセージのイベントメッセージとの類似度に関する閾値とを対応づけて記憶し、
前記情報システムからの前記イベントを記録し、
前記イベントに含まれる前記イベントメッセージと前記ガイドのガイドメッセージとの類似度を計算し、
前記類似度が閾値を超えていたガイドを前記イベントに対応付ける、
ことをコンピュータが実行するイベント監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報システムで発生するイベントを監視する業務を支援する技術に関する。
【背景技術】
【０００２】
情報システム（ＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システム）の運用業務の１つにイベント監視業務がある。企業における基幹業務等に利用される重要なＩＴシステムでは不調や異常などの事象が発生するとイベントを発行するように構成されている。
【０００３】
イベントは、ＩＴシステムに実装されるエージェントと呼ばれるプログラムが発行するデータである。エージェントは、ＩＴシステムを構成する要素、例えばハードウェアあるいはＯＳ（オペレーティングシステム）やミドルウェアなどのソフトウェアを監視対象とし、監視対象の性能や生死といった状態を観測し、また監視対象から出力されるログデータを取得する。観測された状態や取得されたログデータが特定の条件に該当すると、エージェントは、特定の条件に対応する事象の発生を表すイベントを発行する。イベントは、発生した事象を人に伝えるためのデータなので、通常、事象が発生した場所や事象が発生した監視対象や発生した事象などを人が読んで分かるように表した文字列データを含んでいる。この文字列データをイベントメッセージという。エージェントが発行したイベントは管理計算機へ送られる。
【０００４】
管理計算機では各エージェントから受信したイベントを蓄積し、一元的に管理する。また、管理計算機では、監視オペレータ（人間）が各エージェントから受信されるイベントを監視する。監視オペレータは、受信したイベントを１つ１つ確認し、重大な障害につながるイベントを発見すると、上位の管理者へ通報する。監視オペレータがイベントを上位の管理者に通報することをエスカレーションという。監視オペレータは、イベント対応ガイドに従って、エスカレーションの要否を判断する。
【０００５】
イベント対応ガイドには、イベント毎に、そのイベントへの対応方法を示すガイドが記載されている。各ガイドには、対応するイベントのイベントメッセージのサンプルであるガイドメッセージと、当該イベントをエスカレーションすべきか否かの判断基準とが含まれている。
【０００６】
監視オペレータが行う作業としては、管理計算機に新しいイベントが到着すると、まず、そのイベントに合致するガイドをイベント対応ガイドの中から探索する。具体的には、監視オペレータは、文書の目視あるいは文書の検索などを使用して、イベントに含まれているイベントメッセージの内容に近いガイドメッセージを有するガイドを見つけ出す。さらに監視オペレータは、見つけ出したガイドに含まれている判断基準に従ってエスカレーションの要否を判断し、必要に応じてエスカレーションを行う。
【０００７】
イベント監視業務には、以上のようなイベントの監視に関する一連の業務が含まれる。イベント監視業務を適切に継続することで、ＩＴシステムの障害を早期に発見し、適切に対応することが可能となる。言い換えれば、ＩＴシステムが運用されている限り監視オペレータは常にイベント監視業務を行う必要がある。そのため、イベント監視業務の人件費は非常に大きいものとなっている。
【０００８】
特に、監視オペレータがイベントに対応するガイドを見つけ出す作業に多大なコストがかかっている。監視対象のＩＴシステムが大規模であったり、監視対象のＩＴシステムのシステム数が多かったりすれば、イベント対応ガイドに含まれるガイドの個数も数千から数万に及ぶこともあり、イベントに対応するガイドを探す作業に長時間かかる場合がある。作業時間の増大はコストを増大させるだけでなく、障害への対応が遅れる要因にもなる。
【０００９】
そのためイベント監視業務をコンピュータで支援する技術が提案されている。特許文献１には、イベントメッセージとガイドメッセージを文字列として比較し、イベントメッセージに類似するガイドメッセージを自動的に特定する技術が開示されている。特許文献１の技術は、ログに出力された各行の文字列同士を比べ、行同士の近さを計算するものである。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】ＵＳ２０１４／０３２４８６５Ａ１
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１の技術を用いれば、イベントメッセージに類似するガイドメッセージを自動的に特定することができる。これによりイベントに対してガイドを見つけ出す監視オペレータの作業を補助しうる。
【００１２】
しかしながら、ＩＴシステムから出力されるイベントの中にどのガイドにも該当しないイベントが含まれている場合があり、またその一方で、複数のガイドに該当するイベントが含まれている場合もある。特許文献１の技術は、イベントメッセージに類似するガイドメッセージを特定するものなので、どのガイドにも該当しないイベントに対してガイドを対応づけて提示してしまったり、複数のガイドに該当するイベントに１つだけしかガイドを提示しなかったりといった問題が生じうる。
【００１３】
本発明の目的は、情報システムで発生したイベントへのガイドの対応づけの判断を向上する技術を提供することである。
【課題を解決するための手段】
【００１４】
本発明に1つの態様によるイベント管理装置は、情報システムで発生した事象に関連する文字列で示されたイベントメッセージを含むイベントを監視するイベント監視装置であって、文字列で示されたガイドメッセージを含みイベントへの対処方法を示す複数のガイドと、それぞれのガイドのガイドメッセージのイベントメッセージとの類似度に関する閾値とを対応づけて記憶するガイド記憶部と、情報システムからのイベントを記録するイベント記憶部と、イベントに含まれるイベントメッセージとガイドのガイドメッセージとの類似度を計算し、類似度が閾値を超えていたガイドをイベントに対応付けるガイド引き当て部と、を備える。
【発明の効果】
【００１５】
ガイド毎に類似度の閾値を設け、ガイドとの類似度が閾値を越えたイベントに対して、ガイドを引き当てるので、イベントに対してガイドを引き当てるか否かをガイド毎に適切に判断することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態によるイベント監視システムの概要を説明するための図である。
【図２】実施例１に係わるイベント監視システムの構成を示すブロック図である。
【図３】イベントテーブル２００の構成例を示す図である。
【図４】ガイドテーブル３００の構成例を示す図である。
【図５】ガイド引き当て結果テーブル４００の構成例を示す図である。
【図６】ガイド引き当てプログラム６００が、過去のイベントデータから自動的なガイド引き当てのための閾値学習処理の一例を示すフローチャートである。
【図７】図６の処理の一部であるイベントメッセージとガイドメッセージの類似度スコアを算出する処理を示す補足図である。
【図８】閾値推定用回帰器７１０の作成と閾値推定の流れについて説明するための図である。
【図９】新着イベントに対するガイド引き当て処理の流れの一例を示すフローチャートである。
【図１０】新着イベントに対するガイド引き当て結果へのフィードバックにより閾値を調整する処理の一例を示すフローチャートである。
【図１１】フィードバックを入力する画面例を示す図である。
【図１２】新着イベントに対するガイド引き当て結果を表示する画面例を示す図である。
【図１３】実施例２に係わるイベント監視システムの構成を示すブロック図である。
【図１４】リモート登録条件テーブル１３００の構成例を示す図である。
【図１５】ローカルサイトにてリモートサイトから学習済みのガイドのデータをダウンロードして格納する処理の流れの一例を示すフローチャートである。
【図１６】ローカルサイトで学習により取得されたガイドしたガイドデータをリモートサイトへアップロードする処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
本発明の実施形態について説明する。
【００１８】
図１は、本実施形態によるイベント監視システムの概要を説明するための図である。イベント監視システム２３は、概略構成として、イベント管理部２１、ガイド引き当て部２２、イベントテーブル２００、およびガイドテーブル３００、を有している。イベント監視システム２３は、ＩＴシステム（不図示）で発生した事象に関連する文字列で示されたイベントメッセージを含むイベントを監視するためのコンピュータシステムである。イベントはＩＴシステムで発行され、イベント監視システム２３はそれを受信して処理する。
【００１９】
イベント監視システム２３は、様々なイベントに対する対処方法を示す様々なガイドをガイドテーブル３００に予め格納している。ガイドには、イベントに対する対処方法を文字列で記載したガイドメッセージが含まれている。また、ガイドテーブル３００は、各ガイドに対応付けて、そのガイドのガイドメッセージとイベントメッセージとの類似度に関する閾値を記録することができるようになっている。ガイドメッセージとイベントメッセージとの類似度は、類似度スコアともいい、ガイドメッセージとイベントメッセージとの類似の度合いを示す指標であり、高い値であるほど類似の度合いが高いことを示す。
【００２０】
ＩＴシステムからイベントが発行されると、イベント監視システム２３は、そのイベントをイベントテーブル２００にて記録するとともに、ガイド引き当て部２２により、そのイベントに含まれている文字列で示されたイベントメッセージ１０と、ガイドテーブル３００に格納されている各ガイドのガイドメッセージ１１との類似度を算出し、その類似度が閾値を越えていたら、そのイベントに対する対処方法がそのガイドに示されていると判断し、そのイベントとそのガイドを対応付ける。
【００２１】
本実施形態では本構成により、イベントに対してガイドを引き当てるか否かをガイド毎に適切に判断することが可能となっている。
【００２２】
以下の説明では、そのイベントに対する対処方法がそのガイドに示されている場合に、そのイベントにそのガイドが該当すると表現することがある。また、あるイベントに該当するガイドを見つけ出して対応付けることを、イベントにガイドを引き当てると表現することがある。
【００２３】
ここでは本実施形態のイベント監視システム２３による閾値の設定と、その閾値を使用したガイド引き当て処理の概要について説明する。
【００２４】
イベント監視システム２３は、イベント管理部２１により、ＩＴシステムで過去に発行されたイベントをイベントテーブル２００に蓄積する。イベント監視システム２３は、このイベントテーブル２００に蓄積したイベントのデータを使用して、ガイドテーブル３００の各ガイドについてイベントへの引き当ての要否を判断するための閾値を設定する。
【００２５】
イベント監視システム２３は、ガイド引き当て部２２により、ガイドテーブル３００のガイドメッセージ１１と、イベントテーブル２００に蓄積された過去のイベントのイベントメッセージである過去イベントメッセージ１２との類似の程度を示す類似度スコア１４を計算する類似度スコア計算処理１３を実行する。
【００２６】
ここで、過去イベントメッセージ１２の中にあるガイドを引き当てるべきイベントのイベントメッセージがあれば、その過去イベントメッセージ１２とそのガイドのガイドメッセージ１１の組の相互の類似度を示す類似度スコアは、他のイベントメッセージとガイドメッセージの組の相互の類似度を示す類似度スコアよりも高い値を示すと想定される。
【００２７】
ガイド引き当て部２２は、あるガイドメッセージ１１と各過去イベントメッセージ１２との類似度を高い値の群（部分集合）と低い値の群に分離し、それら２つの群を分離できるような閾値を設定する。過去イベントメッセージ１２を利用して、ガイド毎にガイドメッセージとイベントメッセージとの類似度を分離できるように閾値を決めるので、イベントに該当するか否かをガイド毎に適切に判断可能な閾値を設定することができる。
【００２８】
イベント監視システム２３は、ガイド引き当て部２２により、その設定した閾値による判断結果を管理者へ提示する。例えば、類似度が閾値に近い値を示したイベントとガイドの組を提示すればよい。類似度を高い値の群と低い値の群に分離するにはクラスタ分析などの手法を用いればよい。
【００２９】
提示された判断結果が妥当か否かを表すフィードバック１５の入力が管理者に促される。管理者は、提示された結果に対して、ガイド別に、イベントへの引き当てが妥当か否かをフィードバック１５としてイベント監視システム２３に入力する。
【００３０】
類似度を高い値の類似度の部分集合と低い値の部分集合に分離する閾値が設定できたガイドについて閾値が学習済とし、そのような閾値が設定できなかったガイドについて閾値が未学習としてもよい。しかし、ここでは管理者の判断を経ることとする。提示された結果を管理者が正しい（妥当）と判定したガイドは、閾値が学習済みとなる。提示された結果を管理者が正しいと判定しなかったガイドは、閾値が未学習となる。過去のイベントの中に、そのガイドを引き当てるべきイベントがなかった場合には、類似度を高い値の群と低い値の群に分離することができないと想定される。その場合も、そのガイドは閾値が未学習となる。このように本実施形態によれば、過去のイベントの中に引き当てるべきイベントが存在していたガイドについては、過去のイベントのデータを用いて、そのガイドの閾値を容易にかつ適切に設定することができる。
【００３１】
次に、イベント監視システム２３は、ガイド引き当て部２２により、新着イベントに対するガイドの引き当てを行う。イベント監視システム２３は、新着イベントメッセージ１０に対して、上述したように閾値を設定したときと同様にして、その新着イベントメッセージ１０と各ガイドメッセージ１１との類似度スコアを計算する処理である類似度スコア計算処理１３を行う。
【００３２】
イベント監視システム２３は、閾値が既に学習済みであるガイドのガイドメッセージ１１については、新着イベントメッセージ１０との類似度スコア１４が当該閾値（学習済の閾値１７）を超過するか否か確認する（閾値判定処理１８）。
【００３３】
類似度スコアが閾値を超過していれば、イベント監視システム２３は、当該ガイドメッセージ１１を含むガイドは、当該新着イベントメッセージ１０を含むイベントに対して引き当てるべきものと判定する。
【００３４】
一方、イベント監視システム２３は、閾値が未学習であるガイドについては、学習済の他のガイドの閾値を基に閾値を推定し（閾値推定処理１９）、閾値を推定したガイドのガイドメッセージ１１と新着イベントメッセージ１０との類似度スコアが、推定した閾値を超過していれば、イベント監視システム２３は、当該ガイドメッセージ１１を含むガイドは、当該新着イベントメッセージ１０を含むイベントに対して引き当てるべきものと判定する。
【００３５】
このとき、イベント監視システム２３は、閾値の推定を、閾値が既に学習済みのガイドのガイドメッセージ１１とその閾値との対応関係を学習することにより行う。これは、ガイドメッセージ同士の文言が似ていれば、そのガイドメッセージを含むガイドの閾値同士も似るという性質を利用したものである。閾値を推定することで、閾値を未学習のガイドのガイドメッセージについても、該当しないイベントに対して不要に引き当てることを低減することができる。またその結果、監視オペレータに対して、イベントに対する正しくないガイドを提示して、誤りを正すフィードバックの入力させる手間を低減できる。
【００３６】
以下ではいくつかの実施例について説明する。
【実施例１】
【００３７】
図２は、実施例１に係わるイベント監視システムの構成を示すブロック図である。イベント監視システムは管理計算機１００とディスプレイ１０５を備えており、ＩＴシステム１２０からのイベントを監視する。ＩＴシステム１２０の中には複数の計算機１３０で構成されているものもある。
【００３８】
管理計算機１００は、イベント管理プログラム５００とガイド引き当てプログラム６００を実行する計算機である。上述したイベント管理部２１はイベント管理プログラム５００により実現され、上述したガイド引き当て部２２はガイド引き当てプログラム６００により実現される。
【００３９】
管理計算機１００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１１０を介して、監視対象であるＩＴシステム１２０と接続されている。管理計算機は、ＣＰＵ１０１、メモリＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０３、ディスプレイ１０５を備える。ＨＤＤ１０３には、イベント管理プログラム５００およびガイド引き当てプログラム６００と、これらのプログラムが参照するデータを記録したイベントテーブル２００、ガイドテーブル３００、およびガイド引き当て結果テーブル４００が格納される。イベント管理プログラム５００、ガイド引き当てプログラム６００は、メモリ１０２へロードされ、ＣＰＵ１０１上で実行される。
【００４０】
ＩＴシステム１２０は監視対象である。ＩＴシステム１２０上のエージェント（不図示）が発行するイベントは管理計算機１００にて受信される。監視オペレータがディスプレイ１０５の表示を見ながらイベント監視業務を行う。
【００４１】
ＩＴシステム１２０は、一例として複数の計算機１３０とその上で動作するソフトウェアプログラム（図示せず）を有して構成される。計算機１３０は、ハードウェアとしては、管理計算機１００と同様の構成要素を持つ計算機である。計算機１３０上では、ＯＳ（不図示）やミドルウェア（不図示）、各種の業務プログラム（不図示）、それらハードウェアおよびソフトウェアの動作を監視するエージェント（不図示）が動作する。エージェントは、それぞれの監視対象の性能や生死が特定の条件を満たすと、イベントを生成し、管理計算機１００へ送付する。
【００４２】
管理計算機１００上のイベント管理プログラム５００は、イベントを受信し、イベントテーブル２００へ格納する。ガイド引き当てプログラム６００は、ガイドテーブル３００からガイドのデータを読み込み、イベントテーブル２００内の新着イベントに対するガイド引き当て処理を行い、その結果をガイド引き当て結果テーブル４００へ格納する。
【００４３】
イベントと、同イベントに対するガイド引き当ての結果とは、ディスプレイ１０５に表示される。監視オペレータは、その表示を確認し、イベントに対するガイドの引き当てが妥当であるか否か判断し、引き当てに誤りがあれば、不図示の入力装置を用いて、その旨のフィードバックを管理計算機１００に入力する。
【００４４】
図３は、イベントテーブル２００の構成例を示す図である。イベントテーブル２００は、エージェントから送られた各イベントが持つデータを格納するためのテーブルである。イベントテーブル２００には、イベントごとに行が作成される。イベントテーブル２００の各行は、例えば、個々のイベントを一意に識別するイベントＩＤ２０１、イベントの発生時刻２０２、発生した事象を人に伝えるための文字列で示されたイベントメッセージ２０３、イベントが発生した計算機１３０を示す発生元２０４、イベントを発行したエージェントの種類を示すエージェント種別２０５が格納される。エージェント種別２０５には、例えば、ＯＳを監視するエージェントであれば「ＯＳ」、データベース等のミドルウェアを監視するエージェントであれば「ミドル」、ユーザ定義のエージェントであれば「ユーザ」というように、エージェトの種別を短縮した情報が格納される。
【００４５】
また、イベントテーブル２００は、図３に示したデータに限らず、イベントが持つ多様な属性データを格納することができる。
【００４６】
図４は、ガイドテーブル３００の構成例を示す図である。ガイドテーブル３００は、監視オペレータがイベントをエスカレーションすべきか否かを判断するのに使用するガイドのデータと、イベントに対する自動的なガイドの引き当てに使われる閾値などのデータと、を格納するテーブルである。エスカレーションは、監視オペレータがイベントを上位の管理者に通報することである。監視オペレータは、イベント対応ガイドに含まれるガイドに従って、エスカレーションの要否を判断し、エスカレーション先の管理者に通報する。
【００４７】
ガイドテーブル３００には、ガイドごとに行が作られる。ガイドテーブル３００の各行は、例えば、ガイドに対して一意に付与された識別子であるガイドＩＤ３０１、当該ガイドに対応するイベントのイベントメッセージのサンプルであるガイドメッセージ３０２、受信したイベントのエスカレーション要否を判定するためのルールである判定ルール３０４、エスカレーション先の部署である通報先３０３が格納される。
【００４８】
判定ルール３０４は、図に示すような、プログラムでエスカレーション要否を判定するためのＩＦ−ＴＨＥＮルールであってもよいし、人が読んで判定するための基準を文字列で記載した文章であってもよい。
【００４９】
ガイドテーブル３００には、イベントに対する自動的なガイドの引き当てを行うために使用するデータである、閾値３０５、学習完了フラグ３０６、必須キーワード３０７、およびエージェント種別３０８が格納される。閾値３０５は、当該ガイドの引き当ての判定に使われる数値である。イベントメッセージとガイドメッセージとの類似度に関する閾値であり、図の例では０．０〜１．０までの数値が格納されるものとなっている。閾値が未学習であり、閾値に有効な数値がない場合は、「n/a」が格納される。
【００５０】
学習完了フラグ３０６は、当該ガイドをイベントに自動的に引き当てるための閾値の学習が完了したか否かを示すデータである。図の例では、学習が完了していれば「Ｙ」、完了していなければ「Ｎ」が格納される。
【００５１】
必須キーワード３０７には、当該ガイドを引き当てるイベントメッセージに必ず含まれる文字列（複数可能）を格納する。
【００５２】
必須キーワード３０７には、当該ガイドを引き当てるべきイベントのイベントメッセージに必ず含まれる単語の文字列を格納する。１つのガイドに対して複数の単語を設定することが可能である。当該ガイドを引き当てるべきイベントのイベントメッセージに必ず含まれる単語がない場合には、必須キーワード３０７には「なし」が格納される。
【００５３】
エージェント種別３０８は、上述したイベントテーブル２００におけるエージェント種別２０５と同じ情報であり、発生したイベントのイベントメッセージ２０３をもとにして当該ガイドの行を作成した際に、もとにしたイベントを発行したエージェントのエージェント種別２０５の値をそのまま格納する。これらの、イベントに対する自動的なガイドの引き当てに使用されるデータの具体的な使い方は後ほど詳しく説明する。
【００５４】
図５は、ガイド引き当て結果テーブル４００の構成例を示す図である。ガイド引き当て結果テーブル４００は、イベントごとに自動的なガイドの引き当てが行われた結果と、その結果が妥当か否かに関する監視オペレータからのフィードバックのデータを格納するテーブルである。
【００５５】
ガイド引き当て結果テーブル４００は、各行にイベントに対するガイド引き当て結果が格納される。ガイド引き当て結果テーブル４００の各行には、例えば、イベントＩＤ４０１、当該イベントに対して引き当てたガイドのガイドＩＤ４０２、イベントメッセージ２０３と当該ガイドのガイドメッセージ３０２との類似性を示す数値である類似度スコア４０３、ガイドを引き当てるべきか否かを示す引き当て要否４０４、エスカレーション要否の判定結果である通報要否４０５、監視オペレータからのフィードバック結果を格納するフィードバック４０６を格納する。イベントＩＤ４０１は、イベントテーブル２００のイベントＩＤ２０１と同じ形式のものである。ガイドＩＤ４０２は、ガイドテーブル３００のガイドＩＤ３０１と同じ形式のものである。ガイド引き当て結果テーブル４００に含まれる、これらのデータの算出方法や、格納される値については後ほど詳しく説明する。
【００５６】
１つのイベントに対して、複数のガイド引き当て結果が格納されてよい。例えば、図５では、イベントＩＤが「Ｅ１」である１つのイベントに対して、ガイドＩＤが「Ｇ１」のガイドのガイド引き当て結果と、ガイドＩＤが「Ｇ３」のガイドのガイド引き当て結果が格納されている。また、ガイド引き当て結果として、イベントに対してガイドの引き当て要すなわちそのイベントにそのガイドが該当すると判断した場合だけでなく、イベントに対してガイドを引き当て不要と判断した場合にも、そのイベントとガイドとのガイド引き当て結果をも格納してよい。図５の例では、イベントＩＤが「Ｅ２」のイベントに対してガイドＩＤが「Ｇ９９」であるガイドを引き当てる必要がないと判断した、ガイド引き当て結果が示されている。
【００５７】
以下、実施例１におけるいくつかの処理の流れを説明する。
【００５８】
まず、図６および図７を用いて、ガイド引き当てプログラム６００による閾値学習処理を説明する。図６は、ガイド引き当てプログラム６００が、過去のイベントデータから自動的なガイド引き当てのための閾値学習処理の一例を示すフローチャートである。図７は、図６の処理の一部であるイベントメッセージとガイドメッセージの類似度スコアを算出する処理を示す補足図である。
【００５９】
まず、図７を用いて、類似度スコアの算出方法の一例を説明する。図７には、イベントメッセージ２０３とガイドメッセージ３０２の類似度スコアを算出する処理の流れが示されている。
【００６０】
はじめに、ガイド引き当てプログラム６００は、イベントメッセージ２０３とガイドメッセージ３０２の単語行列をそれぞれ作成する。単語行列とは、各文書（ここではメッセージ）に含まれる単語を要素として、１つ以上の文書をベクトルで表したものである。単語行列の作成方法には、例えば、複数の文書をそれぞれ単語に分割し、それぞれの文書を行とし各単語を列とし、ある文書がある単語を持っている場合その文書とその単語で特定される行列のセルを「１」とし、それ以外のセルを「０」とする方法がある。単語行列は、他の方法で作成してもよい。例えば、連続する単語を一つの列として構成してもよい（Ｎｇｒａｍ）。また、セルの値を０または１ではなく、単語の出現頻度を考慮した値としてもよい。
【００６１】
図７の例では、ガイドＩＤが「Ｇ１」のガイドメッセージ３０２は、「Ｗｏｒｄ１  Ｗｏｒｄ２  Ｗｏｒｄ３」という３つの単語を有する文字列である。この場合、単語行列におけるＧ１の行は、Ｗｏｒｄ１〜３の列が「１」となり、それ以外の列は「０」となる。また、このガイドメッセージ３０２の単語数７０１は「３」となる。但し、単語数７０１の列は、単語行列には含まれない。
【００６２】
ガイド引き当てプログラム６００は、同様にして、イベントメッセージ２０３からも単語行列を作成する。図５の例ではイベントメッセージ２０３は、イベントＩＤが「Ｅ１」であるイベントメッセージの１つのみである。図に示すイベントＩＤが「Ｅ１」のイベントメッセージ２０３は「Ｗｏｒｄ１  Ｗｏｒｄ２  Ｗｏｒｄ５」という３つの単語を有する文字列である。したがって、作成される単語行列は１行のみであり、そのＷｏｒｄ１、２、５の列が「１」である。
【００６３】
次に、ガイド引き当てプログラム６００は、ガイドメッセージの単語行列の各行とイベントメッセージの単語行列の行とを比較し、共通の単語を数える。図７の例では、ガイドＩＤが「Ｇ１」の行とイベント「Ｅ１」の行とにおいて、Ｗｏｒｄ１の列とＷｏｒｄ２の列はどちらも「１」であり、Ｗｏｒｄ３の例とＷｏｒｄ５の例は片方だけが「１」である。そのため共通する単語の個数（一致単語数）は「２」となる。
【００６４】
次に、ガイド引き当てプログラム６００は、各ガイドに含まれる単語の個数である単語数７０１に対する一致単語数７０２の割合を求め、類似度スコア７０３とする。ガイドＩＤが「Ｇ１」のガイドの単語数が「３」であり、ガイドＩＤが「Ｇ１」のガイドとイベントＩＤが「Ｅ１」のイベントとの一致単語数が「２」であることから、ガイドＩＤが「Ｇ１」のガイドのガイドメッセージとイベントＩＤが「Ｅ１」のイベントのイベントメッセージの類似度スコア７０３は２／３＝０．６７となる。
【００６５】
ここではメッセージ同士の類似度スコアを算出する方法の一例を説明したが、類似度スコアの算出する方法は他にもあり、算出方法をこの例に限定するものではない。なお、類似度スコアの算出は、以後、いくつかの処理の中に現れるが同じ処理によるものとする。
【００６６】
本実施例では、上述のように、ガイド引き当てプログラム６００は、ガイドメッセージを構成する単語のうちどの程度の割合の単語がイベントメッセージに含まれているかという指標を類似度として用いる。これにより、ガイドメッセージとイベントメッセージとが共有する単語を探索する単純な処理でガイドメッセージとイベントメッセージの類似度を算出することができる。
【００６７】
図６には、ガイド引き当てプログラム６００が、過去のイベントデータから自動的なガイド引き当てのための閾値学習処理の一例が示されている。この処理は、例えば、管理計算機１００によるイベントにガイドを自動的に引き当てる機能を初めて有効にしたときに実行される。あるいは本処理を定期的に実行するようにしてもよい。例えば、後述するような新規のイベントを受信するごとに、監視オペレータによるフィードバックの入力を取得する処理を適用しない場合に本処理を定期的に実行してもよい。
【００６８】
本処理は、所与の期間（例えば３ヶ月）の過去に発生したイベントのイベントメッセージと、イベント対応ガイドに含まれる全てのガイドのガイドメッセージとを総当たりで類似度スコアを計算し、得られた類似度スコアのデータをガイド毎に分析し、ガイドをイベントに引き当てるか否かを判定する閾値を決定する処理である。
【００６９】
過去のイベントの中に、あるガイドを引き当てるべきイベントがあれば、そのイベントのイベントメッセージとそのガイドのガイドメッセージとの類似度を示す類似度スコアは、そのガイドの他のイベントとの類似度を示す類似度スコアよりも高くなると考えられる。そのような高い類似度スコアを示す場合には閾値を超えることになるように閾値を自動的に設定する。
【００７０】
ステップＳ１００では、ガイド引き当てプログラム６００は、ガイドテーブル３００の全行の内、未処理のガイドを１つ選択する。
【００７１】
ステップＳ１０１では、ガイド引き当てプログラム６００は、選択したガイドのガイドメッセージ３０２の単語行列を作成する。
【００７２】
ステップＳ１０２では、ガイド引き当てプログラム６００は、イベントテーブル２００から、過去イベントデータを取得する。すなわち、イベントテーブル２００の発生時刻２０２を参照し、発生時刻が所与の期間内であるイベントデータを、特にそのイベントのイベントメッセージ２０３を読み込む。このとき、所与の期間内のイベントのデータではなく、蓄積されている全てのイベントのデータを読み込むことにしても良い。
【００７３】
ステップＳ１０３では、ガイド引き当てプログラム６００は、読み込んだ各イベントメッセージ２０３の単語行列を作成する。
【００７４】
ステップＳ１０４では、ガイド引き当てプログラム６００は、ステップＳ１０１で作成したガイドメッセージ３０２の単語行列と、ステップＳ１０３で作成したイベントメッセージ２０３の単語行列とを比較し、ガイドメッセージ３０２とイベントメッセージ２０３との類似度を示す類似度スコアを算出する。
【００７５】
ステップＳ１０５では、ガイド引き当てプログラム６００は、ステップＳ１００で選択したガイドが該当する可能性のあるイベントが存在するか否か判定する。類似度スコアが所定の足きり閾値以上のイベントが１つ以上存在するか否かをチェックする。選択されているガイドのガイドメッセージと、読み込んだ全てのイベントのイベントメッセージとの類似度スコアが足きり閾値未満であれば、ガイド引き当てプログラム６００は、選択されているガイドのガイドメッセージと、読み込んだイベントのイベントメッセージとの類似度スコアのうち１つでも足きり閾値以上ものもがあれば、ガイド引き当てプログラム６００は、そのガイドを引き当てるべきイベントが存在する可能性があると判定し、ステップＳ１０５へ進む。
【００７６】
ここで足きり閾値は、例えば０．５といった類似度スコアの所定の程度を示す数値である。足切り閾値が０．５の場合、ガイドメッセージ３０２とイベントメッセージ２０３に共通する単語が、ガイドメッセージ３０２の単語数の半分以上であれば、そのガイドメッセージ３０２とそのイベントメッセージ２０３の類似度スコアが足切り閾値を超えることになる。ここで上げた足きり閾値はひつつの例であり、実行環境に合わせた、他の数値でも構わない。
【００７７】
なお、類似度スコアが所定の足きり閾値以上のイベントが１つ以上存在すると判定された場合、ガイド引き当てプログラム６００は、類似度スコアが足きり閾値未満であった全てのイベントを、選択されているガイドを引き当てる必要のないものと分類する。そうすることにより、以下に示すステップＳ１０６およびステップＳ１０７の処理対象を削減することができる。
【００７８】
ステップＳ１０６では、ガイド引き当てプログラム６００は、選択されているガイドを引き当てるべきイベントが１つ以上存在する可能性がある場合、ガイドを引き当てるイベントと、そうでないイベントとを類似度スコアによって分離するための仮の閾値を作成する。仮の閾値を作成する方法には様々な方法が考えられる。例えば、選択されているガイドのガイドメッセージと全てのイベントのイベントメッセージとの類似度スコアの最大値から所定の数値（例えば０．０５などの小さな値）を減算する、といった簡易な方法でもよい。あるいは、選択されているガイドのガイドメッセージとの類似度スコアが最大であるイベントのイベントメッセージに含まれガイドメッセージの単語と一致した単語のうち、所定の数（例えば１〜２個）の単語が一致しなかったと仮定して算出した類似度スコアを仮閾値としてもよい。また、選択されているガイドのガイドメッセージと全てのイベントのイベントメッセージとの類似度スコアのヒストグラムを作成し、ヒストグラムに生じる複数のグループのうち最も類似度スコアが高いグループと他のグループとを分離するように仮閾値を設定してもよい。
【００７９】
ステップＳ１０７では、ガイド引き当てプログラム６００は、選択されているガイドのガイドメッセージと各イベントのイベントメッセージとの類似度スコアを仮閾値と比較することにより、イベントを、選択されているガイドを引き当てるべきイベント（引き当て要）と、引き当てる必要のないイベント（引き当て不要）とに分類する。選択されているガイドのガイドメッセージとの類似度スコアが、ステップＳ１０６で設定した仮閾値以上であれば、そのガイドメッセージを有するガイドを引き当て要に分類し、それ以外のガイドを引き当て不要に分類する。
【００８０】
ステップＳ１０８では、ガイド引き当てプログラム６００は、選択されているガイドについて、引き当て要のイベントと、引き当て不要のイベントとをディスプレイ１０５に表示し、その分類結果が妥当であるか否かを、監視オペレータによるフィードバックの入力として受領する。
【００８１】
図１１は、フィードバックを入力する画面例を示す図である。図１１を参照すると、一括フィードバック８００のペインの中に、表８０１と、ＯＫボタン８５０と、キャンセルボタン８５１とがある。表８０１の各行８１０、８１１、８１２にガイド毎の情報が表示されている。ガイド毎の情報として、そのガイドのガイドＩＤ８２０およびガイドメッセージ８２１に加え、引き当て要のイベントに関する情報と、引き当て不要のイベントに関する情報と、が表示されている。引き当て要のイベントに関する情報および引き当て不要のイベントに関する情報のそれぞれに、ガイド引き当て８２２、イベントメッセージ８２３、および、フィードバック８２４がある。
【００８２】
ガイド引き当て８２２には、ガイドごとに「要」と「不要」がある。「要」の場合、隣のイベントメッセージ８２３に、ステップＳ１０７においてガイド引き当て要に分類されたイベントのイベントメッセージが表示される。
【００８３】
図１１の例では、ガイド引き当て要に分類されたイベントのうち、１つのイベントのイベントメッセージが表示されている。ここでは、この１つのイベントの選択方法として、ガイド引き当て「要」に分類されたイベントのうち、類似度スコアが最も低いイベントを選択する方法が採られる。ただし、１つのイベントメッセージを表示するというには一例にすぎず、表示するイベントメッセージは複数個であってもよい。例えば、全てのイベントのイベントメッセージをスクロール可能に表示してもよい。
【００８４】
ガイド引き当て８２２が「不要」の場合、隣のイベントメッセージ８２３には、ステップＳ１０７においてガイド引き当て不要に分類されたイベントのうち、類似度スコアが最も高い値であったイベントのイベントメッセージが表示される。引き当て不要と判定したイベントの中で類似度スコアが最も高い値のイベントのイベントメッセージを表示し、そのフィードバックを得ることで、閾値が高すぎて本来引き当て要とすべきイベントメッセージが引き当て不要と判定されているかどうかを知得することができる。
【００８５】
ガイド引き当て８２２が「要」と「不要」のいずれの場合も、該当するイベントが存在しない場合、イベントメッセージ８２３に「ｎ／ａ」が表示される。図１１の例では、行８１１において、ガイド引き当て８２２が「要」のイベントが存在しないため、「ｎ／ａ」が表示されている。
【００８６】
フィードバック８２４は、ガイド引き当ての要否の判定結果が妥当か否かを監視オペレータが入力する列である。各行について「ＯＫ」８３０と「ＮＧ」８３１のどちらかを選択できる。判定結果が妥当であれば、「ＯＫ」８３０を、判定結果が妥当でなければ「ＮＧ」８３１を選択する。
【００８７】
「ＮＧ」８３１を選択すると、イベントメッセージ８２３には別のイベントのイベントメッセージが表示される。例えば、ガイド引き当て８２２が「要」の行でフィードバック８２４の「ＮＧ」８３１が選択されると、それまでイベントメッセージ８２３に表示されていたイベントの次に類似度スコアが低いイベントのイベントメッセージが表示される。そして、このとき、ステップＳ１０６で作成された仮閾値は、それまでイベントメッセージが表示されていたイベントがガイド引き当て不要となり、次にイベントメッセージが表示されたイベントがガイド引き当て要となるような値に更新される。
【００８８】
次に、この画面から、必須キーワードを入力するための操作について説明する。図１１の例では、行８１２のガイドメッセージ８２１に「ジョブＪ１が失敗しました」というメッセージ文が設定されている。そして、ガイド引き当て８２２が「要」のイベントメッセージ８２３には「ジョブＪ２が失敗しました」というメッセージ文が表示され、ガイド引き当て８２２が「不要」のイベントメッセージ８２３には「ジョブＪ１が遅延しました」というメッセージ文が表示されている。
【００８９】
ここで、この行８１２に表示されているガイドＩＤがＧ３のガイドは、ジョブ番号の「Ｊ１」のイベントに引き当てるガイドであるとする。したがって、ジョブ番号の「Ｊ１」が一致していることが必須であるが、ガイド引き当て８２２が「要」のイベントメッセージ８２３には、ジョブ番号が「Ｊ２」のイベントが表示されている。イベントメッセージ８２３のジョブ番号の「Ｊ１」の部分以外がガイドメッセージ８２１のメッセージ文と一致しているため類似度スコアは高い値を示すからである。しかし、ガイド引き当て８２２が「要」という判断は誤りである。
【００９０】
このような場合には必須キーワードを設定するのが有効である。そこでガイドメッセージ８２１のメッセージ文において必須キーワードに設定したい単語、ここでは「Ｊ１」の部分８４０を例えばマウスで選択し、マウスを右クリックするとメニュー８４１が開く。メニュー８４１から必須キーワードに登録８４１という項目を選択すると、「Ｊ１」という単語が必須キーワードとして登録され、ガイドメッセージとの類似度スコアが閾値以上であっても「Ｊ１」という単語を含んでいないイベントメッセージを有するイベントには、このガイドが引き当てられないようになる。なお、ここで選択した必須キーワードは、後述するステップＳ１１２において、ガイド引き当てプログラム６００がガイドテーブル３００の必須キーワード３０７へ保存される。
【００９１】
図６へ戻り、ステップＳ１０８以降の処理の説明を続ける。
【００９２】
ステップＳ１０８では、ガイド引き当てプログラム６００は、図１１で説明したようにして入力された、ガイドごとのイベントメッセージに対する引き当ての要否判定が妥当か否かの情報と、必須キーワード（入力された場合）の情報とを受領する。ここで、当該ガイドについて、そのガイドを引き当てるべきイベントと、そのガイドを引き当てる必要がないイベントとが確定する。
【００９３】
ステップＳ１０９では、ガイド引き当てプログラム６００は、選択されているガイドを引き当てるべきイベントが、過去のイベントの中に１つ以上存在しているか否か判定する。例えば、図１１の行８１１のように、ガイド引き当て８２２が「要」のイベントメッセージ８２３が「ｎ／ａ」である場合は、そのガイドを引き当てるべきイベントが１つもないことを意味する。この場合、ガイド引き当てプログラム６００は、ステップＳ１１０へ進む。そのガイドを引き当てるべきイベントが１つ以上ある場合、ガイド引き当てプログラム６００は、ステップＳ１１３へ進む。
【００９４】
ステップＳ１１３〜ステップＳ１１４の処理は、そのガイドをイベントに引き当てるか否かの判定のための閾値の学習ができた場合の処理である。ステップＳ１１０〜ステップＳ１１１の処理は、その閾値の学習ができなかった場合の処理である。
【００９５】
ステップＳ１１０およびステップＳ１１１は、閾値を学習することができなかった場合にガイドテーブル３００における当該ガイドの学習完了フラグ３０６および閾値３０５の値を設定する処理である。ステップＳ１１０では、ガイド引き当てプログラム６００は、当該ガイドの学習完了フラグ３０６の値を「Ｎ」に設定する。ステップＳ１１１では、ガイド引き当てプログラム６００は、閾値３０５を、当該ガイドに対して、ガイド引き当て不要に分類されたイベントの類似度スコアのうち最も高い類似度スコアの値を閾値３０５に設定する。
【００９６】
ステップＳ１１３およびＳ１１４は、閾値を学習することができた場合にガイドテーブル３００における当該ガイドの学習完了フラグ３０６および閾値３０５の値を設定する処理である。ステップＳ１１３では、ガイド引き当てプログラム６００は、当該ガイドの学習完了フラグ３０６を「Ｙ」に設定する。ステップＳ１１４では、ガイド引き当てプログラム６００は、閾値３０５を、ステップＳ１０６で作成した仮閾値とする。
【００９７】
ステップＳ１１２では、ガイド引き当てプログラム６００は、ステップＳ１０８で受領した必須キーワードがあれば、ガイドテーブル３００における当該ガイドの必須キーワード３０７へ、受領した必須キーワードを登録する。
【００９８】
ステップＳ１１５では、ガイド引き当てプログラム６００は、全てのガイドに対して一連の処理を完了したかチェックし、完了していなければステップＳ１００へ戻る。全てのガイドに対して一連の処理が完了していれば、ガイド引き当てプログラム６００は、最後にステップＳ１１６にて、閾値の学習が完了していないガイドの閾値を推定する閾値推定用回帰器７１０を作成し、処理を終了する。
【００９９】
続いて、閾値推定用回帰器７１０について説明する。
【０１００】
図８は、閾値推定用回帰器７１０の作成と閾値推定の流れについて説明するための図である。ここでは閾値推定用回帰器７１０の作成について説明する。閾値推定については後述する。
【０１０１】
閾値推定用回帰器７１０は、閾値の学習が完了していないガイド、すなわち、ガイドテーブル３００の学習完了フラグ３０６が「Ｎ」であるガイドの閾値を推定するものである。閾値推定用回帰器７１０は回帰問題の機械学習により作成される。回帰分析に用いるアルゴリズムは特に限定されない。例えば、線形回帰による回帰分析を行ってもよいし、Ｒａｎｄｏｍ  Ｆｏｒｅｓｔによる回帰分析や、Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｒｅｇｒｅｓｉｏｎあるいはニューラルネットワークによる回帰分析を行ってもよい。
【０１０２】
閾値推定用回帰器７１０の学習による作成は次の手順で行う。
【０１０３】
ガイド引き当てプログラム６００は、まず、ガイドテーブル３００の行のうち、学習完了フラグ３０６が「Ｙ」、つまり閾値の学習が完了したガイドの行を取り出す。ガイド引き当てプログラム６００は、次に、取りだしたガイドのガイドメッセージ３０２を基にガイドメッセージの単語行列７００を作成する。単語行列の作成方法は、例えば、図７を用いて上述した方法でよい。ガイド引き当てプログラム６００は、次に、ガイドメッセージの単語行列７００を説明変数とし、対応するガイドの学習済みの閾値３０５を目的変数として、前述した回帰分析のアルゴリズムを用いて回帰器を作成する。
【０１０４】
そして、この作成した閾値推定用回帰器７１０を用いて、閾値の学習が完了していないガイドの閾値を推定するときは、閾値を推定したいガイドメッセージの単語行列７３０を上述と同様の方法で作成し、その単語行列を閾値推定用回帰器７１０へ入力すると、閾値推定用回帰器７１０から閾値の推定値７２０が出力される。
【０１０５】
本実施例による閾値の推定手法が有効に働く理由を説明する。
【０１０６】
前述のとおり、大規模なＩＴシステムの場合、イベント対応ガイドに含まれるガイドの数が膨大になる。これらガイドの中には、ガイドメッセージの文言が非常に良く似たものが多数ある。そして、ガイドメッセージの文言が類似していると、その引き当て判定用の閾値も似た値になることが多い。閾値推定用回帰器７１０の役割は、あるガイドメッセージの文言と、その確定した学習済の閾値との対応関係を学習し、そのガイドメッセージと文言が似ている他のガイドメッセージの閾値の推定を可能にすることである。これにより、閾値の学習が完了していないガイドメッセージについても不要なガイドを引き当てる回数を低減することができる。その結果、後述する新着イベントに対するガイド引き当て結果が妥当か否かのフィードバックを監視オペレータに入力させる回数を削減することができる。
【０１０７】
図９は、新着イベントに対するガイド引き当て処理の流れの一例を示すフローチャートである。この処理は、イベント管理プログラム５００が、新着イベントを受信してイベントテーブル２００へイベントのデータを登録した後、当該イベントに対する処理として、ガイド引き当てプログラム６００により実行される。
【０１０８】
ステップＳ２００では、ガイド引き当てプログラム６００は、必須キーワード３０７が設定されているガイドのうち、新着イベントのイベントメッセージにその必須キーワード３０７が含まれていないガイドを除外することにより、対象のガイドを絞り込む。その際、ガイド引き当てプログラム６００は、まず、ガイドテーブル３００のデータを読み込み、各ガイドの必須キーワード３０７を取得する。次に、ガイド引き当てプログラム６００は、新着の当該イベントのイベントメッセージと、取得した必須キーワード３０７とを対比し、当該イベントのイベントメッセージに必須キーワード３０７が含まれるガイドを引き当て候補とする。また、ガイド引き当てプログラム６００は、必須キーワード３０７が「なし」であるガイドも引き当て候補とする。また、ガイド引き当てプログラム６００は、必須キーワード３０７に複数の必須キーワードが格納されているガイドについては、全ての必須キーワードが当該イベントのイベントメッセージに含まれているガイドのみを引き当て候補とする。
【０１０９】
ステップＳ２０１では、ガイド引き当てプログラム６００は、ステップＳ２００で引き当て候補とされた全てのガイドのガイドメッセージ３０２と、当該イベントのイベントメッセージとの類似度スコアを計算する。
【０１１０】
ステップＳ２０２では、ガイド引き当てプログラム６００は、計算した類似度スコアが高い順に、ステップＳ２０３〜ステップＳ２０８の処理を未だ行っていないガイドを１つ選択する。
【０１１１】
ステップＳ２０３では、ガイド引き当てプログラム６００は、ステップＳ２０２で選択した当該ガイドの学習完了フラグ３０６を参照し、学習完了フラグ３０６が「Ｙ」であるか「Ｎ」であるかを判定する。学習完了フラグ３０６の値が「Ｙ」であれば、ガイド引き当てプログラム６００はステップＳ２０４へ進む。学習完了フラグ３０６の値が「Ｎ」であればガイド引き当てプログラム６００はステップＳ２０５へ進む。
【０１１２】
ステップＳ２０４では、ガイド引き当てプログラム６００は、当該ガイドの学習済みの閾値、すなわち、閾値３０５を取得する。
【０１１３】
一方、ステップＳ２０５では、ガイド引き当てプログラム６００は、閾値の学習が完了していないため、閾値推定用回帰器７１０を用いて閾値を推定し、推定した推定値を閾値に設定する。閾値の推定方法は、図８を用いた前述の説明の通りである。なお、推定された閾値を用いるのではなく、推定された閾値から一定値を減算して得た値を用いることにしてもよい。例えば、類似度スコアが正規化され、０〜１の範囲の値を取るものである場合に、推定された閾値から０．０５を減算した値を用いることにしてもよい。これは推定された閾値が高すぎて、新着イベントに引き当てるべきガイドを引き当てずに見逃してしまうリスクを低減するものである。
【０１１４】
ステップＳ２０６では、ガイド引き当てプログラム６００は、ステップＳ２０１で算出した類似度スコアと閾値とを比較する。類似度スコアが閾値以上であれば、ガイド引き当てプログラム６００は、当該ガイドは当該イベントに対して引き当てるべきものと判定しステップＳ２０７へ進む。そうでなければ、ガイド引き当てプログラム６００は、引き当て不要と判定し、ステップＳ２０２へ戻る。
【０１１５】
ステップＳ２０７では、ガイド引き当てプログラム６００は、当該ガイドを、当該イベントへ引き当てるべきガイドのリスト、すなわち引き当てリストへ登録する。引き当てリストには複数のガイドが登録可能である。
【０１１６】
ステップＳ２０８では、ガイド引き当てプログラム６００は、引き当てリストに登録されたガイドの個数が所定の数（例えば３個）を超えているか否か判定する。引き当てリストに登録されたガイドの個数が所定の数を超えていなければ、ガイド引き当てプログラム６００はステップＳ２０２へ戻る。引き当てリストに登録されたガイドの個数が所定の数を超えていれば、ガイド引き当てプログラム６００はステップＳ２０９へ進む。本処理は、１つのイベントに対して、あまりに多数のガイドを引き当てることは考えにくいことから、新着イベントに引き当てるガイドの個数に上限を設けるものである。ただし、本処理はオプショナルであり、実施しなくてもよい。
【０１１７】
ステップＳ２０９では、ガイド引き当てプログラム６００は、引き当て結果を引き当て結果テーブル４００へ保存する。引き当て結果テーブル４００のイベントＩＤ４０１には、当該イベントのイベントＩＤ２０１を、ガイドＩＤ４０２には、引き当て要と判定したガイドのガイドＩＤ３０１を格納し、類似度スコア４０３には、ステップＳ２０１で算出した当該ガイドと当該イベントの類似度スコアを格納する。引き当て要否４０４には、当該ガイドが引き当て要であるか否かを格納する。当該ガイドが、ステップＳ２０７にて引き当てリストにて登録されたガイドであれば、引き当て要否４０４に「要」を格納する。また、ガイド引き当てプログラム６００は、当該イベントへの引き当てが不要と判定されたガイドも引き当て結果テーブル４００へ格納する。このとき、当該イベントへの引き当てが不要と判定されたガイドを全て引き当て結果テーブル４００に格納するのではなく、例えば、引き当て不要と判定されたガイドのうち、ステップＳ２０１で算出した類似度スコアが高い順に上位所定個数の引き当て不要なガイドを引き当て結果テーブル４００へ格納することにしてもよい。引き当て不要なガイドについては引き当て要否４０４を「否」とする。
【０１１８】
通報要否４０５には、引き当て要否４０４が「要」であるガイドについてのみ、上位管理者へエスカレーションすべきか否かを示す情報を格納する。通報要否４０５には、エスカレーション要と判定されれば「要」を格納し、そうでなければ「否」を格納する。当該イベントを上位管理者へエスカレーションすべきか否かは、当該イベントへ引き当てるべきと判定された当該ガイドの判定ルール３０４により判定すればよい。ただし、判定ルール３０４に「ＩＦ−ＴＨＥＮ」といった機械的な判定ルールが格納されておらず、機械的な判定ができない場合、ガイド引き当てプログラム６００は、通報要否４０５に「該当ルールなし」を格納する。
【０１１９】
フィードバック４０６には、当該イベントに対するガイド引き当て結果の表示に対して監視オペレータが入力したフィードバックの内容を格納する。ステップＳ２０９の時点では、監視オペレータによるフィードバックが未だ入力されていないため、初期値である「未済」を格納する。フィードバック４０６に格納されるその他の値については後述する。
【０１２０】
以上の通り、本実施例では、ガイド引き当てプログラム６００は、過去の複数のイベントに基づく閾値の学習が可能なガイドについて閾値を学習してガイドに対応づけてガイドテーブル３００に記録し、ガイドの閾値が学習済であればその閾値を新規のイベントとそのガイドとの類似度に対して用い、閾値が学習済でなければ学習済である他のガイドの閾値に基づいて推定した閾値を新規のイベントと前記ガイドとの類似度に対して用いる。したがって、過去のイベントを基に閾値を学習し、学習ができていない閾値を学習済の他のガイドの閾値から推定するので、ガイド毎の適切な閾値を容易に設定することができる。その際、ガイド引き当てプログラム６００は、閾値が学習済である他のガイドのガイドメッセージを説明変数とし、そのガイドの学習済の閾値を目的変数として回帰器を生成し、前記回帰器を用いて前記学習済でない閾値を推定する。ガイドのガイドメッセージ同士が似ていればそれらガイドの閾値も近い値になりやすい傾向があると考えられるので、ガイドメッセージを説明変数とし、閾値を目的変数として生成した回帰器を用いることにより、学習済でない閾値を良好に推定することができる。
【０１２１】
図１０は、新着イベントに対するガイド引き当て結果へのフィードバックにより閾値を調整する処理の一例を示すフローチャートである。本処理は、ガイド引き当てプログラム６００により実行される。ガイド引き当てプログラム６００は、新着イベントに対するガイド引き当て結果に対して監視オペレータが入力したフィードバックを受領し、そのフィードバックに基づいて閾値を調整する。
【０１２２】
ステップＳ３００では、ガイド引き当てプログラム６００は、新着イベントに対するガイド引き当て結果をディスプレイ１０５へ表示する。監視オペレータは、その結果に対してフィードバックを入力する。ガイド引き当てプログラム６００は、そのフィードバックを受領する。
【０１２３】
図１２は、新着イベントに対するガイド引き当て結果を表示する画面例を示す図である。図１２を参照すると、ガイド引き当て結果画面９００は、３つのペインを有する。３つのペインは、発生イベント情報ペイン９１０、引き当てたガイド一覧ペイン９２０、および引き当てなかったガイド一覧ペイン９３０である。
【０１２４】
発生イベント情報ペイン９１０は、新着イベントのイベント情報を表示するペインである。ガイド引き当てプログラム６００は、イベントテーブル２００から、当該新着イベントのデータを取得し、発生イベント情報ペイン９１０の画面へ表示する。図１２の例では、当該新着イベントのイベントメッセージ９１１を表示している。ここでは図示していないが、発生時刻２０２や発生元２０４などの他の情報を表示してもよい。
【０１２５】
また、この発生イベント情報ペイン９１０には、新規ガイド登録ボタン９１２が表示される。図１２の例では、新規ガイド登録ボタン９１２に「このイベントを新しいガイドとして登録」と表示されている。例えば、監視オペレータは、後述する引き当てたガイド一覧ペイン９２０および引き当てなかったガイド一覧ペイン９３０を参照し、当該新着イベントに対して引き当てるべきガイドが存在しないとき、この新規ガイド登録ボタン９１２をマウスでクリックして、当該イベントのイベントメッセージを元に新しいガイドを登録することができる。このボタンをクリックすると、不図示のダイアログが現れ、監視オペレータに通報先３０３や判定ルール３０４などの入力を促す。入力の際には、当該イベントのイベントメッセージにおいて、ガイドメッセージにした場合にイベントメッセージと一致する必要のない変数部分を削除する等の編集を可能としてもよい。
【０１２６】
新しいガイドの登録は監視オペレータではなく上位管理者が行うものとしてもよい。その場合、監視オペレータがこの新規ガイド登録ボタン９１２をマウスでクリックすると、上位管理者へ新規ガイドの登録を要請する通知が送信される。上位管理者である通知の送信先を示すアドレス情報は予め設定しておけばよい。
【０１２７】
引き当てたガイド一覧ペイン９２０は、当該新着イベントに対して、ガイド引き当てプログラム６００が引き当てたガイド（該当ガイド）の情報を表示し、それに対するフィードバックを受け付けるペインである。ガイド引き当てプログラム６００は、ガイド引き当て結果テーブル４００における当該新着イベントに関するデータを参照し、引き当て要否４０４が「Ｙ」であるガイドのデータを取得する。また、ガイド引き当てプログラム６００は、ガイドテーブル３００から、当該ガイドのガイドメッセージ３０２を取得し、ガイドメッセージ表示部９２１へ表示する。図１２の例では、ガイドメッセージにおいて当該新着イベントのイベントメッセージと一致した部分を網掛け表示している。図示はしていないが、ガイド引き当てプログラム６００は、ガイドテーブルの他の情報、例えば通報先３０３、判定ルール３０４、学習完了フラグ３０６、ガイド引き当て結果テーブル４００の類似度スコア４０３、通報要否４０５を引き当てたガイド一覧ペイン９２０に表示してもよい。ガイド引き当てプログラム６００は、このペインに、イベントに引き当てた複数の該当ガイドの情報を類似度スコアの順にスクロール可能に表示することができる。
【０１２８】
ガイド引き当てプログラム６００は、更に、ガイド別のフィードバック入力フォーム９２２をこの引き当てたガイド一覧ペイン９２０上に表示する。監視オペレータは、引き当てたガイド一覧ペイン９２０に表示された当該ガイドの情報を見て、当該ガイドを当該新着イベントへ引き当てることが正しければフィードバック入力フォーム９２２の「正解」を選択し、誤りであれば「誤り」を選択する。ここでの誤りというのは、すなわち、引き当て不要を意味する。なお、フィードバック入力フォーム９２２のデフォルトは「正解」であり、監視オペレータが選択操作を行わなかった場合は、フィードバックとして「正解」が選択されるものとする。
【０１２９】
以上より、ガイド引き当てプログラム６００は、引き当てたガイド一覧ペイン９２０により、当該新着イベントに引き当てたガイドそれぞれについて、その引き当て結果が「正解」であるかもしくは「誤り」であるかという、監視オペレータによるフィードバックを取得する。
【０１３０】
引き当てなかったガイド一覧ペイン９３０は、当該新着イベントに対して、ガイド引き当てプログラム６００が引き当てなかったガイド（非該当ガイド）の情報を表示し、それに対するフィードバックを受け付けるペインである。ガイド引き当てプログラム６００は、ガイド引き当て結果テーブル４００における当該新着イベントに関するデータを参照し、引き当て要否４０４が「Ｎ」であるガイドのデータを取得する。引き当てなかったガイド一覧ペイン９３０に表示される情報は、基本的に引き当てたガイド一覧ペイン９２０に表示される情報と同様の形式である。ガイド引き当てプログラム６００は、引き当てなかったガイド一覧ペイン９３０に、イベントに引き当てなかった複数の非該当ガイドの情報を類似度スコアの順にスクロール可能に表示することができる。監視オペレータは、引き当てなかったガイド一覧ペイン９３０に表示された当該ガイドの情報を見て、当該ガイドを当該新着イベントへ引き当てないことが正しければ、フィードバック入力フォーム９３２の「正解」を選択し、誤りであれば「誤り」を選択する。フィードバック入力フォーム９３２のデフォルトは「正解」であり、監視オペレータが選択操作を行わなかった場合は、フィードバックとして「正解」が選択される。ガイド引き当てプログラム６００は、引き当てなかったガイド一覧ペイン９３０により、当該新着イエントに引き当てなかったガイドそれぞれについて、その引き当てなかったことが「正解」であるのかもしくは「誤り」であるのかという、監視オペレータによるフィードバックを取得する。
【０１３１】
以上のようにして、ガイド引き当てプログラム６００は、ガイド引き当て結果画面９００へフィードバックとして入力された、新規にガイドを登録するための情報、新着イベントに引き当てたガイドごとのその引き当てが「正解」であるか「誤り」であるかの情報、新着イベントに対して引き当てなかったガイド毎のその引き当てなかったことが「正解」であるか「誤り」であるかの情報を取得することができる。ガイド引き当てプログラム６００は、イベントに対して、そのイベントのイベントメッセージとガイドメッセージの類似度が閾値を超えるガイドを該当ガイドと判断し、そのイベントのイベントメッセージとガイドメッセージの類似度が閾値を超えないガイドを非該当ガイドと判断し、該当ガイドと非該当ガイドのそれぞれを類似度の順に表示する。これにより、該当ガイドと非該当ガイドの判断結果をそれぞれ毎に類似度の順に表示するので、閾値による判断結果を容易に把握でき、その判定が妥当かどうかを容易に確認できる。
【０１３２】
ステップＳ３０１では、ガイド引き当てプログラム６００は、得られたフィードバックが新規にガイドを登録する旨（新規ガイド登録）のものか否かを判定する。ガイド引き当てプログラム６００は、フィードバックが新規ガイド登録であればステップＳ３０２へ進み、そうでなければステップＳ３０３へ進む。
【０１３３】
ステップＳ３０２では、ガイド引き当てプログラム６００は、ガイドテーブル３００へ新しい行を追加し、その行の各列の欄に新規のガイドの情報を登録する。ガイドメッセージ３０２の欄には当該新着イベントのイベントメッセージをそのまま格納すればよい。ただし、新規ガイド登録の情報が入力された際に、イベントメッセージから、ガイドメッセージになったときイベントメッセージと一致する必要のない変数部分を削除する等の編集がされた場合には、編集後のイベントメッセージを格納する。
【０１３４】
ステップＳ３０３では、ガイド引き当てプログラム６００は、イベントに対して引き当てたガイドへのフィードバックとイベントに対して引き当てなかったガイドへのフィードバックとのうち未処理のものを１つ選択する。
【０１３５】
ステップＳ３０４では、ガイド引き当てプログラム６００は、ステップＳ３０３で選択したフィードバックが、イベントに対して引き当てたガイドへのフィードバックか否かを判定する。イベントに引き当てたガイドへのフィードバックであればガイド引き当てプログラム６００はステップＳ３０５へ進む。そうでなければ、ガイド引き当てプログラム６００は、イベントに引き当てなかったガイドへのフィードバックと判断し、ステップＳ３１０へ進む。
【０１３６】
ステップＳ３０５では、ガイド引き当てプログラム６００は、イベントに引き当てた当該ガイドへのフィードバックが、その引き当てが「正解」である旨のものか否か判定する。フィードバックが「正解」の旨のものであれば、ガイド引き当てプログラム６００は、ステップＳ３０６へ進む。フィードバックが「誤り」の旨のものであれば、ガイド引き当てプログラム６００はステップＳ３０９へ進む。
【０１３７】
ステップＳ３０６〜Ｓ３０８は、当該ガイドのイベントへの引き当てが正しかった、すなわち、閾値が正しい値であった場合の処理であり、ガイド引き当てプログラム６００は、当該閾値を記録し、当該閾値を学習済にし、新たな学習済みの当該ガイドメッセージと当該閾値を追加したデータにより閾値推定用回帰器７１０の再学習を行う。ただし、当該ガイドの学習完了フラグ３０６が既に「Ｙ」であった場合、つまり既に学習済みであった場合は、ガイド引き当てプログラム６００はステップＳ３０６〜ステップＳ３０８の処理をスキップしてステップＳ３１７へ進む。すなわち、ガイド引き当てプログラム６００は、該当ガイドのそれぞれについての判断が正しいか否かを入力可能にし、該当ガイドについての判断が正しいという入力が得られかつガイドの閾値が学習済でなければ、判断に用いられた類似度未満の閾値をガイドに設定し、閾値を学習済とする。これにより、該当ガイドの判断結果が正しいか否かのフィードバックを入力可能とし、判断が正しいというフィードバックが得られたら、判断結果とフィードバックを反映した閾値を設定するので、妥当な閾値の設定が可能となる。
【０１３８】
以下、ステップＳ３０６、Ｓ３０７、Ｓ３０８を詳しく説明する。
【０１３９】
ステップＳ３０６では、ガイド引き当てプログラム６００は、ガイドテーブル３００の閾値３０５の欄へ閾値を格納する。格納する値には、当該新着イベントと当該ガイドとの類似度スコア、すなわち、引き当て結果テーブル４００に格納されている類似度スコア４０３の値から所定値を減算して得た値を用いる。減算する値はマージンであり、減算により得られる値は類似度スコア４０３の値より僅かに小さい値となる。ただし、他の例として、当該類似度スコア４０３の値をそのまま用いてもよい。
【０１４０】
ステップＳ３０７では、ガイド引き当てプログラム６００は、ガイドテーブル３００における当該ガイドの学習完了フラグ３０６へ「Ｙ」を格納する。
【０１４１】
ステップＳ３０８では、ガイド引き当てプログラム６００は、閾値が学習済みのガイドが１つ増えたことを受けて、閾値推定用回帰器７１０の再学習を行う。閾値推定用回帰器７１０の学習については前述のとおりである。すなわち、ガイド引き当てプログラム６００は、新たに閾値を学習済としたガイドを含む、閾値が学習済であるガイドのガイドメッセージを説明変数とし、そのガイドの学習済の閾値を目的変数として回帰器を生成し、回帰器を用いて学習済でない閾値を推定するものとする。したがって、学習済であった閾値と新たに学習した閾値とを用いて回帰器を生成し、閾値の推定に用いるので、最新の学習結果を反映した閾値の推定が可能となる。
【０１４２】
ステップＳ３０９は、当該新着イベントに対して当該ガイドを引き当てたことが誤りであった場合の処理である。引き当てを誤った理由は、閾値が低かったためと考えられる。そのため、当該ガイドの閾値３０５へ、当該新着イベントと当該ガイドとの類似度スコアに所定値を加算して得た値を用いる。加算する値はマージンであり、加算により得られる値は、当該新着イベントと当該ガイドとの類似度スコアよりも僅かに大きな値となる。
【０１４３】
ステップＳ３１０〜ステップＳ３１６は、イベントに対してガイドを引き当てなかったことに対するフィードバックに関する処理である。ガイド引き当てプログラム６００は、非該当ガイドのそれぞれについての判断が正しいか否かを入力可能にし、非該当ガイドについての判断が正しくないという入力が得られかつガイドの閾値が学習済でなければ、その判断に用いられた類似度未満の閾値をガイドに設定して、ガイドの閾値を学習済とする。非該当ガイドの判断結果が正しいか否かのフィードバックを入力可能とし、判断が誤っているというフィードバックが得られたら、判断結果とフィードバックを反映した閾値を設定するので、妥当な閾値の設定が可能となる。また、ガイド引き当てプログラム６００は、非該当ガイドのそれぞれについての判断が正しくないという入力が得られかつそのガイドの閾値が学習済であれば、そのガイドのガイドメッセージとして、そのイベントのイベントメッセージを登録する。非該当ガイドの学習済の閾値による判断が誤っているというフィードバックが得られたら、そのときのイベントのイベントメッセージに基づいて新たなガイドメッセージを登録するので、ガイドメッセージとそのイベントメッセージとの類似度が上がり、同じイベントが発生したときに引き当てるガイドと判断されるようにすることができる。
【０１４４】
ステップＳ３１０では、ガイド引き当てプログラム６００は、当該イベントに引き当てなかった当該ガイドに対するフィードバックが、その引き当てなかったことが「正解」であるか否か判定する。引き当てなかったことが「正解」であれば、ガイド引き当てプログラム６００は何もせずステップＳ３１７へ進む。引き当てなかったことが「誤り」であれば、ガイド引き当てプログラム６００はステップＳ３１１へ進む。
【０１４５】
ステップＳ３１１〜ステップＳ３１６は、ガイドをイベントに引き当てなかったことが誤りであるというフィードバックが得られた場合の処理である。ガイドをイベントに引き当てなかったことが誤りというのは、イベントに引き当てるべきガイドを引き当てなかったことである。
【０１４６】
ステップＳ３１１では、ガイド引き当てプログラム６００は、当該イベントに引き当てるべきであったにもかかわらず引き当てると判断されなかった当該ガイドの学習完了フラグ３０６が「Ｎ」であるか否か、つまり当該ガイドの閾値が未学習であるか否か判定する。当該ガイドの学習完了フラグ３０６が「Ｎ」であれば、ガイド引き当てプログラム６００はステップＳ３１２へ進む。そうでなければ、ガイド引き当てプログラム６００はステップＳ３１５へ進む。
【０１４７】
ステップＳ３１２からステップＳ３１４は、当該新着イベントに対して当該ガイドを正しく引き当てることができるように閾値を設定し、更に閾値推定用回帰器７１０を再学習する処理である。ステップＳ３１２からステップＳ３１４の処理はそれぞれ上述したステップＳ３０６からステップＳ３０８の処理と同じであるため、ここでは説明を省略する。
【０１４８】
ステップＳ３１５からステップＳ３１６は、引き当てるべきであるにも関わらず引き当てなかったガイドの閾値が既に学習済みであるにもかかわらず、引き当ての要否の判定が誤りであった場合の処理である。このような状況となる理由として、当該イベントを発行するエージェントにて、当該イベントに記載するイベントメッセージのテキスト文が変更となり、そのイベントメッセージとガイドメッセージとの類似度スコアが低下し、今までの閾値では引き当て不要と判断されるようになった可能性がある。エージェントのプログラムが変更されたときにイベントメッセージのテキスト文が修正されることがまれにある。この状況への対処として、修正された当該イベントの新たなイベントメッセージを当該ガイドのガイドメッセージ３０２として登録あるいは追加登録するのが有効である。
【０１４９】
ステップＳ３１５では、ガイド引き当てプログラム６００は、ガイドテーブル３００の当該ガイドの行にガイドメッセージ３０２の行を追加し、新たなガイドメッセージのテキスト文を登録する。新たなガイドメッセージのテキスト文は、当該新着イベントのイベントメッセージをそのまま用いればよい。あるいは、ステップＳ３０２の新規ガイド登録の場合と同様にダイアログを表示し、監視オペレータに通報先３０３や判定ルール３０４などの入力を促すことにしてもよい。入力の際には、当該イベントのイベントメッセージにおいて、ガイドメッセージにした場合にイベントメッセージと一致する必要のない変数部分を削除する等の編集を可能としてもよい。また、ガイドテーブル３００の閾値３０５には、当該ガイドのガイドメッセージと当該新着イベントのイベントメッセージとの類似度スコアの値、あるいは、その類似度スコアから所定値を減算して僅かに小さくした値を格納する。
【０１５０】
ステップＳ３１６では、ガイド引き当てプログラム６００は、閾値推定用回帰器７１０を再学習する。この処理は、ステップＳ３０８およびステップＳ３１４の処理と同じであるため、ここでは説明を省略する。
【０１５１】
ステップＳ３１７では、ガイド引き当てプログラム６００は、ガイドに対するフィードバックのうち未処理のものがあるか否か判定する。未処理のフィードバックがあれば、ガイド引き当てプログラム６００はステップＳ３０３へ戻り、なければ処理を終了する。
【実施例２】
【０１５２】
図１３は、実施例２に係わるイベント監視システムの構成を示すブロック図である。ここでは実施例２の主に実施例１との差異を説明する。
【０１５３】
実施例２によるイベント監視システムは、ガイド提供サービス（以下、リモートサイトともいう）１０００と、企業サイト（以下、ローカルサイトともいう）１４００を含む構成である。リモートサイト１０００とローカルサイト１４００はインターネット１５００で相互に接続される。
【０１５４】
各ローカルサイト１４００では、それぞれ実施例１のものと同様の管理計算機１００がＩＴシステム１２０とともに動作する。
【０１５５】
リモートサイト１０００には、リモート管理計算機１１００がある。リモート管理計算機１１００は、管理計算機１００と同様の構成を持つ計算機で構成される。リモート計算機１１００のＨＤＤ１０３には、共通ガイド管理プログラム１２００と、リモート登録条件テーブル１３００と、ガイドテーブル３００が格納される。ガイドテーブル３００は、管理計算機１００のものと同様の構成である。共通ガイド管理プログラム１２００は、メモリ１０２に読み込まれ、ＣＰＵ１０１上で動作する。
【０１５６】
リモートサイト１０００の役割は、各サイトで共通化が可能な、各ローカルサイト１４００のＩＴシステム１２０上のＯＳやミドルウェアなどのエージェントから発行されるイベントに対するガイド、そのイベントに対してガイドを引き当てるための閾値、等の各ローカルサイト１４００での学習結果を収集し、また各ローカルサイト１４００へ配布することである。各ローカルサイト１４００での個々の学習結果を収集して各ローカルサイト１４００へ共通的に配布することにより、各ローカルサイト１４００で個々にガイドを作成したり閾値を決定したりするよりも効率よく、ガイドおよび閾値の質を向上させることができる。
【０１５７】
ただし、各ローカルサイト１４００には、ローカルサイト１４００から外部に出したくガイドが存在する可能性がある。そのため、実施例２のリモートサイト１０００のリモート管理計算機１１００は、リモートサイト１０００へ登録するガイドの条件を記載したリモート登録条件テーブル１３００を備え、リモート登録条件テーブル１３００に記載された条件に合致したガイドのみをローカルサイト１４００から収集し、ガイドテーブル３００に格納する。
【０１５８】
なお、本実施例では、リモート登録条件テーブル１３００をリモート管理計算機１１００が備える構成を例示するが、他の構成も可能である。例えば、各ローカルサイト１４００の管理計算機１００がそのローカルサイト１４００に独自の条件を定めたリモート登録条件テーブル１３００を備える構成も可能である。各ローカルサイト１４００の管理計算機１００は、リモート登録条件テーブル１３００の条件を満たしたガイドのみをリモートサイト１０００のリモート管理計算機１１００へ送信することにすればよい。
【０１５９】
図１４は、リモート登録条件テーブル１３００の構成例を示す図である。リモート登録条件テーブル１３００は、属性１３０１と条件値１３０２とを対応づけ、属性１３０１が条件値１３０２に該当するガイドのみを登録するという条件を設定することができる。属性１３０１の列および条件値１３０２の列に格納される値と、その使用方法とについては後ほど説明する。
【０１６０】
図１５は、ローカルサイトにてリモートサイトから学習済みのガイドのデータをダウンロードして格納する処理の流れの一例を示すフローチャートである。ローカルサイト１４００の管理計算機１００は最初に起動するときに本処理を実行することにしてもよい。また、ローカルサイト１４００の管理計算機１００は、定期的に本処理を実行することにしてもよい。ローカルサイト１４００の管理計算機１００はリモートサイト１０００のリモート管理計算機１１００のガイドテーブル３００に新たなガイドが追加されたときに本処理を実行することにしてもよい。
【０１６１】
ステップＳ４００では、ガイド引き当てプログラム６００が、リモートサイト１０００のリモート管理計算機１１００にあるガイドテーブル３００条のガイドのデータを取得する処理である。ガイド引き当てプログラム６００は、リモート管理計算機１１００に対して、そのリモート管理計算機１１００のガイドテーブル３００にあるガイドデータ（以下、リモートガイドともいう）を要求する。リモート管理計算機１１００では、共通ガイド管理プログラム１２００がその要求を受け、ガイドテーブル３００の全データを読み込み、ローカルサイト１４００の管理計算機１００のガイド引き当てプログラム６００へ送る。
【０１６２】
ステップＳ４０１では、ガイド引き当てプログラム６００は、ステップＳ４００で受領したリモートガイドのガイドデータから未処理のものを１つ選択する。
【０１６３】
ステップＳ４０２では、ガイド引き当てプログラム６００は、ステップＳ４０１で選択したガイドデータのガイドメッセージと、ローカルサイト１４００の管理計算機１００にあるガイドテーブル３００に格納された各ガイド（以下、ローカルガイド）のガイドメッセージとの類似度スコアを計算する。
【０１６４】
ステップＳ４０３では、ガイド引き当てプログラム６００は、リモートガイドのガイドメッセージとの類似度スコアが閾値以上であるガイドメッセージを有するローカルガイドのみを残し、他のローカルガイドを除外する。
【０１６５】
ステップＳ４０４では、ガイド引き当てプログラム６００は、残したローカルガイドの中から、当該リモートガイドとの類似度スコアが最も高いローカルガイドを選択する。そして、ガイドテーブル３００における当該ローカルガイドの閾値３０５、学習完了フラグ３０６、および必須キーワード３０７の欄へ、当該リモートガイドの閾値、学習完了フラグ、および必須キーワードのそれぞれの値を格納する。なお、ステップＳ４０３で、類似度スコアが閾値を越えるローカルガイドが１つもなければ、本ステップＳ４０４ではなにもせずステップＳ４０５へ進む。
【０１６６】
ステップＳ４０５では、ガイド引き当てプログラム６００は、ステップＳ４００で取得したリモートガイドの中に未処理のものが残っているか否か判定する。未処理のリモートガイドがあれば、ガイド引き当てプログラム６００はステップＳ４０１へ戻り、なければ本処理を終了する。
【０１６７】
図１５に示した一連の処理により、ローカルサイト１４００の管理計算機１００は、リモートサイト１０００にある学習済みのガイドデータを取り込むことができ、ローカルサイト１４００での学習による閾値の決定およびフィードバックによる閾値の調整を行う手間を削減することができる。
【０１６８】
本実施例によれば、イベント監視システムは、情報システムで発生した事象に関連する文字列で示されたイベントメッセージを含むイベントを監視する装置であって、文字列で示されたガイドメッセージを含みイベントへの対処方法を示す複数のガイドと、それぞれのガイドのガイドメッセージとイベントメッセージとの類似度に関する閾値とを対応づけて記憶し、ＩＴシステムからのイベントを記録し、そのイベントに含まれるイベントメッセージとガイドのガイドメッセージとの類似度を計算し、その類似度が閾値を超えていたガイドをイベントに対応付けるローカルサイト１４００のイベント監視装置（管理計算機）１００と、イベント監視装置１００と通信可能に接続し、文字列で示されたガイドメッセージを含みイベントへの対処を示す共通ガイドと、共通ガイドのガイドメッセージの類似度に関する閾値である共通閾値とを対応づけてするリモートサイト１０００の共通ガイド管理装置（リモート管理計算機）１１００と、を有し、管理計算機１００は、共通ガイドをリモート管理計算機１１００からダウンロードし、その共通ガイドのガイドメッセージと自身が持つ複数のガイドのガイドメッセージとの類似度を計算し、類似度が最も高いガイドの閾値として、共通ガイドに対応した共通閾値を設定する。共通ガイドおよび共通閾値を共通管理し、ローカルサイト１４００の管理計算機１００は、その共通閾値を利用して自身のガイドの閾値を設定することができるので、例えばローカルサイト１４００の管理計算機１００での学習で得られていないようなガイドの閾値を良好な値に設定することができる。
【０１６９】
図１６は、ローカルサイトで学習により取得されたガイドしたガイドデータをリモートサイトへアップロードする処理の一例を示すフローチャートである。本処理により、リモートサイト１４００における学習により生成されたガイドデータをリモートサイト１０００のリモート管理計算機１１００にて収集し、蓄積することができる。本処理は、ローカルサイト１４００の管理計算機１００においてガイド引き当てプログラム６００が、ガイドデータを新たに学習完了済みとしたときに実行することにしてもよい。
【０１７０】
ステップＳ５００では、ローカルサイト１４００の管理計算機１００にて、ガイド引き当てプログラム６００が、新たに学習を完了したガイドのデータを、ガイドテーブル３００から取得する。
【０１７１】
ステップＳ５０１では、ガイド引き当てプログラム６００は、リモートサイト１０００のリモート管理計算機１１００の共通ガイド管理プログラム１２００に対して、リモート登録条件テーブル１３００のデータを要求し、取得する。
【０１７２】
ステップＳ５０２では、ガイド引き当てプログラム６００は、新たに学習を完了した当該ガイドが、ステップＳ５０２１で取得したリモート登録条件テーブル１３００に記載されている条件に合致するか否かを判定する。例えば、図１４に例示したリモート登録条件テーブル１３００の内容であれば、当該ガイドのエージェント種別３０８が「ＯＳ」もしくは「ミドル」であれば条件に合致することになる。当該ガイドがリモート登録条件テーブル１３００の条件に合致すれば、ガイド引き当てプログラム６００はステップＳ５０３に進み、そうでなければ本処理を終了する。
【０１７３】
ステップＳ５０３では、ガイド引き当てプログラム６００は、当該ガイドのデータをリモートサイト１０００へ送付してよいか否かを管理者に確認する。例えば、ディスプレイ１０５に、リモートサイト１０００への送付および登録の許諾を求めるダイアログを表示し、管理者による承諾もしくは拒否の入力を得ることにすればよい。当該ガイドの送付について管理者の承諾が得られれば、ガイド引き当てプログラム６００は、ステップＳ５０４へ進み、そうでなければ本処理を終了する。
【０１７４】
ステップＳ５０４では、ガイド引き当てプログラム６００は、リモートサイト１０００へ当該ガイドのガイドデータを送信する。
【０１７５】
ステップＳ５０５では、リモートサイト１０００のリモート管理計算機１１００にて、共通ガイド管理プログラム１２００が、当該ガイドデータを受信し、当該ガイドデータを、リモートサイト１０００のガイドテーブル３００に格納する。その際、共通ガイド管理プログラム１２００は、受信した当該ガイドデータが、未登録のガイドのガイドデータでなければリモートサイト１０００のガイドテーブル３００に格納することにしてもよい。登録されているガイドのガイドデータをより適切なものに更新することができる。本処理により、複数のローカルサイト１４００で使用可能な共通性の高い学習済みのガイドデータがリモートサイト１０００にて収集される。
【０１７６】
本実施例によれば、ローカルサイト１４００の管理計算機１００が、過去のイベントに基づいてガイドの閾値を学習し、ガイドと閾値とを互いに対応づけてリモートサイト１０００のリモート管理計算機１１００に送信し、リモート管理計算機１１００は、ローカルサイト１４００の管理計算機１００から受信したガイドを共通ガイドとし、受信した閾値を共通閾値として互いに対応づけて記憶するので、ローカルサイト１４００の管理計算機１００における学習で得られたガイドの閾値を共通に管理する共通ガイドの共通閾値として設定し、例えばそのガイドの閾値が学習で得られていないローカルサイト１４００に提供可能とすることができる。
【０１７７】
以上、本発明の実施形態および実施例について説明してきたが、本発明は、これら実施形態および実施例だけに限定されるものではなく、本発明の技術思想の範囲内において、これらの実施形態および実施例を組み合わせて使用したり、一部の構成を変更したりしてもよい。
【符号の説明】
【０１７８】
１０…新着イベントメッセージ、１１…ガイドメッセージ、１２…過去イベントメッセージ、１３…類似度スコア計算処理、１４…類似度スコア、１５…フィードバック、１７…学習済の閾値、１８…閾値判定処理、１９…閾値推定処理、２１…イベント管理部、２２…ガイド引き当て部、２３…イベント監視システム、１００…管理計算機（イベント監視装置）、１０１…ＣＰＵ、１０２…メモリ、１０３…ＨＤＤ、１０５…ディスプレイ、１２０…ＩＴシステム、１３０…計算機、２００…イベントテーブル、２０１…イベントＩＤ、２０２…発生時刻、２０３…イベントメッセージ、２０４…発生元、２０５…エージェント種別、３００…ガイドテーブル、３０１…ガイドＩＤ、３０２…ガイドメッセージ、３０３…通報先、３０４…判定ルール、３０５…閾値、３０６…学習完了フラグ、３０７…必須キーワード、３０８…エージェント種別、４００…結果テーブル、４０１…イベントＩＤ、４０２…ガイドＩＤ、４０３…類似度スコア、４０４…引き当て要否、４０５…通報要否、４０６…フィードバック、５００…イベント管理プログラム、６００…ガイド引き当てプログラム、７００…単語行列、７０１…単語数、７０２…一致単語数、７０３…類似度スコア、７１０…閾値推定用回帰器、７２０…推定値、７３０…単語行列、８００…一括フィードバック、８０１…表、８１０…行、８１１…行、８１２…行、８２０…ガイドＩＤ、８２１…ガイドメッセージ、８２２…ガイド引き当て、８２３…イベントメッセージ、８２４…フィードバック、８４０…部分、８４１…登録、８４１…メニュー、８５０…ＯＫボタン、８５１…キャンセルボタン、９００…結果画面、９１０…発生イベント情報ペイン、９１１…イベントメッセージ，９１２…新規ガイド登録ボタン、９２０…ガイド一覧ペイン、９２１…ガイドメッセージ表示部、９２２…フィードバック入力フォーム、９３０…ガイド一覧ペイン、９３１…ガイドメッセージ、９３２…フィードバック入力フォーム、１０００…ガイド提供サイト（リモートサイト）、１１００…リモート管理計算機，１１００…リモート計算機、１２００…共通ガイド管理プログラム、１３００…リモート登録条件テーブル、１３０１…属性、１３０２…条件値、１４００…企業サイト（ローカルサイト）、１５００…インターネット
【図１】
2020009154.tif 000003
【図２】
2020009154.tif 000004
【図３】
2020009154.tif 000005
【図４】
2020009154.tif 000006
【図５】
2020009154.tif 000007
【図６】
2020009154.tif 000008
【図７】
2020009154.tif 000009
【図８】
2020009154.tif 000010
【図９】
2020009154.tif 000011
【図１０】
2020009154.tif 000012
【図１１】
2020009154.tif 000013
【図１２】
2020009154.tif 000014
【図１３】
2020009154.tif 000015
【図１４】
2020009154.tif 000016
【図１５】
2020009154.tif 000017
【図１６】
2020009154.tif 000018