(57)【要約】【課題】メッセージを適正に集約するルールを作成することを目的とする。【解決手段】集約ルール作成装置は、複数のメッセージを、所定のルールに基づいて、相互に類似する複数のメッセージを類似メッセージ群に集約する第１集約部と、前記第１集約部が集約した前記類似メッセージ群から各メッセージの差分値を抽出する差分抽出部と、抽出された前記差分値の種類数と該差分値の種類に対応するメッセージを出力した実行環境の数に応じた環境依存度とに基づいて、集約された前記類似メッセージ群を分割して前記複数のメッセージを再集約する第２集約部と、分割された前記類似メッセージ群に基づいて、前記複数のメッセージを集約する集約ルールを作成する集約ルール作成部と、を含む。【選択図】図２
2017162196.tif 000002
【特許請求の範囲】
【請求項１】
複数のメッセージを、所定のルールに基づいて、相互に類似する複数のメッセージを類似メッセージ群に集約し、
集約された前記類似メッセージ群から各メッセージの差分値を抽出し、
抽出された前記差分値の種類数と該差分値の種類に対応するメッセージを出力した実行環境の数に応じた環境依存度とに基づいて、集約された前記類似メッセージ群を分割し、
分割された前記類似メッセージ群に基づいて、前記複数のメッセージを集約する集約ルールを作成する、
処理をコンピュータに実行させることを特徴とする集約ルール作成プログラム。
【請求項２】
前記差分値の種類数が第１閾値より低く、且つ前記環境依存度が第２閾値より小さい場合に、前記集約された類似メッセージを分割する、
処理を前記コンピュータに実行させることを特徴とする請求項１記載の集約ルール作成プログラム。
【請求項３】
前記抽出された差分値のうち、１つの前記実行環境のみに対応する前記差分値の種類数を、前記抽出された差分値の種類数で除算して、前記環境依存度を算出する、
処理を前記コンピュータに実行させることを特徴とする請求項１または２記載の集約ルール作成プログラム。
【請求項４】
前記差分値の種類のうち１つの種類を対象の種類とし、該対象の種類が全ての前記実行環境に対応する場合を「Ｘ＝０」とし、該対象の種類が何れかの前記実行環境に対応しない場合を「Ｘ＝１」とした場合、前記環境依存度を
【数２】
2017162196.tif 000004
として算出する、
処理を前記コンピュータに実行させることを特徴とする請求項１または２記載の集約ルール作成プログラム。
【請求項５】
前記複数のメッセージに対して共起分析を行って、該複数のメッセージを複数のパターンに分類し、
分類されたパターンごとに、同じ類似メッセージ群に含まれ、且つ同じ実行環境を示すメッセージの出力日時が変化している場合、前記集約された類似メッセージ群を分割する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項１乃至４のうち何れか１項に記載の集約ルール作成プログラム。
【請求項６】
前記第２閾値よりも大きい第３閾値よりも前記環境依存度が小さい場合、前記集約された類似メッセージ群を分割する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項５記載の集約ルール作成プログラム。
【請求項７】
複数のメッセージを、所定のルールに基づいて、相互に類似する複数のメッセージを類似メッセージ群に集約する第１集約部と、
前記第１集約部が集約した前記類似メッセージ群から各メッセージの差分値を抽出する差分抽出部と、
抽出された前記差分値の種類数と該差分値の種類に対応するメッセージを出力した実行環境の数に応じた環境依存度とに基づいて、集約された前記類似メッセージ群を分割して前記複数のメッセージを再集約する第２集約部と、
分割された前記類似メッセージ群に基づいて、前記複数のメッセージを集約する集約ルールを作成する集約ルール作成部と、
を備えることを特徴とする集約ルール作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集約ルール作成プログラムおよび集約ルール作成装置に関する。
【背景技術】
【０００２】
例えば、データセンタ等において、複数の機器が運用される。各機器は、運用中に、予め指定されたメッセージ（運用メッセージとも称される）を、各機器を監視する監視センタ等に通知する。
【０００３】
監視センタに通知されるメッセージの数が多くなると、各機器を監視する監視オペレータの負担が大きくなる。このため、監視センタに通知される複数のメッセージのうち、類似するメッセージを集約する技術が提案されている。
【０００４】
関連する技術として、障害メッセージのフィルタリングの精度を高める技術が提案されている（例えば、特許文献１を参照）。また、サーバなどが蓄積したログに含まれる機密情報を識別する技術が提案されている（例えば、特許文献２を参照）。
【０００５】
また、入力文字列の集合をパターン表現に変換する過程において、特定の種類の記述集合に対する知見に基づく独自推論を再利用可能にする技術が提案されている（例えば、特許文献３を参照）。
【０００６】
また、利用者が機械の生成するログの生成則を事前に知ることなく、ログのテンプレート部分を逐次的に抽出する技術が提案されている（例えば、特許文献４を参照）。また、障害の予兆発生から障害の発生までの時間を算出する技術が提案されている（例えば、特許文献５を参照）。
【０００７】
また、複数種類のＯＳが出力する異なる形式のメッセージを共通形式に変換できるようにする技術が提案されている（例えば、特許文献６を参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−１０６８５１号公報
【特許文献２】特開２０１３−１３７７４０号公報
【特許文献３】特開２０１４−００６８７７号公報
【特許文献４】特開２０１５−０３６８９１号公報
【特許文献５】国際公開第２０１２／１２７５８８号
【特許文献６】特開２００２−０１４８４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
類似するメッセージが集約されることで、監視オペレータの負担は軽減する。メッセージの集約は所定の集約ルールに基づいて行われるため、適用される集約ルールによっては、メッセージの集約が適正に行われないことがある。
【００１０】
１つの側面として、本発明は、メッセージを適正に集約するルールを作成することを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、集約ルール作成プログラムは、複数のメッセージを、所定のルールに基づいて、相互に類似する複数のメッセージを類似メッセージ群に集約し、集約された前記類似メッセージ群から各メッセージの差分値を抽出し、抽出された前記差分値の種類数と該差分値の種類に対応するメッセージを出力した実行環境の数に応じた環境依存度とに基づいて、集約された前記類似メッセージ群を分割し、分割された前記類似メッセージ群に基づいて、前記複数のメッセージを集約する集約ルールを作成する、処理をコンピュータに実行させる。
【発明の効果】
【００１２】
１つの側面によれば、メッセージを適正に集約するルールを作成することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態のシステムの一例を示す図である。
【図２】集約ルール作成装置の一例を示す機能ブロック図である。
【図３】メッセージのデータ例を示す図である。
【図４】実施形態の全体の処理の流れの一例を示すフローチャートである。
【図５】メッセージデータと類似メッセージＩＤと類似メッセージデータとの一例を示す図である。
【図６】類似メッセージデータの一例を示す図（その１）である。
【図７】類似メッセージデータの一例を示す図（その２）である。
【図８】環境依存度の算出の一例を示す図である。
【図９】環境依存度の算出の他の例を示す図である。
【図１０】第１集計部の処理の流れの一例を示すフローチャートである。
【図１１】類似メッセージデータの一例を示す図（その３）である。
【図１２】第２集約部の処理の流れの一例を示すフローチャートである。
【図１３】メッセージデータおよびメッセージパターンデータの一例を示す図である。
【図１４】メッセージパターンデータおよび類似メッセージデータの一例を示す図（その１）である。
【図１５】出力日時依存の有無に応じた類似メッセージデータの一例を示す図である。
【図１６】第２集計部の処理の流れの一例を示すフローチャート（その１）である。
【図１７】第２集計部の処理の流れの一例を示すフローチャート（その２）である。
【図１８】メッセージパターンデータおよび類似メッセージデータの一例を示す図（その２）である。
【図１９】メッセージパターンデータおよび類似メッセージデータの一例を示す図（その３）である。
【図２０】第３集約部の処理の流れの一例を示すフローチャート（その１）である。
【図２１】第３集約部の処理の流れの一例を示すフローチャート（その２）である。
【図２２】メッセージパターンデータと類似メッセージデータと集約ルールデータとの一例を示す図である。
【図２３】集約ルール作成部の処理の流れの一例を示すフローチャートである。
【図２４】集約ルール作成装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１４】
＜実施形態のシステムの一例＞
以下、図面を参照して、実施形態について説明する。図１は、実施形態のシステム１の一例を示す。システム１において、複数のサーバ２Ａ、２Ｂ、２Ｃ、・・・（総称してサーバ２と称する）は、それぞれ、該サーバ２の運用状況等に関するメッセージを出力する。該メッセージは、ログデータ等であってもよい。
【００１５】
例えば、各サーバ２は、定期的またはサーバ２に何らかの事象が生じた際に、メッセージを監視装置４に宛てて出力する。
【００１６】
メッセージ集約装置３は、各サーバ２が出力したメッセージを集約し、集約されたメッセージを監視装置４に出力する。監視装置４は、各サーバ２の運用状況等を監視するための装置である。
【００１７】
監視装置４は、例えば、監視オペレータ等により操作され、該監視オペレータは、監視装置４が入力したメッセージに基づいて、各サーバ２の運用状況等を監視する。監視装置４は、入力したメッセージのうち、サーバ２に対して何らかの対応を要するメッセージだけを監視オペレータに通知してもよい。
【００１８】
メッセージ集約装置３は、所定の集約ルールに基づいて、各サーバから入力した複数のメッセージのうち相互に類似するメッセージ（以下、類似メッセージと称する）を集約する。類似メッセージは、メッセージの一例である。
【００１９】
監視装置４に出力されるメッセージが集約されることで、監視オペレータに提供する情報が低減され、該監視オペレータの負担軽減が図られる。このメッセージの集約はフィルタリングとも称され、上記の集約ルールは、フィルタルールとも称される。
【００２０】
集約ルールは、集約ルール作成装置５が作成する。集約ルール作成装置５は、各サーバ２が出力するメッセージを収集し、収集されたメッセージに基づいて、集約ルールを作成する。作成された集約ルールは、メッセージ集約装置３に提供され、メッセージ集約装置３は、提供された集約ルールに基づいて、メッセージの集約を行う。
【００２１】
＜集約ルール作成装置の一例＞
次に、図２の例を参照して、集約ルール作成装置５の一例について説明する。集約ルール作成装置５は、図２の例には限定されない。
【００２２】
図２の例で示す集約ルール作成装置５は、制御部１１と第１集約部１２と第１差分抽出部１３と第１集計部１４と第２集約部１５と共起分析部１６と第２集計部１７と第３集約部１８と集約ルール作成部１９と記憶部２０と通信部２１とを含む。
【００２３】
制御部１１は、各種の制御を行う。例えば、制御部１１は、通信部２１を制御して、各サーバ２からメッセージを収集する。
【００２４】
第１集約部１２は、収集された複数のメッセージから、所定のルールに基づいて、相互に類似するメッセージを類似メッセージとして、類似メッセージ群に集約する。これにより、相互に類似するメッセージが１つのグループ（類似メッセージ群）に集約される。
【００２５】
第１差分抽出部１３は、類似メッセージ群に属する複数の類似メッセージのうち異なる部分（差分）を抽出する。以下、差分をパラメータと称することがあり、差分の値を差分値またはパラメータ値と称することがある。
【００２６】
第１集計部１４は、第１差分抽出部１３が抽出した差分の値の種類（以下、該種類をバリエーションと称することがある）の数を集計する。第１集計部１４は、類似メッセージ群ごとに差分の値の種類数を集計する。例えば、１つの類似メッセージ群に含まれる差分の値が２種類の場合、パラメータのバリエーション数は「２」になる。
【００２７】
また、第１集計部１４は環境依存度を算出する。環境依存度は、バリエーション数に対応するメッセージを出力した実行環境の数に応じた値であり、第１差分抽出部１３が抽出したバリエーションが実行環境に依存する度合いを示す。
【００２８】
実施形態における実行環境は、サーバ２である場合もあるが、該実行環境は、サーバ２で動作するOperating System(OS)やミドルウェア等であってもよい。例えば、同じサーバ２で複数のＯＳが動作している場合、同じサーバ２に複数の実行環境が存在することになる。
【００２９】
第２集約部１５は、バリエーション数および環境依存度に基づいて、類似メッセージ群を２つ以上に分割して、類似メッセージ群に属していた複数の類似メッセージを集約（再集約）する。
【００３０】
共起分析部１６は、集約ルール作成装置５が収集した複数のメッセージに対して共起分析を行い、該複数のメッセージをメッセージパターンに分類する。実施形態では、共起分析部１６は、上記の共起分析を行うことで、同じ時間帯に出現する一連の複数のメッセージをメッセージパターンに分類する。
【００３１】
第２集計部１７は、分類されたメッセージパターンに含まれる類似メッセージ群から各類似メッセージの差分の値を抽出し、メッセージパターン内におけるバリエーション数を集計する。
【００３２】
また、第２集計部１７は、メッセージパターン内の類似メッセージ群に属する各類似メッセージについて、差分の値が、何れかの日時の前後で変化しているかを判定する。第２集計部は、上記の差分の値が何れかの日時で変化している場合、メッセージの出力日時依存があると判定し、変化していない場合、出力日時依存がないと判定する。
【００３３】
第３集約部１８は、バリエーション数と環境依存度と出力日時依存の有無とに基づいて、類似メッセージ群をさらに分割するかを判定する。
【００３４】
第３集約部１８は、該類似メッセージ群を分割すると判定した場合、メッセージパターン内のバリエーション数に基づいて、類似メッセージ群を２つ以上に分割する。これにより、類似メッセージ群に属していた複数の類似メッセージが集約（再々集約）される。
【００３５】
集約ルール作成部１９は、複数のメッセージを集約するための集約ルールデータを作成する。集約ルールデータは、類似メッセージを纏めた類似メッセージデータのうちパラメータに特殊記号を適用して、ワイルドカード化したデータである。集約ルールデータは、フィルタルールデータとも称される。
【００３６】
記憶部２０は、各種の情報を記憶する。例えば、上述した類似メッセージデータは記憶部２０に記憶されてもよい。また、一時的に情報を記憶するバッファは、記憶部２０により実現されてもよい。通信部２１は、外部の装置と通信を行う。
【００３７】
＜メッセージのデータ例＞
図３は、メッセージのデータ例を示す。図３（Ａ）は、１つのメッセージのデータ例を示す。実施形態では、メッセージは、該メッセージが出力された日時と該メッセージを出力した出力環境（実行環境）とメッセージ本文との情報を含む。
【００３８】
メッセージ本文は、メッセージの内容を示す情報である。実施形態のメッセージは、上記の各種情報を文字列として含む。メッセージは、上記の３つの情報以外に任意の情報を含んでもよい。
【００３９】
実施形態では、メッセージ本文の文字列の一致率が所定の閾値以上のメッセージ同士が類似メッセージとされる。図２（Ｂ）の例は、３つのメッセージのデータ例を示す。３つのメッセージのメッセージ本文の文字列の一致率は高い。
【００４０】
３つのメッセージのメッセージ本文の文字列で異なる部分（差分：パラメータ）は、「Child」に続く数値である。例えば、該数値は、プロセスIdentification(ID)であるとする。実施形態では、メッセージの意味の違いを示さない差分を可変パラメータと称する。例えば、プロセスＩＤは、可変パラメータである。
【００４１】
複数の類似メッセージの差分が可変パラメータである場合、該複数の類似メッセージは集約されて同じ類似メッセージ群に属することが好ましい。一方、複数の類似メッセージの差分が可変パラメータでない場合（非可変パラメータである場合）、該複数の類似メッセージは同じ類似メッセージ群に属することは好ましくない。
【００４２】
図３（Ｃ）は、２つのメッセージのデータ例を示す。２つのメッセージのメッセージ本文の文字列の一致率は高い。このため、該２つのメッセージは集約されてしまう可能性がある。
【００４３】
しかし、２つのメッセージのメッセージ本文における差分は、メッセージの意味の違いを示す。図３（Ｃ）の例において、「running」はプロセスが動作していることを示し、「stopped」はプロセスが停止していることを示す。
【００４４】
従って、図３（Ｃ）の例における２つのメッセージは類似度が大きいものの、集約されることは好ましくない。例えば、これら２つのメッセージが集約された場合、後に、メッセージの解析が難しくなる。
【００４５】
例えば、図２（Ｃ）の２つのメッセージが集約された場合、後に、「7/28 01:45」の時点で、サーバＢのプロセスＩＤ「1688」が停止したことを特定することが難しくなる。このため、差分（パラメータ）がメッセージの意味の違いを示す場合、該差分は非可変パラメータとして取り扱われる。
【００４６】
＜実施形態の全体の処理の流れの一例を示すフローチャート＞
図４は、実施形態の全体の処理の流れの一例を示すフローチャートである。通信部２１が各サーバ２からメッセージを入力することで、各サーバ２が出力したメッセージが収集される（ステップＳ１）。
【００４７】
制御部１１は、例えば、収集されたメッセージを記憶部２０に記憶する。第１集約部１２は、収集された複数のメッセージのうち、所定のルールに基づいて、相互に類似するメッセージを類似メッセージとして、類似メッセージ群に集約する（ステップＳ２）。
【００４８】
例えば、第１集約部１２は、メッセージ同士のメッセージ本文における文字列の一致率が所定の閾値以上の複数のメッセージをそれぞれ類似メッセージとして集約する。集約された複数の類似メッセージは類似メッセージ群に属する。
【００４９】
第１差分抽出部１３は、類似メッセージ群に属する複数の類似メッセージのうち差分を抽出する（ステップＳ３）。例えば、第１差分抽出部１３は、類似メッセージ群に属する複数の類似メッセージにおけるメッセージ本文の文字列のうち異なる部分（一致しない部分）を差分として抽出する。
【００５０】
第１集計部１４は、抽出された差分の値の種類数（バリエーション数）を集計する（ステップＳ４）。そして、第２集約部１５は、バリエーション数および環境依存度に基づいて、類似メッセージ群を２つ以上に分割する（ステップＳ５）。
【００５１】
これにより、１つの類似メッセージ群に集約されていた複数の類似メッセージが２つ以上の類似メッセージ群に属するように再集約される。
【００５２】
共起分析部１６は、収集された複数のメッセージに対して共起分析を行い（ステップＳ６）、メッセージのうち出力日時が示す日時が同じ時間帯ごとに一連の複数のメッセージを時間帯のパターンで分類する。
【００５３】
メッセージのうち出力日時が示す日時の時刻が同じ時間帯に含まれていれば、異なる日にちのメッセージであっても、共起分析部１６は、該メッセージを同じ時間帯のメッセージパターンに分類する。
【００５４】
第２集計部１７は、分類されたメッセージパターンに含まれる類似メッセージ群から各類似メッセージの差分を抽出し、メッセージパターン内におけるバリエーション数を集計する（ステップＳ７）。
【００５５】
第３集約部１８は、メッセージパターン内のバリエーション数に基づいて、類似メッセージ群を２つ以上に分割する（ステップＳ８）。該ステップＳ８の処理は、バリエーション数と環境依存度と出力日時依存の有無とに基づいて、メッセージパターン内に含まれる類似メッセージ群を分割すると判定された場合に行われる。
【００５６】
集約ルール作成部１９は、類似メッセージデータのうちパラメータの部分をワイルドカード化した集約ルールデータを作成する（ステップＳ９）。この集約ルールデータは、メッセージ集約装置３に提供され、該メッセージ集約装置３は、該集約ルールデータに基づいて、メッセージの集約を行う。
【００５７】
＜第１集約部の処理の一例＞
図５は、メッセージデータと類似メッセージＩＤと類似メッセージデータとの一例を示す。メッセージデータは、集約ルール作成装置５が収集した複数のメッセージを纏めたデータである。
【００５８】
メッセージデータは、メッセージ番号と出力日時と出力環境とメッセージ本文との項目を含む。これらの項目のうち、メッセージ番号以外の項目は、上述したメッセージに含まれる情報を示す。
【００５９】
メッセージ番号は、各メッセージに付与される番号である。例えば、制御部１１は、収集されたメッセージに含まれる出力日時の順番に応じて、該メッセージにメッセージ番号を付与してもよい。
【００６０】
第１集約部１２は、メッセージデータに含まれる各メッセージ番号のメッセージ本文の文字列を比較して、文字列の一致率が所定の閾値以上の複数のメッセージを類似メッセージとして、類似メッセージ群に集約する。所定の閾値は任意の値に設定されてよい。
【００６１】
類似メッセージＩＤは、類似メッセージ群を示すＩＤである。類似メッセージデータは、類似メッセージ群ごとにメッセージデータを纏めたデータであり、メッセージデータの項目に類似メッセージＩＤの項目が追加されている。
【００６２】
図５の類似メッセージデータの例に示されるように、１つの類似メッセージＩＤに含まれる各メッセージのメッセージ本文の文字列の一致率は高い。つまり、１つの類似メッセージＩＤに含まれる各メッセージは、相互に類似する類似メッセージである。
【００６３】
＜第１差分抽出部の処理の一例＞
図６の例において、第１差分抽出部１３は、類似メッセージデータの各類似メッセージＩＤについて、メッセージ本文の差分を抽出する。また、第１差分抽出部１３は、メッセージ本文の文字列のうち、差分がある部分（文字列が一致しない部分）を「差分の位置」として検出し、該差分の位置の値を特定する。
【００６４】
図６の例では、類似メッセージＩＤが「MSG001」の場合、差分は１箇所であり、類似メッセージＩＤが「MSG006」の場合、差分は２箇所である。第１差分抽出部１３は、類似メッセージデータに、差分の位置および差分の項目を追加する。
【００６５】
図６（Ａ）は、差分の位置および差分の項目が追加される前の類似メッセージデータを示し、図６（Ｂ）は、差分の位置および差分の項目が追加された後の類似メッセージデータを示す。
【００６６】
第１差分抽出部１３は、メッセージ本文の複数個所に上記の差分がある場合、差分の箇所の数に応じて、差分の項目を類似メッセージデータに追加する。図６の例において、類似メッセージＩＤが「MSG006」に対応するメッセージ本文の差分は２箇所あるため、第１差分抽出部１３は、類似メッセージデータに２つの差分の項目を追加する。
【００６７】
図６の例において、類似メッセージデータに追加された２つの差分の項目は、「差分｛｛１｝｝」および「差分｛｛２｝｝」として示される。第１差分抽出部１３は、それぞれの差分の項目にメッセージ本文に応じた差分の値を記録する。
【００６８】
＜第１集計部の処理の一例＞
第１集計部１４は、図７（Ａ）の例に示される類似メッセージデータから、類似メッセージＩＤごとに、差分の値の種類数（バリエーション数）を集計する。また、第１集計部１４は、類似メッセージデータから、類似メッセージＩＤごとに環境依存度を算出する。
【００６９】
図７の例において、類似メッセージデータのうち類似メッセージＩＤ「MSG001」に属する類似メッセージの数は「４３」であり、且つ該類似メッセージＩＤ「MSG001」に対応する差分の値は全て異なる値である。
【００７０】
第１集計部１４は、類似メッセージデータの類似メッセージＩＤごとに、各類似メッセージの差分の値と出力環境とを抽出し、差分の値と出力環境との組が重複しないように、差分の値と出力環境とを対応付けて、バッファに記憶する。バッファは、例えば、記憶部２０により実現される。
【００７１】
第１集計部１４は、類似メッセージＩＤに属する１つのメッセージ番号に対応する差分の値と出力環境とを類似メッセージデータから取得する。取得された差分の値がバッファに記憶されていなければ、第１集計部１４は、取得された差分の値と出力環境とを対応付けて、バッファに記憶する。
【００７２】
取得された差分の値はバッファに記憶され、且つ該差分の値に対応する出力環境がバッファに記憶されていない場合、第１集計部１４は、取得された差分の値と出力環境とを対応付けて、バッファに記憶する。
【００７３】
図７の例の場合、類似メッセージＩＤ「MSG001」に対応する各差分の値が全て異なるため、パラメータのバリエーション数は「４３」になる。類似メッセージＩＤ「MSG006」に対応する差分の項目は２つあり、このうち１つの項目に含まれる値は「３３６２」または「７１４２」であるとする。よって、バリエーション数は「２」になる。
【００７４】
また、もう１つの項目の差分の値は「running」または「stopped」であるとする。よって、バリエーション数は「２」になる。図７の例に示されるように、類似メッセージデータには、差分の項目に対応したバリエーションの項目が追加される。
【００７５】
該バリエーションの項目には、差分の項目に対応して、バリエーション数や環境依存度（図７以降の例において「依存度」と表記）等の情報が含まれる。これらの情報は、類似メッセージ群を分割するかを判定する際に用いられる。
【００７６】
次に、環境依存度について説明する。上述したように、環境依存度は、集約ルール作成装置５にメッセージを出力した実行環境の数とバリエーション数とに基づく値であり、パラメータが１つの実行環境のみに依存する度合いを示す。
【００７７】
図８は、環境依存度を算出する一例を示す。図８（Ａ）〜図８（Ｃ）の例において、類似メッセージデータの１つの類似メッセージＩＤに対応する出力環境（実行環境）の項目は、サーバＡ、サーバＢおよびサーバＣを示す情報を含むものとする。
【００７８】
図８（Ａ）の例において、上記の１つの類似メッセージＩＤに対応する差分の項目は、「running」または「stopped」の値を示す情報が含まれているとする。これら２つの情報は、差分値であり、それぞれ差分値は異なる。この場合、バリエーション数は「２」である。
【００７９】
また、サーバＡ、サーバＢおよびサーバＣは、上記の２つの差分値にそれぞれ対応しているものとする。つまり、サーバＡ、サーバＢおよびサーバＣという３つの実行環境は、それぞれ差分値「running」を含むメッセージと差分値「stopped」を含むメッセージを出力するものとする。
【００８０】
この場合、全てのバリエーションは、全ての実行環境に対応する。つまり、１つの実行環境のみに対応するバリエーションはないことになり、１つの実行環境のみに対応するバリエーション数は「０」になる。
【００８１】
第１集計部１４は、１つの実行環境のみに対応するバリエーション数を全てのバリエーション数で除算して、環境依存度を得る。
【００８２】
図８（Ａ）の場合、１つの実行環境のみに対応するバリエーション数は「０」であるため、環境依存度は「０」になる。つまり、差分値に対応するメッセージを出力した実行環境の数は「０」であるため、環境依存度も「０」になる。
【００８３】
図８（Ｂ）の場合、３つのサーバに対応する差分値はそれぞれ異なる。図８（Ｂ）の例の場合、バリエーション数は「６」であり、１つの実行環境のみに対応するバリエーション数は「６」である。つまり、複数の実行環境に対応するバリエーションはない。
【００８４】
従って、第１集計部１４は、１つの実行環境のみに対応するバリエーション数（＝６）をバリエーション数（＝６）で除算して、環境依存度（＝１）を得る。従って、図８（Ａ）の例の環境依存度（＝０）より、図８（Ｂ）の例の環境依存度（＝１）の方が大きい。
【００８５】
環境依存度が大きいほど、複数の実行環境のそれぞれが出力するメッセージに含まれる差分値が異なる率が高くなる。つまり、バリエーションが多くなる。従って、環境依存度が大きい差分は可変パラメータである可能性が高い。
【００８６】
環境依存度が小さいほど、複数の実行環境のそれぞれが出力するメッセージに含まれる差分値が同じである率が高くなる。つまり、バリエーションが少なくなる。従って、環境依存度が小さい差分は非可変パラメータである可能性が高い。
【００８７】
図８（Ｃ）の場合、バリエーション数は「３」である。差分値「restart」は、サーバＢが出力するメッセージのみに含まれる。差分値「stop」は、サーバＡ、サーバＢおよびサーバＣが出力するメッセージに含まれる。
【００８８】
差分値「start」は、サーバＡおよびサーバＢが出力するメッセージに含まれる。よって、１つの実行環境のみに対応する差分値は「restart」のみになり、該１つの実行環境のみに対応する実行環境の数は「１」になる。
【００８９】
従って、第１集計部１４は、１つの実行環境のみに対応するバリエーション数（＝１）をバリエーション数（＝３）で除算して、環境依存度（＝０．３３３）を得る。
【００９０】
次に、環境依存度を算出する他の例について説明する。第１集計部１４は、他の例における環境依存度を、下記の式により算出する。
【００９１】
【数１】
2017162196.tif 000003
【００９２】
ただし、１つの種類を対象のバリエーションとし、該対象のバリエーションが全ての実行環境に対応する場合を「Ｘ＝０」とし、該対象のバリエーションが何れかの実行環境に対応しない場合を「Ｘ＝１」とする。
【００９３】
図９（Ａ）の例において、差分値「running」を対象のバリエーションとした場合、該差分値は、サーバＡとサーバＢとサーバＣとの全てのサーバから出力される。よって、全ての実行環境が対象のバリエーションを含むため、「Ｘ＝０」となる。
【００９４】
同様に、差分値「stopped」を対象のバリエーションとした場合、該差分値は、サーバＡとサーバＢとサーバＣとの全てのサーバに対応する。よって、「Ｘ＝０」となる。
【００９５】
差分値「running」に対応する実行環境数は「３」であり、差分値「stopped」に対応する実行環境数は「３」である。また、差分値は、「running」と「stopped」との２つであるため、バリエーション数は「２」である。
【００９６】
よって、図９（Ａ）の例の場合、第１集計部１４は、上述した式に基づいて、「環境依存度＝０」を算出する。
【００９７】
図９（Ｂ）の例の場合、例えば、差分値「３３６２」は、サーバＡのみに含まれる。よって、図９（Ｂ）の例において、差分値「３３６２」を対象のバリエーションとした場合、「Ｘ＝１」となる。
【００９８】
また、差分値「３３６２」は、サーバＡのみから出力される。よって、対象のバリエーションに対応する実行環境数は「１」になる。図９の例の場合、他のバリエーションについても「Ｘ＝１」であり、且つ対応する実行環境数は「１」である。
【００９９】
よって、図９（Ｂ）の例の場合、第１集計部１４は、上述した式に基づいて、「環境依存度＝１」を算出する。
【０１００】
図９（Ｃ）の例において、差分値「start」を対象のバリエーションとした場合、該差分値は全てのサーバから出力される。よって、全ての実行環境が対象のバリエーションを含むため、「Ｘ＝０」となる。
【０１０１】
差分値「stop」を対象のバリエーションとした場合、該差分値はサーバＣから出力されていないため、「Ｘ＝１」となり、且つ対応する実行環境数は「２」となる。
【０１０２】
差分値「restart」を対象のバリエーションとした場合、該差分値はサーバＡおよびサーバＢから出力されていないため、「Ｘ＝１」となり、且つ実行環境数は「１」となる。よって、図９（Ｃ）の例の場合、第１集計部１４は、上述した式に基づいて、「環境依存度＝０．５」を算出する。
【０１０３】
例えば、図９（Ｂ）の例の場合、差分値「３３６２」は、サーバＡのみから出力されるため、該差分値は１つの実行環境のみに依存する。依存する実行環境の数が小さいほど、差分値は可変パラメータである可能性が大きい。例えば、図９（Ｂ）の例における差分値「３３６２」はプロセスＩＤであり、該プロセスＩＤは可変パラメータの一種である。
【０１０４】
一方、依存する実行環境の数が大きいほど、差分値は非可変パラメータである可能性が大きい。例えば、図９（Ａ）の例におけるバリエーションが示すパラメータ「running」および「stopped」は非可変パラメータである。
【０１０５】
上述したように、可変パラメータは集約されることが好ましく、非可変パラメータは集約されないことが好ましい。
【０１０６】
そこで、実施形態では、非可変パラメータを含むメッセージが集約された場合でも、バリエーション数と環境依存度とに基づいて、２つ以上に類似メッセージ群が分割される。これにより、非可変パラメータを含むメッセージが異なる類似メッセージ群に属するようになる。
【０１０７】
次に、第１集計部１４の処理の流れの一例を示すフローチャートについて説明する。図１０の例に示されるように、第１集計部１４は、類似メッセージデータから、類似メッセージ群に属する類似メッセージを１つ取得する（ステップＳ１１）。類似メッセージ群は、類似メッセージＩＤで特定され、類似メッセージは、メッセージ番号で特定される。
【０１０８】
第１集計部１４は、取得された類似メッセージから差分の値を１つ取得する（ステップＳ１２）。上述したように、バッファには、差分の値と出力環境とが対応付けられて記憶される。
【０１０９】
第１集計部１４は、取得された差分の値がバッファに記憶されているかを判定する（ステップＳ１３）。取得された差分の値がバッファに記憶されていなければ（ステップＳ１３でＮＯ）、第１集計部１４は、取得された差分の値と該差分の値に対応する出力環境とを対応付けてバッファに記憶する（ステップＳ１４）。
【０１１０】
取得された差分の値がバッファに記憶されている場合（ステップＳ１３でＹＥＳ）、第１集計部１４は、差分の値に対応する出力環境がバッファに記憶されているかを判定する（ステップＳ１５）。
【０１１１】
差分の値に対応する出力環境がバッファに記憶されていない場合（ステップＳ１５でＮＯ）、第１集計部１４は、差分の値に出力環境を対応付けて記憶する（ステップＳ１６）。差分の値に対応する出力環境がバッファに記憶されている場合（ステップＳ１５でＹＥＳ）、ステップＳ１６の処理は行われない。
【０１１２】
ステップＳ１１で取得された類似メッセージには、複数の差分の項目が含まれている場合がある。第１集計部１４は、類似メッセージの全ての差分の値を取得したかを判定する（ステップＳ１７）。
【０１１３】
全ての差分の値が取得されていない場合（ステップＳ１７でＮＯ）、処理はステップＳ１２に戻る。全ての差分の値が取得された場合（ステップＳ１７でＹＥＳ）、第１集計部１４は、バッファに記憶された差分の値の数を取得し、取得された差分の値の数を上述したバリエーション数とする（ステップＳ１９）。
【０１１４】
そして、第１集計部１４は、上述した環境依存度を算出し（ステップＳ１９）、バッファをクリアする（ステップＳ２０）。
【０１１５】
類似メッセージデータには、複数の類似メッセージ群が含まれている場合がある。第１集計部１４は、全ての類似メッセージデータに含まれる全ての類似メッセージを取得したかを判定する（ステップＳ２１）。
【０１１６】
全ての類似メッセージが取得されていない場合（ステップＳ２１でＮＯ）、処理は、ステップＳ１１に戻る。全ての類似メッセージが取得された場合（ステップＳ２１でＹＥＳ）、処理は終了する。
【０１１７】
＜第２集約部の処理の一例＞
次に、第２集約部１５の処理について説明する。図１１（Ａ）に示される類似メッセージデータは、図７（Ｂ）に示される類似メッセージデータである。従って、図１１（Ａ）の類似メッセージは、差分の項目を２つ含み、それぞれに対応するバリエーションの項目を含む。
【０１１８】
第２集約部１５は、類似メッセージデータから、１つの類似メッセージ群（類似メッセージＩＤで特定される類似メッセージ群）のバリエーションの項目からバリエーション数および環境依存度を取得する。
【０１１９】
第２集約部１５は、取得されたバリエーション数がバリエーション数閾値より小さく、且つ取得された環境依存度が依存度低閾値より小さいかを判定する。バリエーション数閾値は、バリエーション数が小さいか否かを判定するための閾値であり、第１閾値の一例である。
【０１２０】
バリエーション数閾値は、メッセージを出力する実行環境の数よりも大きい値に設定されることが好ましい。バリエーション数は、通常、実行環境の数よりも多いため、バリエーション数閾値が実行環境の数以下の場合、閾値が適切な値でなくなるためである。
【０１２１】
また、バリエーション数閾値は、類似メッセージの数に比例した可変値に設定されてもよい。類似メッセージの数が多くなるほど、バリエーション数も多くなるため、この場合、バリエーション閾値は大きい値に設定されてもよい。
【０１２２】
また、類似メッセージの数が小さいほど、バリエーション数も少なくなるため、この場合、バリエーション閾値は小さい値に設定されてもよい。
【０１２３】
依存度低閾値は、環境依存度が小さいか否かを判定するための閾値であり、第２閾値の一例である。環境依存度の最小値は「０」であり、最大値は「１」である。依存度低閾値は、「０」から「１」の間の任意の値に設定されてよいが、該依存度低閾値は「０」に近い値に設定されることが好ましい。
【０１２４】
実施形態では、バリエーション数閾値は「３０」であり、依存度低閾値は「０．１」であるものとする。
【０１２５】
図１１（Ａ）の例において、類似メッセージＩＤに対応する２つのバリエーションの項目のうち１つの項目（バリエーション｛｛２｝｝）には、バリエーション数が「２」であり、且つ環境依存度が「０」であることが記録されている。
【０１２６】
この場合、バリエーション数はバリエーション数閾値より小さく、且つ環境依存度は依存度低閾値より小さいため、第２集約部１５は、類似メッセージ群を分割する。図１１（Ａ）の例の場合、第２集約部１５は、上記のバリエーション項目に対応する差分の値ごとに類似メッセージ群を分割する。
【０１２７】
つまり、第２集約部１５は、類似メッセージデータのうち、類似メッセージＩＤ「MSG006」で特定される類似メッセージ群を、差分値「running」の類似メッセージ群と差分値「stopped」の類似メッセージ群とに分割する。
【０１２８】
図１１（Ｂ）の例の差分の値「running」の類似メッセージ群は類似メッセージＩＤ「MSG006-1」で特定され、差分の値「stopped」の類似メッセージ群は類似メッセージＩＤ「MSG006-2」で特定される。
【０１２９】
上述したように、類似メッセージ群に対応するバリエーション数が小さく、且つ環境依存度が小さい場合、該類似メッセージ群には、非可変パラメータが集約されている可能性が高い。
【０１３０】
例えば、「running」および「stopped」は、メッセージの意味を示すパラメータであり、非可変パラメータである。このため、第２集約部１５は、バリエーション数が小さく、且つ環境依存度が小さい類似メッセージ群を、差分の値ごとに分割する。
【０１３１】
これにより、非可変パラメータごとに、複数の類似メッセージが再集約される。図１１（Ｂ）で示される類似メッセージデータに基づいてワイルドカード化された集約ルールデータが作成されてもよい。
【０１３２】
非可変パラメータが集約された類似メッセージデータに基づく集約ルールによりメッセージが集約されると、意味が異なるメッセージが同じ類似メッセージ群に集約される。このため、メッセージを適切に集約することが難しい。
【０１３３】
一方、図１１（Ｂ）に示される類似メッセージデータに基づく集約ルールによりメッセージが集約されると、意味が異なるメッセージは別々の類似メッセージ群に集約されるため、メッセージを適切に集約することができる。
【０１３４】
図１２は、第２集約部１５の処理の一例を示すフローチャートである。第２集約部１５は、類似メッセージデータから、類似メッセージ群に属する類似メッセージを１つ取得する（ステップＳ３１）。
【０１３５】
第２集約部１５は、取得された類似メッセージから差分の値を１つ取得する（ステップＳ３２）。第２集約部１５は、取得された差分の値に対応するバリエーション数を類似メッセージデータから取得し、取得されたバリエーション数が「１」であるかを判定する（ステップＳ３３）。
【０１３６】
取得された差分の値に対応するバリエーション数が「１」である場合（ステップＳ３３でＮＯ）、差分の値は１種類になるため、各類似メッセージの文字列のうち、差分の値に対応する部分は全て同じになる。
【０１３７】
この場合、第２集約部１５は、類似メッセージデータから差分の項目の情報を削除する（ステップＳ３４）。また、第２集約部１５は、類似メッセージデータから差分の項目に対応するバリエーションの項目の情報も削除する。
【０１３８】
取得された差分の値に対応するバリエーション数が「１」でない場合（ステップＳ３３でＮＯ）、第２集約部１５は、バリエーション数がバリエーション数閾値より小さいかを判定する（ステップＳ３５）。
【０１３９】
バリエーション数がバリエーション閾値より小さい場合（ステップＳ３５でＹＥＳ）、第２集約部１５は、環境依存度が依存度低閾値より小さいかを判定する（ステップＳ３６）。
【０１４０】
環境依存度が依存度閾値より小さい場合（ステップＳ３６でＹＥＳ）、第２集約部１５は、差分の値ごとに、類似メッセージ群を分割する（ステップＳ３７）。これにより、メッセージの意味が異なる非可変パラメータが分割されて、非可変パラメータごとにメッセージの再集約が行われる。
【０１４１】
そして、第２集約部１５は、類似メッセージデータのうち、分割された差分の項目の情報およびバリエーションの項目の情報を削除する（ステップＳ３４）。ステップＳ３５でＮＯの場合、ステップＳ３６でＮＯの場合、ステップＳ３４およびステップＳ３７の処理は行われない。
【０１４２】
第２集約部１５は、同じ類似メッセージ群について全ての差分の値を取得したかを判定する（ステップＳ３８）。全ての差分の値が取得されていない場合（ステップＳ３８でＮＯ）、処理はステップＳ３２に戻る。
【０１４３】
全ての差分の値が取得された場合（ステップＳ３８でＹＥＳ）、第２集約部１５は、類似メッセージデータに含まれる全ての類似メッセージを取得したかを判定する（ステップＳ３９）。
【０１４４】
取得されていない類似メッセージがある場合（ステップＳ３９でＮＯ）、処理は、ステップＳ３１に戻る。全ての類似メッセージが取得された場合（ステップＳ３９でＹＥＳ）、処理は終了する。
【０１４５】
＜共起分析部の処理の一例＞
第３集約部１８がメッセージの再々集約を行うために、共起分析部１６は、メッセージデータに対して共起分析を行う。図１３の例に示されるように、共起分析部１６が共起分析を行う対象とするメッセージデータには、類似メッセージＩＤの項目が追加されている。
【０１４６】
この類似メッセージＩＤの項目には、第２集約部１５により類似メッセージ群が分割された場合、分割された類似メッセージ群を特定する類似メッセージＩＤが含まれる。例えば、図１３の例では、「MSG006-1」は、分割された類似メッセージ群であることを示す。
【０１４７】
共起分析部１６は、類似メッセージＩＤの項目が追加されたメッセージデータのうち、出力日時に基づいて、共起分析を行い、よく一緒に現れる複数のメッセージを抽出する。これにより、共起分析部１６は、同じ時間帯によく一緒に出現する複数のメッセージをメッセージパターンに分類する。
【０１４８】
図１３の例において、メッセージパターンデータは、メッセージデータに対して共起分析がされたデータである。共起分析部１６は、メッセージデータに、パターンＩＤとパターン定義と事例ＩＤとの項目を追加したメッセージパターンデータを作成する。メッセージパターンデータは、記憶部２０に記憶される。
【０１４９】
パターンＩＤは、分類されたメッセージパターンを特定するＩＤである。パターン定義は、共起分析により分類されたパターンＩＤに含まれる複数の類似メッセージＩＤを示す。事例ＩＤは、１つのパターンＩＤに含まれる類似メッセージが出現時間帯ごとに分類されたＩＤを示す。
【０１５０】
＜第２集計部の処理の一例＞
次に、第２集計部１７の処理の一例について説明する。第２集計部１７は、メッセージパターンデータのうち１つのメッセージパターンに含まれる複数のパターン定義のそれぞれに対応するメッセージ番号を取得する。メッセージパターンは、パターンＩＤで特定される。
【０１５１】
例えば、図１４の例の場合、パターンＩＤ「PTN002」には、３つのパターン定義が含まれる。第２集計部１７は、例えば、パターン定義に含まれる類似メッセージＩＤ「MSG005」に対応するメッセージ番号を取得する。図１４の例では、メッセージ番号「５」、「１１８」および「１８９」が取得される。
【０１５２】
第２集計部１７は、類似メッセージデータから、上記の取得されたメッセージ番号に対応する類似メッセージＩＤを特定し、該類似メッセージＩＤに含まれるメッセージ番号のうち、上記の取得されたメッセージ番号に対応する差分を取得する。
【０１５３】
図１４の例の場合、第２集計部１７は、類似メッセージＩＤ「MSG006」に含まれるメッセージ番号「５」、「１１８」および「１８９」に対応する差分を取得する。取得された差分は全て「start」である。この場合、取得された差分のバリエーション数は「１」である。
【０１５４】
第２集計部１７は、図１３の例で示したメッセージパターンデータにバリエーション数の項目を追加する。第２集計部１７は、メッセージパターンデータのうちバリエーション数の項目にパターンＩＤ「PTN002」に含まれるパターン定義「MSG005」に対応するバリエーション数は「１」であることを記録する。
【０１５５】
図１４の例では、「MSG005{{1}}:1」は、パターン定義「MSG005」の１番目の差分の項目に対応するバリエーション数は「１」であることを示す。
【０１５６】
図１５の例は、第２集計部１７が、類似メッセージデータのうち、上記の取得されたメッセージ番号に対応する類似メッセージＩＤを示す。図１５の例のうち、「出力日時依存なし」の例は、実行環境ごとの差分が、特定の出力日時の前後で変化していない例を示す。
【０１５７】
この場合、第２集計部１７は、類似メッセージデータのバリエーションの項目に出力日時依存がないことを示す情報を記録する。
【０１５８】
図１５の例のうち「出力日時依存なし」の例は、実行環境ごとの差分が、特定の出力日時の前後で変化していない例を示す。例えば、図１５の例の場合、出力環境がサーバＡに対応する差分の値が「start」と「end」との繰り返しから変化していない。
【０１５９】
図１５の例のうち「出力日時依存あり」の例は、実行環境ごとの差分が、特定の出力日時の前後で変化している例を示す。例えば、図１５の例の場合、「2015-07-29」を境にして、差分の値が「１．０」から「１．１」に変化している。
【０１６０】
この場合、第２集計部１７は、類似メッセージデータのバリエーションの項目に出力日時依存があることを示す情報を記録する。
【０１６１】
図１６は、第２集計部１７の処理の流れの一例を示すフローチャートである。第２集計部１７は、メッセージパターンデータから１つのメッセージパターンを取得する（ステップＳ５１）。
【０１６２】
第２集計部１７は、取得されたメッセージパターンに含まれる複数の類似メッセージＩＤから１つの類似メッセージＩＤを取得する（ステップＳ５２）。その後、処理は「Ａ」に進む。「Ａ」以降の処理について、図１７の例を参照して説明する。
【０１６３】
第２集計部１７は、取得された類似メッセージＩＤに対応するメッセージ番号を取得する（ステップＳ５３）。そして、第２集計部１７は、取得されたメッセージ番号に対応する類似メッセージを類似メッセージデータから取得する（ステップＳ５４）。
【０１６４】
第２集計部１７は、取得された類似メッセージデータの差分を取得する（ステップＳ５５）。第２集計部１７は、取得された差分がバッファに記憶されているかを判定する（ステップＳ５６）。
【０１６５】
該差分がバッファに記憶されていない場合（ステップＳ５６でＮＯ）、第２集計部１７は、バッファに該差分を追加する（ステップＳ５７）。該差分がバッファに記憶されていない場合（ステップＳ５６でＮＯ）、ステップＳ５７の処理は行われない。
【０１６６】
第２集計部１７は、ステップＳ５２で取得された類似メッセージＩＤに対応する全てのメッセージ番号が取得されたかを判定する（ステップＳ５８）。何れかのメッセージ番号が取得されていない場合（ステップＳ５８でＮＯ）、処理はステップＳ５３に戻る。
【０１６７】
全てのメッセージ番号が取得された場合（ステップＳ５８でＹＥＳ）、第２集計部１７は、バッファに記憶された差分の数を、ステップＳ５２で取得された類似メッセージＩＤのバリエーション数として、メッセージパターンデータに記録する（ステップＳ５９）。
【０１６８】
そして、第２集計部１７は、バッファをクリアする（ステップＳ６０）。その後、処理は「Ｂ」に進む。「Ｂ」以降の処理について、図１６の例を参照して説明する。
【０１６９】
第２集計部１７は、全ての類似メッセージＩＤが取得されたかを判定する（ステップＳ６１）。取得されていない類似メッセージＩＤがある場合（ステップＳ６１でＮＯ）、処理はステップＳ５２に戻る。
【０１７０】
その後、ステップＳ５３からステップＳ６０までの処理が繰り返される。全ての類似メッセージＩＤが取得された場合（ステップＳ６１でＹＥＳ）、第２集計部１７は、全てのメッセージパターンが取得されたかを判定する（ステップＳ６２）。
【０１７１】
取得されていないメッセージパターンがある場合（ステップＳ６２でＮＯ）、処理はステップＳ５１に戻る。その後、ステップＳ５２からステップＳ６１までの処理が繰り返される。
【０１７２】
全てのメッセージパターンが取得された場合（ステップＳ６２でＹＥＳ）、処理は終了する。以上の処理が行われることにより、メッセージパターンデータに、各パターンＩＤのそれぞれに対応するパターン定義に含まれる類似メッセージＩＤごとのバリエーション数が記録される。
【０１７３】
＜第３集約部の処理の一例＞
次に、第３集約部１８の処理の一例について説明する。図１８の例は、類似メッセージＩＤが「MSG005」の類似メッセージデータの一例を示す。この類似メッセージデータのバリエーションの項目は、バリエーション数が「２」、環境依存度が「０．５」、出力日時依存がないことを示す。
【０１７４】
類似メッセージＩＤ「MSG005」により特定される類似メッセージ群は、第２集約部１５により分割されていない。これは、環境依存度（＝０．５）が、依存度低閾値（＝０．１）以上になっているためである。
【０１７５】
第３集約部１８は、メッセージパターン内で類似メッセージ群を分割する。第２集約部１５により類似メッセージ群が分割され、さらに第３集約部１８によりメッセージパターン内で類似メッセージ群が分割されることで、精度の高い集約ルールを作成できる。
【０１７６】
第３集約部１８は、バリエーション数と環境依存度と出力日時依存の有無とに基づいて、メッセージパターン内で類似メッセージ群を分割するかを判定する。分割すると判定された場合、第３集約部１８は、メッセージパターンにおいて類似メッセージ群を分割し、類似メッセージを再々集約する。
【０１７７】
図１８のメッセージパターンの例において、パターンＩＤが「PTN002」および「PTN004」のバリエーション数は「１」であることを示す。パターンＩＤに対応するバリエーション数が「１」の場合、該パターンＩＤに対応する差分の値は１種類になるため、第３集約部１８は、類似メッセージ群を分割する。
【０１７８】
図１８の例において、パターンＩＤが「PTN002」および「PTN004」のバリエーション数は「１」である。このため、第３集約部１８は、類似メッセージＩＤ「MSG005」により特定される類似メッセージ群を差分の値「start」および「end」で分割して、類似メッセージを再々集約する。
【０１７９】
図１９は、上述した分割および再々集約がされた類似メッセージデータおよびメッセージパターンデータの一例を示す。図１９の類似メッセージデータの例に示されるように、類似メッセージＩＤ「MSG005」で特定される類似メッセージ群は２つに分割される。この場合、差分およびバリエーションの情報は削除される。
【０１８０】
図１９におけるメッセージパターンデータは、類似メッセージ群が分割されたことを示す。図１９の例の場合、類似メッセージＩＤ「MSG005-1」および「MSG005-2」は、類似メッセージＩＤ「MSG005」で特定される類似メッセージ群が分割されたことを示す。
【０１８１】
図２０は、第３集約部１８の処理の一例を示すフローチャートである。第３集約部１８は、類似メッセーデータから、類似メッセージ群に属する類似メッセージを１つ取得する（ステップＳ７０）。第３集約部１８は、取得された類似メッセージから差分を１つ取得する（ステップＳ７１）。
【０１８２】
第３集約部１８は、ステップＳ７０で取得された類似メッセージが属する類似メッセージ群を特定する類似メッセージＩＤに対応するバリエーションの項目のうち、バリエーション数を取得する。
【０１８３】
そして、第３集約部１８は、取得されたバリエーション数がバリエーション数閾値より小さいかを判定する（ステップＳ７２）。
【０１８４】
取得されたバリエーション数がバリエーション数閾値以上の場合（ステップＳ７２でＮＯ）、ステップＳ７０で取得された類似メッセージの差分は可変パラメータである可能性が高い。この場合、取得された類似メッセージ群は分割されることなく、再々集約の対象にはならない。
【０１８５】
第３集約部１８は、環境依存度を取得し、該環境依存度が依存度高閾値より小さいかを判定する（ステップＳ７３）。依存度高閾値は、依存度低閾値より大きい値であり、第３閾値の一例である。
【０１８６】
環境依存度が依存度高閾値以上の場合（ステップＳ７３でＮＯ）、取得された類似メッセージ群は分割されることなく、再々集約の対象にはならない。依存度高閾値は、依存度低閾値よりも大きい値であり、環境依存度が依存度高閾値以上の場合、取得された類似メッセージの差分が可変パラメータである可能性はさらに高くなる。
【０１８７】
ステップＳ７３の判定が依存度高閾値を基準として行われることで、分割対象となる類似メッセージ群を絞り込む条件を緩くすることができる。
【０１８８】
第３集約部１８は、類似メッセージデータに基づいて、全ての実行環境で差分が１種類（バリエーション数＝１）であるか、またはある出力日時の前後で差分の値が変化しているかを判定する（ステップＳ７４）。
【０１８９】
全ての実行環境で差分が１種類の場合（ステップＳ７４でＹＥＳ）、取得された類似メッセージの差分が可変パラメータである可能性は高い。また、全ての実行環境で、ある出力日時前後で差分の値が変化している場合（ステップＳ７４でＹＥＳ）、上述した出力日時依存があるため、取得されたメッセージの差分が可変パラメータである可能性は高い。
【０１９０】
一方、ステップＳ７４でＮＯの場合、処理は「Ｃ」に進む。なお、バリエーション数がバリエーション数閾値より小さく、且つ全ての実行環境で、ある出力日時前後で差分の値が変化している場合に、「Ｃ」以降の処理に進んでもよい。
【０１９１】
「Ｃ」以降の処理について、図２１を参照して説明する。第３集約部１８は、取得された類似メッセージを含むメッセージパターンを１つ取得する（ステップＳ７５）。
【０１９２】
第３集約部１８は、取得されたメッセージパターン内で差分のバリエーション数が「１」であるかを判定する（ステップＳ７６）。該バリエーション数が「１」である場合（ステップＳ７６でＹＥＳ）、第３集約部１８は、取得された類似メッセージを含む全てのメッセージパターンが取得されたかを判定する（ステップＳ７７）。
【０１９３】
ステップＳ７７でＮＯの場合、処理はステップＳ７５に戻る。ステップＳ７７でＹＥＳの場合、第３集約部１８は、取得されたバリエーションごとに類似メッセージ群を分割する（ステップＳ７８）。これにより、さらに細かく分割される。
【０１９４】
そして、第３集約部１８は、類似メッセージデータから差分の情報を削除する（ステップＳ７９）。そして、処理は「Ｄ」に進む。また、ステップＳ７６でＮＯの場合も、処理は「Ｄ」に進む。
【０１９５】
取得されたメッセージパターン内で差分のバリエーション数が「１」でない場合、該メッセージパターンに属する各類似メッセージの差分は可変パラメータである可能性が高い。この場合、ステップＳ７８の処理は行われない。
【０１９６】
「Ｄ」以降の処理について、図２０を参照して説明する。第３集約部１８は、全ての差分を取得したかを判定する（ステップＳ８１）。取得されていない差分がある場合（ステップＳ８１でＮＯ）、処理はステップＳ７１に戻る。
【０１９７】
全ての差分が取得された場合（ステップ８１でＹＥＳ）、第３集約部１８は、全ての類似メッセージを取得したかを判定する（ステップＳ８２）。取得されていない類似メッセージがある場合（ステップＳ８１でＮＯ）、処理はステップＳ７０に戻る。全ての類似メッセージが取得された場合（ステップＳ８２でＹＥＳ）、処理は終了する。
【０１９８】
＜集約ルール作成部の処理の一例＞
集約ルール作成部１９は、類似メッセージデータに基づいて、または類似メッセージデータとメッセージパターンデータとに基づいて、集約ルールデータを作成する。集約ルールデータは、メッセージを集約する集約ルールのデータである。
【０１９９】
集約ルール作成部１９は、第２集約部１５により再集約された類似メッセージデータに基づいて、集約ルールデータを作成してもよい。第２集約部１５により再集約された類似メッセージデータは、非可変パラメータが集約されていないため、該類似メッセージでたーに基づく集約ルールデータにより、メッセージを適切に集約することができる。
【０２００】
集約ルール作成部１９は、第３集約部１８により再々集約された類似メッセージデータに基づいて、集約ルールデータを作成してもよい。第３集約部１８は、類似メッセージ群をより細かく分割している。このため、第３集約部１８により再々集約された類似メッセージデータに基づく集約ルールデータにより、メッセージをより適切に集約することができる。
【０２０１】
図２２は、類似メッセージデータとメッセージパターンデータとに基づいて、集約ルール作成部１９が作成した集約ルールデータの一例を示す。図２２の例において、第３集約部１８は、類似メッセージデータの差分の位置（例えば、「{{1}}」）に特殊記号を適用することで、ワイルドカード化を行う。
【０２０２】
これにより、パターンＩＤとパターン定義とに応じた集約ルールが作成される。集約ルールのうち「[^\s]+」は、空白以外の1文字以上の文字を表す特殊記号（ワイルドカード）を示す。
【０２０３】
図２３は、集約ルール作成部１９が行う処理の一例を示す。集約ルール作成部１９は、メッセージパターンデータからパターンＩＤで特定される１つのメッセージパターンを取得する（ステップＳ９１）。
【０２０４】
集約ルール作成部１９は、取得されたメッセージパターンに対応するパターン定義に含まれる類似メッセージＩＤを１つ取得する（ステップＳ９２）。集約ルール作成部１９は、取得されたメッセージＩＤで特定される類似メッセージを類似メッセージデータから取得する（ステップＳ９３）。
【０２０５】
集約ルール作成部１９は、取得された類似メッセージ（文字列）のうち差分の位置を検出する（ステップＳ９４）。集約ルール作成部１９は、取得された類似メッセージのうち差分の位置の差分記号（例えば、上述した「{{1}}」）をワイルドカード（例えば、上述した「[^\s]」）に変換する（ステップＳ９５）。
【０２０６】
集約ルール作成部１９は、上述した差分の位置をルールとしてバッファに記憶する８ステップＳ９６）。集約ルール作成部１９は、全ての類似メッセージＩＤが取得されたかを判定する（ステップＳ９７）。
【０２０７】
何れかの類似メッセージＩＤが取得されていない場合（ステップＳ９７でＮＯ）、処理はステップＳ９２に戻る。
【０２０８】
集約ルール作成部１９は、バッファに記憶された各類似メッセージのルールを連結して、パターンＩＤに対応した集約ルールを作成する（ステップＳ９８）。集約ルール作成部１９は、全てのメッセージパターンが取得されたかを判定する（ステップＳ９９）。
【０２０９】
何れかのメッセージパターンが取得されていない場合（ステップＳ９９でＮＯ）、処理はステップＳ９１に戻る。全てのメッセージパターンが取得された場合（ステップＳ９９でＹＥＳ）、処理は終了する。
【０２１０】
＜集約ルール作成装置のハードウェア構成の一例＞
次に、図２４の例を参照して、集約ルール作成装置５のハードウェア構成の一例を説明する。図２４の例に示すように、バス１００に対して、プロセッサ１１１とＲＡＭ１１２とＲＯＭ１１３と補助記憶装置１１４と媒体接続部１１５と通信インタフェース１１６とが接続されている。
【０２１１】
プロセッサ１１１は任意の処理回路である。プロセッサ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムを適用してもよい。ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。
【０２１２】
補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置１１４に適用してもよい。媒体接続部１１５は、可搬型記録媒体１１９と接続可能に設けられている。
【０２１３】
可搬型記録媒体１１９としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)等）を適用してもよい。この可搬型記録媒体１１９に実施形態の処理を行う通信制御プログラムが記録されていてもよい。
【０２１４】
集約ルール作成装置５のうち、記憶部２０は、ＲＡＭ１１２や補助記憶装置１１４等により実現されてもよい。通信部２１は、通信インタフェース１１６により実現されてもよい。集約ルール作成装置５のうち、記憶部２０および通信部２１以外の各部は、与えられた集約ルール作成プログラムをプロセッサ１１１が実行することにより実現されてもよい。
【０２１５】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１９は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０２１６】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０２１７】
１    システム
２    サーバ
３    メッセージ集約装置
４    監視装置
５    集約ルール作成装置
１１    制御部
１２    第１集約部
１３    第１差分抽出部
１４    第１集計部
１５    第２集約部
１６    共起分析部
１７    第２集計部
１８    第３集約部
１９    集約ルール作成部
２０    記憶部
２１    通信部
１１１    プロセッサ
１１２    ＲＡＭ
１１３    ＲＯＭ
【図１】
2017162196.tif 000005
【図２】
2017162196.tif 000006
【図３】
2017162196.tif 000007
【図４】
2017162196.tif 000008
【図５】
2017162196.tif 000009
【図６】
2017162196.tif 000010
【図７】
2017162196.tif 000011
【図８】
2017162196.tif 000012
【図９】
2017162196.tif 000013
【図１０】
2017162196.tif 000014
【図１１】
2017162196.tif 000015
【図１２】
2017162196.tif 000016
【図１３】
2017162196.tif 000017
【図１４】
2017162196.tif 000018
【図１５】
2017162196.tif 000019
【図１６】
2017162196.tif 000020
【図１７】
2017162196.tif 000021
【図１８】
2017162196.tif 000022
【図１９】
2017162196.tif 000023
【図２０】
2017162196.tif 000024
【図２１】
2017162196.tif 000025
【図２２】
2017162196.tif 000026
【図２３】
2017162196.tif 000027
【図２４】
2017162196.tif 000028