特許第6794909号(P6794909)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許6794909メッセージ出力プログラム、メッセージ出力方法及びメッセージ出力装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6794909
(24)【登録日】2020年11月16日
(45)【発行日】2020年12月2日
(54)【発明の名称】メッセージ出力プログラム、メッセージ出力方法及びメッセージ出力装置
(51)【国際特許分類】
   G06F 11/30 20060101AFI20201119BHJP
   G06F 11/34 20060101ALI20201119BHJP
【FI】
   G06F11/30 182
   G06F11/30 140A
   G06F11/34 176
【請求項の数】6
【全頁数】33
(21)【出願番号】特願2017-79499(P2017-79499)
(22)【出願日】2017年4月13日
(65)【公開番号】特開2018-180927(P2018-180927A)
(43)【公開日】2018年11月15日
【審査請求日】2020年1月15日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100103528
【弁理士】
【氏名又は名称】原田 一男
(72)【発明者】
【氏名】渡辺 幸洋
(72)【発明者】
【氏名】横山 乾
(72)【発明者】
【氏名】麻岡 正洋
(72)【発明者】
【氏名】大塚 浩
(72)【発明者】
【氏名】近藤 玲子
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 特開2016−143320(JP,A)
【文献】 特開2016−76075(JP,A)
【文献】 木村 達明 他,大規模ネットワーク監視情報における重要イベント抽出法,電子情報通信学会技術研究報告,電子情報通信学会,2012年 3月 1日,第111巻 第468号,第261 頁-第264 頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
11/28−11/36
(57)【特許請求の範囲】
【請求項1】
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第1メッセージを出力する
処理をコンピュータに実行させるメッセージ出力プログラム。
【請求項2】
更に、
前記共通単語の組合せについて、各共通単語を含むメッセージの前記識別子が重複するか否かを判定し、
前記識別子が重複する場合に、前記各共通単語に係る前記第1メッセージを同じグループにまとめる
処理を含む請求項1記載のメッセージ出力プログラム。
【請求項3】
更に、
前記複数のクラスのうち、同一クラスに属するメッセージ間において重複しない単語の割合が基準より小さい候補クラスを特定し、
前記候補クラスに属するメッセージに含まれる複数の単語のうち、前記候補クラスに属するメッセージ単位の出現率が基準よりも小さい単語を変数であると判別し、
前記候補クラスに関して前記変数が判別された場合に、前記候補クラスに属する前記メッセージが集約された第2メッセージとして、前記候補クラスに属する前記メッセージに含まれる前記変数以外の単語と前記変数の位置を示す要素とを出力する
処理を含む請求項1又は2記載のメッセージ出力プログラム。
【請求項4】
更に、
前記複数のメッセージのうち、前記第1メッセージによる集約対象及び前記第2メッセージによる集約対象に該当しないメッセージを出力する
処理を含む請求項3記載のメッセージ出力プログラム。
【請求項5】
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第1メッセージを出力する
処理を含み、コンピュータにより実行されるメッセージ出力方法。
【請求項6】
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類する分類部と、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定する特定部と、
前記共通単語を含むメッセージが集約された第1メッセージを出力する出力部と
を有するメッセージ出力装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージを集約する技術に関する。
【背景技術】
【0002】
或る監視装置は、監視対象のネットワークシステムに含まれるホストから多種多様なイベントに関するメッセージを受け付けて、当該メッセージを表示する。システムの管理者は、表示されたメッセージをチェックして、例えば障害の発生を把握する。
【0003】
監視装置において、同じメッセージを繰り返し受け付けることもある。このような事態を想定して、同一のメッセージに関して2回目以降のメッセージを破棄するフィルタを設ければ、重複するメッセージを排除することができる。
【0004】
また、一連のメッセージについて規則性があれば、フィルタが所定のルールに基づいて一連のメッセージを一つのメッセージにまとめることもある。これにより、メッセージの数を減らすこともできる。
【0005】
このようなフィルタリングを通過した複数のメッセージが同一事象に起因することがある。但し、同一事象に起因するメッセージは、その内容が同一であるとは限らない。また、同一事象に起因するとしても一連のメッセージとしての規則性を有しているとは限らない。従って、従来のフィルタを用いてもこれらのメッセージはそのまま表示される。そのため、システムの管理者が状況の把握に手間取ることがある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2013−171471号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、一側面では、同一事象に起因する複数メッセージの趣旨を把握し易くすることである。
【課題を解決するための手段】
【0008】
一態様に係るメッセージ出力方法は、(A)各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、(B)複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、(C)共通単語を含むメッセージが集約された第1メッセージを出力する処理を含む。
【発明の効果】
【0009】
一側面としては、同一事象に起因する複数メッセージの趣旨を把握し易くなる。
【図面の簡単な説明】
【0010】
図1図1は、ネットワーク構成例を示す図である。
図2図2は、監視機器のモジュール構成例を示す図である。
図3A図3Aは、第1テーブルの例を示す図である。
図3B図3Bは、第1テーブルの例を示す図である。
図3C図3Cは、第1テーブルの例を示す図である。
図3D図3Dは、第1テーブルの例を示す図である。
図3E図3Eは、第1テーブルの例を示す図である。
図4図4は、リストの例を示す図である。
図5A図5Aは、集約部のモジュール構成例を示す図である。
図5B図5Bは、集約部のモジュール構成例を示す図である。
図6図6は、メイン処理フローを示す図である。
図7図7は、集約処理フローを示す図である。
図8図8は、メッセージ分類処理フローを示す図である。
図9図9は、単語テーブルの例を示す図である。
図10図10は、単語抽出処理フローを示す図である。
図11図11は、集計テーブルの例を示す図である。
図12図12は、集計処理フローを示す図である。
図13図13は、重複数テーブルの例を示す図である。
図14図14は、重複数算出処理フローを示す図である。
図15図15は、類似度テーブルの例を示す図である。
図16図16は、類似度算出処理フローを示す図である。
図17図17は、分類テーブルの例を示す図である。
図18図18は、同型グループ処理フローを示す図である。
図19図19は、クラステーブルの例を示す図である。
図20A図20Aは、同型グループに係る候補特定処理フローを示す図である。
図20B図20Bは、同型グループに係る候補特定処理フローを示す図である。
図21A図21Aは、出現率テーブルの例を示す図である。
図21B図21Bは、出現率テーブルの例を示す図である。
図22図22は、変数判別処理フローを示す図である。
図23図23は、同型グループのレコード追加処理フローを示す図である。
図24図24は、共通変数グループ処理フローを示す図である。
図25図25は、共通単語テーブルの例を示す図である。
図26図26は、共通単語特定処理フローを示す図である。
図27図27は、グループ生成処理フローを示す図である。
図28A図28Aは、一次グループテーブルの例を示す図である。
図28B図28Bは、一次グループテーブルの例を示す図である。
図29図29は、二次グループテーブルの例を示す図である。
図30図30は、共通変数グループのレコード追加処理フローを示す図である。
図31図31は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【0011】
図1に、ネットワーク構成例を示す。この例では、ネットワークにホスト103、DB(DataBase)サーバー105及びDNSサーバー107が接続されている。ネットワークは、例えばLAN(Local Area Network)である。ホスト103は、他のホスト103、DBサーバー105又はDNSサーバー107のサービスを利用することがある。尚、DBサーバー105及びDNSサーバー107もホスト装置の一種である。
【0012】
ネットワークにはさらに監視機器101が接続されている。監視機器101は、ホスト103、DBサーバー105及びDNSサーバー107の状況を監視する。つまり、ホスト103、DBサーバー105及びDNSサーバー107は、監視対象の装置に相当する。具体的には、監視対象の装置においてイベントが発生すると、監視対象の装置はイベントの内容を知らせるメッセージを含むイベント通知を監視機器101に送信する。監視機器101は、受信したイベント通知の内容を表示装置に表示する。管理者は、随時イベント通知の内容をチェックして、監視対象装置の状況を把握する。
【0013】
図2に、監視機器101のモジュール構成例を示す。監視機器101は、受信部201、フィルタ203、ルール記憶部205、第1テーブル格納部207、第1判定部209、第1追加部211、集約部213、第2テーブル格納部215、表示処理部217、参照データ記憶部219、受付部221及び第1抽出部223を有する。
【0014】
受信部201は、イベント通知を受信する。フィルタ203は、受信したイベント通知に対するフィルタリングを行う。ルール記憶部205は、フィルタリングのためのルールを記憶する。第1テーブル格納部207は、第1テーブルを格納する。第1テーブルには、フィルタ203を通過したイベント通知に関する内容が格納される。第1テーブルについては、図3A乃至図3Eを用いて後述する。
【0015】
第1判定部209は、単位期間内において受信したイベント通知の数が閾値を超えるか否かを判定する。第1追加部211は、単位期間内において受信したイベント通知を第2テーブルに追加する。集約部213は、単位期間内において受信したイベント通知を集約する。第2テーブル格納部215は、第2テーブルを格納する。第2テーブルは、第1テーブルと同様の構成である。但し、第2テーブルは、イベント通知を集約した内容のレコードを含む場合がある。
【0016】
表示処理部217は、第2テーブルに基づいてリストの表示を行う。参照データ記憶部219は、集約対象となったイベント通知の内容を記憶する。受付部221は、集約対象となったイベント通知の内容の照会指示を受け付ける。照会指示を受け付けた場合に、第1抽出部223は、集約対象となったイベント通知を抽出する。第1抽出部223によって抽出されたイベント通知の内容は、表示処理部217によって表示される。尚、表示処理部217は、出力部の例である。出力の形態は、印刷、送信又は記憶媒体への書き込みなどであってもよい。
【0017】
上述した受信部201、フィルタ203、第1判定部209、第1追加部211、集約部213、表示処理部217、受付部221及び第1抽出部223は、ハードウエア資源(例えば、図31)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【0018】
上述したルール記憶部205、第1テーブル格納部207、第2テーブル格納部215及び参照データ記憶部219は、ハードウエア資源(例えば、図31)を用いて実現される。
【0019】
図3A乃至図3Eに、第1テーブルの例を示す。この例における第1テーブルは、フィルタ203を通過したイベント通知に対応するレコードを有している。第1テーブルのレコードは、イベント通知IDが格納されるフィールドと、受信日時が格納されるフィールドと、ホストに関するフィールドと、メッセージが格納されるフィールドとを有している。
【0020】
イベント通知IDは、フィルタ203を通過したイベント通知を識別する。受信日時は、イベント通知を受信した時点を特定する。ホストのフィールドには、イベント通知の送信元であるホストの名前が格納される。メッセージは、イベントの内容を表す。図3Aに示した第1テーブルの続きを図3Bに示す。図3Bに示した第1テーブルの続きを図3Cに示す。図3Cに示した第1テーブルの続きを図3Dに示す。図3Dに示した第1テーブルの続きを図3Eに示す。
【0021】
図3A乃至図3Eに示した第1テーブルは、2015年10月13日の17時48分44秒から同17時48分47秒に至る3秒間に受信したイベント通知に関するレコードを有している。各レコードは、受信した順にイベント通知に関する内容を格納している。
【0022】
イベント通知ID:52132からイベント通知ID:52149までの18個のレコードにおけるメッセージは、「ORD05282」及び「失敗」の単語を含んでいる。これらのレコードは、いずれもホスト名が「ORD05282」であるDBサーバー105の故障に起因するイベントに関する。つまり、これらのレコードに格納されているメッセージは、DBサーバー105の故障という同一事象に起因する。
【0023】
また、イベント通知ID:52151からイベント通知ID:52166までの16個のレコードにおけるメッセージは、「NT1CF100」「OMSKOBE」及び「FABS5079」などのホスト名に相当する変数以外の部分が共通である。これらのレコードは、いずれもDNSサーバー107の故障に起因するイベントに関する。つまり、これらのレコードに格納されているメッセージは、DNSサーバー107の故障という同一事象に起因する。
【0024】
イベント通知ID:52150レコードは、ホスト名「HOST_MVI」のホスト103自身の資源不足に起因するイベントに関する。つまり、このレコードに格納されているメッセージは、他のレコードに格納されているメッセージの場合とは異なる事象に起因する。
【0025】
管理者が、短い時間内に受信した多数のイベント通知の関連を把握し、如何なる事象が想定されるかを検討するには時間がかかる。例えば図3A乃至図3Eに示したイベント通知ID:52132からイベント通知ID:52166までのレコードの内容を一斉に表示させると、先に受信したイベント通知の内容がリストから流れ出てしまう。また、多くの類似するメッセージに係るイベント通知にまぎれて、イベント通知ID:52150のメッセージは見落とされ易い。
【0026】
図4に、本実施の形態で表示されるリストの例を示す。本実施の形態では、イベント通知ID:52151からイベント通知ID:52166までのレコードのように、変数以外の部分が共通するメッセージに係るイベント通知のグループを特定して、これらのメッセージを集約する。図4に示したリストの第1行は、このグループのイベント通知を集約した内容を示している。イベント通知の項目の「M1」は、当該グループを識別する。受信日時は、このグループのイベント通知を最初に受信した日時を示している。ホストの項目におけるホスト数は、このグループのイベント通知を送信したホストの正味の数である。メッセージの項目には、変数以外の内容と変数の位置を示すコードとが表示される。また、メッセージの項目には、このグループのメッセージが16件あることも示している。
【0027】
更に、本実施の形態では、イベント通知ID:52132からイベント通知ID:52149までのレコードのように、共通の変数(この例では、「ORD05282」)を含むメッセージに係るイベント通知のグループを特定して、これらのメッセージを集約する。図4に示したリストの第3行は、このグループのイベント通知を集約した内容を示している。イベント通知の項目の「W1」は、当該グループを識別する。受信日時は、このグループのイベント通知を最初に受信した日時を示している。ホストの項目におけるホスト数は、このグループのイベント通知を送信したホストの正味の数である。メッセージの項目には、このグループのメッセージには、「ORD05282」及び「失敗」が含まれていることと、このグループのメッセージが18件あることを示している。
【0028】
図4に示したリストの第2行は、上述した2つのグループに属さないID:52150のイベント通知に関する内容を表している。
【0029】
尚、第4行以降には、図3A乃至図3Eに示したイベント通知以前に受信したイベント通知に基づく内容が表されている。この内容については省略する。
【0030】
図5A及び図5Bに、集約部213のモジュール構成例を示す。集約部213は、分類部501、第1グループ処理部503、第2グループ処理部505及び第2追加部507を有する。
【0031】
分類部501は、メッセージ分類処理を実行する。メッセージ分類処理については、図8を用いて後述する。分類部501は、第2抽出部511、集計部513、第1算出部515、第2算出部517及びクラスタリング部519を有する。第2抽出部511は、単語抽出処理を実行する。単語抽出処理については、図10を用いて後述する。集計部513は、集計処理を実行する。集計処理については、図12を用いて後述する。第1算出部515は、重複数算出処理を実行する。重複数算出処理については、図14を用いて後述する。第2算出部517は、類似度算出処理を実行する。類似度算出処理については、図16を用いて後述する。クラスタリング部519は、クラスタリング処理を実行する。
【0032】
第1グループ処理部503は、同型グループ処理を実行する。同型グループ処理については、図18を用いて後述する。第1グループ処理部503は、第1特定部521、判別部523及び第3追加部525を有する。第1特定部521は、同型グループに係る候補特定処理を実行する。同型グループに係る候補特定処理については、図20A及び図20Bを用いて後述する。判別部523は、変数判別処理を実行する。変数判別処理については、図22を用いて後述する。第3追加部525は、同型グループのレコード追加処理を実行する。同型グループのレコード追加処理については、図23を用いて後述する。
【0033】
第2グループ処理部505は、共通変数グループ処理を実行する。共通変数グループ処理については、図24を用いて後述する。第2グループ処理部505は、第2特定部531、生成部533及び第4追加部535を有する。第2特定部531は、共通単語特定処理を実行する。共通単語特定処理については、図26を用いて後述する。生成部533は、グループ生成処理を実行する。グループ生成処理については、図27を用いて後述する。生成部533は、第2判定部537及び統合部539を有する。第2判定部537は、複数の一次グループを統合するか否かを判定する。一次グループについては、後述する。統合部539は、複数の一次グループを統合し、二次グループを生成する。二次グループについては、後述する。第4追加部535は、共通変数グループのレコード追加処理を実行する。共通変数グループのレコード追加処理については、図30を用いて後述する。
【0034】
第2追加部507は、同型グループ及び共通変数グループに属していないイベント通知を第2テーブルに追加する。
【0035】
上述した分類部501、第1グループ処理部503、第2グループ処理部505及び第2追加部507は、ハードウエア資源(例えば、図31)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。同じく第2抽出部511、集計部513、第1算出部515、第2算出部517、クラスタリング部519、第1特定部521、判別部523、第3追加部525、第2特定部531、生成部533、第4追加部535、第2判定部537及び統合部539も、ハードウエア資源(例えば、図31)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【0036】
図5Bの説明に移る。集約部213は、更に単語テーブル格納部551、集計テーブル格納部553、重複数テーブル格納部555、類似度テーブル格納部557、分類テーブル格納部559、クラステーブル格納部561、出現率テーブル格納部563、共通単語テーブル格納部565及びグループテーブル格納部567を有する。
【0037】
単語テーブル格納部551は、単語テーブルを格納する。単語テーブルについては、図9を用いて後述する。集計テーブル格納部553は、集計テーブルを格納する。集計テーブルについては、図11を用いて後述する。重複数テーブル格納部555は、重複数テーブルを格納する。重複数テーブルについては、図13を用いて後述する。類似度テーブル格納部557は、類似度テーブルを格納する。類似度テーブルについては、図15を用いて後述する。分類テーブル格納部559は、分類テーブルを格納する。分類テーブルについては、図17を用いて後述する。
【0038】
クラステーブル格納部561は、クラステーブルを格納する。クラステーブルについては、図19を用いて後述する。出現率テーブル格納部563は、出現率テーブルを格納する。出現率テーブルについては、図21A及び図21Bを用いて後述する。共通単語テーブル格納部565は、共通単語テーブルを格納する。共通単語テーブルについては、図25を用いて後述する。グループテーブル格納部567は、一次グループテーブル及び二次グループテーブルを格納する。一次グループテーブルについては、図28A及び図28Bを用いて後述する。二次グループテーブルについては、図29を用いて後述する。
【0039】
上述した単語テーブル格納部551、集計テーブル格納部553、重複数テーブル格納部555、類似度テーブル格納部557、分類テーブル格納部559、クラステーブル格納部561、出現率テーブル格納部563、共通単語テーブル格納部565及びグループテーブル格納部567は、ハードウエア資源(例えば、図31)を用いて実現される。
【0040】
図6に、メイン処理フローを示す。第1判定部209は、順次単位期間の経過を待つ(S601)。単位期間の長さは、例えば3秒である。
【0041】
単位期間が経過すると、第1判定部209は、当該単位期間内において受信したイベント通知の数を算出する(S603)。そして、第1判定部209は、当該単位期間内において受信したイベント通知の数が閾値を超えるか否かを判定する(S605)。閾値は、例えばリストの行数である。
【0042】
当該単位期間内において受信したイベント通知の数が閾値を超えないと判定した場合には、第1追加部211は、当該単位期間内において受信したイベント通知を第2テーブルに追加する(S607)。
【0043】
表示処理部217は、第2テーブルに基づいて、リストを表示する(S609)。具体的には、最新の受信日時のレコードの内容をリストの先頭行に表示する。更に、受信日時を遡る順に従ってレコードを特定し、当該レコードの内容を次々表示する。末尾の行を表示した時点で処理を終了する。つまり、リストの行数に相当する数のレコードの内容が、受信日時が新しい順に表示される。そして、S601に示した処理に戻って、上述した処理を繰り返す。
【0044】
一方、S605において当該単位期間内において受信したイベント通知の数が閾値を超えると判定した場合には、集約部213は、集約処理を実行する(S611)。集約部213は、集約処理において、当該単位期間内において受信したイベント通知の全部又は一部を集約する。
【0045】
図7に、集約処理フローを示す。分類部501は、メッセージ分類処理を実行する(S701)。分類部501は、メッセージ分類処理において、単位期間内において受信したイベント通知を分類する。
【0046】
図8に、メッセージ分類処理フローを示す。第2抽出部511は、単語抽出処理を実行する(S801)。第2抽出部511は、単語抽出処理において、各メッセージに含まれる単語を抽出する。
【0047】
単語抽出処理について説明する前に、抽出された単語を格納する単語テーブルについて説明する。図9に、単語テーブルの例を示す。この例における単語テーブルは、メッセージに含まれる単語に対応するレコードを有している。単語テーブルのレコードは、イベント通知IDが格納されるフィールドと、単語が格納されるフィールドとを有している。イベント通知IDは、当該単語が出現するメッセージを含むイベント通知を特定する。
【0048】
図10に、単語抽出処理フローを示す。第2抽出部511は、図6のS601で待った単位期間内に受信したイベント通知のIDを1つ特定する(S1001)。例えば、第2抽出部511は、受信時間の順に従ってイベント通知のIDを特定する。
【0049】
第2抽出部511は、当該イベント通知に含まれるメッセージを特定する(S1003)。第2抽出部511は、特定したメッセージを単語に分解する(S1005)。そして、第2抽出部511は、分解された各単語について単語テーブルに新しいレコードを設け、当該レコードに当該イベント通知のIDと当該単語とを対応付けて格納する(S1007)。
【0050】
第2抽出部511は、未特定のイベント通知IDがあるか否かを判定する(S1009)。未特定のイベント通知IDがあると判定した場合には、S1001に示した処理に戻って、上述した処理を繰り返す。一方、未特定のイベント通知IDがないと判定した場合には、単語抽出処理を終える。単語抽出処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【0051】
図8の説明に戻る。集計部513は、集計処理を実行する(S803)。集計部513は、集計処理において、イベント通知IDに対応する単語数及び各単語の出現数を集計する。
【0052】
集計処理について説明する前に、イベント通知IDに対応する単語数及び各単語の出現数を集計するために用いられる集計テーブルについて説明する。
【0053】
図11に、集計テーブルの例を示す。この例における集計テーブルは、イベント通知IDに対応するレコードを有している。集計テーブルのレコードは、単語テーブルに格納された単語に対応するフィールドを有する。当該フィールドには、当該単語を「含む」旨のコード又は「含まない」旨のコードが格納される。集計テーブルのレコードは、更に、イベント通知IDに対応する単語数が格納されるフィールドを有する。また、集計テーブルは、各単語の出現数が格納されるフィールドも有している。
【0054】
図示した1番目のレコードは、ID:52132で識別されるイベント通知のメッセージに「ホスト」「ORD05282」「において」「disk」「出力」「されました」「パラメータ」及び「C」の単語が含まれ、「D」及び「E」の単語が含まれないことを示している。また、1番目のレコードは、ID:52132で識別されるイベント通知のメッセージには、17個の単語が含まれることを示している。
【0055】
また、図11は、例えば「ホスト」の単語が6個のイベント通知のメッセージに含まれることを示している。
【0056】
図12に、集計処理フローを示す。集計部513は、図6のS601で待った単位期間内に受信したイベント通知のIDを1つ特定する(S1201)。例えば、集計部513は、受信時間の順に従ってイベント通知のIDを特定する。
【0057】
集計部513は、単語テーブルにおいて当該イベント通知IDに対応する単語の各々について、集計テーブルの当該イベント通知IDのレコードにおける当該単語のフィールドに「含む」旨のコードを格納する(S1203)。また、集計部513は、「含む」を設定しない単語のフィールドに、「含まない」旨のコードを格納する。
【0058】
集計部513は、「含む」旨のコードが格納されたフィールドをカウントし、当該フィールドの数を当該イベント通知IDのレコードにおける単語数のフィールドに格納する(S1205)。
【0059】
集計部513は、未特定のイベント通知IDがあるか否かを判定する(S1207)。未特定のイベント通知IDがあると判定した場合には、S1201に示した処理に戻って、上述した処理を繰り返す。
【0060】
一方、未特定のイベント通知IDがないと判定した場合には、集計部513は、各単語の出現数をカウントし、当該単語に対応する出現数のフィールドに格納する(S1209)。単語の出現数は、当該単語に関して「含む」旨のコードが格納されたフィールドの数である。集計処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【0061】
図8の説明に戻る。第1算出部515は、重複数算出処理を実行する(S805)。第1算出部515は、重複数算出処理において、比較元のイベント通知のメッセージに含まれる単語のうち、比較先のイベント通知のメッセージにも含まれる単語の数を算出する。当該単語の数を重複数という。
【0062】
重複数算出処理について説明する前に、重複数を格納する重複数テーブルについて説明する。図13に、重複数テーブルの例を示す。この例における重複数テーブルは、比較元のイベント通知IDに対応するレコードを有している。比較元は、図6のS601で待った単位期間内に受信した各イベント通知である。重複数テーブルのレコードは、比較先の各イベント通知IDに対応するフィールド(以下、重複数フィールドという。)を有する。比較先も、図6のS601で待った単位期間内に受信した各イベント通知である。重複数フィールドには、上述した重複数が格納される。集計テーブルのレコードは、更に、単語数が格納されるフィールドを有する。単語数は、図11に示した集計テーブルの場合と同様である。
【0063】
図13は、例えばID:52132で識別されるイベント通知のメッセージに含まれる17個の単語のうち、16個の単語がID:52133で識別されるイベント通知のメッセージに含まれることを示している。
【0064】
また、図13は、例えばID:52132で識別されるイベント通知のメッセージに含まれる17個の単語のうち、1個の単語がID:62164で識別されるイベント通知のメッセージに含まれることを示している。
【0065】
図14に、重複数算出処理フローを示す。第1算出部515は、比較元のイベント通知IDを1つ特定する(S1401)。例えば、第1算出部515は、図6のS601で待った単位期間内に受信したイベント通知のIDを受信時間の順に従って1つ特定する。
【0066】
第1算出部515は、比較先のイベント通知IDを1つ特定する(S1403)。例えば、第1算出部515は、比較元のイベント通知IDを除き、図6のS601で待った単位期間内に受信したイベント通知のIDを受信時間の順に従って1つ特定する。
【0067】
第1算出部515は、単語テーブルに基づいて、比較元のメッセージに含まれる単語を1つ特定する(S1405)。第1算出部515は、単語テーブルに基づいて、当該単語が比較先のメッセージに含まれているか否かを判定する(S1407)。
【0068】
当該単語が比較先のメッセージに含まれていると判定した場合には、第1算出部515は、比較元のイベント通知IDのレコードにおける比較先のイベント通知IDの重複数フィールドの値に1を加える(S1409)。尚、重複数フィールドにおける初期値は0である。当該単語が比較先のメッセージに含まれていないと判定した場合には、第1算出部515は、重複数のフィールドの値を更新しない。
【0069】
第1算出部515は、未特定の単語があるか否かを判定する(S1411)。未特定の単語があると判定した場合には、S1405に示した処理に戻って、上述した処理を繰り返す。
【0070】
一方、未特定の単語がないと判定した場合には、第1算出部515は、特定されていない比較先のイベント通知IDがあるか否かを判定する(S1413)。特定されていない比較先のイベント通知IDがあると判定した場合には、S1403に示した処理に戻って、上述した処理を繰り返す。
【0071】
一方、特定されていない比較先のイベント通知IDがないと判定した場合には、第1算出部515は、集計テーブルに基づいて、比較元のイベント通知IDのレコードにおける単語数のフィールドに、比較元であるイベント通知のメッセージにおける単語数を格納する(S1415)。
【0072】
第1算出部515は、特定されていない比較元のイベント通知IDがあるか否かを判定する(S1417)。特定されていない比較元のイベント通知IDがあると判定した場合には、S1401に示した処理に戻って、上述した処理を繰り返す。
【0073】
一方、特定されていない比較元のイベント通知IDがないと判定した場合には、重複数算出処理を終える。重複数算出処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【0074】
図8の説明に戻る。第2算出部517は、類似度算出処理を実行する(S807)。第2算出部517は、類似度算出処理において、2つのイベント通知IDに係るメッセージ間の類似度を算出する。類似度の値が大きい場合には、2つのメッセージが類似することを意味する。類似度の値が小さい場合には、2つのメッセージが類似しないことを意味する。
【0075】
類似度算出処理について説明する前に、類似度を格納する類似度テーブルについて説明する。図15に、類似度テーブルの例を示す。この例における類似度テーブルは、比較元のイベント通知IDに対応するレコードを有している。類似度テーブルのレコードは、比較先の各イベント通知IDに対応するフィールド(以下、類似度フィールドという。)を有する。当該フィールドには、上述した類似度が格納される。
【0076】
例えば、ID:52132で識別されるイベント通知のメッセージとID:52133で識別されるイベント通知のメッセージとの類似度は、0.94である。また、ID:52132で識別されるイベント通知のメッセージとID:62164で識別されるイベント通知のメッセージとの類似度は、0.06である。
【0077】
図16に、類似度算出処理フローを示す。第2算出部517は、図6のS601で待った単位期間内に受信したイベント通知のIDの組を1つ特定する(S1601)。
【0078】
第2算出部517は、当該組の一方のイベント通知IDを比較元とし、当該組の他方のイベント通知IDを比較先とする重複度を算出する(S1603)。重複度は、重複数テーブルにおいて比較元及び比較先によって特定される重複数を、比較元によって特定される単語数で除することによって求められる。
【0079】
第2算出部517は、更に、上記他方のイベント通知IDを比較元とし、上記一方のイベント通知IDを比較先とする重複度を算出する(S1605)。
【0080】
そして、第2算出部517は、算出した2つの重複度の平均を求め、比較元及び比較先によって特定される類似度フィールドに格納する(S1607)。但し、S1603で算出した重複度を、当該類似度フィールドに格納するようにしてもよい。或いは、S1605で算出した重複度を、当該類似度フィールドに格納するようにしてもよい。
【0081】
第2算出部517は、未特定のイベント通知IDの組があるか否かを判定する(S1609)。未特定のイベント通知IDの組があると判定した場合には、S1601に示した処理に戻って、上述した処理を繰り返す。一方、未特定のイベント通知IDの組がないと判定した場合には、類似度算出処理を終える。類似度算出処理を終えると、呼び出し元のメッセージ分類処理に復帰する。
【0082】
図8の説明に戻る。クラスタリング部519は、クラスタリング処理を実行する(S809)。クラスタリング部519は、クラスタリング処理において、類似度に基づいてイベント通知のクラスタリングを行う。クラスタリング処理は、従来技術である。例えば、クラスタリング部519は、ウォード法による分析を行う。クラスは、メッセージが類似するイベント通知のグループに相当する。
【0083】
図17に、クラスタリング処理の結果を格納する分類テーブルの例を示す。この例における分類テーブルは、イベント通知に対応するレコードを有している。分類テーブルのレコードは、イベント通知IDが格納されるフィールドと、クラスIDが格納されるフィールドとを有している。イベント通知IDは、分類されたイベント通知を特定する。クラスIDは、当該イベント通知が属するクラス、つまりグループを識別する。
【0084】
図17は、例えばID:52132のイベント通知、ID:52133のイベント通知、ID:52134のイベント通知、ID:52147のイベント通知、ID:52148のイベント通知及びID:52149のイベント通知が、ID:C01で識別されるクラスに属することを示している。
【0085】
クラスタリング処理を終えると、メッセージ分類処理も終え、呼び出し元の集約処理に復帰する。
【0086】
図7の説明に戻る。第1グループ処理部503は、同型グループ処理を実行する(S703)。第1グループ処理部503は、同型グループ処理において、変数以外の部分が共通するメッセージに係るイベント通知のグループを特定する。当該グループを同型グループという。
【0087】
図18に、同型グループ処理フローを示す。第1特定部521は、同型グループに係る候補特定処理を実行する(S1801)。第1特定部521は、同型グループに係る候補特定処理において、同型グループの候補に該当するクラスを特定する。
【0088】
候補特定処理について説明する前に、クラステーブルについて説明する。図19に、クラステーブルの例を示す。この例におけるクラステーブルは、クラスに対応するレコードを有している。クラステーブルのレコードは、クラスIDが格納されるフィールドと、イベント通知数が格納されるフィールドと、重複数の平均が格納されるフィールドと、単語数の平均が格納されるフィールドと、重複しない単語の数が格納されるフィールドと、非重複率が格納されるフィールドと、同型グループの候補に関するフィールドとを有している。
【0089】
クラスIDは、クラスを識別する。イベント通知数は、当該クラスに含まれるイベント通知の数である。重複数の平均は、当該クラスに属するイベント通知の各組における重複数の平均である。重複数は、重複テーブルに基づいて特定される。単語数の平均は、当該クラスに属するイベント通知のメッセージにおける単語数の平均である。重複しない単語の数は、単語数の平均から重複数の平均を引いた値である。非重複率は、重複しない単語の数を単語数の平均で除した値である。同型グループの候補に関するフィールドには、当該クラスが同型グループの候補に「該当する」旨のコード又は「該当しない」旨のコードが格納される。当該クラスが同型グループの候補に該当するか否かに関する判定方法は、後述する。
【0090】
図示した1番目のレコードは、ID:C01のクラスには、6個のイベント通知が含まれ、これらのイベント通知の組に関する重複数の平均が16であることを示している。更に、当該1番目のレコードは、ID:C01のクラスに属するイベント通知に含まれるメッセージの単語数の平均が17個であり、重複しない単語が1個と看做されることを示している。加えて、当該1番目のレコードは、ID:C01のクラスにおける非重複率が0.06であり、このクラスが同型グループの候補に該当することを示している。
【0091】
図20Aに、同型グループに係る候補特定処理フローを示す。第1特定部521は、クラスIDを1つ特定する(S2001)。第1特定部521は、分類テーブルに基づいて、当該クラスに属するイベント通知を特定する(S2003)。第1特定部521は、当該クラスに属するイベント通知の数を求め、当該クラスに対応するレコードのイベント通知数のフィールドに格納する(S2005)。
【0092】
第1特定部521は、当該クラスに属するイベント通知の各組に関して、重複数テーブルに基づいて当該組に係る重複数を特定する。第1特定部521は、特定した重複数の平均を算出する。そして、第1特定部521は、算出した重複数の平均を当該クラスに対応するレコードに格納する(S2007)。
【0093】
第1特定部521は、当該クラスに属する各イベント通知の単語数を特定し、特定した単語数の平均を算出する。第1特定部521は、算出した単語数の平均を当該クラスに対応するレコードに格納する(S2009)。
【0094】
第1特定部521は、単語数の平均から重複数の平均を引いて、重複しない単語の数を求める。第1特定部521は、当該重複しない単語の数を当該クラスに対応するレコードに格納する(S2011)。
【0095】
第1特定部521は、重複しない単語の数を単語数の平均で除して、非重複率を求める。第1特定部521は、当該非重複率を当該クラスに対応するレコードに格納する(S2013)。端子Aを介して、図20Bに示したS2015の処理に移る。
【0096】
第1特定部521は、非重複率が0を超え且つ非重複率が閾値(例えば、0.2)を下回るか否かを判定する(S2015)。非重複率が0である場合には変数を含まないので、この例における同型グループには該当しないものとする。非重複率が閾値を超える場合には、変数以外にも異なる単語があると想定されるので、この例における同型グループには該当しないものとする。
【0097】
非重複率が0を超え且つ非重複率が閾値を下回る場合には、第1特定部521は、当該クラスに対応するレコードにおける同型グループの候補のフィールドに「該当する」旨のコードを格納する(S2017)。
【0098】
一方、非重複率が0である場合又は非重複率が閾値以上である場合には、第1特定部521は、当該クラスに対応するレコードにおける同型グループの候補のフィールドに「該当しない」旨のコードを格納する(S2019)。
【0099】
第1特定部521は、未特定のクラスIDがあるか否かを判定する(S2021)。未特定のクラスIDがあると判定した場合には、端子Bを介して、図20AのS2001に示した処理に戻って、上述した処理を繰り返す。一方、未特定のクラスIDがないと判定した場合には、同型グループに係る候補特定処理を終える。同型グループに係る候補特定処理を終えると、呼び出し元の同型グループ処理に復帰する。
【0100】
図18の説明に戻る。判別部523は、変数判別処理を実行する(S1803)。判別部523は、変数判別処理において、同型グループの候補に該当するクラスに属するメッセージに含まれる単語のうち、変数と看做される単語を判別する。
【0101】
図21A及び図21Bに、出現率テーブルの例を示す。出現率テーブルは、同型グループの候補毎に設けられる。この例における出現率テーブルのヘッダは、同型グループの候補に該当するクラスのIDが格納されるフィールドを有している。更に、この例における出現率テーブルは、当該クラスのメッセージに含まれる単語に対応するレコードを有している。出現率テーブルのレコードは、単語が格納されるフィールドと、出現メッセージ数が格納されるフィールドと、出現率が格納されるフィールドと、変数に関するフィールドとを有している。
【0102】
単語のフィールドには、当該クラスのメッセージに含まれる単語が格納される。出現メッセージ数は、当該クラスのメッセージのうち、当該単語を含むメッセージの数である。出現率は、出現メッセージ数を当該クラスに属するメッセージの数で除した値である。変数に関するフィールドには、当該単語が変数に「該当する」旨のコード又は「該当しない」旨のコードが格納される。
【0103】
図21Aは、ID:C01のクラスに関する出現率テーブルの例である。1番目のレコードは、単語「ホスト」がID:C01のクラスに属する6個のメッセージに出現することを示している。また、当該1番目のレコードは、単語「ホスト」がC01のクラスに属するメッセージに1.00の割合で出現し、この単語が変数に該当しないことを示している。
【0104】
図21Bに、ID:C08のクラスに関する出現率テーブルの例である。最後のレコードは、単語「GBSE5008」がID:C08のクラスに属する1個のメッセージに出現することを示している。また、当該1番目のレコードは、単語「GBSE5008」がC08のクラスに属するメッセージに0.06の割合で出現し、この単語が変数に該当することを示している。
【0105】
図22に、変数判別処理フローを示す。判別部523は、クラステーブルに基づいて、同型グループの候補に該当するクラスIDを1つ特定する(S2201)。
【0106】
判別部523は、当該クラスに属するいずれかのメッセージに含まれる単語を1つ特定する(S2203)。判別部523は、分類テーブル及び単語テーブルに基づいて、当該クラスに属するイベント通知のメッセージのうち、当該単語が出現するメッセージの数を計数する。判別部523は、当該メッセージの数、つまり出現メッセージ数を当該クラスの出現率テーブルにおける当該単語のレコードに格納する(S2205)。
【0107】
判別部523は、出現メッセージ数を当該クラスに属するメッセージの数で除して、出現率を求める。判別部523は、当該出現率を当該クラスの出現率テーブルにおける当該単語のレコードに格納する(S2207)。
【0108】
判別部523は、出現率が0を超え且つ出現率が閾値(例えば、0.2)を下回るか否かを判定する(S2209)。この例では出現率が0を超える条件を省くようにしてもよい。尚、出現率が閾値を超える場合には、当該単語がこの例で想定しているホスト名のような変数ではないと見込まれる。
【0109】
出現率が0を超え且つ出現率が閾値を下回ると判定した場合には、判別部523は、当該単語のレコードにおける変数に関するフィールドに「該当する」旨のコードを格納する(S2211)。
【0110】
一方、出現率が0である場合又は出現率が閾値以上である場合には、判別部523は、当該単語のレコードにおける変数に関するフィールドに「該当しない」旨のコードを格納する(S2213)。
【0111】
判別部523は、未特定の単語があるか否かを判定する(S2215)。未特定の単語があると判定した場合には、S2203に示した処理に戻って、上述した処理を繰り返す。
【0112】
一方、未特定の単語がないと判定した場合には、判別部523は、未特定のクラスIDがあるか否かを判定する(S2217)。未特定のクラスIDがあると判定した場合には、S2201に示した処理に戻って、上述した処理を繰り返す。
【0113】
一方、未特定のクラスIDがないと判定した場合には、変数判別処理を終える。変数判別処理を終えると、呼び出し元の同型グループ処理に復帰する。
【0114】
図18の説明に戻る。第3追加部525は、同型グループのレコード追加処理を実行する(S1805)。第3追加部525は、同型グループのレコード追加処理において、同型グループに関して集約されたレコードを第2テーブルに追加する。
【0115】
図23に、同型グループのレコード追加処理フローを示す。第3追加部525は、同型グループの候補であるクラスのうち、変数を含むクラスを1つ特定する(S2301)。つまり、第3追加部525は、同型グループの候補であるクラスに関する出現率テーブルのうち、当該出現率テーブルに含まれる変数に関するフィールドのいずれかに「該当する」旨のコードが設定されているものを特定する。特定されたクラスは、同型グループに相当する。
【0116】
第3追加部525は、第2テーブルに新たなレコードを設ける(S2303)。第3追加部525は、当該同型グループを識別するIDを割り当てる(S2305)。第3追加部525は、割り当てられた同型グループIDを新たなレコードにおけるイベント通知のフィールドに格納する。
【0117】
第3追加部525は、当該同型グループに属するイベント通知の受信日時のうち、最初の受信日時を特定する(S2307)。第3追加部525は、当該最初の受信日時を新たなレコードにおける受信日時のフィールドに格納する。
【0118】
第3追加部525は、当該同型グループに属するイベント通知を送信した正味のホスト数を求める(S2309)。第3追加部525は、当該正味のホスト数を新たなレコードにおけるホストのフィールドに格納する。
【0119】
第3追加部525は、変数以外の単語と変数部分を示すコードとを含む共通メッセージを生成する(S2311)。例えば、第3追加部525は、当該同型グループに属するいずれかのイベント通知のメッセージを基礎として、変数に該当する単語を変数部分を示すコードに置き換える。変数部分を示すコードは、変数の位置を示す要素の例である。変数部分を示すコードに代えて、変数部分を示す図形又はマークの識別子を用いるようにしてもよい。尚、この場合、表示処理部217は識別子を図形又はマークの画像に置き換えて表示する。第3追加部525は、生成した共通メッセージを新たなレコードにおけるメッセージのフィールドに格納する。
【0120】
第3追加部525は、当該同型グループに属するイベント通知の数を特定する(S2313)。第3追加部525は、特定したイベント通知数を新たなレコードにおけるメッセージのフィールドに格納する。
【0121】
第3追加部525は、当該同型グループに属するイベント通知の内容を参照データに加える(S2315)。このとき、当該イベント通知の内容は、同型グループIDと紐付けられる。
【0122】
第3追加部525は、未特定のクラスがあるか否かを判定する(S2317)。未特定のクラスがあると判定した場合には、S2301に示した処理に戻って、上述した処理を繰り返す。
【0123】
一方、未特定のクラスがないと判定した場合には、同型グループのレコード追加処理を終える。同型グループのレコード追加処理を終えると、呼び出し元の同型グループ処理に復帰する。
【0124】
図18の説明に戻る。同型グループのレコード追加処理を終えると、同型グループ処理を終える。同型グループ処理を終えると、呼び出し元の集約処理に復帰する。
【0125】
図7の説明に戻る。第2グループ処理部505は、共通変数グループ処理を実行する(S705)。第2グループ処理部505は、共通変数グループ処理において、共通の変数を含むメッセージに係るイベント通知のグループを特定する。当該グループを共通変数グループという。
【0126】
図24に、共通変数グループ処理フローを示す。第2特定部531は、共通単語特定処理を実行する(S2401)。第2特定部531は、共通単語特定処理で、所定数以上のクラスにおいて、当該クラスに属するいずれかのイベント通知のメッセージに出現する共通の単語を特定する。当該単語を共通単語という。
【0127】
共通単語特定処理について説明する前に、共通単語を特定するために用いられる共通単語テーブルについて説明する。図25に、共通単語テーブルの例を示す。この例における共通単語テーブルは、単語テーブルに含まれる単語に対応するレコードを有している。共通単語テーブルのレコードは、単語が格納されるフィールドと、出現クラス数が格納されるフィールドと、共通単語に関するフィールドとを有している。
【0128】
単語のフィールドには、単語テーブルに含まれる単語が格納される。出現クラス数は、当該単語を含むメッセージが属する正味のクラス数である。共通単語のフィールドには、当該単語が共通単語に「該当する」旨のコード又は「該当しない」旨のコードが格納される。
【0129】
図示した1番目のレコードは、単語「ホスト」が1個のクラスに属するイベント通知のメッセージに出現し、共通単語に該当しないことを示している。図示した2番目のレコードは、単語「ORD05282」が6個のクラスに属するイベント通知のメッセージに出現し、共通単語に該当することを示している。図示した4番目のレコードは、単語「失敗」も6個のクラスに属するイベント通知のメッセージに出現し、共通単語に該当することを示している。
【0130】
図26に、共通単語特定処理フローを示す。第2特定部531は、単語テーブルに含まれる単語を1つ特定する(S2601)。第2特定部531は、共通単語テーブルに新たなレコードを設けて、当該レコードに当該単語を格納する。
【0131】
第2特定部531は、クラスIDを1つ特定する(S2603)。第2特定部531は、単語テーブル及び分類テーブルに基づいて、当該単語が当該クラスに属するいずれかのイベント通知のメッセージに含まれるか否かを判定する(S2605)。当該単語が当該クラスに属するいずれかのイベント通知のメッセージに含まれると判定した場合には、第2特定部531は、当該レコードにおける出現クラス数の値に1を加える(S2607)。尚、出現クラス数の初期値は0である。当該単語が当該クラスに属するいずれのメッセージにも含まれないと判定した場合には、第2特定部531は、当該レコードにおける出現クラス数を更新しない。
【0132】
第2特定部531は、未特定のクラスIDがあるか否かを判定する(S2609)。未特定のクラスIDがあると判定した場合には、S2603に示した処理に戻って、上述した処理を繰り返す。
【0133】
一方、未特定のクラスIDがないと判定した場合には、第2特定部531は、出現クラス数が閾値(例えば、4)を上回るか否かを判定する(S2611)。出現クラス数が閾値を上回ると判定した場合には、第2特定部531は、当該単語のレコードにおける共通単語に関するフィールドに「該当する」旨のコードを格納する(S2613)。一方、出現クラス数が閾値以下であると判定した場合には、第2特定部531は、当該単語のレコードにおける共通単語に関するフィールドに「該当しない」旨のコードを格納する(S2615)。
【0134】
第2特定部531は、未処理の単語があるか否かを判定する(S2617)。未処理の単語があると判定した場合には、S2601に示した処理に戻って、上述した処理を繰り返す。一方、未処理の単語がないと判定した場合には、共通単語特定処理を終える。共通単語特定処理を終えると、呼び出し元の共通変数グループ処理に復帰する。
【0135】
図24の説明に戻る。生成部533は、グループ生成処理を実行する(S2403)。生成部533は、グループ生成処理において、共通単語に基づいて共通変数グループを生成する。具体的には、一次グループ及び二次グループのいずれか一方又は両方が生成される。つまり、グループ生成処理において生成される一次グループ及び二次グループのいずれか一方又は両方が共通変数グループに相当する。
【0136】
尚、本実施の形態では、共通単語には、共通変数に相当するものと共通変数に相当しないものが混在する場合がある。上述の例で、共通単語「ORD05282」は共通変数に相当する。一方、共通単語「失敗」は共通変数に相当しない。
【0137】
図27に、グループ生成処理フローを示す。生成部533は、共通単語毎に一次グループを生成する(S2701)。具体的には、一次グループテーブルが設けられる。
【0138】
図28A及び図28Bに、一次グループテーブルの例を示す。この例における一次グループテーブルのヘッダは、共通変数グループIDが格納されるフィールドと、共通単語が格納されるフィールドとを有している。共通変数グループIDは、共通変数グループを識別する。但し、一次グループテーブルが生成された時点において、共通変数グループIDはまだ設定されない。更に、この例における一次グループテーブルは、イベント通知IDが格納されるレコードを有している。イベント通知IDは、当該共通単語を含むメッセージに係るイベント通知を特定する。
【0139】
図28Aに示した一次グループテーブルの例は、図示した18個のイベント通知IDで特定されるメッセージに共通単語「ORD05282」が含まれることを示している。図28Bに示した一次グループテーブルの例は、図示した18個のイベント通知IDで特定されるメッセージに共通単語「失敗」が含まれることを示している。尚、この例で、図28Aに示した一次グループテーブルにおけるイベント通知IDと図28Bに示した一次グループテーブルにおけるイベント通知IDとが一致している。
【0140】
図27の説明に戻る。第2判定部537は、一次グループの組合せを特定する(S2703)。第2判定部537は、例えば組合せ要素となる一次グループの数がより多い組合せから順に特定する。
【0141】
第2判定部537は、当該組合せに係る各一次グループにおけるイベント通知IDが重複するか否かを判定する(S2705)。この例では、第2判定部537は、各一次グループにおけるイベント通知IDがすべて一致するか否かを判定する。第2判定部537は、各一次グループにおけるイベント通知IDの一部が一致するか否かを判定するようにしてもよい。具体的には、第2判定部537は、所定数以上のイベント通知IDが一致するか否かを判定するようにしてもよい。或いは、第2判定部537は、所定割合以上のイベント通知IDが一致するか否かを判定するようにしてもよい。
【0142】
各一次グループにおけるイベント通知IDが重複すると判定した場合には、統合部539は、当該組合せに係る各一次グループを統合し、二次グループを生成する(S2707)。具体的には、統合部539は、二次グループテーブルを生成し、元の各一次グループテーブルを削除する。各一次グループにおけるイベント通知IDが重複しないと判定した場合には、そのままS2709の処理に移る。
【0143】
図29に、二次グループテーブルの例を示す。この例における二次グループテーブルのヘッダは、共通変数グループIDが格納されるフィールドと、共通単語が格納される複数のフィールドとを有している。共通単語は、二次グループに属するイベント通知のメッセージに含まれる共通の単語である。二次グループテーブルにおけるレコードには、ヘッダに格納されている複数の共通単語を含むメッセージに係るイベント通知IDが格納される。つまり、統合部539は、元の各一次グループテーブルにおいて共通のイベント通知IDを、二次グループテーブルに設定する。
【0144】
図27の説明に戻る。第2判定部537は、未処理の組合せがあるか否かを判定する(S2709)。未処理の組合せがあると判定した場合には、S2703に示した処理に戻って、上述した処理を繰り返す。
【0145】
一方、未処理の組合せがないと判定した場合には、生成部533は、残りの一次グループ、つまり統合されなかった一次グループに共通変数グループIDを割り当てる(S2711)。そして、一次グループテーブルのヘッダに、当該共通変数グループIDを格納する。グループ生成処理を終えると、呼び出し元の共通変数グループ処理に復帰する。
【0146】
図24の説明に戻る。第4追加部535は、共通変数グループのレコード追加処理を実行する(S2405)。第4追加部535は、共通変数グループのレコード追加処理において、共通変数グループに関して集約されたレコードを第2テーブルに追加する。
【0147】
図30に、共通変数グループのレコード追加処理フローを示す。第4追加部535は、生成された共通変数グループを1つ特定する(S3001)。
【0148】
第4追加部535は、第2テーブルに新たなレコードを設ける(S3003)。第4追加部535は、共通変数グループIDを新たなレコードにおけるイベント通知のフィールドに格納する(S3005)。
【0149】
第4追加部535は、当該共通変数グループに属するイベント通知の受信日時のうち、最初の受信日時を特定する(S3007)。第4追加部535は、当該最初の受信日時を新たなレコードにおける受信日時のフィールドに格納する。
【0150】
第4追加部535は、当該共通変数グループに属するイベント通知を送信した正味のホスト数を求める(S3009)。第4追加部535は、当該正味のホスト数を新たなレコードにおけるホストのフィールドに格納する。
【0151】
第4追加部535は、当該共通変数グループにおける共通単語を新たなレコードにおけるメッセージのフィールドに格納する(S3011)。
【0152】
第4追加部535は、当該共通変数グループに属するイベント通知の数を特定する(S3013)。第4追加部535は、特定したイベント通知数を新たなレコードにおけるメッセージのフィールドに格納する。
【0153】
第4追加部535は、当該共通変数グループに属するイベント通知の内容を参照データに加える(S3015)。このとき、当該イベント通知の内容は、共通変数グループIDと紐付けられる。
【0154】
第4追加部535は、未特定のクラスがあるか否かを判定する(S3017)。未特定のクラスがあると判定した場合には、S3001に示した処理に戻って、上述した処理を繰り返す。
【0155】
一方、未特定のクラスがないと判定した場合には、共通変数グループのレコード追加処理を終える。共通変数グループのレコード追加処理を終えると、呼び出し元の共通変数グループ処理に復帰する。
【0156】
図24の説明に戻る。共通変数グループ処理を終えると、呼び出し元の集約処理に復帰する。
【0157】
図7の説明に戻る。第2追加部507は、図6のS601で待った単位期間内に受信したイベント通知に相当するレコード(第1テーブル)から、同型グループ及び共通変数グループに属していないイベント通知のレコードを抽出し、抽出したレコードを第2テーブルに追加する(S707)。集約処理を終えると、呼び出し元のメイン処理に復帰する。
【0158】
図6の説明に戻る。表示処理部217は、リストを表示する(S613)。上述したように、表示処理部217は、受信日時が新しい順に第2テーブルのレコードの内容を表示する。この例では、図4に示したように、1番目にID:M1の共通変数グループに関する行が表示される。2番目に共通変数グループ及び同型グループに属さないID:52150のイベント通知に関する行が表示される。3番目にID:W1の同型グループに関する行が表示される。4番目以降には、以前の単位期間に取得したイベント通知に基づく内容が表示される。そして、リストの表示を終えると、S601に示した処理に戻って、上述した処理を繰り返す。
【0159】
本実施の形態によれば、共通変数グループのメッセージを集約するので、同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、障害の原因となった装置の識別子を含むメッセージを集約し、単一のメッセージによって原因の装置を示すことができる。
【0160】
また、同じメッセージに含まれる複数の共通単語を一緒に集約内容として表示するので、より具体的に同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、原因の装置を特定する情報の他に、当該装置の状態を併せて把握することができる。
【0161】
また、同型グループのメッセージを集約するので、複数発生した同様のイベントを捉え易くなる。
【0162】
また、共通変数グループと同型グループとのいずれにも属さないメッセージを表示するので、集約対象以外のメッセージの見逃しを防止できる。
【0163】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【0164】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【0165】
なお、上で述べた監視機器101は、コンピュータ装置であって、図31に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0166】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【0167】
本実施の形態に係るメッセージ出力方法は、(A)各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、(B)複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、(C)共通単語を含むメッセージが集約された第1メッセージを出力する処理を含む。
【0168】
このようにすれば、同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、障害の原因となった装置の識別子を含むメッセージを集約し、単一のメッセージによって原因の装置を知らせることができる。
【0169】
更に、共通単語の組合せについて、各共通単語を含むメッセージの上記識別子が重複するか否かを判定し、上記識別子が重複する場合に、各共通単語に係る第1メッセージを同じグループにまとめるようにしてもよい。
【0170】
このようにすれば、より具体的に同一事象に起因する複数メッセージの趣旨を把握し易くなる。例えば、原因の装置に関する情報の他に、当該装置における現象を併せて把握することができる。
【0171】
更に、複数のクラスのうち、同一クラスに属するメッセージ間において重複しない単語の割合が基準より小さい候補クラスを特定し、候補クラスに属するメッセージに含まれる複数の単語のうち、候補クラスに属するメッセージ単位の出現率が基準よりも小さい単語を変数であると判別するようにしてもよい。また、候補クラスに関して変数が判別された場合に、候補クラスに属するメッセージが集約された第2メッセージとして、候補クラスに属するメッセージに含まれる変数以外の単語と変数の位置を示す要素とを出力するようにしてもよい。
【0172】
このようにすれば、例えば複数発生した同様のイベントを捉え易くなる。
【0173】
更に、複数のメッセージのうち、第1メッセージによる集約対象及び第2メッセージによる集約対象に該当しないメッセージを出力するようにしてもよい。
【0174】
このようにすれば、集約対象以外のメッセージの見逃しを防止できる。
【0175】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【0176】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0177】
(付記1)
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第1メッセージを出力する
処理をコンピュータに実行させるメッセージ出力プログラム。
【0178】
(付記2)
更に、
前記共通単語の組合せについて、各共通単語を含むメッセージの前記識別子が重複するか否かを判定し、
前記識別子が重複する場合に、前記各共通単語に係る前記第1メッセージを同じグループにまとめる
処理を含む付記1記載のメッセージ出力プログラム。
【0179】
(付記3)
更に、
前記複数のクラスのうち、同一クラスに属するメッセージ間において重複しない単語の割合が基準より小さい候補クラスを特定し、
前記候補クラスに属するメッセージに含まれる複数の単語のうち、前記候補クラスに属するメッセージ単位の出現率が基準よりも小さい単語を変数であると判別し、
前記候補クラスに関して前記変数が判別された場合に、前記候補クラスに属する前記メッセージが集約された第2メッセージとして、前記候補クラスに属する前記メッセージに含まれる前記変数以外の単語と前記変数の位置を示す要素とを出力する
処理を含む付記1又は2記載のメッセージ出力プログラム。
【0180】
(付記4)
更に、
前記複数のメッセージのうち、前記第1メッセージによる集約対象及び前記第2メッセージによる集約対象に該当しないメッセージを出力する
処理を含む付記3記載のメッセージ出力プログラム。
【0181】
(付記5)
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類し、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定し、
前記共通単語を含むメッセージが集約された第1メッセージを出力する
処理を含み、コンピュータにより実行されるメッセージ出力方法。
【0182】
(付記6)
各々識別子によって識別される複数のメッセージを、メッセージ間の類似度に基づきメッセージの集合である複数のクラスに分類する分類部と、
前記複数のメッセージに含まれる単語のうち、当該単語が出現するクラスの数が基準より多い共通単語を特定する特定部と、
前記共通単語を含むメッセージが集約された第1メッセージを出力する出力部と
を有するメッセージ出力装置。
【符号の説明】
【0183】
101 監視機器 103 ホスト
105 DBサーバー 107 DNSサーバー
201 受信部 203 フィルタ
205 ルール記憶部 207 第1テーブル格納部
209 第1判定部 211 第1追加部
213 集約部 215 第2テーブル格納部
217 表示処理部 219 参照データ記憶部
221 受付部 223 第1抽出部
501 分類部 503 第1グループ処理部
505 第2グループ処理部 507 第2追加部
511 第2抽出部 513 集計部
515 第1算出部 517 第2算出部
519 クラスタリング部 521 第1特定部
523 判別部 525 第3追加部
531 第2特定部 533 生成部
535 第4追加部 537 第2判定部
539 統合部 551 単語テーブル格納部
553 集計テーブル格納部 555 重複数テーブル格納部
557 類似度テーブル格納部 559 分類テーブル格納部
561 クラステーブル格納部 563 出現率テーブル格納部
565 共通単語テーブル格納部 567 グループテーブル格納部
図1
図2
図3A
図3B
図3C
図3D
図3E
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20A
図20B
図21A
図21B
図22
図23
図24
図25
図26
図27
図28A
図28B
図29
図30
図31