(57)【要約】  ログメッセージを分析する際に、ログメッセージを適切に分類する。  ログ分析システムは、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに対応する特徴ベクトルを、当該ログメッセージが所定の文字列を含むか否かに応じて、算出する特徴ベクトル算出手段と、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析するログ分析手段と、を備える。
2015072085.tif 000002
【特許請求の範囲】
【請求項１】
分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに対応する特徴ベクトルを、当該ログメッセージが所定の文字列を含むか否かに応じて算出する特徴ベクトル算出手段と、
前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析するログ分析手段と、を備え、
前記特徴ベクトル算出手段は、前記所定の文字列を、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて選択する、
ログ分析システム。
【請求項２】
前記特徴ベクトルの要素数は２以上であり、前記特徴ベクトルを構成する複数の要素のうち、第１の要素は第１の文字列によって定義されており、第２の要素は第２の文字列によって定義されており、
前記特徴ベクトル算出手段は、前記ログメッセージに対応する特徴ベクトルを算出する際に、前記ログメッセージが、前記特徴ベクトルを構成する複数の要素のうち特定の要素を定義する文字列を含むか否かに応じて、前記特徴ベクトルを構成する前記特定の要素を表す値を決定する、
請求項１に記載のログ分析システム。
【請求項３】
前記特徴ベクトル算出手段は、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において、第１の閾値以上、かつ、第２の閾値未満の頻度で出現する文字列を、前記所定の文字列として選択する、
請求項１または２に記載のログ分析システム。
【請求項４】
分類指標算出手段を更に備え、
前記分類指標算出手段は、
前記特徴ベクトル算出手段が算出した特徴ベクトルを複数取得し、
前記複数の特徴ベクトルを、前記特徴ベクトル同士の距離に基づいて、複数の集合にクラスタリングし、
前記集合ごとに、前記集合に属する１つまたは複数の特徴ベクトルに基づいて分類指標を算出し、前記分類指標と前記集合とを関連付け、
前記ログ分析手段は、前記分類指標と、分析対象であるログメッセージに対応する特徴ベクトルとに基づいて、前記特徴ベクトルに対応するログメッセージが、前記分類指標に関連付けされた集合に属するか否かを分析する、
請求項１から３のいずれかに記載のログ分析システム。
【請求項５】
前記ログ分析手段は、前記特徴ベクトルに対応するログメッセージが、前記複数の集合のうちいずれの集合にも分類されない場合、当該ログメッセージを異常なログメッセージとみなす、
請求項４に記載のログ分析システム。
【請求項６】
前記分類指標は、前記集合に属する１つまたは複数の特徴ベクトルに基づいて算出される代表ベクトルであって、前記代表ベクトルを構成する各要素を表す値は、前記１つまたは複数の特徴ベクトルを構成する、対応する要素を表す値の代表値である、
請求項４に記載のログ分析システム。
【請求項７】
前記特徴ベクトル算出手段は、前記ログメッセージに対応する特徴ベクトルを算出する際に、前記ログメッセージが、前記特徴ベクトルを構成する複数の要素のうち特定の要素を定義する文字列を含む場合に、前記特徴ベクトルを構成する前記特定の要素を表す値を、前記ログメッセージに前記の文字列が幾つ含まれるかを表す値と、前記ログメッセージの集合において前記文字列が出現する頻度の逆数に応じた値との、積の値に基づいて決定する、請求項２に記載のログ分析システム。
【請求項８】
処理実行手段を更に備え、
前記処理実行手段は、前記ログ分析手段が分析対象のログメッセージを、前記いずれかの集合に分類するか、あるいは、異常なログメッセージとみなした場合に、前記集合ごとに、あるいは、異常なログメッセージとみなされたことに対応してあらかじめ規定された処理を実行する、
請求項５に記載のログ分析システム。
【請求項９】
コンピュータが、
分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出し、
前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析し、
前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する、
ログ分析方法。
【請求項１０】
コンピュータに、
分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出する処理と、
前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析する処理と、
前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する処理と、
を実行させるプログラムを格納する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムが出力するログを分析する技術に関する。
【背景技術】
【０００２】
コンピュータシステムの運用管理において、運用管理者は、障害などの異常の発生を監視し、その異常が発生した原因を分析する。そのために運用管理者は、当該コンピュータシステムが出力したログを分析する。しかし、大規模化かつ複雑化した現在のコンピュータシステムが出力するログのサイズ（または数量）は膨大であり、運用管理者はその全てを詳細に分析することはできない。【０００３】
そこで、ログを分類するための分類ルールを定義し、コンピュータシステムにより出力されたメッセージを分類ルールに従って分類することが行われる。長年に亘って運用管理者が人手で分類ルールを定義していたが、膨大なサイズのログに対して網羅的な分類ルールを人手で定義することは困難である。そこで、近年においては、ログを分類するための分類ルールを自動的に作成する技術が提案されている。【０００４】
特許文献１は、分散システムが出力するメッセージが、当該分散システムが正常に運用されていることを示すメッセージであるのか、それとも当該分散システムに異常が発生したことを示すメッセージであるのかを、判定する技術の一例を開示する。以下、正常に運用されていることを示すメッセージを「正常なメッセージ」と記載する。また、異常が発生したことを示すメッセージを「異常なメッセージ」と記載する。【０００５】
特許文献１が開示する技術は、過去に分散システムが正常に運用されていた際に当該分散システムが出力したログを収集し、当該ログから特徴的なパターンを抽出する。特許文献１が開示する技術は、連続するメッセージの組み合わせに着目して、当該特徴的なパターンを抽出する。特許文献１が開示する技術は、特徴的なパターンと、判定の対象となるメッセージと、を比較することにより、判定対象のメッセージが正常なメッセージであるのか否かを判定する。【０００６】
特許文献２は、通信を発生させた端末のアドレスに基づいて、当該通信が悪意のある通信か否かを判定するための技術の一例を開示する。特許文献２が開示する技術は、過去に悪意のある通信を発生させた端末のアドレスに特徴的な構造を、機械学習を適用して学習する。【０００７】
特許文献２が開示する技術は、判定対象である通信を発生させた端末のアドレスと、機械学習による学習結果と、を比較することにより、当該通信が悪意のある通信か否かを判定する。特許文献２はさらに、アドレスを構成するビット列の全部または一部を用いて、悪意のある通信を発生させる端末のアドレスに特徴的な構造を学習することを開示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−３１８０７１号公報
【特許文献２】特開２０１２−１７５２９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１が開示する技術は、連続するメッセージの組み合わせに着目して、分析対象のメッセージが正常であるのか異常であるのかを判定する。特許文献２が開示する技術は、アドレスを構成するビット列に着目して、分析対象のアドレスが正常であるのか異常であるのかを判定する。ログメッセージを分類する場合において、ログメッセージを構成する複数のログ要素のうち、どのログ要素に着目してログメッセージを分類するか、ということは、ログメッセージを適切に分類するために重要である。【００１０】
ここで、ログ要素とは、例えば、ログメッセージを構成する、当該ログメッセージが出力された時刻、ログＩＤ（識別子）、ログレベル、メッセージ本文、または、メッセージ本文の一部分などである。【００１１】
ここで、以下の状況を仮定して、下記２つの具体例についてそれぞれ検討する。仮定する状況は、「正常なログメッセージと異常なログメッセージとの差異は、ログメッセージを構成する複数のログ要素のうち一部のログ要素に現れる」という状況である。【００１２】
（具体例１）例えば、ログメッセージを構成する複数のログ要素のうち全てのログ要素に着目して、ログメッセージを分類することを考える。この場合、特許文献１が開示する技術は、正常なログメッセージと異常なログメッセージとの差異が現れないログ要素にまで着目してログメッセージを分類するため、ログメッセージを適切に分類することは難しい。【００１３】
（具体例２）例えば、ログメッセージを構成する複数のログ要素のうち一部のログ要素に着目して、ログメッセージを分類することを考える。この場合、この場合、どのログ要素に着目してログメッセージを分類するかに応じて、ログメッセージが適切に分類されるか否かが変わってくる。不適切なログ要素に着目してログメッセージを分類してしまうと、ログメッセージを適切に分類することはできない。【００１４】
特許文献２は、アドレスを構成するビット列の一部を用いて悪意のある通信を発生させる端末のアドレスに特徴的な構造を学習する技術を開示する。しかし特許文献２は、アドレスを構成するビット列のどの部分に着目すべきかを選択する基準までは開示していない。【００１５】
上述した課題を解決するため、本発明は、ログメッセージを分析する際に、ログメッセージを適切に分類することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１の側面は、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに対応する特徴ベクトルを、当該ログメッセージが所定の文字列を含むか否かに応じて算出する特徴ベクトル算出手段と、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析するログ分析手段と、を備え、前記特徴ベクトル算出部は、前記所定の文字列を、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて選択する、ログ分析システムである。【００１７】
本発明の第２の側面は、コンピュータが、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出し、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析し、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する、ログ分析方法である。【００１８】
本発明の第３の側面は、コンピュータに、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出する処理と、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析する処理と、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する処理と、を実行させるプログラムである。【００１９】
また、本発明の目的は、上記のプログラムが格納されたコンピュータ読み取り可能な記録媒体によっても達成される。
【発明の効果】
【００２０】
本発明によれば、ログメッセージを分析する際に、ログメッセージを適切に分類することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態における、ログ分析システム１００の構成を示すブロック図である。
【図２】本発明の第１の実施形態における、ログファイル９１０の一例を示す図である。
【図３】本発明の第１の実施形態における、特徴ベクトル算出部１２０の詳細を説明するブロック図である。
【図４】本発明の第１の実施形態における、文字列集計部１２２が集計した文字列の一例を示す図である。
【図５】本発明の第１の実施形態における、変換定義記憶部２１０が記憶する変換閾値情報の一例を示す図である。
【図６】本発明の第１の実施形態における、変換定義記憶部２１０が記憶する変換指標情報の一例を示す図である。
【図７】本発明の第１の実施形態における、ベクトル定義情報の一例を示す図である。
【図８】本発明の第１の実施形態における、特徴ベクトル算出部１２０が算出した特徴ベクトルの一例を示す図である。
【図９】本発明の第１の実施形態における、分類指標算出部１３０の動作を説明する図である。
【図１０】本発明の第１の実施形態における、分類定義情報の一例を示す図である。
【図１１】本発明の第１の実施形態における、ログ分析システム１００が、ベクトル定義情報を決定する動作を説明するフローチャートである。
【図１２】本発明の第１の実施形態における、ログ分析システム１００が、分類定義情報を作成する動作を説明するフローチャートである。
【図１３】本発明の第１の実施形態における、ログ分析システム１００が、ログを分析する動作を説明するフローチャートである。
【図１４】本発明のログ分析システム１００のハードウェア構成の一例を説明するブロック図である。
【図１５】本発明の第２の実施形態における、ログ分析システム１００Ａの構成を示すブロック図である。
【図１６】本発明の第２の実施形態における、処理定義情報記憶部２４０が記憶する情報の一例を示す図である。
【図１７】本発明の第２の実施形態における、ログ分析システム１００Ａの動作を説明するフローチャートである。
【図１８】本発明の第３の実施形態における、ログ分析システム１００Ｂの構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を、図面を参照して詳細に説明する。
＜第１の実施形態＞
[構成の説明]
図１は、本発明の第１の実施形態にかかるログ分析システム１００の構成を示すブロック図である。ログ分析システム１００は、分析対象システム９００が出力するログファイル９１０を分析する。
【００２３】
図１に示すように、ログ分析システム１００は、ログ収集部１１０と、特徴ベクトル算出部１２０と、分類指標算出部１３０と、ログ分析部１４０と、出力部１５０と、変換定義記憶部２１０と、ベクトル定義情報記憶部２２０と、分類定義情報記憶部２３０と、を備える。
【００２４】
ログ収集部１１０は、ログファイル９１０を収集する。ログ収集部１１０は、分析対象システム９００からログファイル９１０を受信してもよい。または、ログ収集部１１０は、図示しない記憶部からログファイル９１０を読み出してもよい。あるいは、ログ収集部１１０は、運用管理者からログファイル９１０の入力を受け付けてもよい。
【００２５】
ログ収集部１１０は、例えば、収集対象とするログファイル９１０の指定または日時の指定など、収集するログの範囲の指定を運用管理者から受け付けてもよい。あるいはログ収集部１１０は、ログメッセージの分析に必要な情報を定義した図示しないファイルを読み込み、ファイルが定義する情報に従って、取得したログファイル９１０の形式をログ分析システム１００が分析しやすい形式に変換してもよい。
【００２６】
特徴ベクトル算出部１２０は、ログファイル９１０と、変換定義記憶部２１０から読み出した情報と、に基づいて、ベクトル定義情報を決定する。ベクトル定義情報は、ログメッセージに基づいて当該ログメッセージの特徴を表す特徴ベクトルを算出する方法を定義する情報である。特徴ベクトル算出部１２０はベクトル定義情報をベクトル定義情報記憶部２２０に記憶する。
【００２７】
また、特徴ベクトル算出部１２０は、ベクトル定義情報に基づいて、ログファイル９１０を構成する複数のログメッセージのそれぞれに対して、当該ログメッセージに対応する特徴ベクトルを算出する。特徴ベクトル算出部１２０の詳細は後述する。
【００２８】
分類指標算出部１３０は、特徴ベクトル算出部１２０が算出した特徴ベクトルに基づいて、ログメッセージを分類するための分類定義情報を作成する。分類指標算出部１３０は、分類定義情報を分類定義情報記憶部２３０に記憶する。分類指標算出部１３０の詳細は後述する。
【００２９】
ログ分析部１４０は、分類定義情報記憶部２３０から分類定義情報を読み出す。ログ分析部１４０は、分類定義情報と、特徴ベクトル算出部１２０が算出した特徴ベクトルとに基づいて、当該特徴ベクトルに対応するログメッセージを分析する。ログ分析部１４０は、ログメッセージを、分類定義情報が定義する複数の集合のうちいずれかの集合に分類する。あるいはログ分析部１４０は、当該ログメッセージを正常なログメッセージであるのか異常なログメッセージであるのか判定する。ログ分析部１４０の詳細は後述する。
【００３０】
出力部１５０は、ログ分析部１４０が分析した結果を出力する。例えば、分析対象のログメッセージが既知の集合に属すると判定された場合、出力部１５０は、当該ログメッセージと当該集合とを関連付けて出力する。例えば、分類定義情報が定義するいずれの集合にも分析対象のログメッセージが属さないと判定された場合、出力部１５０は、当該ログメッセージを異常なログメッセージとして出力する。
【００３１】
変換定義記憶部２１０は、変換閾値定義と、変換指標定義とを記憶する。変換閾値定義および変換指標定義は、特徴ベクトル算出部１２０がベクトル定義情報を決定する際の基準となる情報である。
【００３２】
ベクトル定義情報記憶部２２０は、特徴ベクトル算出部１２０が決定したベクトル定義情報を記憶する。
【００３３】
分類定義情報記憶部２３０は、分類指標算出部１３０が作成した分類定義情報を記憶する。
【００３４】
分析対象システム９００は、運用管理の対象である情報処理システムである。分析対象システム９００は、分析対象システム９００の利用状況、性能情報、または、データ通信の送受信状況などを記録したファイルであるログファイル９１０を出力する。分析対象システム９００は、コンピュータシステムには限られず、例えば化学プラントまたは発電所等であってもよい。
【００３５】
ログファイル９１０は、複数のログメッセージから構成される。言い換えると、ログファイルは複数のログメッセージの集合である。ログメッセージは、ログレコードとも呼ばれる。ログメッセージは、当該ログメッセージが出力された時刻、ログＩＤ、メッセージ本文、または、ログレベルなど、複数のログ要素により構成される。
【００３６】
図２は、ログファイル９１０の一例を説明する図である。ログメッセージは、図２に示した「行」に相当する情報である。例えば図２には、３つのログメッセージが示されている。すなわち、
“130201 09:04:01 mysqld started”、
“130201 09:04:01 InnoDB : started;”、
“130201 09:04:01 [note] user/libexec/mysqld:”、
という３つのログメッセージが図２に示されている。
【００３７】
図３は、図１に示した特徴ベクトル算出部１２０の構成を更に詳細に説明したブロック図である。
【００３８】
図３に示すように、特徴ベクトル算出部１２０は、文字列抽出部１２１と、文字列集計部１２２と、基底ベクトル定義部１２３と、重み定義部１２４と、算出部１２５とを備える。
【００３９】
＜文字列抽出部１２１＞
文字列抽出部１２１は、ログファイル９１０を構成する複数のログメッセージのそれぞれに対して、ログメッセージを構成する文字列を抽出する。
【００４０】
上述したように、ログメッセージは、当該ログメッセージが出力された時刻、ログＩＤ、メッセージ本文、または、ログレベルなど、複数のログ要素により構成される。ログ分析システム１００は、ログメッセージを構成するそれぞれのログ要素を、文字列または文字列の集合として取り扱う。
【００４１】
ここで、「文字列」という用語を定義する。本実施形態における「文字列」とは、ログメッセージを構成する文字の組み合わせのうち、意味を有する特定の複数文字による組み合わせを表す。本実施形態における「文字列」は、例えば「単語」である。本実施形態における「文字列」は、例えば「文法上、意味または職能をもった最小の言語単位」である。本実施形態における「文字列」は、フレーズまたは文章であってもよい。実施形態における「文字列」は、日付、時刻またはＩＰ（Internet Protocol）アドレスなどを表す文字列であってもよい。実施形態における「文字列」は、「単語と、カッコなどの記号との、組み合わせ」であってもよい。「文字列」という用語の定義については、他の実施形態においても同様である。
【００４２】
ログメッセージを構成するある文字列と他の文字列との間は、例えば、カンマ、スペース、タブ、括弧、コロン、カンマ、ドットまたはスラッシュなどの記号で区切られていることを想定する。文字列抽出部１２１は、各ログメッセージを構成する文字列を、これらの記号で区切ることにより抽出してもよい。文字列抽出部１２１は、抽出した文字列を正規表現により表現してもよい。
【００４３】
文字列抽出部１２１の詳細を、具体例を用いて説明する。例えば、図２に示した３つのログメッセージから文字列を抽出すると、下記のような文字列が抽出される。なお、ここで示す具体例はあくまで発明の理解を容易にするためのものであり、文字列抽出部１２１の動作を限定して解釈するためのものではない。
【００４４】
（抽出された文字列の具体例）130201，09:04:01，mysqld，started，130201，09:04:01，InnoDB，started，130201，09:04:01，[note]，user，libexec，mysqld．
【００４５】
文字列抽出部１２１は、ログメッセージを構成する全てのログ要素から文字列を抽出する必要は必ずしも無い。文字列抽出部１２１は例えば、ログメッセージを構成するメッセージ本文のみから文字列を抽出してもよい。
【００４６】
＜文字列集計部１２２、基底ベクトル定義部１２３、重み定義部１２４＞
文字列集計部１２２、基底ベクトル定義部１２３、および、重み定義部１２４は、文字列抽出部が抽出した文字列、並びに、変換定義記憶部２１０から読み込んだ変換閾値定義および変換指標定義に基づいて、ベクトル定義情報を決定する。重み定義部１２４は、ベクトル定義情報をベクトル定義情報記憶部２２０に記憶する。文字列集計部１２２と、基底ベクトル定義部１２３と、重み定義部１２４との詳細は後述する。
【００４７】
＜算出部１２５＞
算出部１２５は、ベクトル定義情報記憶部２２０からベクトル定義情報を読み出し、読み出したベクトル定義情報とログメッセージとに基づいて、当該ログメッセージに対応する特徴ベクトルを算出する。算出部１２５は、ログメッセージに、所定の文字列が含まれるか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出する。
【００４８】
図７は、ベクトル定義情報記憶部２２０が記憶するベクトル定義情報の一例を示す図である。ベクトル定義情報は、「特徴ベクトルの基底ベクトルを定義する情報」、および、「基底ベクトルとして定義された文字列の重みを定義する情報」を含む。図７において「要素」を示す列および「文字列」を示す列に表される情報が、「特徴ベクトルの基底ベクトルを定義する情報」に相当する。図７において「重み」を示す列に表される情報が、「基底ベクトルとして定義された文字列の重みを定義する情報」に相当する。
【００４９】
まず、「特徴ベクトルの基底ベクトルを定義する情報」について、具体例を用いて説明する。例えば図７に示すベクトル定義情報は、要素１から要素１０までの１０個の要素を定義する。すなわち、図７に示すベクトル定義情報は、特徴ベクトルの次元数（要素数）は１０次元であることを定義する。
【００５０】
図７に示すベクトル定義情報は、特徴ベクトルの１つ目の要素を表す値は、当該特徴ベクトルに対応するログメッセージに「mysqld」という文字列が含まれるか否かに応じて決定されることを示す。
【００５１】
同じく、図７に示すベクトル定義情報は、特徴ベクトルの２つ目の要素を表す値は、当該特徴ベクトルに対応するログメッセージに「innoDB」という文字列が含まれるか否かに応じて決定されることを示す。
【００５２】
このように、ベクトル定義情報は、特徴ベクトルの特定の要素を表す値が、どの文字列に基づいて決定されるかを定義する情報を含む。
【００５３】
次に、「基底ベクトルとして定義された文字列の重みを定義する情報」について、具体例を用いて説明する。例えば図７に示すベクトル定義情報は、特徴ベクトルにおける「mysqld」に相当する要素を表す値は、当該特徴ベクトルに対応するログメッセージに「mysqld」という文字列が出現する回数と、1/67という値との積の値により決定されることを示す。
【００５４】
同様に、図７に示すベクトル定義情報は、特徴ベクトルにおける「innoDB」に相当する要素を表す値は、当該特徴ベクトルに対応するログメッセージに「innoDB」という文字列が出現する回数と、1/59という値との積の値により決定されることを示す。
【００５５】
算出部１２５は、ログメッセージ中に、ベクトル定義情報により定義される文字列が含まれるか否かを判定する。ログメッセージ中に、当該文字列が含まれている場合には、算出部１２５は、ベクトル定義情報が定義する重みの値に応じて、特徴ベクトルにおける、当該文字列に相当する要素を表す値を決定する。なお、算出部１２５は、ベクトル定義部が定義する文字列が、ログメッセージ中に出現しない場合には、当該文字列に相当する要素を表す値を０とする。
【００５６】
図８は、算出部１２５が算出した特徴ベクトルと、当該特徴ベクトルに対応するログメッセージとを、関連付けた情報を表す図である。
【００５７】
（具体例１）「130201 09:04:01 mysqld started」というログメッセージから、当該ログメッセージに対応する特徴ベクトルを算出する場合を想定する。当該ログメッセージに含まれる複数の文字列の中で、基底ベクトルの要素として定義されている文字列は「mysqld」のみである。したがって、特徴ベクトルは「(1/67，0，…，0)」となる。
【００５８】
（具体例２）「130201 09:04:01 InnoDB : started」というログメッセージから、当該ログメッセージに対応する特徴ベクトルを算出する場合を想定する。当該ログメッセージに含まれる複数の文字列の中で、基底ベクトルの要素として定義されている文字列は「innoDB」のみである。したがって、特徴ベクトルは「(0，1/59，0，…，0)」となる。
【００５９】
（具体例３）「130201 09:04:01 [note] user/libexec/mysqld」というログメッセージから、当該ログメッセージに対応する特徴ベクトルを算出する場合を想定する。当該ログメッセージに含まれる複数の文字列の中で、基底ベクトルの要素として定義されている文字列は「mysqld」および「libexec」である。したがって、特徴ベクトルは「(1/67，0，…，0，1/28，0，…，0，)」となる。
【００６０】
以下、説明の便宜上、文字列抽出部１２１、文字列集計部１２２、基底ベクトル定義部１２３、重み定義部１２４および算出部１２５を、特徴ベクトル算出部１２０とまとめて呼称する場合がある。
【００６１】
[動作の説明]
第１の実施形態にかかるログ分析システム１００の動作を、下記（１）、（２）および（３）の３つの動作に分けて、それぞれ説明する。
（１）ログ分析システム１００がベクトル定義情報を決定する動作、
（２）ログ分析システム１００が分類定義情報を作成する動作、
（３）ログ分析システム１００がログメッセージを分析する動作。
【００６２】
[（１）ログ分析システム１００がベクトル定義情報を決定する動作の説明]
図１１は、ログ分析システム１００がベクトル定義情報を決定する動作（ステップＳ１０１〜Ｓ１０７）を説明するフローチャートである。
【００６３】
ログ収集部１１０は、分析対象システム９００から出力されたログファイル９１０を取得する。ここでログ収集部１１０は、分析対象システム９００が正常に運用されていた期間におけるログファイル９１０である、正常ログファイル９１１を取得する（ステップＳ１０１）。
【００６４】
文字列抽出部１２１は、取得した正常ログファイル９１１を構成するログメッセージの集合から、文字列を抽出する（ステップＳ１０２）。
【００６５】
文字列集計部１２２は、文字列抽出部１２１が抽出した文字列毎に、ログメッセージの集合において当該文字列が出現した回数を集計する（ステップＳ１０３）。図４は、文字列集計部１２２が集計した情報の一例を示す図である。図４に示す情報は、文字列と、当該文字列が出現した回数とを関連付けた情報である。
【００６６】
基底ベクトル定義部１２３は、文字列集計部１２２が集計した複数の文字列のうちから、特徴ベクトルの基底ベクトルを定義する文字列を選択する（ステップＳ１０４）。基底ベクトル定義部１２３は、文字列集計部１２２が集計した文字列を特徴ベクトルの基底ベクトルを定義する文字列として選択するか否かを、当該文字列がログメッセージの集合において出現する頻度に応じて決定する。
【００６７】
ステップＳ１０４に示した基底ベクトル定義部１２３の動作を、具体例を用いて説明する。基底ベクトル定義部１２３は、変換定義記憶部２１０から、変換閾値定義を読み出す。図５は、変換定義記憶部２１０から読み出した変換閾値定義の一例を示す図である。変換閾値定義は、基底ベクトルを定義する文字列を選択する際の判断基準と、その具体的な閾値を定義する。
【００６８】
図５に示す例では、判断基準が「文字列の出現頻度」、閾値は、「0.1N＜ΣCi＜0.6N」である。ここで、Nは集計の対象としたログメッセージの総数を表す値である。Ciは、あるログメッセージの中に、当該文字列が出現する回数を表す値である。ΣCiは、集計の対象としたログメッセージ中に、当該文字列が出現する総回数を表す値である。例えば、上述した「0.1N＜ΣCi＜0.6N」という閾値は、２００個のログメッセージを集計の対象とした場合、２０回より多く１２０回より少ない回数出現した文字列を、基底ベクトルを定義する文字列として選択することを表す。
【００６９】
したがって、図４に示した文字列のうち、「started」は選択されず、「mysqld」、「innoDB」または「libexec」、などが基底ベクトルを定義する文字列として選択される。
【００７０】
なお、変換閾値定義が定義する閾値の具体的な値は、あらかじめ固定された値でもよいし、ログ収集部１１０が収集したログファイル９１０に含まれるログレコードの数に応じて動的に設定されてもよい。あるいは、図示しない運用管理者が定義してもよい。
【００７１】
基底ベクトル定義部１２３は、基底ベクトルを定義する文字列として選択した複数の文字列の順番を一意に特定する（ステップＳ１０５）。順番を特定する方法はどのような方法でもよい。基底ベクトル定義部１２３は例えば、出現頻度が多い順、あるいは辞書順などの方法で文字列の順番を特定する。
【００７２】
重み定義部１２４は、基底ベクトル定義部１２３が選択したそれぞれの文字列について、重みを定義する（ステップＳ１０６）。
【００７３】
ステップＳ１０６に示した重み定義部１２４の動作を、具体例を用いて説明する。重み定義部１２４は、変換定義記憶部２１０から、変換指標定義を読み出す。図６は、変換定義記憶部２１０から読み出した変換指標定義の一例を示す図である。変換指標定義は、重みを決定する算出方法を定義する。図６に示す変換指標定義は、「文字列の出現頻度の総和の逆数と、係数との積」を重みとして定義することを表す。係数αを１とした場合、図４に示される情報に基づいて各文字列の重みを定義すると、各文字列の重みは、図７に示す通りとなる。なお、変換指標定義が定義する係数αは、例えば、基底ベクトルの各要素の重みの総和が１となるように定義されていてもよい。
【００７４】
重み定義部１２４は、基底ベクトル定義部１２３が選択した、基底ベクトルを定義する文字列および当該文字列の順序、並びに、重み定義部１２４が定義した重みを、ベクトル定義情報としてベクトル定義情報記憶部２２０に記憶する（ステップＳ１０７）。
【００７５】
図７は、基底ベクトル定義部１２３および重み定義部１２４が決定したベクトル定義情報の一例を表す図である。
【００７６】
ここまでで、ログ分析システム１００がベクトル定義情報を決定する動作を説明した。
【００７７】
[（２）ログ分析システム１００が分類定義情報を作成する動作の説明]
次に、図１２を用いて、ログ分析システム１００が分類定義情報を作成する動作を説明する。図１２は、ログ分析システム１００が分類定義情報を作成する動作（ステップＳ１０８〜Ｓ１１３）を説明するフローチャートである。
【００７８】
算出部１２５は、ベクトル定義情報記憶部２２０からベクトル定義情報を読み出す（ステップＳ１０８）。
【００７９】
算出部１２５は、読み出したベクトル定義情報と、正常ログファイル９１１を構成するそれぞれのログメッセージとに基づいて、当該ログメッセージに対応する特徴ベクトルを算出する（ステップＳ１０９）。
【００８０】
算出部１２５は、ログメッセージと、当該ログメッセージに対応する特徴ベクトルとを関連付けた情報を出力する（ステップＳ１１０）。図８は、ログメッセージと、当該ログメッセージに対応する特徴ベクトルとを関連付けた情報の一例を表す図である。
【００８１】
分類指標算出部１３０は、ログメッセージを、当該ログメッセージに対応する特徴ベクトルに基づいて、複数の集合にクラスタリングする。分類指標算出部１３０は、クラスタリングの結果、集合を識別する識別子と、当該集合に含まれるログメッセージを識別する識別子とを関連付けた情報を出力する（ステップＳ１１１）。
【００８２】
図９は、ステップＳ１１１に示す動作において分類指標算出部１３０が出力する情報を説明する図である。図９に示す情報は、例えば、集合ＩＤ＝１で識別される集合には、ログメッセージＩＤ＝１、５および８で識別されるログメッセージが属していることを示す。
【００８３】
ステップＳ１１１に示した分類指標算出部１３０の動作を、具体例を用いて説明する。分類指標算出部１３０は、算出部１２５が算出した特徴ベクトルに基づいて、特徴ベクトル間の距離を算出する。分類指標算出部１３０は、算出した距離に基づいて、当該特徴ベクトルに対応するログメッセージをクラスタリングし、複数の集合を定義する。
【００８４】
特徴ベクトル同士の距離としては例えば、ユークリッド平方距離、ミンコフスキー距離またはマハラノビスの汎距離などを用いることができる。距離を用いてクラスタリングする方法としては、Ｗａｒｄ法、Ｋ平均法、最短距離法、最長距離法または群平均法などが知られている。
【００８５】
分類指標算出部１３０は、集合毎に、当該集合に対応する分類指標を算出する（ステップＳ１１２）。分類指標とは、各集合を表現する指標である。分類指標は、各集合に属する特徴ベクトルを用いて算出可能な、値またはベクトルである。発明の理解を容易にするため、以下、分類情報が、ある集合に属する一つまたは複数の特徴ベクトルの平均ベクトルであるとして説明を続ける。平均ベクトルは分類指標の一具体例である。分類指標の他の具体例については後述する。
【００８６】
分類指標算出部１３０は、集合ＩＤと、当該集合に対応する平均ベクトルとを関連付けて、分類定義情報を作成する。分類指標算出部１３０は、作成した分類定義情報を分類定義情報記憶部２３０に記憶する（ステップＳ１１３）。
【００８７】
図１０は、分類指標算出部１３０が作成した分類定義情報の一例を示す図である。図１０に示す情報は、例えば、集合ＩＤ１に対応する平均ベクトルは、(1/67，0，…，0)であることを示す。
【００８８】
ここまでで、ログ分析システム１００が分類定義情報を作成する動作を説明した。
【００８９】
なお、ベクトル定義情報および分類定義情報は必ずしも正常ログファイル９１１から作成されるとは限らない。例えば、異常なログメッセージの集合からベクトル定義情報および分類定義情報を作成してもよい。
【００９０】
[（３）ログ分析システム１００がログメッセージを分析する動作の説明] 
図１３は、ログ分析システム１００がログメッセージを分析する動作を説明するフローチャートである。
【００９１】
ログ収集部１１０は、分析対象システム９００から出力されたログファイル９１０を取得する。ここでログ収集部１１０は、分析対象のログファイル９１０である分析対象ログファイル９１２を取得する（ステップＳ２０１）。
【００９２】
特徴ベクトル算出部１２０は、ベクトル定義情報記憶部２２０からベクトル定義情報を読み出す（ステップＳ２０２）。
【００９３】
特徴ベクトル算出部１２０は、ベクトル定義情報と、分析対象ログファイル９１２を構成するログメッセージとに基づいて、ログメッセージに対応する特徴ベクトルを算出する（ステップＳ２０３）。
【００９４】
なお、ステップＳ２０３に示す動作において、分析対象のログメッセージに含まれる文字列が、ベクトル定義情報において定義された要素に含まれない場合がある。このような場合、特徴ベクトル算出部１２０は、該当する単語を、ベクトル定義情報が定義する要素の末尾に追加することによって（すなわち、図７に示した例においては要素１１が追加される）、ベクトル定義情報を拡張するように構成してもよい。その場合、特徴ベクトル算出部１２０は、ベクトルの次元を該当する単語の数だけ増加させ、その値は0とする。
【００９５】
ログ分析部１４０は、分類定義情報記憶部２３０から分類定義情報を読み出す（ステップＳ２０４）。
【００９６】
ログ分析部１４０は、分類定義情報と、特徴ベクトル算出部１２０が算出した特徴ベクトルと、に基づいて、当該特徴ベクトルに対応するログメッセージを、分類定義情報が定義する複数の集合のうちいずれかの集合に分類する。あるいはログ分析部１４０は、ログメッセージを、分類定義情報が定義するいずれの集合にも所属しない異常なログメッセージとして分類する（ステップＳ２０５）。
【００９７】
ステップＳ２０５に示したログ分析部１４０の動作を、詳細に説明する。ログ分析部１４０は、分類定義情報が定義する平均ベクトルと、分析対象のログメッセージに対応する特徴ベクトルとの距離を算出し、当該距離に基づいて、分析対象のログメッセージを分類する。下記２つの具体例を用いて詳細に説明する。
【００９８】
（具体例１）例えば、異常判定対象のログレコード「130201 10:01:23 mysqld started」の特徴ベクトルが、「(1/67，0，…，0)」である場合を想定する。ログ分析部１４０は、当該特徴ベクトルと、分類定義情報が定義する各々の平均ベクトルとを比較する。ログ分析部１４０は、分析対象の特徴ベクトルと、平均ベクトルとの距離を算出する。例えば、上述の特徴ベクトルと、図１０に示した分類定義情報が定義する平均ベクトルとの距離を算出すると、以下の通りとなる。
集合ＩＤ１に対しては0、
集合ＩＤ２に対しては(1/67)*(1/67)+(1/59)*(1/59)+(1/128)*(1/128)、
集合ＩＤ３に対しては(1/28)*(1/28)+(1/264)*(1/264)である。
したがって、最も近い集合ＩＤは１である。ここで、記号“*”は乗算を表す。また、記号“/”は除算を表す。以下、これらの記号が表す意味は本願において同様である。
【００９９】
ログ分析部１４０は、算出した距離と別途定義された閾値を比較し、算出した距離が閾値以下であれば、分析対象のログレコードが該当する集合に含まれると判定する。上記の例の場合、閾値を(1/25)＊(1/25)とすると、距離は0であるため、ログ分析部１４０は、分析対象のログレコードを、集合ＩＤ１の集合に含まれると判定する。
【０１００】
（具体例２）例えば、異常判定対象のログレコード「130201 10:01:23 mysqld stopped」の特徴ベクトルが(1/67，0，…，1/20)である場合を想定する。ログ分析部１４０は、当該特徴ベクトルと、分類定義情報が定義する各々の平均ベクトルとの距離を算出する。その結果、ログ分析部１４０は、当該特徴ベクトルともっとも近い平均ベクトルは、集合ＩＤ１に対応する平均ベクトルであり、その距離は(1/20)＊(1/20)あると算出する。ログ分析部１４０は更に、算出した距離と閾値とを比較する。距離((1/20)＊(1/20))＞閾値((1/25)＊(1/25)）であるため、ログ分析部１４０は、分析対象のログレコードが、いずれの集合にも属さない異常なログレコードであると判定する。
【０１０１】
出力部１５０は、ログ分析部１４０が分析対象のログメッセージを分類した結果を示す情報を出力する（ステップＳ２０６）。出力部１５０は、ログ分析部１４０から出力された情報を、例えば、ディスプレイに表示する、あるいは、プリンタで帳票として出力するなどの方法で運用管理者に提示する。出力部１５０は、分類定義情報を出力してもよい。
【０１０２】
[ハードウェア構成の説明]
図１４は、第１の実施形態にかかるログ分析システム１００のハードウェア構成の一例を示すブロック図である。ログ分析システム１００を構成するハードウェアは、ＣＰＵ（Central Processing Unit）１、メモリ２、記憶装置３、通信インターフェース（Ｉ／Ｆ）４を備える。ログ分析システム１００は、入力装置５または出力装置６を備えていてもよい。ログ分析システム１００の機能は、例えばＣＰＵ１が、メモリ２に読み出されたコンピュータプログラム（ソフトウェアプログラム、以下単に「プログラム」と記載する）を実行することにより実現される。実行に際して、ＣＰＵ１は、通信インターフェース４、入力装置５および出力装置６を適宜制御する。
【０１０３】
尚、本実施形態および後述する各実施形態を例として説明される本発明は、係るプログラムが格納されたコンパクトディスク等の不揮発性の記憶媒体８によっても構成される。記憶媒体８が格納するプログラムは、例えばドライブ装置７により読み出される。
【０１０４】
ログ分析システム１００が実行する通信は、例えばＯＳ（Operating System）が提供する機能を使ってアプリケーションプログラムが通信インターフェース４を制御することによって実現される。入力装置５は、例えばキーボード、マウスまたはタッチパネルである。出力装置６は、例えばディスプレイである。ログ分析システム１００は、２つ以上の物理的に分離した装置が有線または無線で接続されることによって構成されていてもよい。
【０１０５】
図１４に示すハードウェア構成例は、後述する各実施形態にも適用可能である。なお、ログ分析システム１００は専用の装置であってもよい。なお、ログ分析システム１００およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【０１０６】
[第１の実施形態が奏する効果の説明]
第１の実施形態にかかるログ分析システム１００は、ログメッセージを分析する際に、ログメッセージを適切に分類することができる。その第１の理由は、ログ分析システム１００は、ログメッセージに所定の文字列が含まれているか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出し、当該特徴ベクトルに基づいて、当該特徴ベクトルに対応するログメッセージを分析するからである。その第２の理由は、ログメッセージを分析する際に用いられる文字列が、分析対象システムから出力されたログメッセージの集合において出現する頻度に応じて選択されるからである。
【０１０７】
第１の実施形態にかかるログ分析システム１００が奏する効果をより詳細に説明する。分析対象システム９００が正常に運用されている場合、分析対象システム９００は同一のログメッセージを繰り返し出力すると考えられるため、当該ログメッセージを構成する文字列の出現頻度は高くなる。このような、出現頻度の高い文字列は、類似するログメッセージ同士をクラスタリングまたはグルーピングする際に有用な情報である。
【０１０８】
他方、分析対象システム９００に異常が発生した場合、分析対象システム９００は、正常時とは異なるログメッセージを出力すると考えられる。この場合、当該ログメッセージには、正常なログメッセージに出現しない文字列が含まれていると考えられる。
【０１０９】
ここで、分析対象システム９００が、下記２つのログメッセージを出力した場合を想定する。
【０１１０】
（ログメッセージ１）：2013/10/01  [XXXAPI] auth_method [TAT]00001 [REMOTEHOST]
node00010 [USER_ID] u1011 ….、
（ログメッセージ２）：2013/10/01  [YYYAPI] auth_method [TAT]01001 [REMOTEHOST]
node00034 [USER_ID] u4581 ….。
【０１１１】
上記ログメッセージ１および２に共通する、[REMOTEHOST]、[TAT]および[USER_ID]などの文字列は出現頻度が高い文字列（言い換えるとログメッセージ内で固定された文字列）である。このような文字列は、ログメッセージ１とログメッセージ２を異なるログメッセージとして分類する上では不要な文字列である。
【０１１２】
正常なログメッセージと異常なログメッセージとの差異を生む文字列は、例えば、正常なログメッセージに出現しない文字列、特定のログメッセージにのみ出現する文字列、および、ログメッセージ内で変化する文字列である。
【０１１３】
ログ分析システム１００は、ログメッセージを分析する際に用いられる文字列を、分析対象システムから出力されたログメッセージの集合において出現する頻度に応じて選択する。かかる構成により、ログ分析システム１００は、正常なログメッセージと異常なログメッセージとの差異を生む文字列に着目してログメッセージを分析することができる。これにより、ログ分析システム１００は、ログメッセージを適切に分類することができる。
【０１１４】
また、ログ分析システム１００は、ログメッセージを、単に正常なログメッセージか異常なログメッセージかという観点で分類するだけではなく、あらかじめ定義された複数の集合のうちいずれかの集合に分類することもできる。
【０１１５】
近年では、分析対象システム９００の安定的な稼働を保証するために、障害が発生した後の対処ではなく、事前に障害などの異常の兆候を検出するという事前対処が求められ始めている。その為には、監視していた異常系のログメッセージだけではなく、正常系のログメッセージを監視する必要がある。ログ分析システム１００は、このようなニーズをも満たすことができる。
【０１１６】
＜第２の実施形態＞
図１５は、第２の実施形態にかかるログ分析システム１００Ａの構成を示すブロック図である。第２の実施形態にかかるログ分析システム１００Ａは、第１の実施形態にかかるログ分析システム１００が備える出力部１５０に代えて、処理実行部１６０を備える。また、第２の実施形態にかかるログ分析システム１００Ａは、処理定義情報記憶部２４０を備える。図１に示した構成と実質的に同一の構成については、同様の符号を付与し、説明を省略する。
【０１１７】
処理定義情報記憶部２４０は、処理定義情報を記憶する。処理定義情報は、ログ分析部１４０が分析した結果に基づいて処理実行部１６０が実行する処理を定義する情報である。
【０１１８】
図１６は、処理定義情報記憶部２４０が記憶する処理定義情報の一例を説明する図である。図１６に示すように、処理定義情報は、条件(condition)とアクション(action)との組によって構成される。条件は、対応するアクションが実行されるための条件を定義する。アクションは、対応する条件が満たされた場合に、処理実行部１６０が実行する動作を定義する。
【０１１９】
図１６において、ＩＤ＝１で識別される処理定義情報は、ログ分析部１４０が、集合ＩＤ１に分類されるログメッセージを検出した場合、処理実行部１６０が、「管理者に通知する」という処理を実行することを定義する。図１６において、ＩＤ＝２で識別される処理定義情報は、ログ分析部１４０が、異常なログメッセージを検出した場合、処理実行部１６０が、「管理者に通知し、アラームを出す」という処理を実行することを定義する。図１６において、ＩＤ＝３で識別される処理定義情報は、ログ分析部１４０が「Connection error」を示すログメッセージを検出した場合、処理実行部１６０はそれを「通知しない」ことを定義する。図１６において、ＩＤ＝４で識別される処理定義情報は、ログ分析部１４０が「20:00:01-06:59:59」に出力されたログメッセージを検出した場合、処理実行部１６０はそれを「07:00:00にまとめて通知」する処理を実行することを定義する。
【０１２０】
なお、処理定義情報は正規表現を用いて記述されていてもよい。また、処理定義情報を構成するアクションは、機械的に実行可能なスクリプトやコマンドでもよい。
【０１２１】
処理実行部１６０は、ログ分析部１４０が分析した結果に応じて、処理定義情報が定義する処理を実行する。
【０１２２】
図１７は、ログ分析システム１００Ａがログメッセージを分析する動作を説明するフローチャートである。図１７に示したステップＳ２０１からＳ２０５までの動作は、図１３に示したステップＳ２０１からＳ２０５までの動作と同様であるので、説明を省略する。
【０１２３】
ログ分析部１４０が分析対象のログメッセージを分類した結果に応じて、処理実行部１６０は、処理定義情報が定義する処理を実行する（ステップＳ３０１）。
【０１２４】
[第２の実施形態が奏する効果の説明]
第２の実施形態にかかるログ分析システム１００Ａは、ログ分析部１４０が分析した結果に応じて、適切な処理を自動で実行することができる。その理由は、ログ分析システム１００Ａは、処理実行部１６０を備えるからである。
【０１２５】
＜第３の実施形態＞
図１８は、第３の実施形態にかかるログ分析システム１００Ｂの構成を説明するブロック図である。図１８に示すように、ログ分析システム１００Ｂは、特徴ベクトル算出手段１２０Ｂと、ログ分析手段１４０Ｂとを備える。
【０１２６】
特徴ベクトル算出手段１２０Ｂは、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに、所定の文字列が含まれているか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出する。この所定の文字列は、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて選択される文字列である。
【０１２７】
ログ分析手段１４０Ｂは、特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析する。
【０１２８】
[第３の実施形態が奏する効果の説明]
第３の実施形態にかかるログ分析システム１００Ｂは、ログメッセージを適切に分類することができる。
【０１２９】
＜その他の実施形態＞
ステップＳ１１２に示した動作における、分類指標の他の具体例について説明する。
【０１３０】
分類指標は、集合に属する特徴ベクトルの平均値、最頻値、中央値、あるいは集合の分散、集合に属する特徴ベクトルの個数など、分類指標は、集合に属する一つまたは複数の特徴ベクトルそのものであってもよい。
【０１３１】
分類指標算出部１３０は、ある集合に属する一つまたは複数の特徴ベクトルを代表する代表ベクトルを算出し、当該代表ベクトルを分類指標としてもよい。代表ベクトルの各要素を表す値は、例えば、集合に属する複数の特徴ベクトルの各要素を表す値の代表値（すなわち、平均値、最頻値、中央値または分散値など）である。
【０１３２】
ステップＳ２０５に示した動作において、ログ分析部１４０は、必ずしも距離に基づいてログメッセージを分類するとは限らない。例えばログ分析部１４０は、ログメッセージに対応する特徴ベクトルを集合に追加した場合の、分散や平均ベクトルなど集合の特徴を表現する統計量の変化量やその組み合わせにより算出可能な量などを判定基準として用いてもよい。
【０１３３】
これら判定基準およびその指標は図示しないファイルから読み込むよう構成してもよい。あるいは、ユーザが図示しない入力装置から直接入力するよう構成してもよい。
【０１３４】
上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０１３５】
各ブロック図に示したブロック分けは、説明の便宜上から表された構成である。各実施形態を例に説明された本発明は、その実装に際して、各ブロック図に示した構成には限定されない。
【０１３６】
また、ログ分析システムの動作の説明においては、複数の動作を順番に説明しているが、その複数の動作の順番は支障のない範囲で変更することができる。また、これら複数の動作は、それぞれ別々のタイミングで実行されるとは限らない。たとえば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に或いは全部において重複したりしてもよい。
【０１３７】
さらに、各動作の説明においては、発明の理解を容易にするため、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。
【０１３８】
以上、本発明を実施するための形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【産業上の利用可能性】
【０１３９】
本発明は、情報処理システムや物理プラントなどを運用管理する技術に応用することができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は２０１３年１１月１２日に出願された日本出願特願２０１３−２３３９５４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１４０】
１      ＣＰＵ
２      メモリ
３      記憶装置
４      通信インターフェース
５      入力装置
６      出力装置
７      ドライブ装置
８      記憶媒体
１００      ログ分析システム
１００Ａ      ログ分析システム
１００Ｂ      ログ分析システム
１１０      ログ収集部
１２０      特徴ベクトル算出部
１２０Ｂ      特徴ベクトル算出手段
１２１      文字列抽出部
１２２      文字列集計部
１２３      基底ベクトル定義部
１２４      重み定義部
１２５      算出部
１３０      分類指標算出部
１４０      ログ分析部
１４０Ｂ      ログ分析手段
１５０      出力部
１６０      処理実行部
２１０      変換定義記憶部
２２０      ベクトル定義情報記憶部
２３０      分類定義情報記憶部
９００      分析対象システム
９１１      正常ログファイル
９１２      分析対象ログファイル
【図１】
2015072085.tif 000003
【図２】
2015072085.tif 000004
【図３】
2015072085.tif 000005
【図４】
2015072085.tif 000006
【図５】
2015072085.tif 000007
【図６】
2015072085.tif 000008
【図７】
2015072085.tif 000009
【図８】
2015072085.tif 000010
【図９】
2015072085.tif 000011
【図１０】
2015072085.tif 000012
【図１１】
2015072085.tif 000013
【図１２】
2015072085.tif 000014
【図１３】
2015072085.tif 000015
【図１４】
2015072085.tif 000016
【図１５】
2015072085.tif 000017
【図１６】
2015072085.tif 000018
【図１７】
2015072085.tif 000019
【図１８】
2015072085.tif 000020
【手続補正書】
【提出日】平成28年5月11日(2016.5.11)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
コンピュータに、
分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出する処理と、
前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析する処理と、
前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する処理と、
を実行させるプログラム。
【国際調査報告】
2015072085.tif 000021
2015072085.tif 000022