(57)【特許請求の範囲】
【請求項１】
機械の生成するログ情報から有用な情報を抽出するログ分類装置であって、
機器によって生成されるログ情報の集合を、前記ログ情報の生成時期の順に、複数の部分集合に分割する分割部と、
生成時期が相対的に前であるログ情報を含む前記部分集合から順に、当該部分集合に含まれるログ情報の種別の集合である種別集合との一致率が所定値以上である種別集合によって代表されるグループの有無を判定し、該当するグループが無ければ当該部分集合に係る種別集合によって代表されるグループを生成し、該当するグループが有れば当該グループに当該部分集合に係る種別集合を分配する分配部と、
既に分配された種別集合のうちの第１の所定数以上の種別集合において重複している種別の数が第２の所定数に満たない第１のグループに、前記分配部によって種別集合が分配された場合に、当該第１のグループを代表する種別集合を、分配された種別集合との論理和によって更新し、当該第１のグループの所属数に１を加算する第１の更新部と、
既に分配された種別集合のうちの前記第１の所定数以上の種別集合において重複している種別の数が前記第２の所定数以上である第２のグループに、前記分配部によって種別集合が分配された場合に、当該第２のグループを代表する種別集合を構成する全ての種別が、分配された部分集合に含まれる場合、又は当該第２のグループを代表する種別集合を構成する種別のうち、分配された種別集合に含まれない第１の種別について、当該分配された種別集合と、既に当該第２のグループの所属数の増加に寄与した種別集合との集合に含まれない確率が許容範囲内である場合には、当該第２のグループの所属数に１を加算する第２の更新部と、
を有することを特徴とするログ情報分類装置。
【請求項２】
前記第２の更新部は、前記第１の種別についての前記確率が前記許容範囲外である場合には、前記第２のグループを代表する種別集合から前記第１の種別を除去する、
ことを特徴とする請求項１記載のログ情報分類装置。
【請求項３】
前記請求項２の第２の更新部は、さらに、前記第２のグループを代表する種別集合を更新した場合に、過去において当該第２のグループを代表していた種別集合のうち、更新後の種別集合を構成する種別の数に対して所定の割合以上に相違する種別集合によって代表される新たなグループを生成する、
ことを特徴とする請求項２記載のログ情報分類装置。
【請求項４】
機械の生成するログ情報から有用な情報を抽出するログ分類装置であって、
機器によって生成されるログ情報の集合を、前記ログ情報の生成時期の順に、複数の部分集合に分割する分割部と、
生成時期が相対的に前であるログ情報を含む前記部分集合から順に、当該部分集合に含まれるログ情報の種別の集合である種別集合との一致率が所定値以上である種別集合によって代表されるグループの有無を判定し、該当するグループが無ければ当該部分集合に係る種別集合によって代表されるグループを生成し、該当するグループが有れば当該グループに当該部分集合に係る種別集合を分配する分配部と、
既に分配された種別集合のうちの第１の所定数以上の種別集合において重複している種別の数が第２の所定数に満たない第１のグループに、前記分配部によって種別集合が分配された場合に、当該第１のグループを代表する種別集合を、分配された種別集合との論理和によって更新し、当該第１のグループの所属数に１を加算する第１の更新部と、
既に分配された種別集合のうちの前記第１の所定数以上の種別集合において重複している種別の数が前記第２の所定数以上である第２のグループに、前記分配部によって種別集合が分配された場合に、当該種別集合と前記既に分配された種別集合とのうち、第３の所定数以上の部分集合に含まれる種別を、当該第２のグループを代表する種別集合に追加し、当該第２のグループの所属数に１を加算する第３の更新部と、
を有することを特徴とするログ情報分類装置。
【請求項５】
前記第３の更新部は、前記第２のグループを代表する種別集合を更新した場合に、過去において当該第２のグループを代表していた種別集合のうち、更新後の種別集合を構成する種別の数に対して所定の割合以上に相違する種別集合によって代表される新たなグループを生成する、
ことを特徴とする請求項４記載のログ情報分類装置。
【請求項６】
コンピュータが、
機器によって生成されるログ情報の集合を、前記ログ情報の生成時期の順に、複数の部分集合に分割する分割手順と、
生成時期が相対的に前であるログ情報を含む前記部分集合から順に、当該部分集合に含まれるログ情報の種別の集合である種別集合との一致率が所定値以上である種別集合によって代表されるグループの有無を判定し、該当するグループが無ければ当該部分集合に係る種別集合によって代表されるグループを生成し、該当するグループが有れば当該グループに当該部分集合に係る種別集合を分配する分配手順と、
既に分配された種別集合のうちの第１の所定数以上の種別集合において重複している種別の数が第２の所定数に満たない第１のグループに、前記分配手順によって種別集合が分配された場合に、当該第１のグループを代表する種別集合を、分配された種別集合との論理和によって更新し、当該第１のグループの所属数に１を加算する第１の更新手順と、
既に分配された種別集合のうちの前記第１の所定数以上の種別集合において重複している種別の数が前記第２の所定数以上である第２のグループに、前記分配手順によって種別集合が分配された場合に、当該第２のグループを代表する種別集合を構成する全ての種別が、分配された部分集合に含まれる場合、又は当該第２のグループを代表する種別集合を構成する種別のうち、分配された種別集合に含まれない第１の種別について、当該分配された種別集合と、既に当該第２のグループの所属数の増加に寄与した種別集合との集合に含まれない確率が許容範囲内である場合には、当該第２のグループの所属数に１を加算する第２の更新手順と、
を実行することを特徴とするログ情報分類方法。
【請求項７】
コンピュータが、
機器によって生成されるログ情報の集合を、前記ログ情報の生成時期の順に、複数の部分集合に分割する分割手順と、
生成時期が相対的に前であるログ情報を含む前記部分集合から順に、当該部分集合に含まれるログ情報の種別の集合である種別集合との一致率が所定値以上である種別集合によって代表されるグループの有無を判定し、該当するグループが無ければ当該部分集合に係る種別集合によって代表されるグループを生成し、該当するグループが有れば当該グループに当該部分集合に係る種別集合を分配する分配手順と、
既に分配された種別集合のうちの第１の所定数以上の種別集合において重複している種別の数が第２の所定数に満たない第１のグループに、前記分配手順によって種別集合が分配された場合に、当該第１のグループを代表する種別集合を、分配された種別集合との論理和によって更新し、当該第１のグループの所属数に１を加算する第１の更新手順と、
既に分配された種別集合のうちの前記第１の所定数以上の種別集合において重複している種別の数が前記第２の所定数以上である第２のグループに、前記分配手順によって種別集合が分配された場合に、当該種別集合と前記既に分配された種別集合とのうち、第３の所定数以上の部分集合に含まれる種別を、当該第２のグループを代表する種別集合に追加し、当該第２のグループの所属数に１を加算する第２の更新手順と、
を実行することを特徴とするログ情報分類方法。
【請求項８】
請求項１乃至５いずれか一項記載の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ情報分類装置、ログ情報分類方法、及びプログラムに関する。
【背景技術】
【０００２】
今日、コスト削減を主な理由として、異なる製造元の機器、異なる役割を有する機器、又はソフトウェア等について一元的な監視・管理が行われている。一方で、こうした多種多様な機器やソフトウェアは、それぞれ独自の生成則を持った形式のログ情報を出力する機構を有しており、ログ情報は、機器の監視・管理を行う際において使用される。情報機器の発展に伴い、これらのログ情報は、複雑・大規模化しており、効率的な監視方法が必要となっている。
【０００３】
こうした中で、非特許文献３のように、ログ分析を簡略化するための分析基盤が有る。しかし、当該分析基盤を利用するためには、個々のログ情報の発生する意味やログメッセージの内容に関しての生成則を事前知識として必要となり、膨大な未知のログ分析にはノウハウの蓄積が無ければ運用が困難となる。
【０００４】
特にこれらのログ情報に関するノウハウとして、非特許先行文献１や非特許先行文献２では、同時に発生しやすいログ情報のグループが存在し、これを把握しておくことで、大量のログ情報の圧縮や意味付けが容易となることが報告されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１７１４７１号公報
【非特許文献】
【０００６】
【非特許文献１】T. Qiu, Z. Ge, D. Pei, J. Wang, J, Xu,"What Happened in my Network? Mining Network Events from Router Syslogs", In IMC, 2010.
【非特許文献２】T. Kimura, K. Ishibashi, T. Mori, H. Sawada, T. Toyono, K. Nishimatsu, A. Watanabe, A. Shimoda, K. Shiomoto, "Spatio-temporal factorization of log data for understanding network events," in Proc. IEEE INFOCOM 2014, 201
【非特許文献３】Splunk、[online]、［平成２７年１月１３日検索］、インターネット＜http://www.splunk.com/＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１又は非特許文献２で提案されている手法は、バッチ処理が前提とされており、グループの抽出に時間がかかる他、新しいログ情報の到着のたびに全てデータに対しバッチ処理が再度実行される必要が有るため、非効率的である。
【０００８】
本発明は上記の課題を鑑みてなされたものであり、機器やソフトウェアの生成するログ情報の生成則を事前に知ることなく, ログ情報の発生のノイズを考慮しつつ、同時に発生しやすいログ情報の集合の逐次的な抽出を効率的に実行可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、機械の生成するログ情報から有用な情報を抽出するログ分類装置は、機器によって生成されるログ情報の集合を、前記ログ情報の生成時期の順に、複数の部分集合に分割する分割部と、生成時期が相対的に前であるログ情報を含む前記部分集合から順に、当該部分集合に含まれるログ情報の種別の集合である種別集合との一致率が所定値以上である種別集合によって代表されるグループの有無を判定し、該当するグループが無ければ当該部分集合に係る種別集合によって代表されるグループを生成し、該当するグループが有れば当該グループに当該部分集合に係る種別集合を分配する分配部と、既に分配された種別集合のうちの第１の所定数以上の種別集合において重複している種別の数が第２の所定数に満たない第１のグループに、前記分配部によって種別集合が分配された場合に、当該第１のグループを代表する種別集合を、分配された種別集合との論理和によって更新し、当該第１のグループの所属数に１を加算する第１の更新部と、既に分配された種別集合のうちの前記第１の所定数以上の種別集合において重複している種別の数が前記第２の所定数以上である第２のグループに、前記分配部によって種別集合が分配された場合に、当該第２のグループを代表する種別集合を構成する全ての種別が、分配された部分集合に含まれる場合、又は当該第２のグループを代表する種別集合を構成する種別のうち、分配された種別集合に含まれない第１の種別について、当該分配された種別集合と、既に当該第２のグループの所属数の増加に寄与した種別集合との集合に含まれない確率が許容範囲内である場合には、当該第２のグループの所属数に１を加算する第２の更新部と、を有する。
【発明の効果】
【００１０】
機器やソフトウェアの生成するログ情報の生成則を事前に知ることなく, ログ情報の発生のノイズを考慮しつつ、同時に発生しやすいログ情報の集合の逐次的な抽出を効率的に実行可能とすることができる。
【図面の簡単な説明】
【００１１】
【図１】第一の実施の形態におけるシステム構成例を示す図である。
【図２】第一の実施の形態におけるログ情報分類装置のハードウェア構成例を示す図である。
【図３】第一の実施の形態におけるログ情報分類装置の機能構成例を示す図である。
【図４】グループを構成するパラメータの一例を示す図である。
【図５】第一の実施の形態におけるログ情報分類装置が実行する処理手順の一例を説明するためのフローチャートである。
【図６】第一の実施の形態における初期状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。
【図７】第一の実施の形態における通常状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。
【図８】第一の実施の形態における通常状態のグループの更新処理の変形例の処理手順の一例を説明するためのフローチャートである。
【図９】第二の実施の形態における初期状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。
【図１０】第二の実施の形態における通常状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。
【図１１】第三の実施の形態におけるログ情報分類装置の機能構成例を示す図である。
【図１２】第三の実施の形態におけるログ情報分類装置が実行する処理手順の一例を説明するためのフローチャートである。
【図１３】第四の実施の形態におけるログ情報分類装置の機能構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第一の実施の形態におけるシステム構成例を示す図である。図１において、ログ情報分類装置１０は、ＬＡＮ（Local Area Network）又はインターネット等のネットワークを介して、機器２０−１〜機器２０−ｎ等の１以上の機器２０とネットワークを介して接続されている。
【００１３】
機器２０は、その稼働状態等について監視対象とされている機器２０である。各機器２０は、当該機器２０の状態等を示すログ情報を生成し、出力する。機器２０の監視は、ログ情報に基づいて行われる。
【００１４】
ログ情報分類装置１０は、各機器２０等の機械の生成するログ情報から有用な情報を抽出する１以上のコンピュータである。例えば、ログ情報分類装置１０は、各機器２０から出力されるログ情報を収集し、収集されたログ情報について分析を行う。
【００１５】
図２は、第一の実施の形態におけるログ情報分類装置のハードウェア構成例を示す図である。図２のログ情報分類装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１６】
ログ情報分類装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってログ情報分類装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１８】
図３は、第一の実施の形態におけるログ情報分類装置の機能構成例を示す図である。図３において、ログ情報分類装置１０は、ログ収集部１１、テンプレート付加部１２、トランザクション検出部１３、グループ抽出部１４、及びＵＩ制御部１５等を有する。これら各部は、ログ情報分類装置１０にインストールされる１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。ログ情報分類装置１０は、また、テンプレートＤＢ５１及びグループＤＢ５２等のＤＢ（Data Base）を利用する。テンプレートＤＢ５１及びグループＤＢ５２は、例えば、補助記憶装置１０２、又はログ情報分類装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００１９】
ログ収集部１１は、各機器２０からログ情報を収集（受信）する。ログ情報は、逐次的に受信される。すなわち、機器２０においてログ情報が生成されるたびに、当該ログ情報が受信される。ログ情報には、タイムスタンプ（日時情報）、機器２０の識別情報（機器名）、及びメッセージ本体等が含まれる。例えば、各機器２０はルータであり、各機器２０において生成されるログ情報は、ルータのｓｙｓｌｏｇであってもよい。
【００２０】
テンプレート付加部１２は、ログ収集部１１によって受信されるログ情報に対して、逐次的にテンプレートを付加する。ログ情報に付加されるテンプレートは、テンプレートＤＢ５１から検索される。すなわち、当該ログ情報に合致するテンプレートのＩＤ（以下、「テンプレートＩＤ」という。）が、当該ログ情報に対して付加される。
【００２１】
テンプレートとは、ログ情報の形式又は構文を示す雛形情報であり、ログ情報の種別を示す情報であるともいえる。テンプレートは、例えば、同じ事象を示す複数のログ情報に関して、値が一定である単語、パラメータ、又はメッセージ等の項目（以下、「固定部分」という。）については具体的な値を含み、値が一定ではない項目（以下、「変動部分」という。）については、変数化された（例えば、＊（アスタリスク）によって表現された）文字列である。テンプレートは、例えば、特許文献１に開示された技術を利用して、ログ情報から自動的に抽出されてもよい。特許文献１の図６には、テンプレートの一例が示されている。
【００２２】
ログ情報に合致するテンプレートとは、例えば、固定部分の全てが当該ログ情報に合致するテンプレートをいう。なお、テンプレートＤＢ５１において、各テンプレートには、テンプレートＩＤが割り振られている。
【００２３】
トランザクション検出部１３は、ログ情報の集合を、各ログ情報の生成時期の順に、部分集合に分割する。具体的には、テンプレート付加部１２によって逐次的にテンプレートＩＤが付加されるログ情報について、トランザクションの区切りを検出する。トランザクションとは、時系列のログ情報の集合が、例えば、一定時間ごとに分割された単位をいい、上記の部分集合に該当する。本実施の形態において、トランザクションは、分割されたログ情報の集合のそれぞれに付加されたテンプレートＩＤの集合によって表現される。トランザクション検出部１３によってトランザクションの区切りが検出されることで、トランザクションが生成される。なお、トランザクションは、各ログ情報に含まれている機器名に基づいて、機器２０別に生成される。
【００２４】
グループ抽出部１４は、機器２０別に、時系列に生成されるトランザクションの集合に基づいて、グループを抽出する。又は、グループ抽出部１４は、トランザクションの集合をグループに分類するともいえる。グループとは、同時に発生する可能性の高いテンプレートの集合を特定するために管理されるデータである。同時に発生するとは、一つの機器２０機における或る一つの事象に関して連続して発生することをいう。例えば、機器２０の起動時に発生するログ情報の集合は、毎回同様である可能性が高い。すなわち、同じ事象が発生した場合に発生する複数のログ情報の集合は、毎回同様である可能性が高い。グループとは、このようなログ情報に対応するテンプレートの集合に対応する概念であると共に、当該概念に対応するデータをいう。
【００２５】
図４は、グループを構成するパラメータの一例を示す図である。図４に示されるように、１つのグループは、１つの全テンプレート集合、１つのカウンタリスト、１つの代表テンプレート集合、１つのサポート数、１つの初期状態フラグ、及び１つのヒストリリスト等を含む。
【００２６】
全テンプレート集合は、当該グループに分配された全てのトランザクションのうち、少なくともいずれか１つのトランザクションに含まれていたテンプレートＩＤの集合を示す情報である。例えば、全テンプレート集合は、グループに分配された全てのトランザクションのテンプレート集合の論理和によって得られるトランザクション集合である。なお、全テンプレート集合には、グループに属することが確定されていないテンプレートＩＤも含まれる。
【００２７】
カウンタリストは、当該グループの全テンプレート集合を構成するテンプレートＩＤの個数分の要素長を有するリストであり、各要素の値は、全テンプレート集合を構成するテンプレートの中で、当該要素が対応するテンプレートの出現頻度等を示す。カウンタリストの用途は、グループの状態の変化に応じて変化する。カウンタリストは、グループが初期状態であるのか通常状態であるのかの判定や、全テンプレート集合を構成するテンプレートＩＤのうち、代表テンプレート集合へ追加するテンプレートＩＤの判定等に利用される。
【００２８】
代表テンプレート集合は、グループを代表するテンプレート集合である。すなわち、代表テンプレート集合は、全テンプレート集合を構成するテンプレートＩＤのうち、グループに属することが確定したテンプレートＩＤの集合である。例えば、全テンプレート集合を構成するテンプレートＩＤのうち、出現頻度が一定以上であるテンプレートが、代表テンプレート集合に追加される。
【００２９】
サポート数は、当該グループに属するもの（当該グループに分類されるべきもの）であるとしてカウントされたトランザクションの個数である。すなわち、或るグループに所属するトランザクションは、当該グループの存在の確度（確からしさ）をサポートするトランザクションであるといえる。そこで、本実施の形態では、或るグループのサポート数の増加に寄与したトランザクションを、当該グループのサポートという。
【００３０】
初期状態フラグは、当該グループが初期状態であるのか通常状態であるのかを示すパラメータである。グループが初期状態である場合、初期状態フラグの値は１であり、グループが通常状態である場合、初期状態フラグの値が０である。なお、初期状態とは、代表テンプレート集合が、全テンプレート集合と同じである状態をいう。すなわち、全テンプレート集合を構成するテンプレートの中から、代表テンプレート集合が選別されていない状態をいう。通常状態とは、初期状態でない状態をいう。
【００３１】
ヒストリリストは、当該グループの過去の代表テンプレート集合の推移又は履歴を記憶しておくためのリストである。すなわち、ヒストリリストは、過去の代表テンプレート集合を要素とするリストである。
【００３２】
グループ抽出部１４によって抽出されたグループは、グループＤＢ５２に記憶される。なお、当該グループについても、機器２０別に生成される。
【００３３】
図３において、グループ抽出部１４は、トランザクション分配部１４１、初期グループ更新部１４２、及び通常グループ更新部１４３等を含む。
【００３４】
トランザクション分配部１４１は、トランザクション検出部１３によって生成されたトランザクションを、既存のいずれかのグループに分配する。トランザクションの分配先となるグループは、当該グループの代表テンプレート集合と、当該トランザクションとの一致率が所定値以上であるグループに限定される。該当するグループが無い場合、トランザクション分配部１４１は、当該トランザクションを代表テンプレート集合とするグループを新たに生成する。
【００３５】
初期グループ更新部１４２は、初期状態のグループに対してトランザクションが分配された場合に、当該グループの各パラメータの更新を行う。通常グループ更新部１４３は、通常状態のグループに対してトランザクションが分配された場合に、当該グループの各パラメータの更新を行う。
【００３６】
ＵＩ制御部１５は、グループ抽出部１４によるグループの抽出結果を、例えば、視覚的な表現によって出力する。
【００３７】
以下、ログ情報分類装置１０が実行する処理手順について説明する。図５は、第一の実施の形態におけるログ情報分類装置が実行する処理手順の一例を説明するためのフローチャートである。以下の説明では、便宜上、或る一つの機器２０から出力されたログ情報が処理対象とされる。すなわち、以下において説明する処理手順は、機器名が共通するログ情報の集合ごとに実行される。
【００３８】
ログ収集部１１が、機器２０から出力されたログ情報を受信すると（ステップＳ１０１でＹｅｓ）、テンプレート付加部１２は、当該ログ情報に合致するテンプレートを、テンプレートＤＢ５１から検索し、検索されたテンプレートのテンプレートＩＤを、当該ログ情報に付加する（ステップＳ１０２）。ステップＳ１０１は、新たに生成されたログ情報が受信されるたびに実行される。したがって、生成時期が相対的に前であるログ情報から順に、ステップＳ１０１以降が実行される。
【００３９】
続いて、テンプレート付加部１２は、ログ情報に付加されたテンプレートＩＤを、ＩＤリストに追加する（ステップＳ１０３）。ＩＤリストは、テンプレートＩＤの集合を一時的に記憶しておくためのデータである。
【００４０】
続いて、トランザクション検出部１３は、トランザクションの区切りが検出されたか否かを判定する（ステップＳ１０４）。例えば、固定時間のタイムウィンドウによって、トランザクションの区切りが検出されてもよい。この場合、ＩＤリストにおいて、固定時間のタイムウィンドウに含まれるテンプレートＩＤの集合が、トランザクションとされる。又は、前後のログ情報の受信時刻の間隔が一定時間以上である箇所が、トランザクションの区切りとして検出されてもよい。このように、トランザクションの区切りを検出するために、各テンプレートＩＤに係るログ情報の日時情報を知る必要が有る場合、ＩＤリストには、各テンプレートＩＤに関連付けられて、当該テンプレートＩＤに係るログ情報の日時情報が記憶されてもよい。
【００４１】
トランザクションの区切りが検出されない場合（ステップＳ１０４でＮｏ）、ステップＳ１０１以降が繰り返される。トランザクションの区切りが検出された場合（ステップＳ１０４でＹｅｓ）、トランザクション検出部１３は、当該区切りまでのテンプレートＩＤの集合（すなわち、テンプレート集合）を、処理対象のトランザクション（以下、「対象トランザクション」という。）としてＩＤリストから取り出す（ステップＳ１０５）。取り出されたテンプレート集合は、ＩＤリストから削除される。
【００４２】
続いて、トランザクション分配部１４１は、グループＤＢ５２に記憶されている既存のグループの中で、当該グループの代表テンプレート集合について、対象トランザクションとの一致率が許容範囲内であるグループの有無を判定する（ステップＳ１０６）。
【００４３】
例えば、対象トランザクションに含まれるテンプレート集合Ａ＝｛ｔ１、ｔ２、…、ｔＮ｝であり、代表テンプレート集合Ｂ＝｛ｓ１、ｓ２、…、ｓＭ｝である場合に、ＡとＢとの一致率は、例えば、以下の式（１）で与えられるＪａｃｃａｒｄ係数を用いて算出されてもよい。
Ｊａｃｃａｒｄ（Ａ、Ｂ）＝｜Ａ∩Ｂ｜／｜Ａ∪Ｂ｜  ・・・（１）
なお、Ｊａｃｃａｒｄ係数の他に、コサイン類似度やｄｉｃｅ係数等、他の類似度尺度が用いられて、ＡとＢとの一致率が算出されてもよい。
【００４４】
対象トランザクションＡとの一致率が許容範囲内である代表テンプレート集合とは、以下の条件（２）を満たすような、代表テンプレート集合Ｂである。
１．０−Ｊａｃｃａｒｄ（Ａ、Ｂ）＜εｒ  ・・・（２）
ここで、εｒは、事前に設定される許容ノイズ率であり、０＜εｒ＜１である。
【００４５】
条件（２）を満たす代表テンプレート集合を含むグループが存在しない場合（ステップＳ１０６でＮｏ）、トランザクション分配部１４１は、対象トランザクションに基づいて、新たなグループを生成する（ステップＳ１０７）。この際、対象トランザクションのテンプレート集合は、新たに生成されるグループの代表テンプレート集合及び全テンプレート集合とされる。また、当該グループのカウンタリストの要素長は、全テンプレート集合に属するテンプレートＩＤの数とされ、カウンタリストの各要素には、事前に設定された正の初期値であるＩＮＩＴ＿ＴＨＲＥＳＨＯＬＤが代入される。また、初期状態フラグには、初期状態であることを示す１が代入される。また、サポート数には１が代入される。なお、生成されたグループは、グループＤＢ５２に登録される。
【００４６】
一方、条件（２）を満たす代表テンプレート集合を含むグループが１以上存在する場合（ステップＳ１０６でＹｅｓ）、トランザクション分配部１４１は、当該１以上のグループの中で、対象トランザクションとの一致率が最大である代表テンプレート集合を含むグループを、対象トランザクションの分配先のグループ（以下、「分配先グループ」という。）として選択する（ステップＳ１０８）。
【００４７】
続いて、トランザクション分配部１４１は、分配先グループの初期状態フラグの値が１であるか否かを判定する（ステップＳ１０９）。すなわち、分配先グループが、初期状態であるか否かが判定される。分配先グループの初期状態フラグの値が１である場合（分配先グループが初期状態である場合）（ステップＳ１０９でＹｅｓ）、初期グループ更新部１４２は、対象トランザクションの分配に伴う、初期状態のグループの更新処理を実行する（ステップＳ１１０）。一方、分配先グループの初期状態フラグの値が０である場合（分配先グループが通常状態である場合）（ステップＳ１０９でＮｏ）、通常グループ更新部１４３は、対象トランザクションの分配に伴う、通常状態のグループの更新処理を実行する（ステップＳ１１１）。ステップＳ１１０及びステップＳ１１１の詳細については後述される。
【００４８】
なお、上記では、対象トランザクションのテンプレート集合の全部を単位として、分配先のグループが判定されているが、対象トランザクションに含まれる全ての部分テンプレート集合Ａ＿０⊆Ａのそれぞれに関して、ステップＳ１０６以降が実行されてもよい。この場合、１つのトランザクションから同じグループに分配される部分グループ集合は１つとし、重複したグループへの分配は実行されないようにしてもよい。例えば、対象トランザクションに含まれるテンプレート集合Ａ＝｛ｔ１、ｔ２、…、ｔＮ｝である場合において、部分テンプレート集合ａ１＝｛ｔ１、ｔ２、ｔ３｝がグループＧ１に分配された場合、テンプレート集合Ａの他の部分テンプレート集合については、グループＧ１が分配先から除外されるようにしてもよい。
【００４９】
続いて、ステップＳ１１０の詳細について説明する。図６は、第一の実施の形態における初期状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。なお、図６の説明において処理対象とされる、グループを構成するパラメータは、分配先グループのパラメータである。
【００５０】
ステップＳ２０１において、初期グループ更新部１４２は、対象トランザクションのテンプレート集合によって、代表テンプレート集合及び全テンプレート集合を更新する。具体的には、代表テンプレート集合と対象トランザクションのテンプレート集合との論理和によって、代表テンプレート集合が上書きされる。同様に、全テンプレート集合と対象トランザクションのテンプレート集合との論理和によって、全テンプレート集合が上書きされる。なお、代表テンプレート集合又は全テンプレート集合に新たに追加されるテンプレートＩＤは、例えば、代表テンプレート集合又は全テンプレート集合の末尾に追加されてもよいし、他の位置に追加されてもよい。
【００５１】
このように、グループが初期状態であるときは、当該グループに分配されたトランザクションがノイズであるのか当該グループのサポートであるのかの判断が困難であるため、当該グループに分配された各トランザクションのテンプレート集合のうち、発生回数がＩＮＩＴ＿ＴＨＲＥＳＨＯＬＤ回数以上であるテンプレートＩＤが２以上検出されるまでは、分配されたトランザクションを構成するテンプレートＩＤは、即座に代表テンプレート集合に追加される。
【００５２】
続いて、初期グループ更新部１４２は、ステップＳ２０１における処理によって、全テンプレート集合を構成するテンプレートＩＤの数が増加したか否かを判定する（ステップＳ２０２）。全テンプレート集合を構成するテンプレートＩＤの数が増加した場合、すなわち、全テンプレート集合に対して新たなテンプレートＩＤが追加された場合（ステップＳ２０２でＹｅｓ）、初期グループ更新部１４２は、当該新たなテンプレートＩＤに対応する要素を、カウンタリストに追加する（ステップＳ２０３）。追加された要素の値は、ＩＮＩＴ＿ＴＨＲＥＳＨＯＬＤとされる。
【００５３】
続いて、初期グループ更新部１４２は、カウンタリストについて、全テンプレート集合を構成するテンプレートＩＤのうち、対象トランザクションのテンプレート集合にも含まれているテンプレートＩＤに対応する要素の値をデクリメントする（ステップＳ２０４）。
【００５４】
続いて、初期グループ更新部１４２は、サポート数に１を加算する（ステップＳ２０５）。すなわち、初期状態のグループに分配されたトランザクションは、当該グループのサポートとしてカウントされる。
【００５５】
続いて、初期グループ更新部１４２は、カウンタリストにおいて、値が０以下である要素の数が２以上であるか否かを判定する（ステップＳ２０６）。すなわち、これまでに分配先グループに分配されたトランザクションのうち、ＩＮＩＴ＿ＴＨＲＥＳＨＯＬＤ個以上のトランザクションに含まれていたテンプレートＩＤが２つ以上有るか否かが判定される。
【００５６】
値が０以下である要素の数が２以上である場合（ステップＳ２０６でＹｅｓ）、初期グループ更新部１４２は、全テンプレート集合において、値が０以上であるカウンタリストの要素に対応するテンプレート集合によって、代表テンプレート集合を上書きする（ステップＳ２０７）。続いて、初期グループ更新部１４２は、初期状態フラグの値を０に更新する（ステップＳ２０８）。すなわち、分配先グループは、通常状態に移行する。続いて、初期グループ更新部１４２は、サポート数の値を、ＩＮＩＴ＿ＴＨＲＥＳＨＯＬＤで上書きする（ステップＳ２０９）。続いて、初期グループ更新部１４２は、カウンタリストの各要素の値の正負を反転させる（ステップＳ２１０）。
【００５７】
続いて、図５のステップＳ１１１の詳細について説明する。図７は、第一の実施の形態における通常状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。
【００５８】
ステップＳ３０１において、通常グループ更新部１４３は、対象トランザクションと全テンプレート集合との論理和によって、全テンプレート集合を更新する。全テンプレート集合に対して新たなテンプレートＩＤが追加された場合（ステップＳ３０２でＹｅｓ）、通常グループ更新部１４３は、当該新たなテンプレートＩＤに対応する要素を、カウンタリストに追加する（ステップＳ３０３）。この際、当該新たな要素の値は、０とされる。
【００５９】
続いて、通常グループ更新部１４３は、対象トランザクションと全テンプレート集合とを比較して、全テンプレート集合を構成するテンプレートＩＤのうち、対象トランザクションに含まれていないテンプレートＩＤを特定する。通常グループ更新部１４３は、カウンタリストにおいて、該当するテンプレートＩＤに対応する要素の値をデクリメントする（ステップＳ３０４）。
【００６０】
続いて、通常グループ更新部１４３は、カウンタリストにおいて、代表テンプレート集合を構成する各テンプレートＩＤに対応する要素の値の全てが非負であるか否かを判定する（ステップＳ３０５）。当該要素の少なくとも一つの値が負である場合（ステップＳ３０５でＮｏ）、ステップＳ３０９に進む。一方、当該要素の値の全てが非負である場合（ステップＳ３０５でＹｅｓ）、サポート数をインクリメントする（ステップＳ３０６）。
【００６１】
なお、ステップＳ３０６は、代表テンプレート集合を構成する全てのテンプレートＩＤが対象トランザクションに含まれる場合、又は代表テンプレート集合を構成するテンプレートＩＤのうち、対象トランザクションに含まれないテンプレートＩＤについて、対象テンプレート集合と、分配先グループのサポート数の増加に寄与した過去のトランザクションとの集合に含まれない確率が、許容範囲内である場合に実行される。
【００６２】
すなわち、代表テンプレート集合を構成する全てのテンプレートＩＤが、対象トランザクションに含まれる場合には、ステップＳ３０４において、代表テンプレート集合の含まれるテンプレートＩＤに関して、カウンタリストの要素の値はデクリメントされない。したがって、この場合、ステップＳ３０５の判定は肯定的となる。また、代表テンプレート集合を構成するテンプレートＩＤのうち、対象トランザクションに含まれないテンプレートＩＤであっても、第１の実施の形態では、当該テンプレートＩＤの欠損が、事前に定められた割合εｃ（０＜εｃ＜１）以下であれば、当該テンプレートＩＤは、代表テンプレートを構成する。したがって、この場合においても、対象トランザクションは、サポートとしてカウントされる。
【００６３】
続いて、通常グループ更新部１４３は、以下の式（３）が成立するか否かを判定する（ステップＳ３０７）。
ｉｎｔ（サポート数×εｃ）＝ｉｎｔ（（サポート数−１）×εｃ）＋１  ・・・（３）
但し、ｉｎｔ（ｘ）は、ｘ以下で最大の整数を返す関数である。
【００６４】
式（３）は、サポート数が増加する過程において、εｃの割合で成立する式である。例えば、εｃが１／３であれば、サポート数が、３の倍数である場合に、式（３）は成立する。
【００６５】
なお、第１の実施の形態において、カウンタリストの各要素の値は、当該各要素に対応するテンプレートＩＤについて許容される欠損回数の残量となる。例えば、値が１であるカウンタリスト要素に対応するテンプレートＩＤについては、次に分配されたトランザクションに当該テンプレートＩＤが含まれていなくても、代表テンプレート集合からは除外されない。但し、この場合、ステップＳ３０４の効果により、当該テンプレートＩＤに対応するカウンタリストの要素の値はデクリメントされて０となる。したがって、更に次に分配されたトランザクションに当該テンプレートＩＤが含まれていない場合、当該テンプレートＩＤは、代表テンプレート集合から除外される。
【００６６】
式（３）が成立しない場合（ステップＳ３０７でＮｏ）、図７の処理は終了する。一方、式（３）が成立する場合（ステップＳ３０７でＹｅｓ）、通常グループ更新部１４３は、カウンタリストの全ての要素の値をインクリメントする（ステップＳ３０８）。すなわち、カウンタリストの各要素に対応するテンプレートＩＤに関して許容される欠損回数の残量が増加する。
【００６７】
続いて、通常グループ更新部１４３は、カウンタリストにおいて値が非負である要素に対応するテンプレート集合と、代表テンプレート集合とが一致するか否かを判定する（ステップＳ３０９）。なお、ステップＳ３０５でＹｅｓの場合であっても、ステップＳ３０８におけるカウンタリストの更新により、カウンタリストにおいて値が非負である要素に対応するテンプレート集合と、代表テンプレート集合との間に不整合が生じる可能性が有る。
【００６８】
カウンタリストにおいて値が非負である要素に対応するテンプレート集合と、代表テンプレート集合とが一致する場合（ステップＳ３０９でＮｏ）、図７の処理は終了する。一方、カウンタリストにおいて値が非負である要素に対応するテンプレート集合と、代表テンプレート集合とが一致しない場合（ステップＳ３０９でＹｅｓ）、通常グループ更新部１４３は、代表テンプレート集合を、ヒストリリストに追加する（ステップＳ３１０）。続いて、通常グループ更新部１４３は、カウンタリストにおいて値が非負である要素に対応するテンプレート集合によって、代表テンプレート集合を上書きする（ステップＳ３１１）。すなわち、代表テンプレート集合からテンプレートＩＤが除去されたり、代表テンプレート集合にテンプレートＩＤが追加されたりする。
【００６９】
続いて、サポート数の増加による弊害を回避するための処理が実行される。すなわち、サポート数が増加すると、サポート×εｃの値も増加し、ステップＳ３０８において、カウンタリストの全要素がインクリメントされることで、代表テンプレート集合に含まれるテンプレートＩＤの数（以下、「代表テンプレート集合要素数」という。）が増加する。このようなケースが繰り返されると、このようなケースが繰り返されることで代表テンプレート集合が肥大することを抑制するために、通常グループ更新部１４３は、ステップＳ３１２以降を実行する。
【００７０】
ステップＳ３１２において、通常グループ更新部１４３は、ヒストリリストに属するテンプレート集合の中で、当該テンプレート集合に含まれるテンプレートＩＤの数と、代表テンプレート集合要素数との差が、代表テンプレート集合要素数×εｒ以上であるテンプレート集合を探す。すなわち、テンプレートＩＤの数が、代表テンプレート集合要素数に対して所定の割合以上に相違するテンプレート集合が探索される。
【００７１】
該当するテンプレート集合が無い場合（ステップＳ３１２でＮｏ）、図７の処理は終了する。一方、該当するテンプレート集合が複数である場合（ステップＳ３１２でＹｅｓ、かつ、ステップＳ３１３でＹｅｓ）、通常グループ更新部１４３は、該当するテンプレート集合の中で、テンプレートＩＤの数が最大であるテンプレート集合を代表テンプレート集合とする新たなグループを生成し、当該新たなグループをグループＤＢ５２に登録する（ステップＳ３１４）。この際、新たなグループの全テンプレート集合、カウンタリスト、及びサポート数には、元のグループ（分配先グループ）の値がコピーされる。また、新たなグループの初期状態フラグは０とされる。更に、新たなグループのヒストリリストは空とされる。続いて、通常グループ更新部１４３はステップＳ３１２の条件に該当した複数のテンプレート集合を、元のグループのヒストリリストから削除する（ステップＳ３１５）。
【００７２】
一方、該当するテンプレート集合が一つである場合（ステップＳ３１２でＹｅｓ、かつ、ステップＳ３１３でＮｏ）、通常グループ更新部１４３は、当該テンプレート集合に関して、ステップＳ３１４及びＳ３１５と同様の処理を実行する（ステップＳ３１６、ステップＳ３１７）。
【００７３】
なお、ステップＳ３１０以降は、次のような処理によって置き換えられてもよい。図８は、第一の実施の形態における通常状態のグループの更新処理の変形例の処理手順の一例を説明するためのフローチャートである。図８中、図７と同一ステップには同一ステップ番号を付し、その説明は省略する。
【００７４】
図８では、ステップＳ３０３において、新たに追加されたカウンタリストの要素に対して、ｉｎｔ（サポート×εｃ）が代入される。
【００７５】
また、図８では、図７のステップＳ３１０以降が、ステップＳ３２１及びステップＳ３２２によって置き換えられている。
【００７６】
すなわち、カウンタリストにおいて値が非負である要素に対応するテンプレート集合と、代表テンプレート集合とが一致しない場合（ステップＳ３０９でＹｅｓ）、通常グループ更新部１４３は、カウンタリストにおいて値が非負である要素に対応するテンプレート集合を代表テンプレート集合とする新たなグループを生成し、当該新たなグループをグループＤＢ５２に登録する（ステップＳ３２１）。この場合、新たなグループの全テンプレート集合には、当該新たなグループの代表テンプレート集合が代入される。また、新たなグループのカウンタリストには、元のグループのカウンタリストから、新たなグループの全テンプレート集合に対応する要素が抽出されて代入される。すなわち、元のグループのカウンタリストにおいて、値が非負である要素が抽出されて、新たなグループのカウンタリストに代入される。また、新たなグループの初期状態フラグは０とされ、新たなグループのヒストリリストは空とされる。
【００７７】
一方、新たなグループのサポート数の値は、元のグループから正確に得ることはできないため、通常グループ更新部１４３は、以下の範囲の値を、当該サポート数として推測する。
ｍａｘ（０，Ｓ−Σｉ∈ｘＣｉ）≦サポート数≦ｍａｘ（０，Ｙ）、
Ｉ×εｒ≧｜Ｘ｜のとき、Ｙ＝ｍａｘ（Ｃｉ）
Ｉ×εｒ＜｜Ｘ｜のとき、Ｙ＝Σｉ∈ｘＣｉ／（Ｉ×εｒ）
ここで、Ｓはこれまでのもとのグループのサポート数、Ｉは代表アイテム数である。Ｘは対象トランザクション、｜Ｘ｜は、対象トランザクションに含まれるテンプレートＩＤの数、ＣｉはテンプレートＩＤｉに対応するカウンタリストの値である。
【００７８】
例えば、上限値（ｍａｘ（０，Ｙ））又は下限値（ｍａｘ（０，Ｓ-Σｉ∈ｘＣｉ））のいずれか一方が、サポート数に代入されてもよいし、平均値が、サポート数に代入されてもよい。
【００７９】
上記における下限値と上限値との推定の趣旨について説明する。
【００８０】
例えば、分配先グループの代表テンプレート集合Ｔ＝（Ａ，Ｂ，Ｃ，Ｄ）である場合において、カウンタリストが（１、１、１、−１）になった場合について説明する。この場合、Ｔ１＝（Ａ，Ｂ，Ｃ）という代表テンプレート集合を有する新たなグループを生成されるが、（Ａ，Ｂ，Ｃ，Ｄ）のサポートとしてカウントされたトランザクションのうち、どれを（Ａ，Ｂ，Ｃ）のサポートとしてカウントしてよいかが分からないという問題がある。
【００８１】
そこで、まず、下限値については、（Ａ，Ｂ，Ｃ）のサポートとしてカウントされる個数が最も少なくなるのは、Ａの欠損、Ｂの欠損、及びＣの欠損が別々に発生している場合であるといえる。例えば、下記のような場合である。下記において、１〜７の各列が、同じグループに分配されたトランザクションを示す。「ｏ」は、トランザクション中に当該テンプレートＩＤが存在することを示し、「ｘ」は欠損を示す。例えば、トランザクション１〜３において、Ａ、Ｂ、及びＣの欠損は、別々に発生している。
【００８２】
１２３４５６７
Ａ：ｘｏｏｏｏｏｏ
Ｂ：ｏｘｏｏｏｏｏ
Ｃ：ｏｏｘｏｏｏｏ
Ｄ：ｏｏｏｘｏｘｘ
ここで、Ｄｉ＝εｒ×サポート数−Ｃｉの値は、全て過去の欠損数を表していると考えられるので、Ｔ１に含まれるＤｉの値を全て足しあわせた値、すなわち、ｍａｘ（０，Ｓ−Σｉ∈Ｔ１Ｄｉ）となる。
【００８３】
なお、上記では、トランザクション４〜７は、固定と考え、トランザクション１〜３の部分を、（Ａ，Ｂ，Ｃ）のカウンタリストの値＝（１，１，１）の情報から、どう推定するかの問題について議論されている。
【００８４】
一方、上限値については、同時に欠損が発生している場合も考慮できるため、分岐が発生します。例えば、以下のようにトランザクションが分配された場合を考える。
【００８５】
１２３４５６７
Ａ：ｘｏｏｏｏｏｏ
Ｂ：ｘｏｏｏｏｏｏ
Ｃ：ｏｘｏｘｏｏｏ
Ｄ：ｏｏｏｘｏｘｘ
又は、
１２３４５６７
Ａ：ｘｏｏｏｏｏｏ
Ｂ：ｘｏｏｏｏｏｏ
Ｃ：ｘｏｏｘｏｏｏ
Ｄ：ｏｏｏｘｏｘｘ
このとき、下限値のケースよりも（Ａ，Ｂ，Ｃ）としてカウントできるトランザクション（２、又は２及び３）が増えている。このように全てのテンプレートＩＤの欠損が同時に発生している（例えば、Ａ、Ｂ、Ｃの一回ずつの欠損が同時に発生した）と考える、最も大きな値を取ると考えられるのはｍａｘ（Ｄｉ）をＳから差し引いた場合であることが分かる（少なくともＤｉは欠損しているため。）。しかし、実際にはεｒの条件から、欠損の同時発生には限界がある。この限界は、上記２つの例のうちの上の例において示されている。すなわち、εｒの設定に、トランザクション１が割り当てられていない可能性があるためである。この場合は、新しく生成される代表テンプレート集合（Ａ，Ｂ）が元の代表テンプレート集合（Ａ，Ｂ，Ｃ，Ｄ）に対してεｒの欠損を許容できない場合になるので、Ｉ×εｒ＜｜ｘ｜となる。このときは、同時発生可能な欠損数をＩ×εｒで計算できるので、全欠損数Σｉ∈ｘＤｉをＩ×εｒで除して、全ての欠損が同時にＩ×εｒ個ずつ発生しているものとして上限値が推定される。
【００８６】
続いて、通常グループ更新部１４３は、元のグループ（分配先グループ）のカウンタリストにおいて、値が負である要素に０を代入する（ステップＳ３２２）。
【００８７】
なお、ユーザは、上記のように分類されたグループの情報を参照することで、膨大なログ情報に関する分析を効率化することができる。例えば、どのようなグループが出現しているのかや、各グループの確度等を確認することができる。各グループの確度は、各グループのサポート数によって確認することができる。
【００８８】
ＵＩ制御部１５は、任意のタイミングで情報提供を行うことができる。例えば、ＵＩ制御部１５は、グループ内の代表テンプレート集合が更新されるたびに、それまでに抽出された各グループの情報を出力してもよいし、特定のグループのサポート数が更新された際に当該特定のグループに関する情報を出力してもよい。又は、ＵＩ制御部１５は、ユーザによって出力が指示された際に、それまでに抽出されたグループに関する情報を出力してもよい。
【００８９】
なお、第一の実施の形態では、サポート数（過去にそのグループに属するとして判定されたトランザクション数）に対して事前に定められた割合εｃの欠損が、許容される。すなわち、グループに対して欠損を有するトランザクションの数が、サポート数×εｃ回数以内であれば、当該トランザクションは当該グループに属するものとしてサポート数がインクリメントされる。より厳密には、以下を満たすテンプレートｉの集合が代表テンプレート集合とされる。
Σｔ∈ＴＤ（ｉ、ｔ）≧｜Ｔ｜（１−εｃ）
但し、Ｔは、サポートとしてカウントされたトランザクションの集合、｜Ｔ｜は、サポート数、Ｄ（ｉ，ｔ）はトランザクションｔでテンプレートｉが発生していれば１となる関数である。
【００９０】
このように代表テンプレート集合が決定される方式を、便宜上「割合方式」という。
【００９１】
上述したように、第一の実施の形態によれば、新たなログ情報の到着のたびに全てのデータに関して処理を再実行する必要はない。したがって、同時に発生しやすいログ情報の集合の逐次的な抽出を効率的に実行可能とすることができる。
【００９２】
また、本実施の形態によれば、ログ情報に関する以下のような状況に対応することができる。
【００９３】
（１）ログ情報のグループは、必ずしも安定的ではなく、ログ情報の出力元の状況に応じて欠損が存在する。例えば、機器２０の或る状態を表すテンプレート集合が、ＡＢＣである場合であっても、同じ状態に関してＡＢやＢＣ等、ＡＢＣに対して欠損を有するテンプレート集合が観測される場合があり、これらは、同じグループに分類されるべきである。
【００９４】
（２）ログ情報のグループは、必ずしも安定的ではなく、ログ情報の出力元の状況に応じてノイズが混在する。例えば、機器２０の或る状態を表すテンプレート集合が、ＡＢＣである場合であっても、同じ状態に関してＡＢＣＤやＡＢＣＥ等、ＡＢＣに対してノイズを有するテンプレート集合が観測される場合があり、これらは同じグループに分類されるべきである。
【００９５】
（３）或るテンプレートは、複数のグループに属する場合が有る。例えば、ＡＢＣ、ＡＤＥ、ＡＢＣＤＥといったトランザクションが観測された場合、これらは、ＡＢＣＤＥという１つのグループとして抽出されるべきではなく、相互に異なるグループとして抽出されるべきである場合が有る。
【００９６】
本実施の形態では、（１）については、εｃの設定により、グループ内に欠損が許容されている。また（２）については、割合方式の採用により、グループ内で出現頻度の低いテンプレートが代表テンプレート集合に含まれることが回避されている。更に、（３）については、εｒの許容範囲において、最大の一致率を持つグループのみにサポート数のインクリメント及び更新が実施されている。これにより、異なるグループに属する同じテンプレートの扱いを別のものとして考えることができる。
【００９７】
また、本実施の形態では、ログ情報の生成則（ログ情報の形式）が既知であることは前提とされない。また、本実施の形態では、ログ情報の発生に応じて、逐次的に処理が実行され、逐次的にグループが更新される。したがって、本実施の形態によれば、ユーザが、機器２０の生成するログ情報の生成則を事前に知らない場合であっても、ログ情報の発生のノイズを考慮しつつ、同時に発生しやすいログ情報の集合（グループ）を逐次的に抽出することができる。
【００９８】
なお、第一の実施の形態では、サポート数の値が必ずしも厳密な代表テンプレート集合の発生回数を表していることにはならないが、グループの抽出という観点において、特段の支障は無いものと考える。
【００９９】
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。第二の実施の形態において特に言及されない点については、第一の実施の形態と同様でもよい。
【０１００】
第二の実施の形態では、第一の実施の形態における割合方式に対し、カウント方式が採用される。カウント方式とは、事前に定められたＵＰＤＡＴＥ＿ＴＨＲＥＳＨＯＬＤ数以上発生したテンプレートが代表テンプレート集合に含められる方式である。すなわち、カウント方式では、発生回数がＵＰＤＡＴＥ＿ＴＨＲＥＳＨＯＬＤ未満であるテンプレートは、グループに偶然に分配されたものであると判断する方式である。
【０１０１】
図９は、第二の実施の形態における初期状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。図９中、図６と同一ステップには同一ステップ番号を付し、その説明は省略する。図９では、図６のステップＳ２１０が、ステップＳ２１１に置き換えられている。
【０１０２】
ステップＳ２１１において、初期グループ更新部１４２は、分配先グループのカウンタリストの各要素に、ＵＰＤＡＴＥ＿ＴＨＲＥＳＨＯＬＤ−ＩＮＩＴ＿ＴＨＲＥＳＨＯＬＤを加算する。すなわち、第二の実施の形態では、グループが通常状態へ移行する際の、カウンタリストの扱い方が異なる。
【０１０３】
図１０は、第二の実施の形態における通常状態のグループの更新処理の処理手順の一例を説明するためのフローチャートである。図１０の説明において処理対象とされる、グループを構成するパラメータは、分配先グループのパラメータである。
【０１０４】
ステップＳ４０１において、通常グループ更新部１４３は、対象トランザクションと全テンプレート集合との論理和によって、全テンプレート集合を更新する。続いて、全テンプレート集合に対して新たなテンプレートＩＤが追加された場合（ステップＳ４０２でＹｅｓ）、通常グループ更新部１４３は、当該新たなテンプレートＩＤに対応する要素を、カウンタリストに追加する（ステップＳ４０３）。この際、当該新たな要素の値は、ＵＰＤＡＴＥ＿ＴＨＲＥＳＨＯＬＤとされる。続いて、通常グループ更新部１４３は、カウンタリストにおいて、対象トランザクションに含まれているテンプレートＩＤに対応する要素の値をデクリメントする（ステップＳ４０４）。続いて、通常グループ更新部１４３は、サポート数をインクリメントする（ステップＳ４０５）。
【０１０５】
続いて、通常グループ更新部１４３は、カウンタリストにおいて、新たに値が０以下となった要素の有無を判定する（ステップＳ４０６）。該当する要素が無い場合（ステップＳ４０６でＮｏ）、図１０の処理は終了する。該当する要素が有る場合（ステップＳ４０６でＹｅｓ）、通常グループ更新部１４３は、代表テンプレート集合をヒストリリストに追加する（ステップＳ４０７）。続いて、通常グループ更新部１４３は、当該要素に対応するテンプレートＩＤを、代表テンプレート集合に追加する（ステップＳ４０８）。
【０１０６】
続くステップＳ４０９〜Ｓ４１４は、図７のステップＳ３１２〜Ｓ３１７と同じ処理である。但し、図１０において、通常グループ更新部１４３は、ステップＳ４１２又はステップＳ４１４に続いて、分配先グループのサポートを１に初期化する（ステップＳ４１５）。
【０１０７】
上述したように、第二の実施の形態によっても、第一の実施の形態と同様の効果を得ることができる。
【０１０８】
次に、第三の実施の形態について説明する。第三の実施の形態では第一又は第二の実施の形態と異なる点について説明する。第三の実施の形態において特に言及されない点については、第一又は第二の実施の形態と同様でもよい。
【０１０９】
図１１は、第三の実施の形態におけるログ情報分類装置の機能構成例を示す図である。図１１中、図３と同一部分には同一符号を付し、その説明は省略する。図１１において、ログ情報分類装置１０は、更に、ログＤＢ５３を利用する。ログＤＢ５３は、例えば、補助記憶装置１０２、又はログ情報分類装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【０１１０】
ログＤＢ５３には、テンプレート付加部１２によってテンプレートＩＤが付加されたログ情報が時系列に記憶される。トランザクション検出部１３及びグループ抽出部１４は、ログＤＢ５３に記憶されたログ情報に関して、任意のタイミングで、それぞれの機能に係る処理を実行する。
【０１１１】
すなわち、第三の実施の形態では、トランザクション検出部１３及びグループ抽出部１４による処理が、ログ情報の発生に応じて逐次的に実行されるのではなく、バッチ的に実行される形態について説明する。したがって、第三の実施の形態において、トランザクション検出部１３及びグループ抽出部１４は、ログ情報分類装置１０と各機器２０とがオフラインの状態においても処理を実行可能である。
【０１１２】
図１２は、第三の実施の形態におけるログ情報分類装置が実行する処理手順の一例を説明するためのフローチャートである。図１２中、図５と同一ステップには同一ステップ番号を付し、その説明は省略する。図１２では、図５のステップＳ１０１〜ステップＳ１０５が、ステップＳ１２１によって置き換えられている。
【０１１３】
ステップＳ１２１において、トランザクション検出部１３は、ログＤＢ５３からトランザクションを取得する。例えば、ログＤＢ５３に記憶されているログ情報の集合が、固定時間のタイムウィンドウに基づいて分割されることで、１つのトランザクションの範囲が把握され、当該範囲に含まれる各ログ情報に付加されているテンプレートＩＤの集合が、トランザクションとして取得されてもよい。又は、時系列のログ情報において、前後のタイムスタンプの間隔が一定時間以上である箇所が、トランザクションの区切りとされ、区切りの間に含まれる各ログ情報に付加されているテンプレートＩＤの集合が、トランザクションとして取得されてもよい。トランザクションの取得順は、時系列順である。第三の実施の形態では、ステップＳ１２１において取得されたトランザクションが、対象トランザクションとされて、ステップＳ１０６〜ステップＳ１１１が実行される。
【０１１４】
ステップＳ１０７、ステップＳ１１０、又はステップＳ１１１に続いて、トランザクション検出部１３は、未処理のトランザクションが、ログＤＢ５３に記憶されているか否かを判定する。未処理のトランザクションが有る場合（ステップＳ１２２でＹｅｓ）、未処理のトランザクションに関して、ステップＳ１２１以降が実行される。未処理のトランザクションが無い場合（ステップＳ１２２でＮｏ）、図５の処理は終了する。
【０１１５】
なお、処理対象とするログ情報を絞り込むためのパラメータ（例えば、開始時刻及び終了時刻や機器名等）がユーザによって指定されてもよい。この場合、指定されたパラメータに合致するログ情報のみが処理対象とされてもよい。この点については、第一及び第二の実施の形態（すなわち、逐次的に処理が実行される場合）についても同様である。
【０１１６】
また、第三の実施の形態では、グループの抽出の終了時点が明確である。そこで、ＵＩ制御部１５は、全てのグループの抽出後に、サポート数でグループをソートし、ソート結果を出力してもよい。出力される情報は、過去に起こったログ情報のダイジェストとして把握することができ、例えば、直近の一定期間におけるログ情報の発生状況を理解するのに役立つ。
【０１１７】
次に、第四の実施の形態について説明する。第四の実施の形態では、上記各実施の形態と異なる点について説明する。第四の実施の形態において特に言及されない点については、上記各実施の形態と同様でもよい。
【０１１８】
図１３は、第四の実施の形態におけるログ情報分類装置の機能構成例を示す図である。図１３中、図３と同一部分には同一符号を付し、その説明は、省略する。
【０１１９】
図１３において、ログ情報分類装置１０は、更に、故障・工事情報ＤＢ５４を利用する。故障・工事情報ＤＢ５４には、機器２０の故障に関する情報又は機器２０の工事に関する情報等が記憶されている。例えば、故障・工事情報ＤＢ５４には、故障や工事等のイベントの発生時刻や発生期間、及び当該イベントに係る機器２０の機器名やイベント名等が、イベントごとに記載されている。
【０１２０】
故障・工事情報ＤＢとの連動により、故障又は工事の該当期間のログ情報に関してトランザクションを生成することで、工事や故障に関連するグループを抽出することができる。工事や故障等のイベントを予めログ情報にタグ付けしておいて、そのタグの範囲内グループの抽出が実行されてもよい。
【０１２１】
なお、上記各実施の形態において、トランザクション検出部１３は、分割部の一例である。トランザクション分配部１４１は、分配部の一例である。初期グループ更新部１４２は、第１の更新部の一例である。通常グループ更新部１４３は、第２の更新部及び第３の更新部の一例である。テンプレートＩＤは、ログ情報の種別の一例である。テンプレート集合は、種別集合の一例である。サポート数は、所属数の一例である。初期状態のグループは、第１のグループの一例である。通常状態のグループは、第２のグループの一例である。
【０１２２】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１２３】
１０          ログ情報分類装置
１１          ログ収集部
１２          テンプレート付加部
１３          トランザクション検出部
１４          グループ抽出部
１５          ＵＩ制御部
２０          機器
５１          テンプレートＤＢ
５２          グループＤＢ
５３          ログＤＢ
５４          故障・工事情報ＤＢ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１４１        トランザクション分配部
１４２        初期グループ更新部
１４３        通常グループ更新部
Ｂ            バス
【要約】      （修正有）【課題】機器やソフトウェアの生成するログ情報の生成則を事前に知ることなく,ログ情報の発生のノイズを考慮しつつ、同時に発生しやすいログ情報の集合の逐次的な抽出を効率的に実行可能とする。【解決手段】ログ情報分類装置は、機器によって生成されるログ情報の集合を、ログ情報の生成時期の順に、複数のトランザクションに分割し、生成時期が相対的に前であるログ情報を含むトランザクションから順に、トランザクションに含まれるログ情報の種別の集合であるテンプレート集合との一致率が所定値以上であるテンプレート集合によって代表されるグループの有無を判定する。該当するグループが無ければ、トランザクションに係るテンプレート集合によって代表されるグループを生成し、該当するグループが有れば、グループにトランザクションに係るテンプレート集合を分配し、分配されたグループの状態に応じた方法で、グループの所属数を更新する。【選択図】図５【図１】
0005922811.tif 000002
【図２】
0005922811.tif 000003
【図３】
0005922811.tif 000004
【図４】
0005922811.tif 000005
【図５】
0005922811.tif 000006
【図６】
0005922811.tif 000007
【図７】
0005922811.tif 000008
【図８】
0005922811.tif 000009
【図９】
0005922811.tif 000010
【図１０】
0005922811.tif 000011
【図１１】
0005922811.tif 000012
【図１２】
0005922811.tif 000013
【図１３】
0005922811.tif 000014