(57)【要約】  少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する生成部を有する。
2020017037.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する生成部を有する
ログ分析装置。
【請求項２】
請求項１に記載のログ分析装置であって、
複数の値を含むログと、前記ログを任意の位置で区切った所定のフィールドごとに前記ログの値を前記変数に変換する変数化を行うことで生成された前記抽象化ログと、に基づいて、前記抽象化ログ中の前記変数に対応する前記ログの値の分布を計算する分析部を有し、
前記生成部は、前記分析部による計算の結果に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する
ログ分析装置。
【請求項３】
請求項２に記載のログ分析装置であって、
前記分析部は、前記フィールドごとに前記変数に対応する前記ログの値の数を集計し、集計した結果に基づいて、前記フィールドごとに所定の分布演算を行う
ログ分析装置。
【請求項４】
請求項２又は請求項３に記載のログ分析装置であって、
前記分析部は、前記変数に対応する前記値の種類数、前記フィールドのランダム度、カイ二乗値、変動係数、平均値、のうちの少なくとも１つの分布演算を行い、分布演算の結果と予め定められた閾値との比較を行う
ログ分析装置。
【請求項５】
請求項２から請求項４までのいずれか１項に記載のログ分析装置であって、
前記分析部は、計算の結果に基づいて、前記フィールドの前記変数を、当該変数に対応する前記ログの値のうちの一部の前記ログの値に置換するとともに、置換前に前記変数に含まれる前記ログの値のうち置換した前記ログの値を除いた前記ログの値が含まれる前記変数を残すと判断し、
前記生成部は、前記分析部による判断の結果に基づいて、前記抽象化ログ中の前記変数を、置換すると判断した前記ログの値に置換した新たな抽象化ログを生成するとともに、置換前に前記変数に含まれる前記ログの値のうち置換した前記ログの値を除いた前記ログの値が含まれる前記変数を有する前記抽象化ログを残す
ログ分析装置。
【請求項６】
請求項２から請求項５までのいずれか１項に記載のログ分析装置であって、
前記分析部は、変数をログの値に優先的に置換するフィールドを示す優先度を判断する
ログ分析装置。
【請求項７】
請求項６に記載のログ分析装置であって、
前記分析部は、前記フィールドごとの、置換後の値の数、または、置換後の値の数と変数の数の合計である置換数に基づいて、前記優先度を判断する
ログ分析装置。
【請求項８】
請求項７に記載のログ分析装置であって、
前記分析部は、前記置換数が低いほど前記優先度が高いと判断する
ログ分析装置。
【請求項９】
請求項６から請求項８までのいずれか１項に記載のログ分析装置であって、
前記分析部は、複数の種類の分布演算を行うよう構成されており、分布演算の結果とあらかじめ定められた閾値との比較結果が所定の条件を満たす分布演算の数に基づいて前記優先度を判断する
ログ分析装置。
【請求項１０】
請求項９に記載のログ分析装置であって、
前記分析部は、条件を満たす分布演算の数が多いほど前記優先度が高いと判断する
ログ分析装置。
【請求項１１】
請求項２から請求項１０までのいずれか１項に記載のログ分析装置であって、
前記分析部による分析の対象となる前記フィールドを判定する判定部を有し、
前記分析部は、前記判定部により分析の対象であると判定された前記フィールドに対する計算を行う
ログ分析装置。
【請求項１２】
請求項１１に記載のログ分析装置であって、
前記判定部は、分析の対象となる前記フィールドを示す対象情報に基づいて、分析の対象となる前記フィールドを判定する
ログ分析装置。
【請求項１３】
請求項１１又は請求項１２に記載のログ分析装置であって、
前記判定部は、前記値の分布状況に応じて、分析の対象となる前記フィールドを判定する
ログ分析装置。
【請求項１４】
請求項１から請求項１３までのいずれか１項に記載のログ分析装置であって、
複数の値を有する前記ログを、当該ログを任意の位置で区切った所定のフィールドごとに前記ログの値を前記変数に変換する変数化を行うことで前記抽象化ログを生成する
ログ分析装置。
【請求項１５】
情報処理装置が、
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する
ログ分析方法。
【請求項１６】
情報処理装置に、
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する生成部を実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ分析装置、ログ分析方法、プログラムに関する。
【背景技術】
【０００２】
システムログやアプリケーションログなどのログメッセージを監視するための技術が知られている。【０００３】
例えば、特許文献１には、ログメッセージのフォーマットを推定する方法の一例が記載されている。特許文献１によると、第１のログメッセージを記号や空白などの所定のキャラクタの前後で分割した各部分をノードとし、ノードそれぞれを第１のログメッセージの先頭から順に並べて第１の有向グラフ構造を作成する。また、第２のログメッセージを所定のキャラクタの前後で分割した各部分をノードとし、ノードそれぞれを第２のログメッセージの先頭から並べて第２の有向グラフ構造を作成する。そして、第１の有向グラフ構造中のノードと第２の有向グラフ構造中のノードとを比較して、文字列が一致するノード以外のノードを検出する。また、検出したノードのうち、第２の有向グラフ構造中の検出したノードを第１の有向グラフ構造に第１の分岐ノードとして追加し、第１の分岐ノードが追加された第１の有向グラフ構造に基づいてフォーマットを推定する。この際、文字列の出現傾向が類似するか否かに基づいて有向グラフの更新を行う。【０００４】
また、関連する技術として、例えば、特許文献２がある。特許文献２によると、ログ情報解析装置は、ログ情報から所定の時刻形式に変換された時刻と所定のフォーマットに変換された所定の文字列とを含む汎用ログを作成する。そして、ログ情報解析装置は、汎用ログに対応するログ情報の長さとログ情報中に現れる語の出現頻度とを含む特徴情報をログ情報が記録されたログ情報記録部から抽出するとともに、抽出されたログ情報を図形化してログ情報と共に所定の時刻形式に変換された時刻の順に表示する。【０００５】
また、関連する技術として、例えば、特許文献３がある。特許文献３によると、監視情報分析装置は、ログメッセージに含まれる各単語に対して算出されたスコアに基づいてクラスタリングを行うことによりテンプレートを生成する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５９８８４４７号
【特許文献２】特開２００１−３５６９３９号公報
【特許文献３】特開２０１３−１７１４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術の場合、文字列の出現傾向が類似するか否かは、文字列を構成する文字の種別や文字列の長さなどに基づいて判断している。このような構成のため、例えば、ユーザ名やサーバ名、ファイル名などのユーザが任意に定義可能な文字列などは、出現傾向が異なる文字列と判定され一意に扱うことが出来なかった。つまり、特許文献１に記載の技術の場合、任意の文字列などを類似するフォーマット（パターン）として判定することが出来ない、という問題があった。【０００８】
ここで、一般に、フォーマット（パターン）の抽象度が高い場合（変数の割合が多い場合）、当該フォーマットに対応するログの候補が多数発生し、ユーザが所望するログが埋没してしまう。その結果、ログを精度良く分析することが難しくなる。一方、フォーマット（パターン）の抽象度が低い場合、ユーザが所望するログを抽出するためには多くのパターンが必要となる。しかし、多くのパターンを用いて分析を何度も行うことは、効率が悪い。以上より、ログを精度よく効率的に分析するためには、フォーマットの抽象度を適切に設定することが望ましい。しかしながら、上述したように、特許文献１の場合、任意の文字列などを類似するフォーマット（パターン）として判定することが出来なかった。その結果、抽象度を適切に設定することが難しくなり、ログを効率的にかつ精度よく分析することが難しくなるおそれがあった。【０００９】
また、このような問題を解決するための方法は、特許文献２や特許文献３には記載されていない。そのため、特許文献２や特許文献３に記載されている技術を用いたとしても、上述した課題を解決することは出来なかった。【００１０】
そこで、本発明の目的は、ログを効率的かつ精度良く分析する、ログ分析装置、ログ分析方法、プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
かかる目的を達成するため本発明の一形態であるログ分析装置は、
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する生成部を有する
という構成をとる。【００１２】
また、本発明の他の形態であるログ分析方法は、
情報処理装置が、
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する
という構成をとる。【００１３】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する生成部を実現するためのプログラムである。
【発明の効果】
【００１４】
本発明は、以上のように構成されることにより、ログを効率的かつ精度良く分析する、ログ分析装置、ログ分析方法、プログラムを提供することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態におけるログ分析装置の構成の一例を示すブロック図である。
【図２】ログ分析装置に入力されるログメッセージの一例を示す図である。
【図３】ログメッセージを変数化することで生成するパターンの一例を示す図である。
【図４】フィールドごとにログの値を抽出した際の様子の一例を示す図である。
【図５】分析の結果に応じてフィールドの変数を値に置換して新たなパターンを生成する際の様子の一例を示す図である。
【図６】本発明の第１の実施形態におけるログ分析装置の動作の一例を示すフローチャートである。
【図７】本発明の第２の実施形態におけるログ分析装置の構成の一例を示すブロック図である。
【図８】本発明の第３の実施形態におけるログ分析装置の構成の一例を示すブロック図である。
【図９】本発明の第１の実施形態、第２の実施形態、第３の実施形態を実現可能なコンピュータ（情報処理装置）のハードウェア構成を例示的に説明する図である。
【図１０】本発明の第４の実施形態におけるログ分析装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
［第１の実施形態］
本発明の第１の実施形態を図１から図６までを参照して説明する。図１は、ログ分析装置１０の構成の一例を示すブロック図である。図２は、ログ分析装置１０に入力されるログメッセージ２の一例を示す図である。図３は、ログメッセージ２を変数化することで生成するパターンの一例を示す図である。図４は、フィールドごとにログの値を抽出した際の様子の一例を示す図である。図５は、分析の結果に応じて、フィールドの変数を値に置換して新たなパターンを生成する際の様子の一例を示す図である。図６は、ログ分析装置１０の動作の一例を示すフローチャートである。
【００１７】
本発明の第１の実施形態では、ログメッセージ２中の複数のログを所定のフィールドごとに変数化してまとめることで、パターン（抽象化ログ）を生成するログ分析装置１０について説明する。後述するように、本実施形態のログ分析装置１０の場合、生成したパターンと当該パターンに対応するログメッセージ２とをフィールドごとに照合して、パターン中の変数に含まれる値の分布を計算する。そして、ログ分析装置１０は、計算した結果に基づいて、変数の少なくとも一部を値に置換する。これにより、ログ分析装置１０は、１つのパターンに基づいて、パターン中の変数の少なくとも一部を値に置換した複数のパターンを生成する。
【００１８】
なお、本実施形態において、パターンとは、変数を用いてログを表したものをいう。また、変数化とは、ログ中のフィールドの値を変数に変換することをいう。後述するように、ログ分析装置１０は、ログ中の各フィールドの値を変数に変換した際の変数の並びが同一になる複数のログを変数化してまとめることで、パターンを生成する。ここで、フィールドとは、ログ中の値、変数を判断する際の基準となる区切りのことをいう。例えば、ログは、日付日時、IPアドレス（Internet Protocol address）、英字のみ、英数混合、数字のみ、など、ログが示す対象・情報の中身（属性）が変化する箇所で各フィールドに区切られている。なお、日付と日時で異なるフィールドになるなど、上記例示した以外の個所でフィールドを区切っても構わない。つまり、フィールドは任意の位置で区切って構わない。また、フィールドの属性に応じた変数には、例えば、英字のみ（WORD）、英数混合（NOTSPACE）、数字のみ（NUM）などがある。変数は、日付日時を示す数字のみの変数やＩＰアドレスを示す変数など、上記をより細分化したものや上記例示したもの以外であっても構わない。
【００１９】
例えば、「2017/02/24 09:01:00 login 127.0.0.1 bear」「2017/02/24 09:02:00 logout 127.0.0.1 bear」というログの場合、各フィールドの値を変数に変換した際の変数の並びは「日付日時のフィールド、英字のみのフィールド、IPアドレスのフィールド、英字のみのフィールド」で同一になる。そこで、ログ分析装置１０は、上記２つのログを変数化してまとめることで、上記２つのログから１つのパターンを生成する。具体的には、例えば、ログ分析装置１０は、「%｛NUM_TS｝%｛WORD｝%｛IP_NUM｝%｛WORD｝」などのようなパターンを生成する。なお、上記例示した場合、変数「%｛NUM_TS｝」には、値「2017/02/24 09:01:00」と値「2017/02/24 09:02:00」とが対応する。また、１番目の変数「%｛WORD｝」には値「login」と値「logout」とが対応する。また、変数「%｛IP_NUM｝」には値「127.0.0.1」が対応し、２番目の変数「%｛WORD｝」には値「bear」が対応する。
【００２０】
ログ分析装置１０は、外部装置などからログメッセージ２を受信すると、ログメッセージ２に含まれる各ログを所定のフィールドごとに変数化してパターンを生成する情報処理装置である。図１は、ログ分析装置１０の構成の一例を示している。図１を参照すると、ログ分析装置１０は、例えば、ログ分類部１１と、ログ・パターン照合部１２（分析部）と、フィールド分析部１３（分析部）と、パターン更新部１４（生成部）と、パターン記憶部１５と、表示部１６と、を有している。
【００２１】
なお、例えば、ログ分析装置１０は、CPU（Central Processing Unit）などの演算装置と記憶装置とを有している。ログ分析装置１０は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上述した各処理部を実現する。
【００２２】
ログ分類部１１は、ログ中の各フィールドの値を変数に変換した際の変数の並びが同一になる複数のログを変数化してまとめることで、ログメッセージ２に基づいてパターンを生成する。
【００２３】
例えば、ログ分類部１１が図２で示すようなログメッセージ２を受信したとする。図２を参照すると、ログメッセージ２には、例えば、「2017/02/24 09:01:00 login 127.0.0.1 bear」、「2017/02/24 09:02:00 logout 127.0.0.1 bear」、「2017/02/24 09:03:00 login 192.10.0.5 bear123」、「2017/02/24 09:04:00 logout 192.10.0.5 bear123」、「2017/02/24 09:04:10 login 192.10.0.6 bear_1」などのログが含まれている。
【００２４】
上記例示したようなログを含むログメッセージ２の場合、ログメッセージ２のうち、ログ「2017/02/24 09:01:00 login 127.0.0.1 bear」とログ「2017/02/24 09:02:00 logout 127.0.0.1 bear」は、変数の並びが「%｛NUM_TS｝%｛WORD｝%｛IP_NUM｝%｛WORD｝」で同一である。また、ログ「2017/02/24 09:03:00 login 192.10.0.5 bear123とログ「2017/02/24 09:04:00 logout 192.10.0.5 bear123」とログ「2017/02/24 09:04:10 login 192.10.0.6 bear_1」とは、変数の並びが「%｛NUM_TS｝%｛WORD｝%｛IP_NUM｝%｛NOTSPACE｝」で同一である。そこで、ログ分類部１１は、ログ「2017/02/24 09:01:00 login 127.0.0.1 bear」とログ「2017/02/24 09:02:00 logout 127.0.0.1 bear」とを変数化してまとめることで、「%｛NUM_TS_1:ts1｝%｛WORD:P1W1｝%｛IP_NUM:P1IP1｝%｛WORD:P1W2｝」を生成する（図３参照）。また、ログ分類部１１は、ログ「2017/02/24 09:03:00 login 192.10.0.5 bear123とログ「2017/02/24 09:04:00 logout 192.10.0.5 bear123」とログ「2017/02/24 09:04:10 login 192.10.0.6 bear_1」とを変数化してまとめることで、「%｛NUM_TS_1:ts1｝%｛WORD:P2W1｝%｛IP_NUM:P2IP1｝%｛NOTSPACE:P2NS1｝」を生成する。
【００２５】
なお、ログ分類部１１は、ログメッセージ２に基づいてパターンを生成する際に上記例示した以外の方法を用いても構わない。例えば、ログ分類部１１は、ログメッセージ２に含まれる各ログを、クラスタ分析などを用いて複数の部分集合に分割し、分割した部分集合ごとに変数化してまとめることでパターンを生成しても構わない。ログ分類部１１は、その他既知の方法を用いてパターンを生成しても構わない。
【００２６】
また、上述した例では、ログ分類部１１は、全てのフィールドを変数化している。しかしながら、ログ分類部１１は、必ずしもすべてのフィールドを変数化しなくても構わない。換言すると、ログ分類部１１は、ログ中に含まれる値の一部を変数化しなくても構わない。つまり、ログ分類部１１が生成するパターンは、当該パターンを抽出する方式に依存して、変数化されない固定列（値）を含んでいても構わない。
【００２７】
ログ・パターン照合部１２は、ログ分類部１１が生成したパターンと、パターン生成元のログとを、フィールドごとに照合する。そして、ログ・パターン照合部１２は、フィールドごとに変数に対応する値の数を集計する。
【００２８】
図４は、ログ・パターン照合部１２による照合・集計処理の一例を示している。図４を参照すると、例えば、変数「%｛NUM_TS_1:ts1｝」には、値「2017/02/24 09:01:00」が１つ、値「2017/02/24 09:02:00」が１つ、それぞれ含まれている。また、図４を参照すると、例えば、変数「%｛WORD:P1W1｝」には、値「login」が３つ、値「logout」が４つ含まれている。
【００２９】
このように、ログ・パターン照合部１２は、パターンとパターン生成元のログとをフィールドごとに照合することで、変数に含まれる値の数を集計する。なお、例えば、ログ分類部１１が分割した部分集合ごとに変数化してまとめることでパターンを生成していた場合、ログ・パターン照合部１２は、部分集合ごとに値の数を集計することが出来る。
【００３０】
フィールド分析部１３は、ログ・パターン照合部１２による集計の結果に基づいて、フィールドごとに所定の分布演算を行う。これにより、フィールド分析部１３は、パターン中の各変数に対応するログの値の分布を計算する。また、フィールド分析部１３は、分布演算の結果が所与の条件を満たすか否か判定する。そして、フィールド分析部１３は、判定の結果に基づいて、当該フィールドの変数を値に置換するか否か判断する。後述するように、フィールド分析部１３が変数を値に置換すると判断した場合、パターン更新部１４は、置換すると判断されたフィールドの変数を値に置換する。換言すると、パターン更新部１４は、１つのパターンに基づいて、置換後の値の数に応じた複数のパターンを生成する。
【００３１】
具体的には、例えば、フィールド分析部１３は、フィールドに含まれるユニークな値の個数（つまり、値の種類の数）に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。例えば、フィールド分析部１３は、フィールドに含まれるユニークな値の個数を計算する。そして、フィールド分析部１３は、ユニークな値の個数が予め定められた第１の閾値以下であれば、当該フィールドの変数を値に置換する対象にすると判断する。
【００３２】
例えば１番目のパターンの１番目のフィールドの変数に「SV01、SV02、SV03、SV04」の４種類の値が含まれるとする。また、予め定められた第１の閾値が「１０」であったとする。この場合、フィールド分析部１３は、フィールドに含まれるユニークな値の個数（値の種類数）が第１の閾値「１０」以下の「４」であるため、当該フィールドの変数を値に置換する、と判断する。このように、フィールド分析部１３は、フィールドに含まれるユニークな値の個数（値の種類数）に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。
【００３３】
また、例えば、フィールド分析部１３は、フィールドのランダム度に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。例えば、フィールド分析部１３は、フィールドに含まれるユニークな値の個数をパターンに追尾するログの数（パターンを生成する際にまとめたログの数）で除す。つまり、フィールド分析部１３は、当該フィールドを含む任意のパターンに対応するログの個数に対する値の種類数の比率として定義されるフィールドのランダム度を算出する。そして、フィールド分析部１３は、上記除算した結果が予め定められた第２の閾値以下であれば、当該フィールドの変数を値に置換する対象にすると判断する。なお、上記のように算出されるため、フィールドのランダム度は、０〜１の幅を持ち、１に近いほどランダム度が高いことになる。
【００３４】
例えば、２番目のパターンがログを１０個まとめることで生成されており、２番目のパターンの２番目のフィールドに値が３種類含まれているものとする。さらに、予め定められた第２の閾値が「０．５」であるとする。この場合、フィールド分析部１３は、２番目のフィールドのランダム度が第２の閾値「０．５」以下の「０．３」であるため、当該フィールド変数を値に置換する、と判断する。このように、フィールド分析部１３は、フィールドのランダム度に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。
【００３５】
また、例えば、フィールド分析部１３は、カイ二乗値に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。例えば、フィールド分析部１３は、（観測値―理論値）^2／理論値の合計を算出することでカイ二乗値を算出する。そして、フィールド分析部１３は、上記算出した結果が予め定められた第３の閾値以上であれば、当該フィールドの変数を値に置換する対象にすると判断する。なお、観測値はフィールド中の値の数であり、理論値は対応するログの数を値の種類数で除した値である。
【００３６】
例えば、３番目のパターンに対応するログが１００個あり、３番目のフィールドに４種類の値「START、STOP、RESTART、END」がそれぞれ「４０、１０、４０、１０」個ずつ含まれているとする。また、予め定められた第３の閾値が「３０」であるとする。この場合、理論値は１００を４で除した２５となる。そのため、カイ二乗値は、（４０−２５）^２／２５＋（１０−２５）^２／２５＋（４０−２５）^２／２５＋（１０−２５）^２／２５＝３６となる。この場合、フィールド分析部１３は、３番目のフィールドのカイ二乗値が第３の閾値以上であるため、当該フィールドの変数を値に置換する、と判断する。このように、フィールド分析部１３は、カイ二乗値に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。
【００３７】
また、例えば、フィールド分析部１３は、変動係数に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。例えば、フィールド分析部１３は、標準偏差を平均値で除すことで変動係数を算出する。そして、フィールド分析部１３は、上記算出した変動係数が予め定められた第４の閾値以上であれば、当該フィールドの変数を値に置換する対象にすると判断する。
【００３８】
例えば、標準偏差が４０、平均値が１００のフィールドがあるとする。また、第４の閾値が０．３であるとする。この場合、変動係数は、４０／１００で０．４となる。そのため、フィールド分析部１３は、フィールドの変動係数が第４の閾値以上であるため、当該フィールドの変数を値に置換する、と判断する。このように、フィールド分析部１３は、標準偏差に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。
【００３９】
また、例えば、フィールド分析部１３は、平均値に基づいてフィールドの変数を値に置換するか否か判断することが出来る。例えば、フィールド分析部１３は、フィールド中の値の数と値の種類の数とから平均値を算出する。そして、そして、フィールド分析部１３は、上記算出した平均値が予め定められた第５の閾値以下であれば、当該フィールドの変数を値に置換する対象にすると判断する。
【００４０】
例えば、平均値が１００、第５の閾値が２００であるとする。この場合、フィールド分析部１３は、平均値が第５の閾値以下であるため、当該フィールドの変数を値に置換する、と判断する。このように、フィールド分析部１３は、平均値に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。
【００４１】
また、例えば、フィールド分析部１３は、期待値に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。例えば、フィールド分析部１３は、対応するログの数と値の種類の数とに基づいて、期待値を算出する。そして、フィールド分析部１３は、算出した期待値よりも数が多い値を置換の対象にして、フィールドの変数を値に置換すると判断する。
【００４２】
例えば、対応するログが１００個、値の種類数が５個であるとする。この場合、期待値は１００／５で２０となる。そこで、フィールド分析部１３は、数が２０以上の値を置換の対象とする。一方、フィールド分析部１３は、数が２０よりも少ない値を置換の対象としない。このように、フィールド分析部１３は、期待値に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。
【００４３】
以上のように、フィールド分析部１３は、様々な分布演算の結果に基づいて、フィールドの変数を値に置換するか否か判断することが出来る。なお、フィールド分析部１３は、上述した方法のうちのいずれか一つの方法を用いてフィールドの変数を値に置換するか否か判断するよう構成しても構わないし、上述した複数の方法を組み合わせてフィールドの変数を値に置換するか否か判断するよう構成しても構わない。複数の方法を組み合わせて置換するか否か判断する場合、一つでも条件を満たせば置換する判断を行うよう構成しても構わないし、半分以上など複数のうちのいくつかが条件を満たすことで置換する判断を行うよう構成しても構わないし、全ての条件を満たすことで置換する判断を行うよう構成しても構わない。フィールド分析部１３は、上述した方法以外の方法を用いてフィールドの変数を値に置換するか否か判断するよう構成しても構わない。
【００４４】
また、フィールド分析部１３は、カイ二乗値が第３の閾値より小さい場合に置換を行うと判断するなど、例示した場合と反対の場合に置換を行うと判断するよう構成しても構わない。フィールド分析部１３による判断は、フィールドのデータ型などの属性情報に基づいて変更するよう構成しても構わない。
【００４５】
また、フィールド分析部１３は、上述したような方法を用いて、変数を値に完全に置換する（変数は残さない）旨の判断を行っても構わないし、変数を残す旨の判断を行っても構わない。換言すると、フィールド分析部１３は、フィールドの変数を、変数に対応する値のうちの一部の値に置換するとともに、変数を残す旨の判断を行っても構わない。例えば、変数「%｛WORD｝」に４つの値「AAAA」、「BBBB」、「CCCC」、「DDDD」が含まれているとする。この場合、フィールド分析部１３は、変数「%｛WORD｝」を４つの値「AAAA」、「BBBB」、「CCCC」、「DDDD」に完全に置換するよう構成しても構わないし、例えば、２つの値「AAAA」、「BBBB」のみを置換して変数「%｛WORD｝」を残すなど一部の値のみを置換するよう構成しても構わない。なお、フィールド分析部１３が、フィールドの変数を残す旨の判断を行った場合、置換後の変数に対応する値は、もともと変数に含まれていた値のうち、置換した値を除いたものになる。例えば、上記変数「%｛WORD｝」の場合、置換後の変数「%｛WORD｝」には、値「CCCC」と値「DDDD」が含まれることになる。
【００４６】
パターン更新部１４は、ログ・パターン照合部１２による照合、フィールド分析部１３による判断の結果に基づいて、フィールド分析部１３が置換すると判断したフィールドの変数を値に置換する。これにより、パターン更新部１４は、１つのパターンに基づいて複数のパターンを生成する。また、パターン更新部１４は、パターン記憶部１５の更新を行う。
【００４７】
例えば、パターン更新部１４は、図５で示すように、パターン「%｛NUM_TS_1:ts1｝%｛WORD:P1W1｝%｛IP_NUM:P1IP1｝%｛WORD:P1W2｝」中の変数「%｛WORD:P1W1｝」を値「login」、値「logout」に置換するとともに変数「%｛WORD:P1W1｝」を残す。つまり、パターン更新部１４は、パターン「%｛NUM_TS_1:ts1｝%｛WORD:P1W1｝%｛IP_NUM:P1IP1｝%｛WORD:P1W2｝」に基づいて、パターン「%｛NUM_TS_1:ts1｝login%｛IP_NUM:P1IP1｝%｛WORD:P1W2｝」とパターン「%｛NUM_TS_1:ts1｝logout%｛IP_NUM:P1IP1｝%｛WORD:P1W2｝」を生成するとともに、パターン「%｛NUM_TS_1:ts1｝%｛WORD:P1W1｝%｛IP_NUM:P1IP1｝%｛WORD:P1W2｝」を残す。このように、パターン更新部１４は、変数を値に置換することで、パターンの生成を行う。その後、パターン更新部１４は、パターン記憶部１５に格納されたパターン「%｛NUN_TS_1:ts1｝%｛WORD:P1W1｝%｛IP_NUM:P1IP1｝%｛WORD:P1W2｝」を、上記３つのパターンに更新する。
【００４８】
以上のように、パターン更新部１４は、フィールド分析部１３が置換すると判断したフィールドの変数を値に置換するとともに、パターン記憶部１５の更新を行う。
【００４９】
パターン記憶部１５は、ハードディスクやメモリなどの記憶装置である。パターン記憶部１５には、上述したように、ログ分類部１１によりログメッセージ２中のログを変数化してまとめることで生成したパターンが格納される。また、パターン記憶部１５に格納されたパターンは、パターン更新部１４により更新される。
【００５０】
なお、パターン記憶部１５は、パターンとともに、ログメッセージ２を記憶しても構わない。例えば、ログ分類部１１は、パターン記憶部１５に対してパターンを格納するとともに、ログメッセージ２を格納するよう構成することが出来る。
【００５１】
表示部１６は、ログ分析装置１０の内部または外部に備えられており、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ、液晶ディスプレイ）などの画面表示装置からなる。表示部１６は、パターン記憶部１５に記憶されたパターンやログメッセージ２などを表示する。表示部１６には、生成したパターンおよび各パターンに対応する元のログの集合の他、各パターンおよびそれに含まれる変数の出現頻度等の統計情報（例えば、フィールド分析部１３による算出結果）などを出力しても構わない。また、表示部１６には、パターンが分割されていく過程を示す樹形図などを出力してもよい。上記樹形図は、例えば、上位ノードは抽象度が高いパターン、下位ノードが変数を値に置換したより具体的なパターン、などである樹形図である。
【００５２】
以上が、ログ分析装置１０の構成の一例である。
【００５３】
また、本実施形態においては、ログ分析装置１０がパターンを生成するログ分類部１１や所定の分析を行うログ・パターン照合部１２、フィールド分析部１３を有する場合について説明した。しかしながら、ログ分析装置１０は、他の外部装置などからパターンを受信するよう構成しても構わない。また、ログ分析装置１０は、何らかの方法によりパターン中の変数や値の分布を特定可能であれば、パターン中の変数や値の分布を特定するための構成を有していなくても構わない。
【００５４】
続いて、図６を参照して、ログ分析装置１０の動作の一例について説明する。
【００５５】
図６を参照すると、ログ分類部１１は、ログメッセージ２に含まれる各ログのうち、ログ中の各フィールドの値を変数に変換した際の変数の並びが同一になる複数のログを変数化してまとめることで、パターンを生成する（ステップS101）。また、ログ分類部１１は、パターン記憶部１５に生成したパターンを格納する。
【００５６】
ログ・パターン照合部１２は、ログ分類部１１が生成したパターンと、パターン生成元のログとを、フィールドごとに照合する（ステップS102）。そして、ログ・パターン照合部１２は、フィールドごとに変数に対応する値の数を集計する。
【００５７】
フィールド分析部１３は、未分析のパターンがある場合（ステップS103、YES）、当該パターン中の各フィールドの分析を行う（ステップS104）。具体的には、フィールド分析部１３は、分析対象のパターン中に分析を行っていないフィールドがある場合（ステップS105、YES）、当該フィールドに対する所定の分布演算を実行する（ステップS106）。そして、演算の結果が予め定められた閾値などの条件を満たす場合（ステップS107、YES）、フィールド分析部１３は、当該フィールドの変数を値に置換すると判断する（ステップS108）。一方、計算の結果が予め定められた閾値などの条件を満たさない場合（ステップS107、NO）、フィールド分析部１３は、当該フィールドの変数を値に置換しないと判断する。
【００５８】
フィールドの置換有無を判断した後、フィールド分析部１３は、分析対象のパターン中に分析を行っていないフィールドがまだあるか否か確認する（ステップS105）。分析を行っていないフィールドがある場合（ステップS105、YES）、上述したようにステップS106の処理を行う。一方、未分析のフィールドがない場合（ステップS105、NO）、フィールド分析部１３は、未分析のパターンがあるか否か確認する（ステップS103）。未分析のパターンが存在する場合（ステップS103、YES）、上述したようにステップS104の処理を行う。一方、未分析のパターンが存在しない場合（ステップS103、NO）、パターン更新部１４は、フィールド分析部１３が置換すると判断したフィールドの変数を値に置換する。これにより、パターン更新部１４は、１つのパターンに基づいて複数のパターンを生成する。また、パターン更新部１４は、パターン記憶部１５に格納されたパターンを更新する（ステップS109）。その後、表示部１６は、パターン記憶部１５に記憶されたパターンやログメッセージ２などを表示することが出来る。
【００５９】
以上が、ログ分析装置１０の動作の一例である。
【００６０】
このように、ログ分析装置１０は、ログ・パターン照合部１２と、フィールド分析部１３と、パターン更新部１４と、パターン記憶部１５と、を有している。このような構成により、ログ・パターン照合部１２は、ログ分類部１１が生成したパターンとパターン生成元のログとをフィールドごとに照合することで、変数に含まれる値の数を集計することが出来る。また、フィールド分析部１３は、ログ・パターン照合部１２による集計の結果に基づいて所定の演算を行うことで、フィールドの変数を値に置換するか否か判断することが出来る。また、パターン更新部１４は、フィールド分析部１３による判断の結果に基づいて変数を値に置換することで、新たなパターンを生成することが出来る。また、パターン記憶部１５は、パターン更新部１４による置換後のパターンを記憶することが出来る。ここで、一般に、パターンの抽象度が高い場合（変数の割合が多い場合）、ログを精度よく分析することが難しくなる。一方、パターンの抽象度が低い場合（値の割合が多い場合）、パターンが多く生成されるためログを効率的に分析することが難しくなる。本実施形態によると、分布演算の結果に基づいて、変数を値に置換することが出来る。これにより、例えば、ランダム度が低い注目に値する情報などを値に置換することが可能となる。その結果、効率的な分析を実現することが可能となる。
【００６１】
また、本実施形態によると、分布演算の結果に基づいて、置換の有無を判断する。そのため、ユーザが任意に定義可能な文字列なども、変数化を行うとともに置換するか否か判断することが出来る。これにより、ユーザが任意に定義可能な文字列などがログに含まれる場合であっても、変数に変換するか値に置換するかの判断を行うことが可能となる。その結果、より効率的な分析を行うことが可能となる。
【００６２】
なお、本実施形態で説明したログ分析装置１０によると、例えば、機器の特徴的ログを分析することによる装置の稼働率や故障の予測、従業員の操作ログを分析することによる生産性や問題の検知、不正アクセスの検知などを目的としたログの分析、などの各種ログに基づく分析を行う際に、効率的なログの分析を行うことが出来る。もちろん、ログ分析装置１０は、上記例示した以外の分析を行うよう構成しても構わない。
【００６３】
［第２の実施形態］
次に、本発明の第２の実施形態について図７を参照して説明する。図７は、ログ分析装置３０の構成の一例を示している。
【００６４】
本発明の第２の実施形態では、第１の実施形態で説明したログ分析装置１０の変形例であるログ分析装置３０について説明する。後述するように、ログ分析装置３０は、パターン中に含まれる複数のフィールドのどこから置換するか判断する基準となる優先度を判定することが出来るよう構成されている。優先度は、変数をログの値に優先的に置換するフィールドを示す情報である。例えば、ログ分析装置３０は、優先度の高いフィールドから順番に置換を行うことになる。ログ分析装置３０は、例えば、置換数が所定の数を満たす、生成するログの数が所定の数を満たす、優先度が所定以上であるなど所定の条件を満たすまで、優先度が高いフィールドから順番にパターンの分析・置換を行うよう構成しても構わない。
【００６５】
図７は、ログ分析装置３０の構成の一例を示している。図７を参照すると、ログ分析装置３０は、例えば、ログ分類部１１と、ログ・パターン照合部１２と、フィールド分析部３３と、パターン更新部１４と、パターン記憶部１５と、表示部１６とを、有している。
【００６６】
ログ分析装置３０は、例えば、CPUなどの演算装置と記憶装置とを有している。例えば、ログ分析装置３０は、記憶装置に格納されたプログラムを演算装置が実行することで、上述した各処理部を実現する。
【００６７】
なお、図７では、第１の実施形態で説明したログ分析装置１０と同様の構成（図１参照）については、図１と同じ符号を付している。以下、本実施形態に特徴的な構成について説明する。
【００６８】
フィールド分析部３３は、フィールド分析部１３と同様に、ログ・パターン照合部１２による集計の結果に基づく所定の分布演算と、所与の条件と、に基づいてフィールドの変数を値に置換するか否か判断する。また、フィールド分析部３３は、所定の分布演算を行うとともに、優先度の判定を行う。そして、フィールド分析部３３は、優先度の高いフィールドから置換を行うことを決定する。その結果、パターン更新部１４は、フィールド分析部３３により優先度が高いと判断されたフィールドから順番に置換を行う。
【００６９】
例えば、フィールド分析部３３は、置換後の値の数と変数の数の合計である置換数が少ないフィールドをより優先度が高いフィールドとして判断するよう構成することが出来る。なお、変数を残さない場合、置換数は、置換後の値の数であることになる。
【００７０】
具体的には、例えば、分析の結果、１つの変数を３つの値に置換するフィールドと、１つの変数を５つの値に置換するとともに変数を残すフィールドと、があるとする。この場合、１つの変数を３つの値に置換するフィールドの置換数は３であり、１つの変数を５つの値に置換するとともに変数を残すフィールドの置換数は６である。そこで、フィールド分析部３３は、１つの変数を３つの値に置換するフィールドの方が、１つの変数を５つの値に置換するとともに変数を残すフィールドよりも優先度が高いと判断する。このように、フィールド分析部３３は、置換数に基づいて優先度を判断するよう構成することが出来る。
【００７１】
また、例えば、フィールド分析部３３は、第１の実施形態で説明した複数の方法のうち条件を満たしている数が多いほど優先度が高いフィールドとして判断するよう構成することが出来る。
【００７２】
具体的には、例えば、フィールド分析部３３は、値の種類数、ランダム度、カイ二乗値、変動係数、平均値、の５つの方法を用いて判断を行うよう構成されているとする。この場合、フィールド分析部３３は、５つの方法全てが条件を満たすフィールドの方が、４つの方法が条件を満たす場合や３つの方法が条件を満たす場合よりも優先度が高いフィールドであると判断する。このように、フィールド分析部３３は、条件を満たす数に基づいて優先度を判断するよう構成することが出来る。
【００７３】
なお、フィールド分析部３３は、置換数と条件を満たす数とのうちのいずれか一方に基づいて優先度を判断するよう構成しても構わないし、両方を組み合わせて優先度を判断するよう構成しても構わない。両方を組み合わせて優先度を判断する場合、例えば、より置換数が少ないほど優先度が高く、また、置換数が同じである場合に条件を満たす数に基づいて判断するよう構成することが出来る。フィールド分析部３３は、上記例示した以外の方法に基づいて優先度を判断するよう構成しても構わない。
【００７４】
また、フィールド分析部３３は、例えば、優先度の高いフィールドから順番に、生成後のパターンの数が所定数となる、置換するフィールドの値の個数が所定数となる、など所定の条件を満たすまで置換を行うか否か判断するよう構成することが出来る。また、フィールド分析部３３は、例えば、優先度が所定以上（例えば、置換数が４以下など）のもののみを実際に置換すると判断するよう構成しても構わない。上記所定の条件は、例示した以外のものであっても構わない。
【００７５】
このように、本実施形態によると、ログ分析装置３０は、優先度を考慮した判断を行うフィールド分析部３３を有している。このような構成によると、効率的に置換を行うことが可能となる。
【００７６】
［第３の実施形態］
次に、本発明の第３の実施形態について図８を参照して説明する。図８は、ログ分析装置４０の構成の一例を示している。
【００７７】
本発明の第３の実施形態では、第１の実施形態で説明したログ分析装置１０、第２の実施形態で説明したログ分析装置３０の変形例であるログ分析装置４０について説明する。後述するように、ログ分析装置４０は、パターン中に含まれる複数のフィールドのうち、分析・置換の対象となるフィールドを指定することが出来るように構成されている。このような構成のため、ログ分析装置４０は、パターン中に含まれるフィールドのうちの一部のフィールドのみを分析・置換の対象とすることになる。
【００７８】
図８は、ログ分析装置４０の構成の一例を示している。図８を参照すると、ログ分析装置４０は、例えば、ログ分類部１１と、ログ・パターン照合部１２と、フィールド分析部４３と、分析フィールド判定部４６（判定部）と、パターン更新部１４と、パターン記憶部１５と、表示部１６とを、有している。
【００７９】
ログ分析装置４０は、例えば、CPUなどの演算装置と記憶装置とを有している。例えば、ログ分析装置４０は、記憶装置に格納されたプログラムを演算装置が実行することで、上述した各処理部を実現する。
【００８０】
なお、図７では、第１の実施形態で説明したログ分析装置１０や第３の実施形態で説明したログ分析装置３０と同様の構成については、図１、図７と同じ符号を付している。以下、本実施形態に特徴的な構成について説明する。
【００８１】
フィールド分析部４３は、フィールド分析部１３と同様に、ログ・パターン照合部１２による集計の結果に基づく所定の分布演算と、所与の条件と、に基づいてフィールドの変数を値に置換するか否か判断する。本実施形態におけるフィールド分析部４３は、分析フィールド判定部４６により分析・置換の対象であると判断されたフィールドに対して、フィールドを置換するか否か判断する。
【００８２】
なお、フィールド分析部４３は、第２の実施形態で説明したフィールド分析部３３と同様に、優先度も考慮するよう構成しても構わない。
【００８３】
分析フィールド判定部４６は、ログ中のどのフィールドをフィールド分析部４３による分析の対象とするか判定する。例えば、分析フィールド判定部４６は、ログ分析装置４０を操作する操作者による指定、又は、全ログ中の値の分布などの値の分布状況に応じて、分析の対象とするか否か判定する。
【００８４】
具体的には、例えば、ログ中のどのフィールドを分析の対象とするか、又は、どのフィールドを分析の対象としないかを示す情報である対象情報が、ログ分析装置４０を操作する操作者により予め入力され記憶装置などに格納されている。分析フィールド判定部４６は、上記情報に基づいて、ログ中のどのフィールドをフィールド分析部４３による分析の対象とするか判定することが出来る。例えば、分析フィールド判定部４６は、予め格納された情報に基づいて、日付日時などのフィールドを分析の対象としないよう構成することが出来る。
【００８５】
また、例えば、分析フィールド判定部４６は、ログメッセージ２中の全ログに占める変数の分布や、ログ分類部１１が生成したパターンにおける変数の分布（ログ・パターン照合部１２による集計の結果）などの値の分布状況に基づいて、ログ中のどのフィールドを分析の対象とするか判定することが出来る。例えば、分析フィールド判定部４６は、ログメッセージ２中の全ログに占める変数の分布などに基づいて、ユニークな値が変数に含まれていると判断されるフィールドを分析の対象とするよう構成することが出来る。一方、例えば、分析フィールド判定部４６は、ランダム度が高いと判断されるフィールドを分析の対象としないよう構成することが出来る。
【００８６】
なお、分析フィールド判定部４６は、上述した方法のいずれか一方のみを用いるよう構成しても構わないし、両方を組み合わせて分析・置換対象のフィールドを判断するよう構成しても構わない。両方を組み合わせる場合、分析フィールド判定部４６は、それぞれの基準で分析の対象としないと判断されたフィールド全てを分析の対象としないよう構成しても構わないし、両方の基準で分析の対象としないと判断されたフィールドを分析の対象としないよう構成しても構わない。
【００８７】
このように、本実施形態によると、ログ分析装置３０は、分析フィールド判定部４６と、フィールド分析部４３と、を有している。このような構成により、分析フィールド判定部４６は、どのフィールドをフィールド分析部４３による分析の対象とするか判定することが出来る。また、フィールド分析部４３は、分析フィールド判定部４６により分析の対象とすると判断された（または、分析フィールド判定部４６により分析の対象としないと判断されたフィールドを除いた）フィールドのみを分析することが出来る。これにより、より効率的に分析を行うことが可能となる。
【００８８】
＜ハードウェア構成について＞
上述した第１、第２、第３の実施形態において、ログ分析装置１０、ログ分析装置３０、ログ分析装置４０が有する各構成要素は、機能単位のブロックを示している。ログ分析装置１０、ログ分析装置３０、ログ分析装置４０が有する各構成要素の一部又は全部は、例えば図９に示すような情報処理装置５００とプログラムとの任意の組み合わせにより実現することが出来る。図９は、ログ分析装置１０、ログ分析装置３０、ログ分析装置４０の各構成要素を実現する情報処理装置５００のハードウェア構成の一例を示すブロック図である。情報処理装置５００は、一例として、以下のような構成を含むことが出来る。
・CPU（Central Processing Unit）５０１
・ROM（Read Only Memory）５０２
・RAM（Random Access Memory）５０３
・RAM５０３にロードされるプログラム群５０４
・プログラム群５０４を格納する記憶装置５０５
・情報処理装置５００外部の記録媒体５１０の読み書きを行うドライブ装置５０６
・情報処理装置５００外部の通信ネットワーク５１１と接続する通信インタフェース５０７
・データの入出力を行う入出力インタフェース５０８
・各構成要素を接続するバス５０９
【００８９】
上述した各実施形態におけるログ分析装置１０、ログ分析装置３０、ログ分析装置４０が有する各構成要素は、これらの機能を実現するプログラム群５０４をCPU５０１が取得して実行することで実現することが出来る。ログ分析装置１０、ログ分析装置３０、ログ分析装置４０が有する各構成要素の機能を実現するプログラム群５０４は、例えば、予め記憶装置５０５やROM５０２に格納されており、必要に応じてCPU５０１がRAM５０３にロードして実行する。なお、プログラム群５０４は、通信ネットワーク５１１を介してCPU５０１に供給されてもよいし、予め記録媒体５１０に格納されており、ドライブ装置５０６が該プログラムを読み出してCPU５０１に供給してもよい。
【００９０】
なお、図９は、情報処理装置５００の構成の一例を示しており、情報処理装置５００の構成は上述した場合に例示されない。例えば、情報処理装置５００は、ドライブ装置５０６を有さないなど、上述した構成の一部から構成されても構わない。
【００９１】
［第４の実施形態］
次に、図１０を参照して、本発明の第４の実施形態について説明する。第４の実施形態では、ログ分析装置６０の構成の概要について説明する。
【００９２】
図１０は、ログ分析装置６０の構成の一例を示している。図１０を参照すると、ログ分析装置６０は、例えば、生成部６１を有している。
【００９３】
ログ分析装置６０は、例えば、CPUなどの演算装置と記憶装置とを有している。例えば、ログ分析装置６０は、記憶装置に格納されたプログラムを演算装置が実行することで、上述した各処理部を実現する。
【００９４】
生成部６１は、少なくとも１つ以上の変数を有し、変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の変数に対応するログの値の分布に基づいて、抽象化ログ中の変数をログの値に置換した新たな抽象化ログを生成する。
【００９５】
このように、ログ分析装置６０は、生成部６１を有している。このような構成により、生成部６１は、変数に対応するログの値の分布に基づいて、抽象化ログ中の変数を値に置換した新たな抽象化ログを生成することが出来る。ここで、一般に、抽象化ログの抽象度が高い場合（変数の割合が多い場合）、ログを精度よく分析することが難しくなる。一方、抽象化ログの抽象度が低い場合（値の割合が多い場合）、パターンが多く生成されるためログを効率的に分析することが難しくなる。本実施形態によると、変数に対応するログの値の分布に基づいて変数を値に置換した新たな抽象化ログを生成することが出来る。これにより、例えば、ランダム度が低い注目に値する情報などを値に置換した抽象化ログを生成することが可能となる。その結果、効率的な分析を実現することが可能となる。
【００９６】
また、本実施形態によると、変数に対応するログの値の分布に基づいて変数を値に置換した新たな抽象化ログを生成するか否か判断する。そのため、ユーザが任意に定義可能な文字列なども、変数化を行うとともに値に置換するか否か判断することが出来る。これにより、ユーザが任意に定義可能な文字列などがログに含まれる場合であっても、抽象化するか否かの判断（変数にするか値にするか否かの判断）を行うことが可能となる。その結果、より効率的な分析を行うことが可能となる。
【００９７】
また、上述したログ分析装置６０は、当該ログ分析装置６０に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、少なくとも１つ以上の変数を有し、変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の変数に対応するログの値の分布に基づいて、抽象化ログ中の変数をログの値に置換した新たな抽象化ログを生成する生成部６１を実現するためのプログラムである。
【００９８】
また、上述したログ分析装置６０により実行されるログ分析方法は、情報処理装置が、少なくとも１つ以上の変数を有し、変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の変数に対応するログの値の分布に基づいて、抽象化ログ中の変数をログの値に置換した新たな抽象化ログを生成する、という方法である。
【００９９】
上述した構成を有する、プログラム、又は、ログ分析方法、の発明であっても、上記ログ分析装置６０と同様の作用・効果を有するために、上述した本発明の目的を達成することが出来る。
【０１００】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるログ分析装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１０１】
（付記１）
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する生成部を有する
ログ分析装置。
（付記２）
付記１に記載のログ分析装置であって、
複数の値を含むログと、前記ログを任意の位置で区切った所定のフィールドごとに前記ログの値を前記変数に変換する変数化を行うことで生成された前記抽象化ログと、に基づいて、前記抽象化ログ中の前記変数に対応する前記ログの値の分布を計算する分析部を有し、
前記生成部は、前記分析部による計算の結果に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する
ログ分析装置。
（付記３）
付記２に記載のログ分析装置であって、
前記分析部は、前記フィールドごとに前記変数に対応する前記ログの値の数を集計し、集計した結果に基づいて、前記フィールドごとに所定の分布演算を行う
ログ分析装置。
（付記４）
付記２又は付記３に記載のログ分析装置であって、
前記分析部は、前記変数に対応する前記値の種類数、前記フィールドのランダム度、カイ二乗値、変動係数、平均値、のうちの少なくとも１つの分布演算を行い、分布演算の結果と予め定められた閾値との比較を行う
ログ分析装置。
（付記５）
付記２から付記４までのいずれか１項に記載のログ分析装置であって、
前記分析部は、計算の結果に基づいて、前記フィールドの前記変数を、当該変数に対応する前記ログの値のうちの一部の前記ログの値に置換するとともに、置換前に前記変数に含まれる前記ログの値のうち置換した前記ログの値を除いた前記ログの値が含まれる変数に置換すると判断し 、 
前記生成部は、前記分析部による判断の結果に基づいて、前記抽象化ログ中の前記変数を、置換すると判断した前記ログの値に置換した新たな抽象化ログを生成するとともに、置換前に前記変数に含まれる前記ログの値のうち置換した前記ログの値を除いた前記ログの値が含まれる変数を有する新たな抽象化ログを生成する
ログ分析装置。
（付記６）
付記２から付記５までのいずれか１項に記載のログ分析装置であって、
前記分析部は、変数をログの値に優先的に置換するフィールドを示す優先度を判断 する 
ログ分析装置。
（付記７）
付記６に記載のログ分析装置であって、
前記分析部は、前記フィールドごとの、置換後の値の数、または、置換後の値の数と変数の数の合計である置換数 に 基づいて、前記優先度を判断する
ログ分析装置。
（付記８）
付記７に記載のログ分析装置であって、
前記分析部は、前記置換数が低いほど前記優先度が高いと判断する
ログ分析装置。
（付記９）
付記６から付記８までのいずれか１項に記載のログ分析装置であって、
前記分析部は、複数の種類の分布演算を行うよう構成されており、 分布演算の結果とあらかじめ定められた閾値との比較結果が所定の条件を満たす分布演算の数 に基づいて前記優先度を判断する
ログ分析装置。
（付記１０）
付記９に記載のログ分析装置であって、
前記分析部は、条件を満たす分布演算の数が多いほど前記優先度が高いと判断する
ログ分析装置。
（付記１１）
付記２から付記１０までのいずれか１項に記載のログ分析装置であって、
前記分析部による分析の対象となる前記フィールドを判定する判定部を有し、
前記分析部は、前記判定部により分析の対象であると判定された前記フィールドに対する計算を行う
ログ分析装置。
（付記１２）
付記１１に記載のログ分析装置であって、
前記判定部は、分析の対象となる前記フィールドを示す対象情報に基づいて、分析の対象となる前記フィールドを判定する
ログ分析装置。
（付記１３）
付記１１又は付記１２に記載のログ分析装置であって、
前記判定部は、前記値の分布状況に応じて、分析の対象となる前記フィールドを判定する
ログ分析装置。
（付記１４）
請求項１から請求項１３までのいずれか１項に記載のログ分析装置であって、
複数の値を有する前記ログを、当該ログを任意の位置で区切った所定のフィールドごとに前記ログの値を前記変数に変換する変数化を行うことで前記抽象化ログを生成する
ログ分析装置。
（付記１５）
情報処理装置が、
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する
ログ分析方法。
（付記１５−１）
付記１５に記載のログ分析方法であって、
複数の値を含むログと、前記ログを任意の位置で区切った所定のフィールドごとに前記ログの値を前記変数に変換する変数化を行うことで生成された前記抽象化ログと、に基づいて、前記抽象化ログ中の前記変数に対応する前記ログの値の分布を計算し、
計算の結果に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する
ログ分析方法。
（付記１５−２）
付記１５−１に記載のログ分析方法であって、
前記分析部は、前記フィールドごとに前記変数に対応する前記ログの値の数を集計し、集計した結果に基づいて、前記フィールドごとに所定の分布演算を行う
ログ分析装置。
（付記１６）
情報処理装置に、
少なくとも１つ以上の変数を有し、前記変数が少なくとも１つ以上のログの値を含んでいる抽象化ログ中の前記変数に対応する前記ログの値の分布に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する生成部を実現するためのプログラム。
（付記１６−１）
付記１６に記載のプログラムであって、
複数の値を含むログと、前記ログを任意の位置で区切った所定のフィールドごとに前記ログの値を前記変数に変換する変数化を行うことで生成された前記抽象化ログと、に基づいて、前記抽象化ログ中の前記変数に対応する前記ログの値の分布を計算する分析部を実現させ、
前記生成部は、前記分析部による計算の結果に基づいて、前記抽象化ログ中の前記変数を前記ログの値に置換した新たな抽象化ログを生成する
プログラム。
（付記１６−２）
付記１６−１に記載のプログラムであって、
前記分析部は、前記フィールドごとに前記変数に対応する前記ログの値の数を集計し、集計した結果に基づいて、前記フィールドごとに所定の分布演算を行う
プログラム。
【０１０２】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１０３】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【０１０４】
１０  ログ分析装置
１１  ログ分類部
１２  ログ・パターン照合部
１３  フィールド分析部
１４  パターン更新部
１５  パターン記憶部
１６  表示部
２  ログメッセージ
３０  ログ分析装置
３３  フィールド分析部
４０  ログ分析装置
４３  フィールド分析部
４６  分析フィールド判定部
５００  情報処理装置
５０１  CPU
５０２  ROM
５０３  RAM
５０４  プログラム群
５０５  記憶装置
５０６  ドライブ装置
５０７  通信インタフェース
５０８  入出力インタフェース
５０９  バス
５１０  記録媒体
５１１  通信ネットワーク
６０  ログ分析装置
６１  生成部
【図１】
2020017037.tif 000003
【図２】
2020017037.tif 000004
【図３】
2020017037.tif 000005
【図４】
2020017037.tif 000006
【図５】
2020017037.tif 000007
【図６】
2020017037.tif 000008
【図７】
2020017037.tif 000009
【図８】
2020017037.tif 000010
【図９】
2020017037.tif 000011
【図１０】
2020017037.tif 000012
【国際調査報告】
2020017037.tif 000013
2020017037.tif 000014