(57)【要約】      （修正有）【課題】同一事象に起因する複数メッセージの趣旨を把握し易くするメッセージ出力プログラム、方法及び装置を提供する。【解決手段】メッセージを集約して出力する方法は、各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、共通単語を含むメッセージが集約された第１メッセージを出力する処理を含む。また、共通単語の組合せについて、各共通単語を含むメッセージの上記識別子が重複する場合に、各共通単語に係る第１メッセージを同じグループにまとめるようにしてもよい。【選択図】図７
2018180927.tif 000002
【特許請求の範囲】
【請求項１】
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第１メッセージを出力する
処理をコンピュータに実行させるメッセージ出力プログラム。
【請求項２】
更に、
前記共通単語の組合せについて、各共通単語を含むメッセージの前記識別子が重複するか否かを判定し、
前記識別子が重複する場合に、前記各共通単語に係る前記第１メッセージを同じグループにまとめる
処理を含む請求項１記載のメッセージ出力プログラム。
【請求項３】
更に、
前記複数のクラスのうち、同一クラスに属するメッセージ間において重複しない単語の割合が基準より小さい候補クラスを特定し、
前記候補クラスに属するメッセージに含まれる複数の単語のうち、前記候補クラスに属するメッセージ単位の出現率が基準よりも小さい単語を変数であると判別し、
前記候補クラスに関して前記変数が判別された場合に、前記候補クラスに属する前記メッセージが集約された第２メッセージとして、前記候補クラスに属する前記メッセージに含まれる前記変数以外の単語と前記変数の位置を示す要素とを出力する
処理を含む請求項１又は２記載のメッセージ出力プログラム。
【請求項４】
更に、
前記複数のメッセージのうち、前記第１メッセージによる集約対象及び前記第２メッセージによる集約対象に該当しないメッセージを出力する
処理を含む請求項３記載のメッセージ出力プログラム。
【請求項５】
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第１メッセージを出力する
処理を含み、コンピュータにより実行されるメッセージ出力方法。
【請求項６】
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類する分類部と、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定する特定部と、
前記共通単語を含むメッセージが集約された第１メッセージを出力する出力部と
を有するメッセージ出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージを集約する技術に関する。
【背景技術】
【０００２】
或る監視装置は、監視対象のネットワークシステムに含まれるホストから多種多様なイベントに関するメッセージを受け付けて、当該メッセージを表示する。システムの管理者は、表示されたメッセージをチェックして、例えば障害の発生を把握する。
【０００３】
監視装置において、同じメッセージを繰り返し受け付けることもある。このような事態を想定して、同一のメッセージに関して２回目以降のメッセージを破棄するフィルタを設ければ、重複するメッセージを排除することができる。
【０００４】
また、一連のメッセージについて規則性があれば、フィルタが所定のルールに基づいて一連のメッセージを一つのメッセージにまとめることもある。これにより、メッセージの数を減らすこともできる。
【０００５】
このようなフィルタリングを通過した複数のメッセージが同一事象に起因することがある。但し、同一事象に起因するメッセージは、その内容が同一であるとは限らない。また、同一事象に起因するとしても一連のメッセージとしての規則性を有しているとは限らない。従って、従来のフィルタを用いてもこれらのメッセージはそのまま表示される。そのため、システムの管理者が状況の把握に手間取ることがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１７１４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、一側面では、同一事象に起因する複数メッセージの趣旨を把握し易くすることである。
【課題を解決するための手段】
【０００８】
一態様に係るメッセージ出力方法は、（Ａ）各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、（Ｂ）複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、（Ｃ）共通単語を含むメッセージが集約された第１メッセージを出力する処理を含む。
【発明の効果】
【０００９】
一側面としては、同一事象に起因する複数メッセージの趣旨を把握し易くなる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ネットワーク構成例を示す図である。
【図２】図２は、監視機器のモジュール構成例を示す図である。
【図３Ａ】図３Ａは、第１テーブルの例を示す図である。
【図３Ｂ】図３Ｂは、第１テーブルの例を示す図である。
【図３Ｃ】図３Ｃは、第１テーブルの例を示す図である。
【図３Ｄ】図３Ｄは、第１テーブルの例を示す図である。
【図３Ｅ】図３Ｅは、第１テーブルの例を示す図である。
【図４】図４は、リストの例を示す図である。
【図５Ａ】図５Ａは、集約部のモジュール構成例を示す図である。
【図５Ｂ】図５Ｂは、集約部のモジュール構成例を示す図である。
【図６】図６は、メイン処理フローを示す図である。
【図７】図７は、集約処理フローを示す図である。
【図８】図８は、メッセージ分類処理フローを示す図である。
【図９】図９は、単語テーブルの例を示す図である。
【図１０】図１０は、単語抽出処理フローを示す図である。
【図１１】図１１は、集計テーブルの例を示す図である。
【図１２】図１２は、集計処理フローを示す図である。
【図１３】図１３は、重複数テーブルの例を示す図である。
【図１４】図１４は、重複数算出処理フローを示す図である。
【図１５】図１５は、類似度テーブルの例を示す図である。
【図１６】図１６は、類似度算出処理フローを示す図である。
【図１７】図１７は、分類テーブルの例を示す図である。
【図１８】図１８は、同型グループ処理フローを示す図である。
【図１９】図１９は、クラステーブルの例を示す図である。
【図２０Ａ】図２０Ａは、同型グループに係る候補特定処理フローを示す図である。
【図２０Ｂ】図２０Ｂは、同型グループに係る候補特定処理フローを示す図である。
【図２１Ａ】図２１Ａは、出現率テーブルの例を示す図である。
【図２１Ｂ】図２１Ｂは、出現率テーブルの例を示す図である。
【図２２】図２２は、変数判別処理フローを示す図である。
【図２３】図２３は、同型グループのレコード追加処理フローを示す図である。
【図２４】図２４は、共通変数グループ処理フローを示す図である。
【図２５】図２５は、共通単語テーブルの例を示す図である。
【図２６】図２６は、共通単語特定処理フローを示す図である。
【図２７】図２７は、グループ生成処理フローを示す図である。
【図２８Ａ】図２８Ａは、一次グループテーブルの例を示す図である。
【図２８Ｂ】図２８Ｂは、一次グループテーブルの例を示す図である。
【図２９】図２９は、二次グループテーブルの例を示す図である。
【図３０】図３０は、共通変数グループのレコード追加処理フローを示す図である。
【図３１】図３１は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
図１に、ネットワーク構成例を示す。この例では、ネットワークにホスト１０３、ＤＢ（DataBase）サーバー１０５及びＤＮＳサーバー１０７が接続されている。ネットワークは、例えばＬＡＮ（Local Area Network）である。ホスト１０３は、他のホスト１０３、ＤＢサーバー１０５又はＤＮＳサーバー１０７のサービスを利用することがある。尚、ＤＢサーバー１０５及びＤＮＳサーバー１０７もホスト装置の一種である。
【００１２】
ネットワークにはさらに監視機器１０１が接続されている。監視機器１０１は、ホスト１０３、ＤＢサーバー１０５及びＤＮＳサーバー１０７の状況を監視する。つまり、ホスト１０３、ＤＢサーバー１０５及びＤＮＳサーバー１０７は、監視対象の装置に相当する。具体的には、監視対象の装置においてイベントが発生すると、監視対象の装置はイベントの内容を知らせるメッセージを含むイベント通知を監視機器１０１に送信する。監視機器１０１は、受信したイベント通知の内容を表示装置に表示する。管理者は、随時イベント通知の内容をチェックして、監視対象装置の状況を把握する。
【００１３】
図２に、監視機器１０１のモジュール構成例を示す。監視機器１０１は、受信部２０１、フィルタ２０３、ルール記憶部２０５、第１テーブル格納部２０７、第１判定部２０９、第１追加部２１１、集約部２１３、第２テーブル格納部２１５、表示処理部２１７、参照データ記憶部２１９、受付部２２１及び第１抽出部２２３を有する。
【００１４】
受信部２０１は、イベント通知を受信する。フィルタ２０３は、受信したイベント通知に対するフィルタリングを行う。ルール記憶部２０５は、フィルタリングのためのルールを記憶する。第１テーブル格納部２０７は、第１テーブルを格納する。第１テーブルには、フィルタ２０３を通過したイベント通知に関する内容が格納される。第１テーブルについては、図３Ａ乃至図３Ｅを用いて後述する。
【００１５】
第１判定部２０９は、単位期間内において受信したイベント通知の数が閾値を超えるか否かを判定する。第１追加部２１１は、単位期間内において受信したイベント通知を第２テーブルに追加する。集約部２１３は、単位期間内において受信したイベント通知を集約する。第２テーブル格納部２１５は、第２テーブルを格納する。第２テーブルは、第１テーブルと同様の構成である。但し、第２テーブルは、イベント通知を集約した内容のレコードを含む場合がある。
【００１６】
表示処理部２１７は、第２テーブルに基づいてリストの表示を行う。参照データ記憶部２１９は、集約対象となったイベント通知の内容を記憶する。受付部２２１は、集約対象となったイベント通知の内容の照会指示を受け付ける。照会指示を受け付けた場合に、第１抽出部２２３は、集約対象となったイベント通知を抽出する。第１抽出部２２３によって抽出されたイベント通知の内容は、表示処理部２１７によって表示される。尚、表示処理部２１７は、出力部の例である。出力の形態は、印刷、送信又は記憶媒体への書き込みなどであってもよい。
【００１７】
上述した受信部２０１、フィルタ２０３、第１判定部２０９、第１追加部２１１、集約部２１３、表示処理部２１７、受付部２２１及び第１抽出部２２３は、ハードウエア資源（例えば、図３１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００１８】
上述したルール記憶部２０５、第１テーブル格納部２０７、第２テーブル格納部２１５及び参照データ記憶部２１９は、ハードウエア資源（例えば、図３１）を用いて実現される。
【００１９】
図３Ａ乃至図３Ｅに、第１テーブルの例を示す。この例における第１テーブルは、フィルタ２０３を通過したイベント通知に対応するレコードを有している。第１テーブルのレコードは、イベント通知ＩＤが格納されるフィールドと、受信日時が格納されるフィールドと、ホストに関するフィールドと、メッセージが格納されるフィールドとを有している。
【００２０】
イベント通知ＩＤは、フィルタ２０３を通過したイベント通知を識別する。受信日時は、イベント通知を受信した時点を特定する。ホストのフィールドには、イベント通知の送信元であるホストの名前が格納される。メッセージは、イベントの内容を表す。図３Ａに示した第１テーブルの続きを図３Ｂに示す。図３Ｂに示した第１テーブルの続きを図３Ｃに示す。図３Ｃに示した第１テーブルの続きを図３Ｄに示す。図３Ｄに示した第１テーブルの続きを図３Ｅに示す。
【００２１】
図３Ａ乃至図３Ｅに示した第１テーブルは、２０１５年１０月１３日の１７時４８分４４秒から同１７時４８分４７秒に至る３秒間に受信したイベント通知に関するレコードを有している。各レコードは、受信した順にイベント通知に関する内容を格納している。
【００２２】
イベント通知ＩＤ：５２１３２からイベント通知ＩＤ：５２１４９までの１８個のレコードにおけるメッセージは、「ＯＲＤ０５２８２」及び「失敗」の単語を含んでいる。これらのレコードは、いずれもホスト名が「ＯＲＤ０５２８２」であるＤＢサーバー１０５の故障に起因するイベントに関する。つまり、これらのレコードに格納されているメッセージは、ＤＢサーバー１０５の故障という同一事象に起因する。
【００２３】
また、イベント通知ＩＤ：５２１５１からイベント通知ＩＤ：５２１６６までの１６個のレコードにおけるメッセージは、「ＮＴ１ＣＦ１００」「ＯＭＳＫＯＢＥ」及び「ＦＡＢＳ５０７９」などのホスト名に相当する変数以外の部分が共通である。これらのレコードは、いずれもＤＮＳサーバー１０７の故障に起因するイベントに関する。つまり、これらのレコードに格納されているメッセージは、ＤＮＳサーバー１０７の故障という同一事象に起因する。
【００２４】
イベント通知ＩＤ：５２１５０レコードは、ホスト名「ＨＯＳＴ＿ＭＶＩ」のホスト１０３自身の資源不足に起因するイベントに関する。つまり、このレコードに格納されているメッセージは、他のレコードに格納されているメッセージの場合とは異なる事象に起因する。
【００２５】
管理者が、短い時間内に受信した多数のイベント通知の関連を把握し、如何なる事象が想定されるかを検討するには時間がかかる。例えば図３Ａ乃至図３Ｅに示したイベント通知ＩＤ：５２１３２からイベント通知ＩＤ：５２１６６までのレコードの内容を一斉に表示させると、先に受信したイベント通知の内容がリストから流れ出てしまう。また、多くの類似するメッセージに係るイベント通知にまぎれて、イベント通知ＩＤ：５２１５０のメッセージは見落とされ易い。
【００２６】
図４に、本実施の形態で表示されるリストの例を示す。本実施の形態では、イベント通知ＩＤ：５２１５１からイベント通知ＩＤ：５２１６６までのレコードのように、変数以外の部分が共通するメッセージに係るイベント通知のグループを特定して、これらのメッセージを集約する。図４に示したリストの第１行は、このグループのイベント通知を集約した内容を示している。イベント通知の項目の「Ｍ１」は、当該グループを識別する。受信日時は、このグループのイベント通知を最初に受信した日時を示している。ホストの項目におけるホスト数は、このグループのイベント通知を送信したホストの正味の数である。メッセージの項目には、変数以外の内容と変数の位置を示すコードとが表示される。また、メッセージの項目には、このグループのメッセージが１６件あることも示している。
【００２７】
更に、本実施の形態では、イベント通知ＩＤ：５２１３２からイベント通知ＩＤ：５２１４９までのレコードのように、共通の変数（この例では、「ＯＲＤ０５２８２」）を含むメッセージに係るイベント通知のグループを特定して、これらのメッセージを集約する。図４に示したリストの第３行は、このグループのイベント通知を集約した内容を示している。イベント通知の項目の「Ｗ１」は、当該グループを識別する。受信日時は、このグループのイベント通知を最初に受信した日時を示している。ホストの項目におけるホスト数は、このグループのイベント通知を送信したホストの正味の数である。メッセージの項目には、このグループのメッセージには、「ＯＲＤ０５２８２」及び「失敗」が含まれていることと、このグループのメッセージが１８件あることを示している。
【００２８】
図４に示したリストの第２行は、上述した２つのグループに属さないＩＤ：５２１５０のイベント通知に関する内容を表している。
【００２９】
尚、第４行以降には、図３Ａ乃至図３Ｅに示したイベント通知以前に受信したイベント通知に基づく内容が表されている。この内容については省略する。
【００３０】
図５Ａ及び図５Ｂに、集約部２１３のモジュール構成例を示す。集約部２１３は、分類部５０１、第１グループ処理部５０３、第２グループ処理部５０５及び第２追加部５０７を有する。
【００３１】
分類部５０１は、メッセージ分類処理を実行する。メッセージ分類処理については、図８を用いて後述する。分類部５０１は、第２抽出部５１１、集計部５１３、第１算出部５１５、第２算出部５１７及びクラスタリング部５１９を有する。第２抽出部５１１は、単語抽出処理を実行する。単語抽出処理については、図１０を用いて後述する。集計部５１３は、集計処理を実行する。集計処理については、図１２を用いて後述する。第１算出部５１５は、重複数算出処理を実行する。重複数算出処理については、図１４を用いて後述する。第２算出部５１７は、類似度算出処理を実行する。類似度算出処理については、図１６を用いて後述する。クラスタリング部５１９は、クラスタリング処理を実行する。
【００３２】
第１グループ処理部５０３は、同型グループ処理を実行する。同型グループ処理については、図１８を用いて後述する。第１グループ処理部５０３は、第１特定部５２１、判別部５２３及び第３追加部５２５を有する。第１特定部５２１は、同型グループに係る候補特定処理を実行する。同型グループに係る候補特定処理については、図２０Ａ及び図２０Ｂを用いて後述する。判別部５２３は、変数判別処理を実行する。変数判別処理については、図２２を用いて後述する。第３追加部５２５は、同型グループのレコード追加処理を実行する。同型グループのレコード追加処理については、図２３を用いて後述する。
【００３３】
第２グループ処理部５０５は、共通変数グループ処理を実行する。共通変数グループ処理については、図２４を用いて後述する。第２グループ処理部５０５は、第２特定部５３１、生成部５３３及び第４追加部５３５を有する。第２特定部５３１は、共通単語特定処理を実行する。共通単語特定処理については、図２６を用いて後述する。生成部５３３は、グループ生成処理を実行する。グループ生成処理については、図２７を用いて後述する。生成部５３３は、第２判定部５３７及び統合部５３９を有する。第２判定部５３７は、複数の一次グループを統合するか否かを判定する。一次グループについては、後述する。統合部５３９は、複数の一次グループを統合し、二次グループを生成する。二次グループについては、後述する。第４追加部５３５は、共通変数グループのレコード追加処理を実行する。共通変数グループのレコード追加処理については、図３０を用いて後述する。
【００３４】
第２追加部５０７は、同型グループ及び共通変数グループに属していないイベント通知を第２テーブルに追加する。
【００３５】
上述した分類部５０１、第１グループ処理部５０３、第２グループ処理部５０５及び第２追加部５０７は、ハードウエア資源（例えば、図３１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。同じく第２抽出部５１１、集計部５１３、第１算出部５１５、第２算出部５１７、クラスタリング部５１９、第１特定部５２１、判別部５２３、第３追加部５２５、第２特定部５３１、生成部５３３、第４追加部５３５、第２判定部５３７及び統合部５３９も、ハードウエア資源（例えば、図３１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００３６】
図５Ｂの説明に移る。集約部２１３は、更に単語テーブル格納部５５１、集計テーブル格納部５５３、重複数テーブル格納部５５５、類似度テーブル格納部５５７、分類テーブル格納部５５９、クラステーブル格納部５６１、出現率テーブル格納部５６３、共通単語テーブル格納部５６５及びグループテーブル格納部５６７を有する。
【００３７】
単語テーブル格納部５５１は、単語テーブルを格納する。単語テーブルについては、図９を用いて後述する。集計テーブル格納部５５３は、集計テーブルを格納する。集計テーブルについては、図１１を用いて後述する。重複数テーブル格納部５５５は、重複数テーブルを格納する。重複数テーブルについては、図１３を用いて後述する。類似度テーブル格納部５５７は、類似度テーブルを格納する。類似度テーブルについては、図１５を用いて後述する。分類テーブル格納部５５９は、分類テーブルを格納する。分類テーブルについては、図１７を用いて後述する。
【００３８】
クラステーブル格納部５６１は、クラステーブルを格納する。クラステーブルについては、図１９を用いて後述する。出現率テーブル格納部５６３は、出現率テーブルを格納する。出現率テーブルについては、図２１Ａ及び図２１Ｂを用いて後述する。共通単語テーブル格納部５６５は、共通単語テーブルを格納する。共通単語テーブルについては、図２５を用いて後述する。グループテーブル格納部５６７は、一次グループテーブル及び二次グループテーブルを格納する。一次グループテーブルについては、図２８Ａ及び図２８Ｂを用いて後述する。二次グループテーブルについては、図２９を用いて後述する。
【００３９】
上述した単語テーブル格納部５５１、集計テーブル格納部５５３、重複数テーブル格納部５５５、類似度テーブル格納部５５７、分類テーブル格納部５５９、クラステーブル格納部５６１、出現率テーブル格納部５６３、共通単語テーブル格納部５６５及びグループテーブル格納部５６７は、ハードウエア資源（例えば、図３１）を用いて実現される。
【００４０】
図６に、メイン処理フローを示す。第１判定部２０９は、順次単位期間の経過を待つ（Ｓ６０１）。単位期間の長さは、例えば３秒である。
【００４１】
単位期間が経過すると、第１判定部２０９は、当該単位期間内において受信したイベント通知の数を算出する（Ｓ６０３）。そして、第１判定部２０９は、当該単位期間内において受信したイベント通知の数が閾値を超えるか否かを判定する（Ｓ６０５）。閾値は、例えばリストの行数である。
【００４２】
当該単位期間内において受信したイベント通知の数が閾値を超えないと判定した場合には、第１追加部２１１は、当該単位期間内において受信したイベント通知を第２テーブルに追加する（Ｓ６０７）。
【００４３】
表示処理部２１７は、第２テーブルに基づいて、リストを表示する（Ｓ６０９）。具体的には、最新の受信日時のレコードの内容をリストの先頭行に表示する。更に、受信日時を遡る順に従ってレコードを特定し、当該レコードの内容を次々表示する。末尾の行を表示した時点で処理を終了する。つまり、リストの行数に相当する数のレコードの内容が、受信日時が新しい順に表示される。そして、Ｓ６０１に示した処理に戻って、上述した処理を繰り返す。
【００４４】
一方、Ｓ６０５において当該単位期間内において受信したイベント通知の数が閾値を超えると判定した場合には、集約部２１３は、集約処理を実行する（Ｓ６１１）。集約部２１３は、集約処理において、当該単位期間内において受信したイベント通知の全部又は一部を集約する。
【００４５】
図７に、集約処理フローを示す。分類部５０１は、メッセージ分類処理を実行する（Ｓ７０１）。分類部５０１は、メッセージ分類処理において、単位期間内において受信したイベント通知を分類する。
【００４６】
図８に、メッセージ分類処理フローを示す。第２抽出部５１１は、単語抽出処理を実行する（Ｓ８０１）。第２抽出部５１１は、単語抽出処理において、各メッセージに含まれる単語を抽出する。
【００４７】
単語抽出処理について説明する前に、抽出された単語を格納する単語テーブルについて説明する。図９に、単語テーブルの例を示す。この例における単語テーブルは、メッセージに含まれる単語に対応するレコードを有している。単語テーブルのレコードは、イベント通知ＩＤが格納されるフィールドと、単語が格納されるフィールドとを有している。イベント通知ＩＤは、当該単語が出現するメッセージを含むイベント通知を特定する。
【００４８】
図１０に、単語抽出処理フローを示す。第２抽出部５１１は、図６のＳ６０１で待った単位期間内に受信したイベント通知のＩＤを１つ特定する（Ｓ１００１）。例えば、第２抽出部５１１は、受信時間の順に従ってイベント通知のＩＤを特定する。
【００４９】
第２抽出部５１１は、当該イベント通知に含まれるメッセージを特定する（Ｓ１００３）。第２抽出部５１１は、特定したメッセージを単語に分解する（Ｓ１００５）。そして、第２抽出部５１１は、分解された各単語について単語テーブルに新しいレコードを設け、当該レコードに当該イベント通知のＩＤと当該単語とを対応付けて格納する（Ｓ１００７）。
【００５０】
第２抽出部５１１は、未特定のイベント通知ＩＤがあるか否かを判定する（Ｓ１００９）。未特定のイベント通知ＩＤがあると判定した場合には、Ｓ１００１に示した処理に戻って、上述した処理を繰り返す。一方、未特定のイベント通知ＩＤがないと判定した場合には、単語抽出処理を終える。単語抽出処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【００５１】
図８の説明に戻る。集計部５１３は、集計処理を実行する（Ｓ８０３）。集計部５１３は、集計処理において、イベント通知ＩＤに対応する単語数及び各単語の出現数を集計する。
【００５２】
集計処理について説明する前に、イベント通知ＩＤに対応する単語数及び各単語の出現数を集計するために用いられる集計テーブルについて説明する。
【００５３】
図１１に、集計テーブルの例を示す。この例における集計テーブルは、イベント通知ＩＤに対応するレコードを有している。集計テーブルのレコードは、単語テーブルに格納された単語に対応するフィールドを有する。当該フィールドには、当該単語を「含む」旨のコード又は「含まない」旨のコードが格納される。集計テーブルのレコードは、更に、イベント通知ＩＤに対応する単語数が格納されるフィールドを有する。また、集計テーブルは、各単語の出現数が格納されるフィールドも有している。
【００５４】
図示した１番目のレコードは、ＩＤ：５２１３２で識別されるイベント通知のメッセージに「ホスト」「ＯＲＤ０５２８２」「において」「ｄｉｓｋ」「出力」「されました」「パラメータ」及び「Ｃ」の単語が含まれ、「Ｄ」及び「Ｅ」の単語が含まれないことを示している。また、１番目のレコードは、ＩＤ：５２１３２で識別されるイベント通知のメッセージには、１７個の単語が含まれることを示している。
【００５５】
また、図１１は、例えば「ホスト」の単語が６個のイベント通知のメッセージに含まれることを示している。
【００５６】
図１２に、集計処理フローを示す。集計部５１３は、図６のＳ６０１で待った単位期間内に受信したイベント通知のＩＤを１つ特定する（Ｓ１２０１）。例えば、集計部５１３は、受信時間の順に従ってイベント通知のＩＤを特定する。
【００５７】
集計部５１３は、単語テーブルにおいて当該イベント通知ＩＤに対応する単語の各々について、集計テーブルの当該イベント通知ＩＤのレコードにおける当該単語のフィールドに「含む」旨のコードを格納する（Ｓ１２０３）。また、集計部５１３は、「含む」を設定しない単語のフィールドに、「含まない」旨のコードを格納する。
【００５８】
集計部５１３は、「含む」旨のコードが格納されたフィールドをカウントし、当該フィールドの数を当該イベント通知ＩＤのレコードにおける単語数のフィールドに格納する（Ｓ１２０５）。
【００５９】
集計部５１３は、未特定のイベント通知ＩＤがあるか否かを判定する（Ｓ１２０７）。未特定のイベント通知ＩＤがあると判定した場合には、Ｓ１２０１に示した処理に戻って、上述した処理を繰り返す。
【００６０】
一方、未特定のイベント通知ＩＤがないと判定した場合には、集計部５１３は、各単語の出現数をカウントし、当該単語に対応する出現数のフィールドに格納する（Ｓ１２０９）。単語の出現数は、当該単語に関して「含む」旨のコードが格納されたフィールドの数である。集計処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【００６１】
図８の説明に戻る。第１算出部５１５は、重複数算出処理を実行する（Ｓ８０５）。第１算出部５１５は、重複数算出処理において、比較元のイベント通知のメッセージに含まれる単語のうち、比較先のイベント通知のメッセージにも含まれる単語の数を算出する。当該単語の数を重複数という。
【００６２】
重複数算出処理について説明する前に、重複数を格納する重複数テーブルについて説明する。図１３に、重複数テーブルの例を示す。この例における重複数テーブルは、比較元のイベント通知ＩＤに対応するレコードを有している。比較元は、図６のＳ６０１で待った単位期間内に受信した各イベント通知である。重複数テーブルのレコードは、比較先の各イベント通知ＩＤに対応するフィールド（以下、重複数フィールドという。）を有する。比較先も、図６のＳ６０１で待った単位期間内に受信した各イベント通知である。重複数フィールドには、上述した重複数が格納される。集計テーブルのレコードは、更に、単語数が格納されるフィールドを有する。単語数は、図１１に示した集計テーブルの場合と同様である。
【００６３】
図１３は、例えばＩＤ：５２１３２で識別されるイベント通知のメッセージに含まれる１７個の単語のうち、１６個の単語がＩＤ：５２１３３で識別されるイベント通知のメッセージに含まれることを示している。
【００６４】
また、図１３は、例えばＩＤ：５２１３２で識別されるイベント通知のメッセージに含まれる１７個の単語のうち、１個の単語がＩＤ：６２１６４で識別されるイベント通知のメッセージに含まれることを示している。
【００６５】
図１４に、重複数算出処理フローを示す。第１算出部５１５は、比較元のイベント通知ＩＤを１つ特定する（Ｓ１４０１）。例えば、第１算出部５１５は、図６のＳ６０１で待った単位期間内に受信したイベント通知のＩＤを受信時間の順に従って１つ特定する。
【００６６】
第１算出部５１５は、比較先のイベント通知ＩＤを１つ特定する（Ｓ１４０３）。例えば、第１算出部５１５は、比較元のイベント通知ＩＤを除き、図６のＳ６０１で待った単位期間内に受信したイベント通知のＩＤを受信時間の順に従って１つ特定する。
【００６７】
第１算出部５１５は、単語テーブルに基づいて、比較元のメッセージに含まれる単語を１つ特定する（Ｓ１４０５）。第１算出部５１５は、単語テーブルに基づいて、当該単語が比較先のメッセージに含まれているか否かを判定する（Ｓ１４０７）。
【００６８】
当該単語が比較先のメッセージに含まれていると判定した場合には、第１算出部５１５は、比較元のイベント通知ＩＤのレコードにおける比較先のイベント通知ＩＤの重複数フィールドの値に１を加える（Ｓ１４０９）。尚、重複数フィールドにおける初期値は０である。当該単語が比較先のメッセージに含まれていないと判定した場合には、第１算出部５１５は、重複数のフィールドの値を更新しない。
【００６９】
第１算出部５１５は、未特定の単語があるか否かを判定する（Ｓ１４１１）。未特定の単語があると判定した場合には、Ｓ１４０５に示した処理に戻って、上述した処理を繰り返す。
【００７０】
一方、未特定の単語がないと判定した場合には、第１算出部５１５は、特定されていない比較先のイベント通知ＩＤがあるか否かを判定する（Ｓ１４１３）。特定されていない比較先のイベント通知ＩＤがあると判定した場合には、Ｓ１４０３に示した処理に戻って、上述した処理を繰り返す。
【００７１】
一方、特定されていない比較先のイベント通知ＩＤがないと判定した場合には、第１算出部５１５は、集計テーブルに基づいて、比較元のイベント通知ＩＤのレコードにおける単語数のフィールドに、比較元であるイベント通知のメッセージにおける単語数を格納する（Ｓ１４１５）。
【００７２】
第１算出部５１５は、特定されていない比較元のイベント通知ＩＤがあるか否かを判定する（Ｓ１４１７）。特定されていない比較元のイベント通知ＩＤがあると判定した場合には、Ｓ１４０１に示した処理に戻って、上述した処理を繰り返す。
【００７３】
一方、特定されていない比較元のイベント通知ＩＤがないと判定した場合には、重複数算出処理を終える。重複数算出処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【００７４】
図８の説明に戻る。第２算出部５１７は、類似度算出処理を実行する（Ｓ８０７）。第２算出部５１７は、類似度算出処理において、２つのイベント通知ＩＤに係るメッセージ間の類似度を算出する。類似度の値が大きい場合には、２つのメッセージが類似することを意味する。類似度の値が小さい場合には、２つのメッセージが類似しないことを意味する。
【００７５】
類似度算出処理について説明する前に、類似度を格納する類似度テーブルについて説明する。図１５に、類似度テーブルの例を示す。この例における類似度テーブルは、比較元のイベント通知ＩＤに対応するレコードを有している。類似度テーブルのレコードは、比較先の各イベント通知ＩＤに対応するフィールド（以下、類似度フィールドという。）を有する。当該フィールドには、上述した類似度が格納される。
【００７６】
例えば、ＩＤ：５２１３２で識別されるイベント通知のメッセージとＩＤ：５２１３３で識別されるイベント通知のメッセージとの類似度は、０．９４である。また、ＩＤ：５２１３２で識別されるイベント通知のメッセージとＩＤ：６２１６４で識別されるイベント通知のメッセージとの類似度は、０．０６である。
【００７７】
図１６に、類似度算出処理フローを示す。第２算出部５１７は、図６のＳ６０１で待った単位期間内に受信したイベント通知のＩＤの組を１つ特定する（Ｓ１６０１）。
【００７８】
第２算出部５１７は、当該組の一方のイベント通知ＩＤを比較元とし、当該組の他方のイベント通知ＩＤを比較先とする重複度を算出する（Ｓ１６０３）。重複度は、重複数テーブルにおいて比較元及び比較先によって特定される重複数を、比較元によって特定される単語数で除することによって求められる。
【００７９】
第２算出部５１７は、更に、上記他方のイベント通知ＩＤを比較元とし、上記一方のイベント通知ＩＤを比較先とする重複度を算出する（Ｓ１６０５）。
【００８０】
そして、第２算出部５１７は、算出した２つの重複度の平均を求め、比較元及び比較先によって特定される類似度フィールドに格納する（Ｓ１６０７）。但し、Ｓ１６０３で算出した重複度を、当該類似度フィールドに格納するようにしてもよい。或いは、Ｓ１６０５で算出した重複度を、当該類似度フィールドに格納するようにしてもよい。
【００８１】
第２算出部５１７は、未特定のイベント通知ＩＤの組があるか否かを判定する（Ｓ１６０９）。未特定のイベント通知ＩＤの組があると判定した場合には、Ｓ１６０１に示した処理に戻って、上述した処理を繰り返す。一方、未特定のイベント通知ＩＤの組がないと判定した場合には、類似度算出処理を終える。類似度算出処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【００８２】
図８の説明に戻る。クラスタリング部５１９は、クラスタリング処理を実行する（Ｓ８０９）。クラスタリング部５１９は、クラスタリング処理において、類似度に基づいてイベント通知のクラスタリングを行う。クラスタリング処理は、従来技術である。例えば、クラスタリング部５１９は、ウォード法による分析を行う。クラスは、メッセージが類似するイベント通知のグループに相当する。
【００８３】
図１７に、クラスタリング処理の結果を格納する分類テーブルの例を示す。この例における分類テーブルは、イベント通知に対応するレコードを有している。分類テーブルのレコードは、イベント通知ＩＤが格納されるフィールドと、クラスＩＤが格納されるフィールドとを有している。イベント通知ＩＤは、分類されたイベント通知を特定する。クラスＩＤは、当該イベント通知が属するクラス、つまりグループを識別する。
【００８４】
図１７は、例えばＩＤ：５２１３２のイベント通知、ＩＤ：５２１３３のイベント通知、ＩＤ：５２１３４のイベント通知、ＩＤ：５２１４７のイベント通知、ＩＤ：５２１４８のイベント通知及びＩＤ：５２１４９のイベント通知が、ＩＤ：Ｃ０１で識別されるクラスに属することを示している。
【００８５】
クラスタリング処理を終えると、メッセージ分類処理も終え、呼び出し元の集約処理に復帰する。
【００８６】
図７の説明に戻る。第１グループ処理部５０３は、同型グループ処理を実行する（Ｓ７０３）。第１グループ処理部５０３は、同型グループ処理において、変数以外の部分が共通するメッセージに係るイベント通知のグループを特定する。当該グループを同型グループという。
【００８７】
図１８に、同型グループ処理フローを示す。第１特定部５２１は、同型グループに係る候補特定処理を実行する（Ｓ１８０１）。第１特定部５２１は、同型グループに係る候補特定処理において、同型グループの候補に該当するクラスを特定する。
【００８８】
候補特定処理について説明する前に、クラステーブルについて説明する。図１９に、クラステーブルの例を示す。この例におけるクラステーブルは、クラスに対応するレコードを有している。クラステーブルのレコードは、クラスＩＤが格納されるフィールドと、イベント通知数が格納されるフィールドと、重複数の平均が格納されるフィールドと、単語数の平均が格納されるフィールドと、重複しない単語の数が格納されるフィールドと、非重複率が格納されるフィールドと、同型グループの候補に関するフィールドとを有している。
【００８９】
クラスＩＤは、クラスを識別する。イベント通知数は、当該クラスに含まれるイベント通知の数である。重複数の平均は、当該クラスに属するイベント通知の各組における重複数の平均である。重複数は、重複テーブルに基づいて特定される。単語数の平均は、当該クラスに属するイベント通知のメッセージにおける単語数の平均である。重複しない単語の数は、単語数の平均から重複数の平均を引いた値である。非重複率は、重複しない単語の数を単語数の平均で除した値である。同型グループの候補に関するフィールドには、当該クラスが同型グループの候補に「該当する」旨のコード又は「該当しない」旨のコードが格納される。当該クラスが同型グループの候補に該当するか否かに関する判定方法は、後述する。
【００９０】
図示した１番目のレコードは、ＩＤ：Ｃ０１のクラスには、６個のイベント通知が含まれ、これらのイベント通知の組に関する重複数の平均が１６であることを示している。更に、当該１番目のレコードは、ＩＤ：Ｃ０１のクラスに属するイベント通知に含まれるメッセージの単語数の平均が１７個であり、重複しない単語が１個と看做されることを示している。加えて、当該１番目のレコードは、ＩＤ：Ｃ０１のクラスにおける非重複率が０．０６であり、このクラスが同型グループの候補に該当することを示している。
【００９１】
図２０Ａに、同型グループに係る候補特定処理フローを示す。第１特定部５２１は、クラスＩＤを１つ特定する（Ｓ２００１）。第１特定部５２１は、分類テーブルに基づいて、当該クラスに属するイベント通知を特定する（Ｓ２００３）。第１特定部５２１は、当該クラスに属するイベント通知の数を求め、当該クラスに対応するレコードのイベント通知数のフィールドに格納する（Ｓ２００５）。
【００９２】
第１特定部５２１は、当該クラスに属するイベント通知の各組に関して、重複数テーブルに基づいて当該組に係る重複数を特定する。第１特定部５２１は、特定した重複数の平均を算出する。そして、第１特定部５２１は、算出した重複数の平均を当該クラスに対応するレコードに格納する（Ｓ２００７）。
【００９３】
第１特定部５２１は、当該クラスに属する各イベント通知の単語数を特定し、特定した単語数の平均を算出する。第１特定部５２１は、算出した単語数の平均を当該クラスに対応するレコードに格納する（Ｓ２００９）。
【００９４】
第１特定部５２１は、単語数の平均から重複数の平均を引いて、重複しない単語の数を求める。第１特定部５２１は、当該重複しない単語の数を当該クラスに対応するレコードに格納する（Ｓ２０１１）。
【００９５】
第１特定部５２１は、重複しない単語の数を単語数の平均で除して、非重複率を求める。第１特定部５２１は、当該非重複率を当該クラスに対応するレコードに格納する（Ｓ２０１３）。端子Ａを介して、図２０Ｂに示したＳ２０１５の処理に移る。
【００９６】
第１特定部５２１は、非重複率が０を超え且つ非重複率が閾値（例えば、０．２）を下回るか否かを判定する（Ｓ２０１５）。非重複率が０である場合には変数を含まないので、この例における同型グループには該当しないものとする。非重複率が閾値を超える場合には、変数以外にも異なる単語があると想定されるので、この例における同型グループには該当しないものとする。
【００９７】
非重複率が０を超え且つ非重複率が閾値を下回る場合には、第１特定部５２１は、当該クラスに対応するレコードにおける同型グループの候補のフィールドに「該当する」旨のコードを格納する（Ｓ２０１７）。
【００９８】
一方、非重複率が０である場合又は非重複率が閾値以上である場合には、第１特定部５２１は、当該クラスに対応するレコードにおける同型グループの候補のフィールドに「該当しない」旨のコードを格納する（Ｓ２０１９）。
【００９９】
第１特定部５２１は、未特定のクラスＩＤがあるか否かを判定する（Ｓ２０２１）。未特定のクラスＩＤがあると判定した場合には、端子Ｂを介して、図２０ＡのＳ２００１に示した処理に戻って、上述した処理を繰り返す。一方、未特定のクラスＩＤがないと判定した場合には、同型グループに係る候補特定処理を終える。同型グループに係る候補特定処理を終えると、呼び出し元の同型グループ処理に復帰する。
【０１００】
図１８の説明に戻る。判別部５２３は、変数判別処理を実行する（Ｓ１８０３）。判別部５２３は、変数判別処理において、同型グループの候補に該当するクラスに属するメッセージに含まれる単語のうち、変数と看做される単語を判別する。
【０１０１】
図２１Ａ及び図２１Ｂに、出現率テーブルの例を示す。出現率テーブルは、同型グループの候補毎に設けられる。この例における出現率テーブルのヘッダは、同型グループの候補に該当するクラスのＩＤが格納されるフィールドを有している。更に、この例における出現率テーブルは、当該クラスのメッセージに含まれる単語に対応するレコードを有している。出現率テーブルのレコードは、単語が格納されるフィールドと、出現メッセージ数が格納されるフィールドと、出現率が格納されるフィールドと、変数に関するフィールドとを有している。
【０１０２】
単語のフィールドには、当該クラスのメッセージに含まれる単語が格納される。出現メッセージ数は、当該クラスのメッセージのうち、当該単語を含むメッセージの数である。出現率は、出現メッセージ数を当該クラスに属するメッセージの数で除した値である。変数に関するフィールドには、当該単語が変数に「該当する」旨のコード又は「該当しない」旨のコードが格納される。
【０１０３】
図２１Ａは、ＩＤ：Ｃ０１のクラスに関する出現率テーブルの例である。１番目のレコードは、単語「ホスト」がＩＤ：Ｃ０１のクラスに属する６個のメッセージに出現することを示している。また、当該１番目のレコードは、単語「ホスト」がＣ０１のクラスに属するメッセージに１．００の割合で出現し、この単語が変数に該当しないことを示している。
【０１０４】
図２１Ｂに、ＩＤ：Ｃ０８のクラスに関する出現率テーブルの例である。最後のレコードは、単語「ＧＢＳＥ５００８」がＩＤ：Ｃ０８のクラスに属する１個のメッセージに出現することを示している。また、当該１番目のレコードは、単語「ＧＢＳＥ５００８」がＣ０８のクラスに属するメッセージに０．０６の割合で出現し、この単語が変数に該当することを示している。
【０１０５】
図２２に、変数判別処理フローを示す。判別部５２３は、クラステーブルに基づいて、同型グループの候補に該当するクラスＩＤを１つ特定する（Ｓ２２０１）。
【０１０６】
判別部５２３は、当該クラスに属するいずれかのメッセージに含まれる単語を１つ特定する（Ｓ２２０３）。判別部５２３は、分類テーブル及び単語テーブルに基づいて、当該クラスに属するイベント通知のメッセージのうち、当該単語が出現するメッセージの数を計数する。判別部５２３は、当該メッセージの数、つまり出現メッセージ数を当該クラスの出現率テーブルにおける当該単語のレコードに格納する（Ｓ２２０５）。
【０１０７】
判別部５２３は、出現メッセージ数を当該クラスに属するメッセージの数で除して、出現率を求める。判別部５２３は、当該出現率を当該クラスの出現率テーブルにおける当該単語のレコードに格納する（Ｓ２２０７）。
【０１０８】
判別部５２３は、出現率が０を超え且つ出現率が閾値（例えば、０．２）を下回るか否かを判定する（Ｓ２２０９）。この例では出現率が０を超える条件を省くようにしてもよい。尚、出現率が閾値を超える場合には、当該単語がこの例で想定しているホスト名のような変数ではないと見込まれる。
【０１０９】
出現率が０を超え且つ出現率が閾値を下回ると判定した場合には、判別部５２３は、当該単語のレコードにおける変数に関するフィールドに「該当する」旨のコードを格納する（Ｓ２２１１）。
【０１１０】
一方、出現率が０である場合又は出現率が閾値以上である場合には、判別部５２３は、当該単語のレコードにおける変数に関するフィールドに「該当しない」旨のコードを格納する（Ｓ２２１３）。
【０１１１】
判別部５２３は、未特定の単語があるか否かを判定する（Ｓ２２１５）。未特定の単語があると判定した場合には、Ｓ２２０３に示した処理に戻って、上述した処理を繰り返す。
【０１１２】
一方、未特定の単語がないと判定した場合には、判別部５２３は、未特定のクラスＩＤがあるか否かを判定する（Ｓ２２１７）。未特定のクラスＩＤがあると判定した場合には、Ｓ２２０１に示した処理に戻って、上述した処理を繰り返す。
【０１１３】
一方、未特定のクラスＩＤがないと判定した場合には、変数判別処理を終える。変数判別処理を終えると、呼び出し元の同型グループ処理に復帰する。
【０１１４】
図１８の説明に戻る。第３追加部５２５は、同型グループのレコード追加処理を実行する（Ｓ１８０５）。第３追加部５２５は、同型グループのレコード追加処理において、同型グループに関して集約されたレコードを第２テーブルに追加する。
【０１１５】
図２３に、同型グループのレコード追加処理フローを示す。第３追加部５２５は、同型グループの候補であるクラスのうち、変数を含むクラスを１つ特定する（Ｓ２３０１）。つまり、第３追加部５２５は、同型グループの候補であるクラスに関する出現率テーブルのうち、当該出現率テーブルに含まれる変数に関するフィールドのいずれかに「該当する」旨のコードが設定されているものを特定する。特定されたクラスは、同型グループに相当する。
【０１１６】
第３追加部５２５は、第２テーブルに新たなレコードを設ける（Ｓ２３０３）。第３追加部５２５は、当該同型グループを識別するＩＤを割り当てる（Ｓ２３０５）。第３追加部５２５は、割り当てられた同型グループＩＤを新たなレコードにおけるイベント通知のフィールドに格納する。
【０１１７】
第３追加部５２５は、当該同型グループに属するイベント通知の受信日時のうち、最初の受信日時を特定する（Ｓ２３０７）。第３追加部５２５は、当該最初の受信日時を新たなレコードにおける受信日時のフィールドに格納する。
【０１１８】
第３追加部５２５は、当該同型グループに属するイベント通知を送信した正味のホスト数を求める（Ｓ２３０９）。第３追加部５２５は、当該正味のホスト数を新たなレコードにおけるホストのフィールドに格納する。
【０１１９】
第３追加部５２５は、変数以外の単語と変数部分を示すコードとを含む共通メッセージを生成する（Ｓ２３１１）。例えば、第３追加部５２５は、当該同型グループに属するいずれかのイベント通知のメッセージを基礎として、変数に該当する単語を変数部分を示すコードに置き換える。変数部分を示すコードは、変数の位置を示す要素の例である。変数部分を示すコードに代えて、変数部分を示す図形又はマークの識別子を用いるようにしてもよい。尚、この場合、表示処理部２１７は識別子を図形又はマークの画像に置き換えて表示する。第３追加部５２５は、生成した共通メッセージを新たなレコードにおけるメッセージのフィールドに格納する。
【０１２０】
第３追加部５２５は、当該同型グループに属するイベント通知の数を特定する（Ｓ２３１３）。第３追加部５２５は、特定したイベント通知数を新たなレコードにおけるメッセージのフィールドに格納する。
【０１２１】
第３追加部５２５は、当該同型グループに属するイベント通知の内容を参照データに加える（Ｓ２３１５）。このとき、当該イベント通知の内容は、同型グループＩＤと紐付けられる。
【０１２２】
第３追加部５２５は、未特定のクラスがあるか否かを判定する（Ｓ２３１７）。未特定のクラスがあると判定した場合には、Ｓ２３０１に示した処理に戻って、上述した処理を繰り返す。
【０１２３】
一方、未特定のクラスがないと判定した場合には、同型グループのレコード追加処理を終える。同型グループのレコード追加処理を終えると、呼び出し元の同型グループ処理に復帰する。
【０１２４】
図１８の説明に戻る。同型グループのレコード追加処理を終えると、同型グループ処理を終える。同型グループ処理を終えると、呼び出し元の集約処理に復帰する。
【０１２５】
図７の説明に戻る。第２グループ処理部５０５は、共通変数グループ処理を実行する（Ｓ７０５）。第２グループ処理部５０５は、共通変数グループ処理において、共通の変数を含むメッセージに係るイベント通知のグループを特定する。当該グループを共通変数グループという。
【０１２６】
図２４に、共通変数グループ処理フローを示す。第２特定部５３１は、共通単語特定処理を実行する（Ｓ２４０１）。第２特定部５３１は、共通単語特定処理で、所定数以上のクラスにおいて、当該クラスに属するいずれかのイベント通知のメッセージに出現する共通の単語を特定する。当該単語を共通単語という。
【０１２７】
共通単語特定処理について説明する前に、共通単語を特定するために用いられる共通単語テーブルについて説明する。図２５に、共通単語テーブルの例を示す。この例における共通単語テーブルは、単語テーブルに含まれる単語に対応するレコードを有している。共通単語テーブルのレコードは、単語が格納されるフィールドと、出現クラス数が格納されるフィールドと、共通単語に関するフィールドとを有している。
【０１２８】
単語のフィールドには、単語テーブルに含まれる単語が格納される。出現クラス数は、当該単語を含むメッセージが属する正味のクラス数である。共通単語のフィールドには、当該単語が共通単語に「該当する」旨のコード又は「該当しない」旨のコードが格納される。
【０１２９】
図示した１番目のレコードは、単語「ホスト」が１個のクラスに属するイベント通知のメッセージに出現し、共通単語に該当しないことを示している。図示した２番目のレコードは、単語「ＯＲＤ０５２８２」が６個のクラスに属するイベント通知のメッセージに出現し、共通単語に該当することを示している。図示した４番目のレコードは、単語「失敗」も６個のクラスに属するイベント通知のメッセージに出現し、共通単語に該当することを示している。
【０１３０】
図２６に、共通単語特定処理フローを示す。第２特定部５３１は、単語テーブルに含まれる単語を１つ特定する（Ｓ２６０１）。第２特定部５３１は、共通単語テーブルに新たなレコードを設けて、当該レコードに当該単語を格納する。
【０１３１】
第２特定部５３１は、クラスＩＤを１つ特定する（Ｓ２６０３）。第２特定部５３１は、単語テーブル及び分類テーブルに基づいて、当該単語が当該クラスに属するいずれかのイベント通知のメッセージに含まれるか否かを判定する（Ｓ２６０５）。当該単語が当該クラスに属するいずれかのイベント通知のメッセージに含まれると判定した場合には、第２特定部５３１は、当該レコードにおける出現クラス数の値に１を加える（Ｓ２６０７）。尚、出現クラス数の初期値は０である。当該単語が当該クラスに属するいずれのメッセージにも含まれないと判定した場合には、第２特定部５３１は、当該レコードにおける出現クラス数を更新しない。
【０１３２】
第２特定部５３１は、未特定のクラスＩＤがあるか否かを判定する（Ｓ２６０９）。未特定のクラスＩＤがあると判定した場合には、Ｓ２６０３に示した処理に戻って、上述した処理を繰り返す。
【０１３３】
一方、未特定のクラスＩＤがないと判定した場合には、第２特定部５３１は、出現クラス数が閾値（例えば、４）を上回るか否かを判定する（Ｓ２６１１）。出現クラス数が閾値を上回ると判定した場合には、第２特定部５３１は、当該単語のレコードにおける共通単語に関するフィールドに「該当する」旨のコードを格納する（Ｓ２６１３）。一方、出現クラス数が閾値以下であると判定した場合には、第２特定部５３１は、当該単語のレコードにおける共通単語に関するフィールドに「該当しない」旨のコードを格納する（Ｓ２６１５）。
【０１３４】
第２特定部５３１は、未処理の単語があるか否かを判定する（Ｓ２６１７）。未処理の単語があると判定した場合には、Ｓ２６０１に示した処理に戻って、上述した処理を繰り返す。一方、未処理の単語がないと判定した場合には、共通単語特定処理を終える。共通単語特定処理を終えると、呼び出し元の共通変数グループ処理に復帰する。
【０１３５】
図２４の説明に戻る。生成部５３３は、グループ生成処理を実行する（Ｓ２４０３）。生成部５３３は、グループ生成処理において、共通単語に基づいて共通変数グループを生成する。具体的には、一次グループ及び二次グループのいずれか一方又は両方が生成される。つまり、グループ生成処理において生成される一次グループ及び二次グループのいずれか一方又は両方が共通変数グループに相当する。
【０１３６】
尚、本実施の形態では、共通単語には、共通変数に相当するものと共通変数に相当しないものが混在する場合がある。上述の例で、共通単語「ＯＲＤ０５２８２」は共通変数に相当する。一方、共通単語「失敗」は共通変数に相当しない。
【０１３７】
図２７に、グループ生成処理フローを示す。生成部５３３は、共通単語毎に一次グループを生成する（Ｓ２７０１）。具体的には、一次グループテーブルが設けられる。
【０１３８】
図２８Ａ及び図２８Ｂに、一次グループテーブルの例を示す。この例における一次グループテーブルのヘッダは、共通変数グループＩＤが格納されるフィールドと、共通単語が格納されるフィールドとを有している。共通変数グループＩＤは、共通変数グループを識別する。但し、一次グループテーブルが生成された時点において、共通変数グループＩＤはまだ設定されない。更に、この例における一次グループテーブルは、イベント通知ＩＤが格納されるレコードを有している。イベント通知ＩＤは、当該共通単語を含むメッセージに係るイベント通知を特定する。
【０１３９】
図２８Ａに示した一次グループテーブルの例は、図示した１８個のイベント通知ＩＤで特定されるメッセージに共通単語「ＯＲＤ０５２８２」が含まれることを示している。図２８Ｂに示した一次グループテーブルの例は、図示した１８個のイベント通知ＩＤで特定されるメッセージに共通単語「失敗」が含まれることを示している。尚、この例で、図２８Ａに示した一次グループテーブルにおけるイベント通知ＩＤと図２８Ｂに示した一次グループテーブルにおけるイベント通知ＩＤとが一致している。
【０１４０】
図２７の説明に戻る。第２判定部５３７は、一次グループの組合せを特定する（Ｓ２７０３）。第２判定部５３７は、例えば組合せ要素となる一次グループの数がより多い組合せから順に特定する。
【０１４１】
第２判定部５３７は、当該組合せに係る各一次グループにおけるイベント通知ＩＤが重複するか否かを判定する（Ｓ２７０５）。この例では、第２判定部５３７は、各一次グループにおけるイベント通知ＩＤがすべて一致するか否かを判定する。第２判定部５３７は、各一次グループにおけるイベント通知ＩＤの一部が一致するか否かを判定するようにしてもよい。具体的には、第２判定部５３７は、所定数以上のイベント通知ＩＤが一致するか否かを判定するようにしてもよい。或いは、第２判定部５３７は、所定割合以上のイベント通知ＩＤが一致するか否かを判定するようにしてもよい。
【０１４２】
各一次グループにおけるイベント通知ＩＤが重複すると判定した場合には、統合部５３９は、当該組合せに係る各一次グループを統合し、二次グループを生成する（Ｓ２７０７）。具体的には、統合部５３９は、二次グループテーブルを生成し、元の各一次グループテーブルを削除する。各一次グループにおけるイベント通知ＩＤが重複しないと判定した場合には、そのままＳ２７０９の処理に移る。
【０１４３】
図２９に、二次グループテーブルの例を示す。この例における二次グループテーブルのヘッダは、共通変数グループＩＤが格納されるフィールドと、共通単語が格納される複数のフィールドとを有している。共通単語は、二次グループに属するイベント通知のメッセージに含まれる共通の単語である。二次グループテーブルにおけるレコードには、ヘッダに格納されている複数の共通単語を含むメッセージに係るイベント通知ＩＤが格納される。つまり、統合部５３９は、元の各一次グループテーブルにおいて共通のイベント通知ＩＤを、二次グループテーブルに設定する。
【０１４４】
図２７の説明に戻る。第２判定部５３７は、未処理の組合せがあるか否かを判定する（Ｓ２７０９）。未処理の組合せがあると判定した場合には、Ｓ２７０３に示した処理に戻って、上述した処理を繰り返す。
【０１４５】
一方、未処理の組合せがないと判定した場合には、生成部５３３は、残りの一次グループ、つまり統合されなかった一次グループに共通変数グループＩＤを割り当てる（Ｓ２７１１）。そして、一次グループテーブルのヘッダに、当該共通変数グループＩＤを格納する。グループ生成処理を終えると、呼び出し元の共通変数グループ処理に復帰する。
【０１４６】
図２４の説明に戻る。第４追加部５３５は、共通変数グループのレコード追加処理を実行する（Ｓ２４０５）。第４追加部５３５は、共通変数グループのレコード追加処理において、共通変数グループに関して集約されたレコードを第２テーブルに追加する。
【０１４７】
図３０に、共通変数グループのレコード追加処理フローを示す。第４追加部５３５は、生成された共通変数グループを１つ特定する（Ｓ３００１）。
【０１４８】
第４追加部５３５は、第２テーブルに新たなレコードを設ける（Ｓ３００３）。第４追加部５３５は、共通変数グループＩＤを新たなレコードにおけるイベント通知のフィールドに格納する（Ｓ３００５）。
【０１４９】
第４追加部５３５は、当該共通変数グループに属するイベント通知の受信日時のうち、最初の受信日時を特定する（Ｓ３００７）。第４追加部５３５は、当該最初の受信日時を新たなレコードにおける受信日時のフィールドに格納する。
【０１５０】
第４追加部５３５は、当該共通変数グループに属するイベント通知を送信した正味のホスト数を求める（Ｓ３００９）。第４追加部５３５は、当該正味のホスト数を新たなレコードにおけるホストのフィールドに格納する。
【０１５１】
第４追加部５３５は、当該共通変数グループにおける共通単語を新たなレコードにおけるメッセージのフィールドに格納する（Ｓ３０１１）。
【０１５２】
第４追加部５３５は、当該共通変数グループに属するイベント通知の数を特定する（Ｓ３０１３）。第４追加部５３５は、特定したイベント通知数を新たなレコードにおけるメッセージのフィールドに格納する。
【０１５３】
第４追加部５３５は、当該共通変数グループに属するイベント通知の内容を参照データに加える（Ｓ３０１５）。このとき、当該イベント通知の内容は、共通変数グループＩＤと紐付けられる。
【０１５４】
第４追加部５３５は、未特定のクラスがあるか否かを判定する（Ｓ３０１７）。未特定のクラスがあると判定した場合には、Ｓ３００１に示した処理に戻って、上述した処理を繰り返す。
【０１５５】
一方、未特定のクラスがないと判定した場合には、共通変数グループのレコード追加処理を終える。共通変数グループのレコード追加処理を終えると、呼び出し元の共通変数グループ処理に復帰する。
【０１５６】
図２４の説明に戻る。共通変数グループ処理を終えると、呼び出し元の集約処理に復帰する。
【０１５７】
図７の説明に戻る。第２追加部５０７は、図６のＳ６０１で待った単位期間内に受信したイベント通知に相当するレコード（第１テーブル）から、同型グループ及び共通変数グループに属していないイベント通知のレコードを抽出し、抽出したレコードを第２テーブルに追加する（Ｓ７０７）。集約処理を終えると、呼び出し元のメイン処理に復帰する。
【０１５８】
図６の説明に戻る。表示処理部２１７は、リストを表示する（Ｓ６１３）。上述したように、表示処理部２１７は、受信日時が新しい順に第２テーブルのレコードの内容を表示する。この例では、図４に示したように、１番目にＩＤ：Ｍ１の共通変数グループに関する行が表示される。２番目に共通変数グループ及び同型グループに属さないＩＤ：５２１５０のイベント通知に関する行が表示される。３番目にＩＤ：Ｗ１の同型グループに関する行が表示される。４番目以降には、以前の単位期間に取得したイベント通知に基づく内容が表示される。そして、リストの表示を終えると、Ｓ６０１に示した処理に戻って、上述した処理を繰り返す。
【０１５９】
本実施の形態によれば、共通変数グループのメッセージを集約するので、同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、障害の原因となった装置の識別子を含むメッセージを集約し、単一のメッセージによって原因の装置を示すことができる。
【０１６０】
また、同じメッセージに含まれる複数の共通単語を一緒に集約内容として表示するので、より具体的に同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、原因の装置を特定する情報の他に、当該装置の状態を併せて把握することができる。
【０１６１】
また、同型グループのメッセージを集約するので、複数発生した同様のイベントを捉え易くなる。
【０１６２】
また、共通変数グループと同型グループとのいずれにも属さないメッセージを表示するので、集約対象以外のメッセージの見逃しを防止できる。
【０１６３】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１６４】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１６５】
なお、上で述べた監視機器１０１は、コンピュータ装置であって、図３１に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１６６】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１６７】
本実施の形態に係るメッセージ出力方法は、（Ａ）各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、（Ｂ）複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、（Ｃ）共通単語を含むメッセージが集約された第１メッセージを出力する処理を含む。
【０１６８】
このようにすれば、同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、障害の原因となった装置の識別子を含むメッセージを集約し、単一のメッセージによって原因の装置を知らせることができる。
【０１６９】
更に、共通単語の組合せについて、各共通単語を含むメッセージの上記識別子が重複するか否かを判定し、上記識別子が重複する場合に、各共通単語に係る第１メッセージを同じグループにまとめるようにしてもよい。
【０１７０】
このようにすれば、より具体的に同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、原因の装置に関する情報の他に、当該装置における現象を併せて把握することができる。
【０１７１】
更に、複数のクラスのうち、同一クラスに属するメッセージ間において重複しない単語の割合が基準より小さい候補クラスを特定し、候補クラスに属するメッセージに含まれる複数の単語のうち、候補クラスに属するメッセージ単位の出現率が基準よりも小さい単語を変数であると判別するようにしてもよい。また、候補クラスに関して変数が判別された場合に、候補クラスに属するメッセージが集約された第２メッセージとして、候補クラスに属するメッセージに含まれる変数以外の単語と変数の位置を示す要素とを出力するようにしてもよい。
【０１７２】
このようにすれば、例えば複数発生した同様のイベントを捉え易くなる。
【０１７３】
更に、複数のメッセージのうち、第１メッセージによる集約対象及び第２メッセージによる集約対象に該当しないメッセージを出力するようにしてもよい。
【０１７４】
このようにすれば、集約対象以外のメッセージの見逃しを防止できる。
【０１７５】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１７６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７７】
（付記１）
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第１メッセージを出力する
処理をコンピュータに実行させるメッセージ出力プログラム。
【０１７８】
（付記２）
更に、
前記共通単語の組合せについて、各共通単語を含むメッセージの前記識別子が重複するか否かを判定し、
前記識別子が重複する場合に、前記各共通単語に係る前記第１メッセージを同じグループにまとめる
処理を含む付記１記載のメッセージ出力プログラム。
【０１７９】
（付記３）
更に、
前記複数のクラスのうち、同一クラスに属するメッセージ間において重複しない単語の割合が基準より小さい候補クラスを特定し、
前記候補クラスに属するメッセージに含まれる複数の単語のうち、前記候補クラスに属するメッセージ単位の出現率が基準よりも小さい単語を変数であると判別し、
前記候補クラスに関して前記変数が判別された場合に、前記候補クラスに属する前記メッセージが集約された第２メッセージとして、前記候補クラスに属する前記メッセージに含まれる前記変数以外の単語と前記変数の位置を示す要素とを出力する
処理を含む付記１又は２記載のメッセージ出力プログラム。
【０１８０】
（付記４）
更に、
前記複数のメッセージのうち、前記第１メッセージによる集約対象及び前記第２メッセージによる集約対象に該当しないメッセージを出力する
処理を含む付記３記載のメッセージ出力プログラム。
【０１８１】
（付記５）
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第１メッセージを出力する
処理を含み、コンピュータにより実行されるメッセージ出力方法。
【０１８２】
（付記６）
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類する分類部と、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定する特定部と、
前記共通単語を含むメッセージが集約された第１メッセージを出力する出力部と
を有するメッセージ出力装置。
【符号の説明】
【０１８３】
１０１  監視機器    １０３  ホスト
１０５  ＤＢサーバー    １０７  ＤＮＳサーバー
２０１  受信部    ２０３  フィルタ
２０５  ルール記憶部    ２０７  第１テーブル格納部
２０９  第１判定部    ２１１  第１追加部
２１３  集約部    ２１５  第２テーブル格納部
２１７  表示処理部    ２１９  参照データ記憶部
２２１  受付部    ２２３  第１抽出部
５０１  分類部    ５０３  第１グループ処理部
５０５  第２グループ処理部    ５０７  第２追加部
５１１  第２抽出部    ５１３  集計部
５１５  第１算出部    ５１７  第２算出部
５１９  クラスタリング部    ５２１  第１特定部
５２３  判別部    ５２５  第３追加部
５３１  第２特定部    ５３３  生成部
５３５  第４追加部    ５３７  第２判定部
５３９  統合部    ５５１  単語テーブル格納部
５５３  集計テーブル格納部    ５５５  重複数テーブル格納部
５５７  類似度テーブル格納部    ５５９  分類テーブル格納部
５６１  クラステーブル格納部    ５６３  出現率テーブル格納部
５６５  共通単語テーブル格納部    ５６７  グループテーブル格納部
【図１】
2018180927.tif 000003
【図２】
2018180927.tif 000004
【図３Ａ】
2018180927.tif 000005
【図３Ｂ】
2018180927.tif 000006
【図３Ｃ】
2018180927.tif 000007
【図３Ｄ】
2018180927.tif 000008
【図３Ｅ】
2018180927.tif 000009
【図４】
2018180927.tif 000010
【図５Ａ】
2018180927.tif 000011
【図５Ｂ】
2018180927.tif 000012
【図６】
2018180927.tif 000013
【図７】
2018180927.tif 000014
【図８】
2018180927.tif 000015
【図９】
2018180927.tif 000016
【図１０】
2018180927.tif 000017
【図１１】
2018180927.tif 000018
【図１２】
2018180927.tif 000019
【図１３】
2018180927.tif 000020
【図１４】
2018180927.tif 000021
【図１５】
2018180927.tif 000022
【図１６】
2018180927.tif 000023
【図１７】
2018180927.tif 000024
【図１８】
2018180927.tif 000025
【図１９】
2018180927.tif 000026
【図２０Ａ】
2018180927.tif 000027
【図２０Ｂ】
2018180927.tif 000028
【図２１Ａ】
2018180927.tif 000029
【図２１Ｂ】
2018180927.tif 000030
【図２２】
2018180927.tif 000031
【図２３】
2018180927.tif 000032
【図２４】
2018180927.tif 000033
【図２５】
2018180927.tif 000034
【図２６】
2018180927.tif 000035
【図２７】
2018180927.tif 000036
【図２８Ａ】
2018180927.tif 000037
【図２８Ｂ】
2018180927.tif 000038
【図２９】
2018180927.tif 000039
【図３０】
2018180927.tif 000040
【図３１】
2018180927.tif 000041