(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】ログ分析システム、ログ分析方法及びプログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20221129BHJP
【FI】
G06F11/34 176
(21)【出願番号】P 2020514870
(86)(22)【出願日】2018-04-19
(86)【国際出願番号】 JP2018016189
(87)【国際公開番号】W WO2019202711
(87)【国際公開日】2019-10-24
【審査請求日】2020-10-13
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100094112
【氏名又は名称】岡部 讓
(74)【代理人】
【識別番号】100106183
【氏名又は名称】吉澤 弘司
(72)【発明者】
【氏名】外川 遼介
【審査官】三坂 敏夫
(56)【参考文献】
【文献】国際公開第2017/154844(WO,A1)
【文献】国際公開第2015/072085(WO,A1)
【文献】国際公開第2017/037801(WO,A1)
【文献】米国特許出願公開第2017/0277997(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
11/28-11/36
(57)【特許請求の範囲】
【請求項1】
対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出する特徴抽出部と、
前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含
み、前記テキストログファイルとは別の情報である数値データに基づき、前記対象システムの状態を示すインデックスを生成するインデックス生成部と、
前記テキストログメッセージの第1の時刻における特徴量と、前記テキストログメッセージの第1の時刻とは異なる第2の時刻における特徴量との差分を抽出するログ比較部と、を備え
、
前記インデックス生成部は、前記差分をも用いて前記インデックスを生成する、ログ分析システム。
【請求項2】
前記特徴抽出部は、互いに独立な前記複数のテキストログメッセージの前記特徴を抽出し、
前記特徴抽出部は、任意の時間単位における前記テキストログメッセージの変動に関する前記特徴を抽出し、前記時間単位における複数の前記特徴を組み合わせた情報を出力する、請求項1に記載のログ分析システム。
【請求項3】
前記インデックス生成部は、前記特徴のそれぞれから変動幅を抽出し、時間毎の値を変動幅に基づき正規化する、請求項2に記載のログ分析システム。
【請求項4】
前記特徴抽出部は、前記テキストログメッセージの形式毎の頻度、異なる形式を持つ複数の前記テキストログメッセージの組み合わせ、異なる形式を持つ複数の前記テキストログメッセージの出現順序、前記テキストログメッセージの周期性及び前記テキストログメッセージの形式毎に含まれる変数の種類別出現頻度のうちの少なくともいずれかを前記テキストログメッセージの前記特徴として抽出する、請求項1~3のいずれか1項に記載のログ分析システム。
【請求項5】
前記インデックス生成部は、前記インデックスを一意に特定することが可能な指標に前記インデックスを変換する、請求項1~4のいずれか1項に記載のログ分析システム。
【請求項6】
前記インデックス生成部は、距離関数により表現される前記インデックス間の類似性に基づき、前記インデックスを前記指標に変換する、請求項
5に記載のログ分析システム。
【請求項7】
既知の前記インデックスを記憶するインデックス記憶部と、
新たに入力されたテキスト又は数値データに基づき生成された検索用の前記インデックスと、前記既知のインデックスとを照合し、照合結果を出力するインデックス照合部と、
を備える請求項1~6のいずれか1項に記載のログ分析システム。
【請求項8】
対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出し、
前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含
み、前記テキストログファイルとは別の情報である数値データに基づき、前記対象システムの状態を示すインデックスを生成
し、
前記テキストログメッセージの第1の時刻における特徴量と、前記テキストログメッセージの第1の時刻とは異なる第2の時刻における特徴量との差分を抽出し、
前記インデックスの生成は、前記差分をも用いて前記インデックスを生成する
ことを含む
ログ分析方法。
【請求項9】
コンピュータに、
対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出し、
前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含
み、前記テキストログファイルとは別の情報である数値データに基づき、前記対象システムの状態を示すインデックスを生成
し、
前記テキストログメッセージの第1の時刻における特徴量と、前記テキストログメッセージの第1の時刻とは異なる第2の時刻における特徴量との差分を抽出し、
前記インデックスの生成は、前記差分をも用いて前記インデックスを生成する
ことを含む
ことを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ログ分析システム、ログ分析方法に及び記録媒体に関する。
【背景技術】
【0002】
特許文献1には、ユーザ端末上でのユーザ操作の操作ログを収集し、その操作ログから特定の操作を抽出する等の、ユーザ端末上でなされたユーザ操作に関する検索技術が記載されている。特許文献1に記載の情報処理システムでは、ユーザ端末が、その端末で生成される操作ログから特徴量を生成し、特徴量が所定の条件を満たした場合に、情報分析装置に操作ログと特徴量とを送信する。情報分析装置は、操作ログに関する検索要求を受信した場合に、特徴量に基づいて操作ログを検索する。
【0003】
特許文献2には、複数のコンポーネントを含むシステムでのイベントの検出ルールを生成する検出ルール生成装置が記載されている。特許文献2に記載の装置は、システムのシステム構成情報及びシステムの履歴情報に基づいて、検出ルールを生成するために選択されるべき候補となる候補イベントを特定する。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第5677592号公報
【文献】特許第5274565号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
これら特許文献1、2に記載の技術は、システムが出力するテキストのログの一部を用いて既知のシステムの状態を示す特徴量又は検出ルールを生成することを目的とした技術である。そのため、分析の対象とするシステムの状態について、人手で事前に定義する必要がある。
【0006】
本発明は、対象システムの状態について人手で事前に定義する必要なく、システムの状態を示す情報を生成することができるログ分析システム、ログ分析方法及び記録媒体を提供することを1つの目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の側面は、対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出する特徴抽出部と、前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含む数値データに基づき、前記対象システムの状態を示すインデックスを生成するインデックス生成部と、を備えるログ分析システムである。
【0008】
本発明の第2の側面は、対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出し、前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含む数値データに基づき、前記対象システムの状態を示すインデックスを生成するログ分析方法である。
【0009】
本発明の第3の側面は、コンピュータに、対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出し、前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含む数値データに基づき、前記対象システムの状態を示すインデックスを生成することを実行させるプログラムが記録された記録媒体である。
【発明の効果】
【0010】
本発明によれば、対象システムの状態について人手で事前に定義する必要なく、システムの状態を示す情報を生成することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の第1の実施形態によるログ分析システムの構成を示すブロック図である。
【
図2A】本発明の第1の実施形態によるログ分析システムにより読み込まれるログファイルの一例を示す図である。
【
図2B】本発明の第1の実施形態によるログ分析システムにより読み込まれる数値データファイルの一例を示す図である。
【
図3】本発明の第1の実施形態によるログ分析システムにより読み込まれるログファイルのログフォーマットの一例を示す図である。
【
図4】本発明の第1の実施形態によるログ分析システムにより抽出される特徴情報の一例を示す図である。
【
図5】本発明の第1の実施形態によるログ分析システムにより生成されるインデックス情報の一例を示す図である。
【
図6】本発明の第1の実施形態によるログ分析システムの出力の一例を示す図である。
【
図7】本発明の第1の実施形態によるログ分析システムのハードウェア構成の一例を示すブロック図である。
【
図8】本発明の第1の実施形態によるログ分析システムのインデックスの生成に関する動作を示すフローチャートである。
【
図9】本発明の第1の実施形態によるログ分析システムのインデックスの照合に関する動作を示すフローチャートである。
【
図10】本発明の第2の実施形態によるログ分析システムの構成を示すブロック図である。
【
図11】本発明の第2の実施形態によるログ分析システムにより記憶されるシステム状態の一例を示す図である。
【
図12】本発明の第2の実施形態によるログ分析システムの出力の一例を示す図である。
【
図13】本発明の第3の実施形態によるログ分析システムの構成を示すブロック図である。
【
図14】本発明の第3の実施形態によるログ分析システムにより抽出される特徴情報の一例を示す図である。
【
図15】本発明の第4の実施形態によるログ分析システムの構成を示すブロック図である。
【
図16】本発明の他の実施形態によるログ分析システムの構成を示すブロック図である。
【発明を実施するための形態】
【0012】
<第1の実施形態>
本発明の第1の実施形態によるログ分析システム及びログ分析方法について
図1乃至
図9を用いて説明する。
【0013】
まず、本実施形態によるログ分析システムの構成について
図1乃至
図7を用いて説明する。
図1は、本実施形態によるログ分析システムの構成を示すブロック図である。
図2A及び
図2Bは、本実施形態によるログ分析システムにより読み込まれるログファイル及び数値データファイルそれぞれの一例を示す図である。
図3は、本実施形態によるログ分析システムにより読み込まれるログファイルのログフォーマットの一例を示す図である。
図4は、本実施形態によるログ分析システムにより抽出される特徴情報の一例を示す図である。
図5は、本実施形態によるログ分析システムにより生成されるインデックス情報の一例を示す図である。
図6は、本実施形態によるログ分析システムの出力の一例を示す図である。
図7は、本実施形態によるログ分析システムのハードウェア構成の一例を示すブロック図である。
【0014】
情報処理システムの運用保守においては、運用保守を行う者(以下、「管理者」と記載する)は、情報処理システムから出力される数値、テキスト等のログを分析し、情報処理システムの状態を判断する。ログの分析において、従来では、管理者がログを分析するためのルールを生成していた。しかし、情報処理システムから出力されるログのサイズが膨大になった結果、管理者がログを網羅的に分析するためのルールを定義することが困難になった。そのために、情報処理システムから出力されるログ分析を支援するための技術が要求されている。
【0015】
これに対して、本実施形態によるログ分析システムは、情報処理システムなどの対象システムから出力されたログファイルを取得し、ログファイルに含まれるログを分析する。情報処理システムは、例えば、サーバ、クライアント端末、ネットワーク機器その他の情報機器等の機器や、機器上で動作するシステム・ソフトウェア、アプリケーション・ソフトウェア等のソフトウェアにより構成される。なお、本実施形態によるログ分析システムは、情報処理システムのほか、あらゆる対象システムが出力するログを分析の対象とすることができる。
【0016】
テキストログファイル(以下、適宜「ログファイル」という。)は、複数のテキストログメッセージ(以下、適宜「ログメッセージ」という。)から構成される。言い換えると、ログファイルは複数のログメッセージの集合である。ログメッセージはログレコードとも呼ばれる。ログメッセージは、対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である。より具体的には、ログメッセージは、例えば、当該メッセージが出力された時刻、当該メッセージを一意に識別可能な識別子であるログID(Identification)、メッセージ本文、ログレベルなど、複数のログ要素により構成される。
【0017】
図2Aにログファイル及びログメッセージの一例を示す。ログファイルを構成するログメッセージは、日時などの時刻を示す時刻情報と、ログメッセージの意味を示すメッセージ本文とで構成されている。時刻情報は、例えば、年・月・日、月・日などを含む日付と、時・分・秒、時・分などを含む時刻との組み合わせ、又は日付及び時刻のうちのいずれか一方で構成されている。ログメッセージは、文字で表現され、空白、ドット、スラッシュなど任意の記号で意味を持った単語単位に分割することができる。
【0018】
図2Bに数値データファイル及び数値データの一例を示す。数値データファイルを構成する数値データは、対象システムに関する少なくとも1つの数値情報と、その数値情報が記録された時刻に関する時刻情報とで構成されている。数値データは、対象システムに関する時刻と当該時刻に記録された数値情報とを含んでいる。
図2Bに示す例では、数値データが、「Time」に対応する時刻情報に加え、CPU(Central Processing Unit)に関する「CPU」に対応する数値情報、及びメモリに関する「MEM」に対応する数値情報の2種類の数値情報を含んでいることを示している。
【0019】
図1に示すように、本実施形態によるログ分析システム10は、ファイル読み込み部12と、ログフォーマット判定部14と、フォーマット記憶部16とを備える。また、本実施形態によるログ分析システム10は、特徴抽出部18と、特徴記憶部20と、インデックス生成部22と、インデックス記憶部24と、インデックス照合部26とを備える。
【0020】
ファイル読み込み部12は、対象システムから出力された分析対象とするログファイルを読み込む。ファイル読み込み部12は、分析対象のシステムからログファイルを直接受信して読み込んでもよい。または、ファイル読み込み部12は、図示しない記憶部からログファイルを読み出して読み込んでもよい。あるいは、ファイル読み込み部12は、管理者からログファイルの入力を受け付けてログファイルを読み込んでもよい。
【0021】
ファイル読み込み部12は、例えば、読み込み対象とするログファイルの指定、ログを読み込む日時又は時刻範囲の指定など、読み込むログの範囲の指定を管理者から受け付けてもよい。あるいは、ファイル読み込み部12は、読み込んだログファイルの形式をログ分析システム10が分析しやすい形式に変換してもよい。この場合、ファイル読み込み部12は、例えば、ログの分析に必要な情報を定義した図示しないファイルを読み込み、そのファイルが定義する情報に従って、ログファイルの形式を変換することができる。
【0022】
また、ファイル読み込み部12は、ログファイルを出力する対象システムから出力された数値データファイルを読み込む。ファイル読み込み部12は、分析対象のシステムから数値データファイルを直接受信して読み込んでもよい。または、ファイル読み込み部12は、図示しない記憶部から数値データファイルを読み出して読み込んでもよい。あるいは、ファイル読み込み部12は、管理者から数値データファイルの入力を受け付けて数値データファイルを読み込んでもよい。
【0023】
フォーマット記憶部16は、フォーマット情報を記憶する。フォーマット情報とは、ログメッセージの構造を定義した情報である。
図3にフォーマット情報の一例を示す。フォーマット情報は、少なくとも識別IDとフォーマットとで構成された1個以上のフォーマットレコードを含む。識別IDは、フォーマットレコードを識別するために一意に定義される記号である。フォーマットは、ログメッセージの構造を正規化するためのルールである。
【0024】
図3に示すフォーマット情報の例では、
図2Aに示したログメッセージを構造化するためのルールであるフォーマットを簡単のために文字列で表現している。
図3に示すフォーマットにおいて、「(日時)」は、ログメッセージの当該箇所に日時を示す文字列が入ることを意味する。また、「(文字列)」は、ログメッセージの当該箇所に、何らかの文字列が入ることを意味する。また、「(数値)」は、ログメッセージの当該箇所に、数値情報が入ることを意味する。フォーマットは、計算機で処理可能な正規表現の形式で定義されてもよい。
【0025】
ログフォーマット判定部14は、ログファイルに含まれるログメッセージの構造、すなわちログメッセージの形式であるログフォーマットを判定する。ログフォーマット判定部14は、フォーマット記憶部16に記録されたフォーマット情報と、入力されたログメッセージとを比較する。比較の結果、ログメッセージと合致するフォーマット情報があった場合、ログフォーマット判定部14は、そのフォーマット情報に基づき、ログメッセージをフォーマット情報に合わせて正規化する。一方、合致するフォーマット情報がない場合、ログフォーマット判定部14は、入力されたログファイルのうち、既存のフォーマット情報に合致しないログメッセージの集合を抽出し、抽出したログメッセージの集合から新規のフォーマット情報を生成する。ログフォーマット判定部14は、生成した新規のフォーマット情報をフォーマット記憶部16に記憶させる。
【0026】
特徴抽出部18は、入力されたログファイル及び数値データファイルから、それらの特徴として複数の特徴量を含む特徴情報を抽出する。特徴抽出部18の詳細は後述する。
【0027】
特徴記憶部20は、特徴抽出部18により抽出された複数の特徴量を含む特徴情報を記憶する。
図4に特徴情報の一例を示す。
図4に示すように、特徴情報は、時刻情報及び少なくとも1つ以上の特徴量に関する情報を有する特徴レコードで構成されている。
図4に示す例では、特徴量として、2つの特徴量1、2が示されている。特徴量1は、フォーマット1001に対応するログメッセージの出現頻度である。特徴量2は、フォーマット2001とフォーマット2002とフォーマット2003とに対応するログメッセージの組み合わせの出現頻度である。また、当該時刻における特徴量1、2のそれぞれが数値で表現されている。例えば、時刻「12:00:00」では、フォーマット1001に相当するログメッセージが「10」件出力されていることが示されている。また同時刻「12:00:00」では、フォーマット2001とフォーマット2002とフォーマット2003とに対応するログメッセージがそれぞれ「1」件ずつ出力されたことが示されている。
【0028】
インデックス生成部22は、ログファイルの特徴、及び対象システムに関する時刻と当該時刻に記録された数値情報とを含む数値データに基づき、インデックスを生成する。インデックスとは、任意の時間区間における入力データの特徴を示す情報である。すなわち、インデックスは、任意の時間区間における対象システムの状態を示す情報である。インデックス生成部22の詳細は後述する。
【0029】
インデックス記憶部24は、インデックス生成部22により生成されたインデックスを含むインデックス情報を記憶する。
図5にインデックス情報の一例を示す。インデックス情報は、少なくともインデックスと時刻情報とを含む1個以上のインデックス情報レコードで構成されている。さらに、
図5に例示するインデックス情報レコードは、前記の情報に加えて、バイナリコードと参考情報とを含んでいる。インデックスは、複数の数値の組み合わせで表現されるシステムの状態を表現する情報である。時刻情報は、前記インデックスが出現した1つ以上の時刻を持つ。バイナリコードは、検索の効率化を目的としてインデックスを変換した値である。参考情報は、例えばそのインデックスに含まれる特徴量、ログメッセージなど、管理者又はユーザがインデックスを解釈するための情報である。
【0030】
インデックス照合部26は、検索用に新たに入力されたテキスト及び数値データから生成された検索用のインデックス情報と、インデックス記憶部24に記録された既知のインデックス情報とを比較する。インデックス照合部26は、検索用のインデックス情報と完全に合致する既知のインデックス情報があった場合に、そのインデックス情報に含まれるインデックス、時刻などの関連する情報を出力する。完全に合致するインデックス情報がない場合、インデックス照合部26は、類似する既知のインデックス情報を類似度などとともに出力する。インデックス照合部26の詳細は後述する。
【0031】
図6に完全合致の場合及び完全合致がない場合のインデックス照合部26の出力の例を示す。
図6に示すように、完全合致の場合には、合致した既知のインデックス情報に含まれるインデックス、時刻、参考情報が出力される。一方、完全合致がない場合には、類似する既知のインデックス情報に含まれるインデックス、時刻、参考情報が類似度とともに出力される。類似度は、既知のインデックス情報が検索用のインデックス情報と類似する程度を示している。
【0032】
上述した本実施形態によるログ分析システム10は、コンピュータ装置により構成することができる。
図7は、本実施形態によるログ分析システム10のハードウェア構成の一例を示している。
【0033】
図7に示すように、ログ分析システム10は、CPU(Central Processing Unit)102と、メモリ104と、記憶装置106と、通信インターフェース108とを備える。ログ分析システム10は、図示しない入力装置、出力装置などを備えていてもよい。なお、ログ分析システム10は、独立した装置として構成されてもよいし、他の装置と一体に構成されてもよい。
【0034】
通信インターフェース108は、データの送受信を行う通信部であり、有線通信および無線通信の少なくとも一方の通信方式を実行可能に構成される。通信インターフェース108は、該通信方式に必要なプロセッサ、電気回路、アンテナ、接続端子などを含む。通信インターフェース108は、CPU102からの信号に従って、該通信方式を用いてネットワークに接続され、通信を行う。通信インターフェース108は、例えば分析対象とするログファイル及び数値データファイルを外部のシステムから受信する。
【0035】
記憶装置106は、ログ分析システム10が実行するプログラム、プログラムによる処理結果のデータなどを記憶する。記憶装置106は、読み取り専用のROM(Read Only Memory)、読み書き可能のハードディスクドライブ、フラッシュメモリなどを含む。また、記憶装置106は、CD-ROM(Compact Disc Read Only Memory)等のコンピュータ読取可能な可搬記憶媒体を含んでもよい。メモリ104は、CPU102が処理中のデータや記憶装置106から読み出されたプログラムおよびデータを一時的に記憶するRAM(Random Access Memory)などを含む。
【0036】
CPU102は、処理に用いる一時的なデータをメモリ104に一時的に記録し、記憶装置106に記録されたプログラムを読み出し、該プログラムに従って該一時的なデータに対し種々の演算、制御、判別などの処理を実行する処理部としてのプロセッサである。また、CPU102は、記憶装置106に処理結果のデータを記録し、また通信インターフェース108を介して処理結果のデータを外部に送信する。
【0037】
CPU102は、記憶装置106に記録されたプログラムを実行することにより、
図1に示すファイル読み込み部12、ログフォーマット判定部14、特徴抽出部18、インデックス生成部22及びインデックス照合部26として機能する。実行に際して、CPU102は、通信インターフェース108、入力装置及び出力装置を適宜制御する。
【0038】
また、記憶装置106は、
図1に示すフォーマット記憶部16、特徴記憶部20及びインデックス記憶部24として機能する。
【0039】
ログ分析システム10が実行する通信は、例えばOS(Operating System)が提供する機能を使ってアプリケーションプログラムが通信インターフェース108を制御することによって実現される。入力装置は、例えば、キーボード、マウス又はタッチパネルである。出力装置は、例えばディスプレイである。ログ分析システム10は、1つの装置に限られず、2つ以上の物理的に分離した装置が有線又は無線で通信可能に接続されることによって構成されていてもよい。また、ログ分析システム10に含まれる各部は、それぞれ電気回路構成により実現されていてもよい。ここで、電気回路構成とは、単一のデバイス、複数のデバイス、チップセット又はクラウドを概念的に含む文言である。なお、ログ分析システム10及びその各機能ブロックのハードウェア構成は、上述した構成に限定されない。また、上述したハードウェア構成は、後述する他の実施形態によるログ分析システムにも適用可能である。
【0040】
なお、本実施形態および後述する各実施形態を例として説明されるログ分析システムは、かかる機能を実現するプログラムが格納されたコンパクトディスクなどの不揮発性の記憶媒体によっても構成される。記憶媒体が格納するプログラムは、例えばドライブ装置により読み出される。
【0041】
また、ログ分析システム10の少なくとも一部がSaaS(Software as a Service)形式で提供されてよい。すなわち、ログ分析システム10を実現するための機能の少なくとも一部が、ネットワーク経由で実行されるソフトウェアによって実行されてよい。
【0042】
次に、本実施形態によるログ分析システム10の動作についてさらに
図8及び
図9を用いて説明する。本実施形態によるログ分析システム10の動作は、インデックスの生成に関する動作と、インデックスの照合に関する動作との2つに大きく分けられる。
【0043】
はじめに、インデックスの生成に関する動作について
図8を用いて説明する。
図8は、本実施形態によるログ分析システム10のインデックスの生成に関する動作を示すフローチャートである。
【0044】
インデックスの生成に関する動作において、
図8に示すように、まず、ファイル読み込み部12は、分析対象とするシステムから入力されたログファイル及び数値データファイルを読み込む(ステップS100)。ファイル読み込み部12は、読み込んだログファイルを出力して、ログフォーマット判定部14に入力する。ログファイルの出力に際して、ファイル読み込み部12は、読み込んだログファイルを1行毎、又は有意な複数行のログメッセージを1つの集合として随時出力する。また、ファイル読み込み部12は、読み込んだ数値データファイルを出力して、特徴抽出部18に入力する。
【0045】
次いで、ログフォーマット判定部14は、ファイル読み込み部12から入力されたログファイルを構成する各ログメッセージと、フォーマット記憶部16に記憶された既知のフォーマット情報とを比較する(ステップS102)。これにより、ログフォーマット判定部14は、各ログメッセージと合致する既知のフォーマット情報があるか否かを判定する(ステップS104)。
【0046】
合致する既知のフォーマット情報がある場合(ステップS104、YES)、ログフォーマット判定部14は、ログメッセージに対して、当該ログメッセージに合致したフォーマット情報の識別IDを付与する(ステップS106)。
【0047】
一方、合致する既知のフォーマット情報がない場合(ステップS104、NO)、ログフォーマット判定部14は、ログメッセージを、未知フォーマットのログメッセージとして分類する(ステップS108)。
【0048】
ログフォーマット判定部14は、各ログメッセージについてステップS106又はS108が完了する毎に、入力されたログファイルと既知のフォーマット情報との比較が完了したか否かを判定する(ステップS110)。比較が完了していない場合(ステップS110、NO)、ログフォーマット判定部14は、ステップS100に戻り、ステップS100以降のステップを繰り返す。
【0049】
一方、比較が完了している場合(ステップS110、YES)、ログフォーマット判定部14は、未知フォーマットのログメッセージとして分類されたログメッセージがあるか否かを判定する(ステップS112)。未知フォーマットとして分類されたログメッセージがない場合(ステップS112、NO)、ログフォーマット判定部14は、前記識別IDを付与したログメッセージの集合を出力して、特徴抽出部18に入力する(ステップS120)。
【0050】
未知フォーマットとして分類されたログメッセージがある場合(ステップS112、YES)、ログフォーマット判定部14は、未知フォーマットとして分類されたログメッセージの集合からフォーマット情報を抽出する(ステップS114)。フォーマット情報の抽出には、例えば、クラスタリング、シーケンシャルパターンマイニングなどの既知の機械学習のアルゴリズムを利用することができる。また、フォーマット情報の抽出に際しては、管理者又はユーザが、ログに含まれるユーザ名、マシン名などの変数に関する任意の定義情報をログフォーマット判定部14に対して与えてもよい。
【0051】
一例として、異なる複数のフォーマットを持つログメッセージが混在していた場合、ログフォーマット判定部14は、次のようにしてフォーマットを抽出することができる。すなわち、まず、ログフォーマット判定部14は、クラスタリングにより各フォーマットに属するログメッセージを分類する。次いで、ログフォーマット判定部14は、分類したクラスタ内部で各ログメッセージに共通する文字列と、ログメッセージ間で異なる変動する文字列とを分離することで、フォーマットを抽出する。
【0052】
なお、上述の場合、ログフォーマット判定部14は、すべてのログメッセージのフォーマット判定を完了した時点(ステップS110、YES)で、未知フォーマットのログメッセージの集合からフォーマットを抽出している(ステップS114)。このほか、例えば、ログメッセージを逐次入力する場合やデータベースからログメッセージを読み込む場合は、ログフォーマット判定部14は、定期的に未知フォーマットのログメッセージの集合からフォーマットを抽出するよう動作してもよい。この場合、ログフォーマット判定部14は、任意の時間幅、又は未知フォーマットのログメッセージの数に基づき、ログメッセージの集合からフォーマットを抽出するよう動作することができる。
【0053】
次いで、ログフォーマット判定部14は、抽出した未知フォーマットの情報に識別IDを付与し、フォーマット記憶部16に記憶させる(ステップS116)。
【0054】
次いで、ログフォーマット判定部14は、未知フォーマットのログメッセージの集合に含まれる各ログメッセージに対して、フォーマット記憶部16に記憶させた識別IDを付与する(ステップS118)。次いで、ログフォーマット判定部14は、前記識別IDを付与したログメッセージの集合を出力して、特徴抽出部18に入力する(ステップS120)。
【0055】
次いで、特徴抽出部18は、ログフォーマット判定部14から入力された前記識別IDを有するログメッセージの集合と、ファイル読み込み部12から入力された数値データとから複数の特徴量を抽出する(ステップS122)。特徴抽出部18は、入力されたデータをモデル化するための既知の数値統計、機械学習等のアルゴリズムを特徴量抽出ルールとして一又は複数備えている。
【0056】
特徴抽出部18は、入力された前記識別IDを有するログメッセージの集合から一又は複数の特徴量を抽出する。抽出するログメッセージの特徴量としては、例えば、異なる識別IDを持つ複数のログメッセージの組み合わせ、異なる識別IDを持つ複数のログメッセージの出現順序、ログメッセージの周期性などがある。また、特徴量として、例えば、ログメッセージの識別ID毎に含まれる変数の出現頻度又は種類別出現頻度などがある。ここで、識別IDが異なるとは、ログフォーマットが異なることを意味し、識別ID毎とは、ログフォーマット毎であることを意味する。
【0057】
例えば、特徴抽出部18は、単位時間毎に、前記識別ID毎のログメッセージの出現頻度を集計する。特徴抽出部18は、前記出現頻度の値として、合計値、単純平均値、最大値、最小値、移動平均値などを用いることができる。さらに、特徴抽出部18は、前記単位時間当たりの識別ID毎のログメッセージの出現頻度の情報に対して、例えば、アプリオリアルゴリズム、LCM(Linear time Closed itemset Miner)などの頻出パターンマイニングのアルゴリズムを適用することができる。これにより、特徴抽出部18は、識別IDを持つ複数のログメッセージで構成されたログメッセージの組み合わせを求めることができる。また、特徴抽出部18は、前記単位時間当たりの識別ID毎のログメッセージの出現頻度の情報に対して、例えば、シーケンシャルパターンマイニングのアルゴリズムを適用することができる。これにより、特徴抽出部18は、識別IDを持つ複数のログメッセージで構成されたログメッセージの出力順序を求めてもよい。
【0058】
また、特徴抽出部18は、入力された数値データから一又は複数の特徴量を抽出する。抽出する数値データの特徴量としては、例えば、単位時間当たりの単純平均値、最大値、最小値、移動平均値、周波数などがある。
【0059】
なお、特徴抽出部18は、複数の特徴量を抽出するものであればよい。例えば、特徴抽出部18は、ログメッセージの集合から複数の特徴量を抽出するものであってもよいし、ログメッセージ及び数値データから複数の特徴量を抽出するものであってもよい。
【0060】
特徴抽出部18は、前記ログメッセージの特徴量及び前記数値データの特徴量を、任意の単位時間毎に抽出する。例えば、1分毎に特徴量を抽出する。
【0061】
さらに、特徴抽出部18は、抽出した特徴量を含む特徴情報を、インデックス生成部22に入力する。さらに、特徴抽出部18は、抽出した特徴量を含む特徴情報を、特徴量毎に特徴記憶部20に記憶させる。
【0062】
図4に特徴抽出部18により抽出された特徴量を含む特徴情報の一例を示す。前記特徴量は、単位時間毎に出力されており、それぞれが複数の特徴量で構成されている。
図4に示す例では、2種類の特徴量として、特徴量1であるフォーマット1001の出現頻度と、特徴量2であるフォーマット2001とフォーマット2002とフォーマット2003との組み合わせの出現頻度が定義されている。特徴量1、2は、それぞれ単位時間毎に、すなわち1分毎に出力されている。
【0063】
なお、上述の動作では、特徴抽出部18が任意の単位時間で特徴量を抽出しているが、これに限定されるものではない。例えば、特徴抽出部18は、1分、10分、1時間等の複数の時間幅で集計した値をそれぞれ出力してもよい。
【0064】
さらに、特徴抽出部18は、数値データを単位時間毎に分割したデータを、そのまま単位時間毎の特徴量として抽出して登録してもよい。
【0065】
次いで、インデックス生成部22は、特徴抽出部18により抽出された特徴量を含む特徴情報に基づき、インデックスを生成する(ステップS124)。
図4に例示するように、特徴抽出部18により抽出された前記単位時間毎の特徴量は、互いに異なる複数の特徴量を含んでいる。インデックス生成部22は、複数の特徴量を用いてインデックスを生成する。
【0066】
例えば、インデックス生成部22は、次のようにしてインデックスを生成することができる。すなわち、インデックス生成部22は、入力された特徴量のデータの全区間に対して、特徴量毎に値を正規化する。インデックス生成部22は、正規化した複数の単位時間当たりの特徴量の組み合わせをインデックスとして生成する。正規化の一例としては、インデックス生成部22は、特徴量毎に全区間の値の最大値、すなわち変動幅を抽出し、抽出した最大値で単位時間毎の値を除算した値をインデックスの値として用いることができる。例えば、
図4に示す例において、特徴量1の全区間における最大値が「100」であるとすると、時刻「12:00:00」において正規化された値は「0.1」となる。
【0067】
また、インデックス生成部22はインデックスの生成にニューラルネットワークを利用してもよい。ニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク(Convolutional Neural Network、CNN)、再帰型ニューラルネットワーク(Recurrent Neural Network、RNN)、オートエンコーダなどを利用することができる。
【0068】
さらに、インデックス生成部22は、上述のようにして生成したインデックス同士の類似性を判定し、重複するインデックスを排除することができる。その際、インデックス生成部22は、排除したインデックスが有していた時刻情報を、排除されなかったインデックスに付与することができる。例えば時刻「2017/09/26 11:30:00」と「2017/09/27 09:50:00」とが全く同一のインデックス「-1, 0.5, -0.2, 1」を有していた場合、後者のインデックス情報を削除し、前者の時刻情報に後者の時刻情報を追加することができる。
【0069】
さらに、インデックス生成部22は、生成したインデックスを、任意のアルゴリズムを用いてバイナリコードに変換することができる。バイナリコードは、「0」又は「1」の組み合わせで表現される複数桁のコードである。例えば、インデックス生成部22は、符号関数などの変換ルールにより例えば、「-1, 0.5, -0.2, 1」で表されるインデックスを「0101」で表されるバイナリコードに変換することができる。
【0070】
また、上述の例では、インデックスの桁数とバイナリコードの桁数とが互いに同一であったが、必ずしも両者の桁数が互いに同一である必要ない。例えば、インデックスをバイナリコードに変換する際、インデックス生成部22は、符号と値とを個別に表現することができる。この場合、インデックス生成部22は、「-1, 0.5, -0.2, 1」のインデックスを、符号と値とを個別に表現して「01110011」などのバイナリコードに変換することもできる。
【0071】
また、バイナリコードに変換する際の制約条件として、ユークリッド距離、マンハッタン距離などの距離関数によって表現可能なインデックス同士の類似性を用いてもよい。例えば、「-1, 0.5, -0.2, 1」、「-0.5, 1, 0.3, 1」及び「1, 0, 1, -1」の3種類のインデックスがあった場合を考える。「-1, 0.5, -0.2, 1」と「-0.5, 1, 0.3, 1」とのユークリッド距離は、約0.87である。一方、「-1, 0.5, -0.2, 1」と「1, 0, 1, -1」とのユークリッド距離は、約3.11である。このため、後者の組は、前者の組と比較してインデックス間の類似性が低いと判断することができる。このようなインデックス間の類似性の高低に応じて、バイナリコードの類似性も高低があるように、バイナリコードを定義することができる。その際、インデックス生成部22は、CNN、RNN、オートエンコーダなどのニューラルネットワークを用いてインデックスをバイナリコードに変換してもよい。
【0072】
また、インデックス生成部22は、別途定義される任意のハッシュ関数を用いて前記インデックスをハッシュ値に変換してもよい。
【0073】
また、インデックス生成部22は、インデックスを変換する指標として、上述したバイナリコードのほか、インデックスを一意に特定することが可能な指標であれば、種々の指標を採用することができる。例えば、インデックス生成部22は、インデックスを変換する指標としてビットマップなどを採用してもよい。
【0074】
また、上述の動作において、インデックス生成部22は、特徴抽出部18から出力された単位時間当たりの特徴量の組み合わせから、そのままインデックスを生成していたが、これに限定されるものではない。インデックス生成部22は、単位時間当たりの特徴量の組み合わせに対してさらに四則演算、平均、最大、最少などの統計処理を施した値を用いてインデックスを生成してもよい。例えば、インデックス生成部22は、特徴抽出部18が1分毎に抽出した特徴量をさらに10分毎の平均値として集計した値を用いてインデックスを生成してもよい。
【0075】
次いで、インデックス生成部22は、上述のようにして生成したインデックスを含むインデックス情報をインデックス記憶部24に記憶させる(ステップS126)。
【0076】
こうして、本実施形態によるログ分析システム10は、インデックスの生成に関する動作を終了する。
【0077】
次に、インデックスの照合に関する動作について
図9を用いて説明する。
図9は、本実施形態によるログ分析システム10のインデックスの照合に関する動作を示すフローチャートである。
【0078】
インデックスの照合に際しては、ログ分析システム10に対して、検索用に新たにテキスト及び数値データが入力される。入力されるテキストは、テキストログ自体であってもよいし、テキストログを構成しうるテキストであってもよい。また、テキスト又は数値データが入力されればよい。なお、検索用に新たに入力されたテキスト及び数値データから検索用のインデックスを生成する動作までは、前述の動作と同一であるため説明を省略する。
【0079】
まず、インデックス生成部22は、上述のように検索用に新たに入力されたテキスト及び数値データに基づき、検索用のインデックスを含む検索用のインデックス情報を生成する(ステップS200)。インデックス生成部22は、生成した検索用のインデックス情報をインデックス照合部26に入力する。なお、インデックス生成部22は、入力されたデータから所与の単位時間毎にインデックスを生成することができる。また、インデックス生成部22は、管理者又はユーザにより入力された任意の単位時間毎にインデックスを生成するように動作してもよい。
【0080】
次いで、インデックス照合部26は、インデックス生成部22から入力された検索用のインデックス情報と、インデックス記憶部24に記憶された既知のインデックス情報とを照合する(ステップS202)。照合に際して、インデックス照合部26は、例えば、単純なインデックス、又はインデックスが変換されたバイナリコード若しくはハッシュを比較することができる。これにより、インデックス照合部26は、検索用のインデックス情報と完全合致する既知のインデックス情報があるか否かを判定する(ステップS204)。
【0081】
完全に合致した既知のインデックス情報がある場合(ステップS204、YES)、インデックス照合部26は、照合結果として、完全合致した既知のインデックス情報を出力する(ステップS206)。
【0082】
一方、完全に合致した既知のインデックス情報がない場合(ステップS204、NO)、インデックス照合部26は、照合結果として、検索用のインデックス情報と類似する一又は複数の既知のインデックス情報をその類似度とともに出力する(ステップS208)。インデックス照合部26は、任意の関数を用いて計算される類似度が所与の閾値を超えた既知のインデックス情報のみを出力することができる。インデックス照合部26は、例えば、ユークリッド距離、マンハッタン距離などの距離関数を用いて、検索用のインデックス情報と既知のインデックス情報との類似度を計算することができる。
【0083】
なお、インデックス情報を出力する際、インデックス照合部26は、類似する既知のインデックス情報及びその類似度を類似度の降順に出力してもよい。また、インデックス照合部26は、完全合致又は類似した既知のインデックス情報に含まれる時刻情報に基づき、元のテキストログ及び数値データを参考情報として出力することもできる。また、インデックス照合部26は、例えば、類似する既知のインデックス情報をすべて出力し、閾値を超えた類似度を持つ既知のインデックス情報についてのみ、色を変更するなどの強調表示をしてもよい。
【0084】
こうして、本実施形態によるログ分析システム10は、インデックスの照合に関する動作を終了する。
【0085】
上述のように、本実施形態によるログ分析システム10は、入力されたテキストのログ及び数値データを異なる複数の観点でモデル化し、モデル化した情報を統合したインデックスを生成する。こうして生成したインデックスに基づき、これにより、本実施形態によるログ分析システム10は、任意の時刻のシステムの状態を同定することができる。
【0086】
さらに、本実施形態によるログ分析システム10は、複数の観点のモデル又は生の数値データを組み合わせた過去のインデックスを用いることにより、システムの状態を示す特徴量の情報の欠損を低減し、さらには最小化することができる。本実施形態では、システムの状態の分析において重要となる数値データをテキストログとともに扱うことができる。
【0087】
また、本実施形態によるログ分析システム10は、インデックス情報をバイナリコード又はハッシュ値に変換することで、大量のテキストログ及び数値データを有するシステムであっても高速かつ効率的にシステム状態の同定することができる。
【0088】
こうして、本実施形態によれば、対象システムの状態に関する情報及び構成情報を事前に与えることなく、テキストログおよび数値データからシステムの状態を示す特徴量を情報の欠損を低減しつつ生成することができる。また、本実施形態によれば、対象システムの状態について人手で事前に定義する必要なく、システムの状態を示す情報を生成することができる。さらに、本実施形態によれば、生成した特徴量を用いてシステムの状態を同定することができる。
【0089】
なお、ファイル読み込み部12、ログフォーマット判定部14、フォーマット記憶部16、特徴抽出部18、特徴記憶部20、インデックス生成部22、インデックス記憶部24、インデックス照合部26は、種々のタイミングで動作を開始することができる。これら各部は、例えば、それぞれ図示しない入力装置から管理者又はユーザによるログ分析開始の命令を受信すること、他のプログラムやソフトウェアによるログ分析開始の命令を受信すること、ログファイルの入力、更新などを契機に動作を開始することができる。なお、後述する第2の実施形態におけるシステム状態照合部28及びシステム状態記憶部30、第3の実施形態におけるログ比較部32、並びに第4の実施形態におけるログ変換部34も、同様に動作を開始することができる。
【0090】
<第2の実施形態>
本発明の第2の実施形態によるログ分析システム及びログ分析方法について
図10乃至
図12を用いて説明する。なお、上記第1の実施形態によるログ分析システム及びログ分析方法と同様の構成要素については同一の符号を付し説明を省略し又は簡略にする。
【0091】
まず、本実施形態によるログ分析システムの構成について
図10を用いて説明する。
図10は、本実施形態によるログ分析システム210の構成を示すブロック図である。
【0092】
本実施形態によるログ分析システム210の基本的構成は、第1の実施形態によるログ分析システム10の構成とほぼ同様である。本実施形態によるログ分析システム210は、第1の実施形態によるログ分析システム10の構成に加えて、システム状態照合部28と、システム状態記憶部30とを備える。
【0093】
システム状態記憶部30は、当該システムにおいて過去のシステム状態とそれに関連する時刻とを記憶する。
図11にシステム状態の一例を示す。システム状態としては、特に限定されるものではないが、
図11に示すように、例えば、スイッチの故障を示す「スイッチ故障」、ネットワークの障害を示す「NW障害」、ハードディスクの故障を示す「HDD故障」等が記憶される。
【0094】
システム状態照合部28は、上記第1の実施形態において説明したインデックス照合部26による照合の結果として出力された過去のインデックス情報に含まれる時刻に基づき、システム状態記憶部30の情報を検索する。さらに、システム状態照合部28は、情報を検索した結果、システム状態記憶部30に記憶された当該時刻に関連するシステム状態を出力する。
【0095】
なお、本実施形態によるログ分析システム210は、第1の実施形態によるログ分析システム10と同様に
図7に示すハードウェア構成を採ることができる。この場合、CPU102は、記憶装置106に記録されたプログラムを実行することにより、
図10に示すシステム状態照合部28としても機能する。また、記憶装置106は、
図10に示すシステム状態記憶部30としても機能する。
【0096】
次に、本実施形態によるログ分析システム210の動作についてさらに
図12を用いて説明する。
図12は、本実施形態によるログ分析システムの出力の一例を示す図である。なお、インデックス照合部26までの動作は、第1の実施形態によるログ分析システム10における当該要素の動作と同一であるため説明を省略する。
【0097】
システム状態照合部28は、インデックス照合部26から出力される照合結果に基づき、システム状態記憶部30を検索して、照合結果と合致するシステム状態を出力する。例えば、インデックス照合部26の照合結果として、時刻として「2017/08/30 13:45:00」を含む既知のインデックス情報が得られた場合、システム状態照合部28は、この時刻をキーとしてシステム状態記憶部30を検索する。システム状態記憶部30に当該時刻を含むシステム状態が記録されていた場合、システム状態照合部28は、当該システム状態を出力する。
【0098】
一方、システム状態記憶部30に当該時刻を含むシステム状態が記録されていない場合、システム状態照合部28は、合致する過去のシステム状態がない旨を示す照合結果を出力する。
【0099】
また、インデックス照合部26は、類似度とともに複数の既知のインデックス情報を出力する場合がある。この場合、システム状態照合部28は、それぞれに合致するシステム状態の有無を検索する。さらに、システム状態照合部28は、合致結果を類似度に基づき並び替えて出力する。
【0100】
図12にシステム状態照合部28の出力の一例を示す。
図12に示す場合、システム状態としては、当該システムで過去に発生した障害情報が登録されている。なお、これらのシステム状態はあくまでも例示であり、任意のテキストログメッセージと数値データの組み合わせによって定義可能な状態であれば、いかなる状態をもシステム状態とすることができる。システム状態としては、歩行、着席などの運動状態の変化といったユーザの行動や、工場の作業員による物理システムの操作及びその影響を例示することができる。また、システム状態として、社員の作業効率や集中度合いといった労働生産性又は精神状態を例示することができる、さらに、システム状態として、営業員の契約成否、会社の経営、会社の財務状況を例示することができる。
【0101】
上述のように、本実施形態によるログ分析システム210では、インデックス照合部26が、入力データと合致又は類似する状態であった時刻情報を出力する。また、システム状態照合部28が、出力された時刻情報に基づきシステム状態記憶部30に記憶されたシステム状態を検索し、合致したシステム状態を出力する。
【0102】
こうして、本実施形態によれば、ユーザが特定のシステム状態に関するテキストログ及び数値データに関するルールを定義することなく、入力されたテキストログ及び数値データに関連する過去のシステム状態を出力することができる。
【0103】
<第3の実施形態>
本発明の第3の実施形態によるログ分析システム及びログ分析方法について
図13及び
図14を用いて説明する。なお、上記第1及び第2の実施形態によるログ分析システム及びログ分析方法と同様の構成要素については同一の符号を付し説明を省略し又は簡略にする。
【0104】
まず、本実施形態によるログ分析システムの構成について
図13を用いて説明する。
図13は、本実施形態によるログ分析システム310の構成を示すブロック図である。
【0105】
本実施形態によるログ分析システム310の基本的構成は、第1の実施形態によるログ分析システム10の構成とほぼ同様である。本実施形態によるログ分析システム310は、第1の実施形態によるログ分析システム10の構成に加えて、ログ比較部32を備える。
【0106】
ログ比較部32は、特徴抽出部18により抽出された過去のログメッセージの特徴量と、ログ分析システム310に新たに入力されたデータに含まれるログメッセージの特徴量との差分を差分情報として抽出する。すなわち、ログ比較部32は、ログメッセージの第1の時刻における特徴量と、ログメッセージの第1の時刻とは異なる第2の時刻における特徴量との差分を差分情報として抽出する。
【0107】
なお、本実施形態によるログ分析システム310は、第1の実施形態によるログ分析システム10と同様に
図7に示すハードウェア構成を採ることができる。この場合、CPU102は、記憶装置106に記録されたプログラムを実行することにより、
図13に示すログ比較部32としても機能する。
【0108】
次に、本実施形態によるログ分析システム310の動作についてさらに
図14を用いて説明する。
図14は、本実施形態によるログ分析システムにより抽出される特徴情報の一例を示す図である。なお、以下では、第1の実施形態によるログ分析システム10の動作との差異のみ説明する。
【0109】
ログ比較部32は、ログ分析システム310に新たに入力されたデータに含まれるログメッセージの特徴量と、特徴記憶部20に記憶された過去のログメッセージの特徴量とを比較し、両特徴量の差分を差分情報として抽出する。
【0110】
例えば、ログ比較部32は、ログメッセージの特徴量として、識別ID毎のログメッセージの出現頻度を比較することができる。この場合、ログ比較部32は、過去の出現頻度の最大値若しくは最小値、又は標準偏差から算出される範囲から外れた時刻又は値を差分情報として抽出することができる。
【0111】
また、例えば、ログ比較部32は、ログメッセージの特徴量として、識別IDを持つ複数のログメッセージで構成されたログメッセージの出力順序を比較することができる。この場合、ログ比較部32は、過去の出力順序と一致しないログメッセージの組み合わせの数及び一連のログメッセージが含まれている時間範囲を差分情報として抽出することができる。
【0112】
また、例えば、ログ比較部32は、ログメッセージの特徴量として、任意の時間幅において出力されたログと、フォーマット記憶部16に記録されたフォーマットとを比較することができる。この場合、ログ比較部32は、フォーマットと一致しないログメッセージの数及びフォーマットと一致しないログメッセージが含まれる時間範囲を差分情報として抽出することができる。また、時間範囲を一定の幅で分割するようユーザが任意に定義してもよい。
【0113】
さらに、ログ比較部32は、抽出した差分情報を、特徴抽出部18が出力する特徴情報に付加して、インデックス生成部22に入力する。
図14に特徴抽出部18及びログ比較部32から出力される特徴情報の一例を示す。
【0114】
インデックス生成部22は、第1の実施形態による特徴抽出部18から入力される特徴情報に加え、ログ比較部32から入力される差分情報を合わせてインデックスを生成する。インデックス生成部22は、差分情報を特徴量の1つとして取り扱って、上記と同様にインデックスを生成することができる。
【0115】
例えば、
図14に示すように、インデックス生成部22は、第1の実施形態による特徴抽出部18から入力されるフォーマット1001の出現頻度を意味する特徴量1とフォーマット2001と2002と2003の組み合わせの出現頻度を意味する特徴量2と、ログ比較部32から入力されるフォーマットと一致しないログメッセージの数及び当該ログメッセージが含まれる時間範囲の差分情報に対応する特徴量3とを合わせてインデックスを生成することができる。
【0116】
本実施形態によるログ分析システム310は、特徴記憶部20に記憶されたログの特徴情報をシステムの定常状態の振る舞いとみなし、そこからの差分を別の要素としてログの特徴およびインデックスに加える。これにより、本実施形態によるログ分析システム310は、定常と非定常という2つの要素を含むインデックスを生成、比較することができる。
【0117】
こうして、本実施形態によれば、ユーザがシステムの定常的な状態を定義することなく、システムの非定常的な振る舞いと定常的な振る舞いとを考慮したシステム状態のデータベースを作成し、検索することができる。
【0118】
<第4の実施形態>
本発明の第4の実施形態によるログ分析システム及びログ分析方法について
図15を用いて説明する。なお、上記第1乃至第3の実施形態によるログ分析システム及びログ分析方法と同様の構成要素については同一の符号を付し説明を省略し又は簡略にする。
【0119】
まず、本実施形態によるログ分析システムの構成について
図15を用いて説明する。
図15は、本実施形態によるログ分析システム410の構成を示すブロック図である。
【0120】
本実施形態によるログ分析システム410の基本的構成は、第1の実施形態によるログ分析システム10の構成とほぼ同様である。本実施形態によるログ分析システム410は、第1の実施形態によるログ分析システム10の構成に加えて、ログ変換部34を備える。
【0121】
ログ変換部34は、ログフォーマット判定部14によるログフォーマットの判定結果に基づき、前記識別ID毎に頻度の時系列分布を生成する。また、ログ変換部34は、特徴抽出部18により抽出された特徴量毎に頻度の時系列分布を生成する。
【0122】
なお、本実施形態によるログ分析システム410は、第1の実施形態によるログ分析システム10と同様に
図7に示すハードウェア構成を採ることができる。この場合、CPU102は、記憶装置106に記録されたプログラムを実行することにより、
図15に示すログ変換部34としても機能する。
【0123】
次に、本実施形態によるログ分析システム410の動作について説明する。なお、以下では、第1の実施形態によるログ分析システム10の動作との差異のみ説明する。
【0124】
ログ変換部34は、入力されたデータを数値の時系列分布へと変換する。より具体的には、例えば、ログ変換部34には、ログフォーマット判定部14から前記識別IDが付与されたログメッセージの集合が入力される。ログ変換部34は、入力された前記識別IDが付与されたログメッセージの集合に基づき、前記識別ID毎に頻度の時系列情報へと変換する。
【0125】
例えば、1分単位の数値時系列情報へ変換する場合、「2017/09/26 11:00:00」~「2017/09/26 11:00:59」に前記識別ID「1」のログメッセージが20件出力されていた場合、時刻「2017/09/26 11:00:00」における頻度は「20」となる。
【0126】
また、ログ変換部34は、特徴抽出部18から出力された特徴量の分布を同様に変換する。例えば、「2017/09/26 11:00:00」~「2017/09/26 11:00:59」に前記識別IDの出力順序「1、2、3」のログメッセージの組が10組存在していた場合、時刻「2017/09/26 11:00:00」における頻度は「10」となる。また、ログメッセージの組が2つの時刻にまたがる場合は、一連のログメッセージのうち最後のログメッセージが含まれる時刻に対して頻度を加算するものとすることができる。
【0127】
ログ変換部34は、上述のようにして所与の単位毎に頻度を集計した頻度の時系列情報を出力して、特徴抽出部18に入力する。
【0128】
特徴抽出部18は、第1の実施形態における特徴量に加え、ログ変換部34から入力された頻度の数値時系列情報同士、又は頻度の数値時系列情報と数値データとの相関関係をログの特徴量として抽出する。特徴抽出部18は、相関関係の抽出に際して、例えば、ARX(Auto-Regressive eXogenous)モデル、ルールマイニングなどの相関関係を抽出するための既知のアルゴリズムを利用することができる。
【0129】
本実施形態のように、頻度の時系列情報をも用いて、インデックスを生成するための特徴量を抽出することができる。
【0130】
[他の実施形態]
上記実施形態において説明したログ分析システムは、他の実施形態によれば、
図16に示すように構成することもできる。
図16は、他の実施形態によるログ分析システムの構成を示すブロック図である。
【0131】
図16に示すように、他の実施形態によるログ分析システム1000は、特徴抽出部1002と、インデックス生成部1004とを備える。特徴抽出部1002は、対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出する。インデックス生成部1004は、特徴、及び対象システムに関する数値情報と当該数値情報が記録された時刻とを含む数値データに基づき、対象システムの状態を示すインデックスを生成する。
【0132】
他の実施形態によるログ分析システム1000によれば、テキストログファイルの特徴及び数値データに基づき、対象システムの状態を示すインデックスを生成する。これにより、他の実施形態によれば、対象システムの状態について人手で事前に定義する必要なく、システムの状態を示す情報を生成することができる。
【0133】
[変形実施形態]
本発明は、上記実施形態に限らず、種々の変形が可能である。
【0134】
例えば、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【0135】
また、上述の各実施形態の機能を実現するように該実施形態の構成を動作させるプログラムを記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のコンピュータプログラムが記録された記録媒体はもちろん、そのコンピュータプログラム自体も各実施形態に含まれる。
【0136】
該記録媒体としては例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM(Compact Disc-Read Only Memory)、磁気テープ、不揮発性メモリカード、ROMを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、OS(Operating System)上で動作して処理を実行するものも各実施形態の範疇に含まれる。
【0137】
また、各ブロック図に示したブロック分けは、説明の便宜上から表された構成である。各実施形態を例に説明された本発明は、その実装に際して、各ブロック図に示した構成には限定されない。
【0138】
以上、本発明を実施するための形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【0139】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0140】
(付記1)
対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出する特徴抽出部と、
前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含む数値データに基づき、前記対象システムの状態を示すインデックスを生成するインデックス生成部と、
を備えるログ分析システム。
【0141】
(付記2)
前記特徴抽出部は、互いに独立な前記複数のテキストログメッセージの前記特徴を抽出し、
前記特徴抽出部は、任意の時間単位における前記テキストログメッセージの変動に関する前記特徴を抽出し、前記時間単位における複数の前記特徴を組み合わせた情報を出力する、付記1に記載のログ分析システム。
【0142】
(付記3)
前記インデックス生成部は、前記特徴のそれぞれから変動幅を抽出し、時間毎の値を変動幅に基づき正規化する、付記2に記載のログ分析システム。
【0143】
(付記4)
前記特徴抽出部は、前記テキストログメッセージの形式毎の頻度、異なる形式を持つ複数の前記テキストログメッセージの組み合わせ、異なる形式を持つ複数の前記テキストログメッセージの出現順序、前記テキストログメッセージの周期性及び前記テキストログメッセージの形式毎に含まれる変数の種類別出現頻度のうちの少なくともいずれかを前記テキストログメッセージの前記特徴として抽出する、付記1~3のいずれかに記載のログ分析システム。
【0144】
(付記5)
前記インデックス生成部は、前記インデックスを一意に特定することが可能な指標に前記インデックスを変換する、付記1~4のいずれかに記載のログ分析システム。
【0145】
(付記6)
前記インデックス生成部は、距離関数により表現される前記インデックス間の類似性に基づき、前記インデックスを前記指標に変換する、付記1~5のいずれかに記載のログ分析システム。
【0146】
(付記7)
既知の前記インデックスを記憶するインデックス記憶部と、
新たに入力されたテキスト又は数値データに基づき生成された検索用の前記インデックスと、前記既知のインデックスとを照合し、照合結果を出力するインデックス照合部と、
を備える付記1~6のいずれかに記載のログ分析システム。
【0147】
(付記8)
前記インデックス照合部による前記照合結果に基づき、前記対象システムのシステム状態を出力するシステム状態照合部、
を備える付記7に記載のログ分析システム。
【0148】
(付記9)
ログメッセージの第1の時刻における特徴量と、ログメッセージの第1の時刻とは異なる第2の時刻における特徴量との差分を抽出するログ比較部を備え、
前記インデックス生成部は、前記差分をも用いて前記インデックスを生成する、付記1~8のいずれかに記載のログ分析システム。
【0149】
(付記10)
形式毎の前記テキストログメッセージの集合を、頻度の時系列情報に変換するログ変換部を備え、
前記特徴抽出部は、前記頻度の時系列情報同士、又は前記頻度の時系列情報と前記数値データとの相関関係を前記特徴として抽出する、付記1~9のいずれかに記載のログ分析システム。
【0150】
(付記11)
対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出し、
前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含む数値データに基づき、前記対象システムの状態を示すインデックスを生成する
ログ分析方法。
【0151】
(付記12)
コンピュータに、
対象システムにおけるイベントと当該イベントが発生した時刻とが関連付けられた情報である複数のテキストログメッセージを含むテキストログファイルの特徴を抽出し、
前記特徴、及び前記対象システムに関する数値情報と当該数値情報が記録された時刻とを含む数値データに基づき、前記対象システムの状態を示すインデックスを生成する
ことを実行させるプログラムが記録された記録媒体。
【符号の説明】
【0152】
10、210、310、410、1000…ログ分析システム
12…ファイル読み込み部
14…ログフォーマット判定部
16…フォーマット記憶部
18…特徴抽出部
20…特徴記憶部
22…インデックス生成部
24…インデックス記憶部
26…インデックス照合部
28…システム状態照合部
30…システム状態記憶部
32…ログ比較部
34…ログ変換部
102…CPU
104…メモリ
106…記憶装置
108…通信インターフェース
1002…特徴抽出部
1004…インデックス生成部