特許第6626016号(P6626016)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧
<>
  • 特許6626016-照合装置、照合方法及び照合プログラム 図000002
  • 特許6626016-照合装置、照合方法及び照合プログラム 図000003
  • 特許6626016-照合装置、照合方法及び照合プログラム 図000004
  • 特許6626016-照合装置、照合方法及び照合プログラム 図000005
  • 特許6626016-照合装置、照合方法及び照合プログラム 図000006
  • 特許6626016-照合装置、照合方法及び照合プログラム 図000007
  • 特許6626016-照合装置、照合方法及び照合プログラム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6626016
(24)【登録日】2019年12月6日
(45)【発行日】2019年12月25日
(54)【発明の名称】照合装置、照合方法及び照合プログラム
(51)【国際特許分類】
   G06F 16/332 20190101AFI20191216BHJP
   G06F 11/07 20060101ALI20191216BHJP
【FI】
   G06F16/332
   G06F11/07 169
【請求項の数】7
【全頁数】13
(21)【出願番号】特願2017-2570(P2017-2570)
(22)【出願日】2017年1月11日
(65)【公開番号】特開2018-112867(P2018-112867A)
(43)【公開日】2018年7月19日
【審査請求日】2018年12月5日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】三浦 大樹
(72)【発明者】
【氏名】藤浦 豊徳
(72)【発明者】
【氏名】鎌田 哲彰
【審査官】 原 秀人
(56)【参考文献】
【文献】 特開2008−066903(JP,A)
【文献】 特開2013−061794(JP,A)
【文献】 特開2013−191243(JP,A)
【文献】 国際公開第2014/196129(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/30
G06F 11/00
(57)【特許請求の範囲】
【請求項1】
監視対象の複数の文字列をそれぞれルールとして記憶するとともに、前記ルールと照合対象の文字列との合致頻度を示すスコア及び前記ルールの照合順序を各ルールに対応付けて記憶する記憶部と、
入力されたログに含まれる照合対象の文字列と、前記ルールとが合致するか否かを、前記ルールの照合順序にしたがって照合する照合部と、
複数の前記ルールのうち、前記ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算するスコア加算部と、
前記ルールの照合順序を各ルールのスコアに基づいて並び替える並び替え部と、
を有することを特徴とする照合装置。
【請求項2】
前記並び替え部は、前記ルールの照合順序を前記スコアが高い順に並び替え、
前記照合部は、前記照合対象の文字列と、前記ルールとが合致するか否かを、前記ルールのスコアが高い順に照合することを特徴とする請求項1に記載の照合装置。
【請求項3】
前記ルールは、前記ログに含まれるキーワード或いは正規表現を指定する文字列であることを特徴とする請求項1または2に記載の照合装置。
【請求項4】
前記並び替え部は、任意のタイミングで前記ルールの照合順序を並び替えることを特徴とする請求項1〜3のいずれか一つに記載の照合装置。
【請求項5】
前記スコア加算部は、前記照合部の照合によって、前記ログに含まれる照合対象の文字列と任意の回数合致した前記ルールに対し、前記ルールのスコアに所定の値を加算することを特徴とする請求項1〜4のいずれか一つに記載の照合装置。
【請求項6】
監視対象の複数の文字列をそれぞれルールとして記憶するとともに、前記ルールと照合対象の文字列との合致頻度を示すスコアを各ルールに対応付けて記憶する記憶部を有する照合装置が実行する照合方法であって、
入力されたログに含まれる照合対象の文字列と、前記ルールとが合致するか否かを、前記ルールの照合順序にしたがって照合する工程と、
複数の前記ルールのうち、前記ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算する工程と、
前記ルールの照合順序を各ルールのスコアに基づいて並び替える工程と、
を含んだことを特徴とする照合方法。
【請求項7】
コンピュータを、請求項1〜5のいずれか一つに記載の照合装置として機能させるための照合プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、照合装置、照合方法及び照合プログラムに関する。
【背景技術】
【0002】
従来、システム監視方法の一つとして、障害を検知するためにログを監視するログ監視方法が用いられている。このログ監視方法では、ネットワーク(NW)機器やサーバ上のOS(Operating System)、ミドルウェア、アプリケーション等のソフトウェアが出力するログを常時監視している。ここで、このログ監視方法では、障害自体や障害発生後の動作、障害に関連すると判断したログが出力されたことを発見するために、予め定めた正規表現で書かれたルールと監視対象の機器が出力する各ログとを照合し,合致した場合に障害が発生した旨を運用者に通知することが一般的である。
【0003】
これらのルールは、ログに含まれるキーワードや正規表現を指定することが多く、市中の監視システムもこの機能を備える。そして、ルールは、機器の種類、ソフトウェアの種類、障害の種類ごとに異なるため、複数指定されている。ログとルールとの照合は、ログ1行ごとに複数のルールのそれぞれに対して実行される。ここで、ルールの照合順序は、ルールの登録順序にしたがうことが一般的である(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】rewrite_tag_filter Output Plugin、[online]、[平成28年12月22日検索]、インターネット<URL:http://docs.fluentd.org/articles/out_rewrite_tag_filter>
【発明の概要】
【発明が解決しようとする課題】
【0005】
監視に用いられるルールは、個々の機器、OS、ミドルウェア、アプリケーション毎に異なり、新たな事象が発生する度に追加される。また、対象の機器が増加すると照合するログの量も増加する。
【0006】
したがって、ログ監視方法では、ルール数が多くなると、1行のログに対する照合回数が増加するため、1行のログの照合に要する時間が増加する。このため、ログ監視方法では、監視のリアルタイム性が失われてしまい、障害に関連するログの検知が遅れてしまう。
【0007】
すなわち、従来の方法では、ログ監視のフィルタリングの負荷が、ルール数とログ数とに依存して増加するため、これらが増えると実時間での障害検知が困難になるという問題があった。
【0008】
本発明は、上記に鑑みてなされたものであって、システム監視のためにログを監視する場合に、ログ数及びルール数が多い場合であっても、障害に関連するログ検知の遅延を低減できる照合装置、照合方法及び照合プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の照合装置は、監視対象の複数の文字列をそれぞれルールとして記憶するとともに、ルールと照合対象の文字列との合致頻度を示すスコア及びルールの照合順序を各ルールに対応付けて記憶する記憶部と、入力されたログに含まれる照合対象の文字列と、ルールとが合致するか否かを、ルールの照合順序にしたがって照合する照合部と、複数のルールのうち、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算するスコア加算部と、ルールの照合順序を各ルールのスコアに基づいて並び替える並び替え部と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、システム監視のためにログを監視する場合に、ログ数及びルール数が多い場合であっても、障害に関連するログ検知の遅延を低減できる。
【図面の簡単な説明】
【0011】
図1図1は、本実施の形態に係る照合装置の構成を示すブロック図である。
図2図2は、ログ群のデータ構成の一例を示す図である。
図3図3は、図1に示すルール群のデータ構成の一例を示す図である。
図4図4は、図1に示す照合装置によるルール群を用いた入力ログ群の照合の流れについて説明する図である。
図5図5は、図1に示す照合装置によるルール群を用いた入力ログ群の照合処理の処理手順を示すフローチャートである。
図6図6は、図2に示すログと図3に示すルール群に対して、ルールの登録順に照合処理を行った場合と、本実施の形態を適用して照合処理を行った場合の照合内容を示す図である。
図7図7は、プログラムが実行されることにより照合装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0013】
[実施の形態]
本発明の実施の形態について説明する。本発明の実施の形態では、入力されたログに含まれた照合対象の文字列と、監視対象の複数の文字列であるルールとが合致するか否かを照合する照合装置、照合方法及び照合プログラムについて説明する。まず、実施の形態における照合装置の概略について説明する。
【0014】
[照合装置の構成]
図1は、本実施の形態に係る照合装置の構成を示すブロック図である。図1に示すように、照合装置10は、入力部11、通信部12、記憶部13、制御部14及び出力部15を有する。
【0015】
入力部11は、照合装置10の操作者からの各種操作を受け付ける入力インタフェースである。例えば、入力部11は、タッチパネル、音声入力デバイス、キーボードやマウス等の入力デバイスによって構成される。
【0016】
通信部12は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部12は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部14との間の通信を行う。例えば、監視対象のログ群は、通信部12を介して、他の装置等から制御部14に入力される。この監視対象のログ群は、NW機器やサーバ上のOS、ミドルウェア、アプリケーション等のソフトウェアが出力するログである。
【0017】
このログ群のデータ形式について説明する。図2は、ログ群のデータ構成の一例を示す図である。図2のログ群L1に示すように、ログ群は、ログ1行ごとに、出力順序を示す通番が付されたものである。このログは、NW機器やサーバ上のOS、ミドルウェア、アプリケーション等のソフトウェアから出力された、アプリケーションや制御の規格の種別や動作を示す文字列を含む。
【0018】
図2に示すように、ログ群L1は、各行に示されたそれぞれのログに、出力順が分かる通番が付加されたデータ形式を有する。例えば、ログ群L1の1行目には、このログが1行目であることを示す「通番1」と、「ACPI:FACS 000000002fff0200 00040」と記録されたログが示されている。なお、この「通番1」のログでは、電力制御の規格の一つである「ACPI」において、「FACS(Firmware ACPI Control Structure)」と呼ばれるBIOS(Basic Input Output System)とのやりとりに使うメモリの位置が指し示されており、この位置にデータを記載したことを示している。また、ログ群は、各ログの出力順序が分かるデータ形式であれば足り、図2のログ群L1のデータ形式に限らず、出力された順番に各ログが記録されたデータ形式であってもよい。
【0019】
記憶部13は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、照合装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部13は、ルール群131、スコア加算条件132及び並び替え条件133を記憶する。
【0020】
ルール群131は、複数のルールを含む。ルールは、監視対象の複数の文字列であり、ログに含まれるキーワード或いは正規表現を指定する文字列である。ルールは、機器の種類、ソフトウェアの種類、障害の種類ごとに異なる。そして、ルールの照合順序は、ルールに対応付けて記憶部13に記憶されている。具体的には、ルールは、照合順に配列する。そして、ルール群131は、ルールと照合対象の文字列との合致頻度を示すスコア及びルールの照合順序が、各ルールに対応付けられたものである。スコアは、スコア加算部142(後述)によって値が加算される。ルール群131のルールの照合順序は、並び替え部143(後述)によって並び替えられる。
【0021】
図3は、図1に示すルール群131のデータ構成の一例を示す図である。図3のルール群R1に示すように、ルール群131は、各ルールに、それぞれ、通番が付与されるとともに、スコアが対応付けられるデータ形式を有する。各ルールは、照合順に配列している。
【0022】
図3に示すルール群R1は、初期状態のルール群に対応し、通番にしたがって、各ルールを配列しており、スコアはいずれも「0」に初期化されている。例えば、ルール群131では、1行目には、ルール「^kdump:FAILED$」が示され、通番「1」が付与されている。このルール「^kdump:FAILED$」は、Linux(登録商標)Kernelクラッシュ時にダンプを取得するサービス「kdump」を示す文字列と、サービス提供時での「FAILED(不成功)」を示す文字列とをキーワードとしたものである。そして、2行目には、電力制御の規格の一つであるACPIの動作状態に関するルール「^ACPI:FACS \[\da-f\]+\d+$」が示され、通番「2」が付与されている。さらに、3行目には、セキュアOS機能であるSELinuxに関するルール「^SELinux:\s+$」が示され、通番「3」が付与されている。
【0023】
スコア加算条件132は、スコア加算部142によるスコアの算定式などである。例えば、スコア加算条件132の一例として、例えば、照合部141(後述)において、ルールとログとが1回合致するごとに、このルールのスコアに任意の値を加算する、という条件が挙げられる。或いは、スコア加算条件132の他の例として、照合部141(後述)において、ルールとログとが任意の回数合致したときに、このルールのスコアに任意の値を加算する条件が挙げられる。このスコア加算条件132は、予め定められたものであり、また、監視過程における照合結果に応じて適宜変更されてもよい。また、スコア加算条件132は、各ルールのスコアを、例えば、ログ群の入力時に初期化する条件も含む。
【0024】
並び替え条件133は、ルール群131の各ルールの並び替えのタイミング条件を示すものである。並び替え条件133は、任意に設定することができる。例えば、並び替え条件133として、並び替えに要する時間を考慮したタイミングが設定できるように、照合装置10では、並び替えに要する時間と、照合に要する時間とのトレードオフを調節できるように、並び替え条件133を任意に設定することが可能である。具体的には、並び替え条件として、照合部141(後述)において、ルールとログに含まれる照合対象の文字列とが任意の回数合致するごとにルールの並び替えを実行する条件が設定されている。また、並び替え条件として、照合部141(後述)において、任意の数の行のログに対して照合を行った場合に、ルールの並び替えを実行する条件が設定されている。
【0025】
この並び替え条件133における並び替えタイミングは、ルールの並び替えによって照合処理を短縮できる短縮時間と、並び替えに要する時間とを比較することによって設定される。例えば、ルールの並び替えによって照合処理を短縮できる短縮時間よりも、並び替えに要する時間の方が短い場合には、並び替えタイミングを高頻度に設定し、逆の場合には、並び替えタイミングを低頻度に設定する。
【0026】
制御部14は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部14は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。制御部14は、照合部141、スコア加算部142及び並び替え部143を有する。
【0027】
照合部141は、照合対象のログ群と、ルール群131とを入力とする。照合部141は、ログの照合対象行に含まれる照合対象の文字列と、ルールとが合致するか否かを、ルールの照合順序にしたがって照合する。照合部141は、並び替え部143によって並び替えられた照合順序にしたがって照合する。具体的には、照合部141は、照合対象の文字列とルールとが合致するか否かを、ルールのスコアが高い順に照合する。照合部141は、ログ1行ごとに、複数のルールのそれぞれを照合順に比較していく。そして、照合部141は、ログの照合対象行に含まれる照合対象の文字列と、ルールとが合致した場合、該ルールに関する障害等が発生した旨を、出力部15(後述)を介して、照合装置10の運用者に通知する。
【0028】
スコア加算部142は、照合部141の照合によって、複数のルールのうち、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算する。スコア加算部142は、スコア加算条件132にしたがって、ルール群131の加算対象のルールのスコアを加算する。例えば、スコア加算部142は、照合部141の照合によって、ルール群131のルールのうち、ログに含まれる照合対象の文字列と任意の回数合致したルールに対し、該ルールのスコアに所定の値を加算する。
【0029】
具体的には、スコア加算部142は、前述したスコア加算条件132に従い、照合部141において、ルールとログとが1回合致するごとに、このルールのスコアに任意の値を加算する。または、スコア加算部142は、前述したスコア加算条件の他の例に従い、照合部141において、ルール群131のあるルールと、ログとが任意の回数合致したとき、すなわち、ルール群131のあるルールと、入力されたログ群のログとが任意の回数合致したとき、このルールのスコアに任意の値を加算する。
【0030】
並び替え部143は、ルール群131のルールの照合順序を各ルールのスコアに基づいて並び替える。並び替え部143は、ルールの照合順序をスコアが高い順に並び替える。そして、並び替え部143は、並び替え条件133に従ったタイミングで、ルール群131のルールの照合順序を並び替える。すわなち、並び替え部143は、並び替えに要する時間を考慮した任意のタイミングでルール群131のルールの照合順序を並び替える。照合装置10では、並び替えに要する時間と、照合に要する時間とのトレードオフを調節できるように、並び替え条件133を任意に設定している。
【0031】
出力部15は、例えば、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現される。出力部15は、後述する照合処理の結果を操作者に対して出力する。
【0032】
[ルール群を用いた入力ログ群の照合の流れ]
続いて、照合装置10によるルール群を用いた入力ログ群の照合の流れについて説明する。図4は、図1に示す照合装置10によるルール群を用いた入力ログ群の照合の流れについて説明する図である。図4の(a)は、入力されたログ群L1を示す図である。図4の(b)は、制御部14による照合処理における各ルール群R1〜R4を示す図である。
【0033】
まず、ここでは、スコア加算条件132を、照合部141の照合処理においてルールとログとが1回合致するごとに、このルールのスコアに1を加算する条件とし、並び換え条件133を、ルールとログとが1回合致するごとに、ルール群に対して並び替えを実行する条件とする。なお、並び替え部143は、並び替え処理では、ルールの照合順序を、スコアが高い順に並び替える。
【0034】
まず、照合部141は、ログ群L1の通番「1」のログ「ACPI:FACS 000000002fff0200 00040」(以降、ログ1という。)(図4の(a)の1行目参照)と、初期状態のルール群R1の各ルールとの照合を行う(図4の矢印Y11参照)。この場合には、ログ1は、ルール群R1の通番「2」のルール「^ACPI:FACS\[\da-f\]+\d+$」(以降、ルール2という。)と合致する。このため、スコア加算部142は、ルール2のルールのスコアに1を加算し「1」とする(セルC212参照)。そして、並び替え部143は、ルール群の並び替えを行い、スコアが最も高い「1」であるルール2(セルC211参照)を先頭に配置したルール群R2を設定する(図4の(b)の矢印Y21参照)。
【0035】
続いて、照合部141は、ログ群L1の通番「2」のログ「XFS(dm-0):Mounting V4 Filesystem」(以降、ログ2という。)(図4の(a)の2行目参照)と、並び替え後のルール群R2の各ルールとの照合を行う。この場合、ログ2は、ルール群R2のいずれのルールとも合致しない。このため、スコア加算部142によるスコア加算処理、及び、並び替え部143によるルール群の並び替え処理は、実行されない。
【0036】
そして、照合部141は、ログ群L1の通番「3」のログ「ACPI:FACS 000000002fff0200 00040」(以降、ログ3という。)(図4の(a)の3行目参照)と、ルール群R2の各ルールとの照合を行う(図4の矢印Y13参照)。この場合には、ログ3は、ルール群R2のルール2と合致する。このため、スコア加算部142は、ルール群R2の通番「2」のルールのスコアに1を加算してスコアを「2」にする(セルC312参照)。この場合、先頭のルール2のスコアが「2」に変更されたルール群R3が設定される(図4の(b)の矢印Y22参照)。
【0037】
続いて、照合部141は、ログ群L1の通番「4」のログ「tty(/dev/tty6)main process(1112)killed by TERM signal」(以降、ログ4という。)(図4の(a)の4行目参照)と、ルール群R3の各ルールとの照合を行う。この場合、ログ4は、ルール群R3のいずれのルールとも合致しない。
【0038】
このため、照合部141は、ログ群L1の通番「5」のログ「SELinux:Initializing.」(以降、ログ5という。)(図4の(a)の5行目参照)と、ルール群R3の各ルールとの照合を行う(図4の矢印Y15参照)。この場合には、ログ5は、ルール群R3の通番「3」のルール(以降、ルール3という。)と合致する。このため、スコア加算部142は、ルール群R3のルール3のスコアに1を加算してスコアを「1」にする。その後、並び替え部143は、スコア順に、ルール群の各ルールの照合順序を並び替える。この場合のルール群の照合順序は、スコア「2」のルール2が先頭になり、スコア「1」のルール3が2番目になり、スコア「0」の通番「1」のルール(以降、ルール1という。)が3番目になる。
【0039】
続いて、照合部141は、ログ群L1の通番「6」のログ(以降、ログ6という。)(図4の(a)の6行目参照)と、ルール群の各ルールとの照合を行う。この場合、ログ6は、ルール群のいずれのルールとも合致しない。
【0040】
このため、照合部141は、ログ群L1の通番「7」のログ「SELinux:Started.」(以降、ログ7という。)(図4の(a)の7行目参照)と、ルール群R3の各ルールとの照合を行う(図4の矢印Y17参照)。この場合には、ログ7は、ルール群R3のルール3と合致する。このため、スコア加算部142は、ルール群R3のルール3のスコアに1を加算してスコアを「2」にする。そして、並び替え部143によるルール群の照合順序の並び替えが実行される。
【0041】
そして、照合部141は、ログ群L1の通番「8」のログ「ACPI:FACS 000000002fff0200 00040」(以降、ログ8という。)(図4の(a)の8行目参照)と、ルール群R4の各ルールとの照合を行う(図4の矢印Y18参照)。この場合には、ログ8は、ルール2と合致する。このため、スコア加算部142は、ルール群R2のルール2のスコアに1を加算してスコアを「3」にする。そして、並び替え部143によるルール群の照合順序の並び替えが実行される。この結果、照合順序が、スコア「3」(セルC412)のルール2が先頭になり、スコア「2」(セルC422)のルール3(セルC421)が2番目になり、スコア「0」のルール1が3番目であるルール群R4が設定される(図4の(b)の矢印Y23参照)。
【0042】
このように、照合装置10では、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算し、ルールの照合順序を各ルールのスコアに基づいて並び替えている。
【0043】
[ルール群を用いた入力ログ群の照合処理の処理手順]
図5は、図1に示す照合装置10によるルール群を用いた入力ログ群の照合処理の処理手順を示すフローチャートである。
【0044】
照合部141は、照合対象のログ群が照合装置10に入力されると、ルール群131を読み出し(ステップS1)、ログ群のうちの照合対象のログを入力とし(ステップS2)、入力されたログに含まれる照合対象の文字列と、ルール群131のルールとが合致するか否かを、ルールの照合順序にしたがって照合する照合処理を行う(ステップS3)。
【0045】
そして、照合部141は、入力されたログに含まれる照合対象の文字列と、ルール群131のいずれかのルールとが、任意の回数、合致するか否かを判断する(ステップS4)。入力されたログに含まれる照合対象の文字列とルール群131のいずれかのルールとが任意の回数合致したと照合部141が判断した場合(ステップS4:Yes)、スコア加算部142は、ルール群131のルールのうち、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算するスコア加算処理を行う(ステップS5)。すなわち、スコア加算部142は、ログに含まれる照合対象の文字列と任意の回数合致したルールに対し、このルールのスコアに所定の値を加算する。
【0046】
続いて、並び替え部143は、並び替え条件に合うタイミングか否かを判断する(ステップS6)。並び替え部143は、並び替え条件に合うタイミングであると判断した場合(ステップS6:Yes)、ルール群131のルールの照合順序を各ルールのスコアに基づいて並び替えるルール群並び替え処理を行う(ステップS7)。並び替え部143は、この処理において、ルール群131のルールの照合順序をスコアが高い順に並び替える。
【0047】
そして、入力されたログに含まれる照合対象の文字列と、ルール群131のいずれかのルールとが合致しないと照合部141が判断した場合(ステップS4:No)、並び替え条件133に合うタイミングでないと並び替え部143が判断した場合(ステップS6:No)、または、ルール群並び替え処理(ステップS7)が終了した場合、照合部141は、照合対象のログが残っているか否かを判断する(ステップS8)。
【0048】
照合部141は、照合対象のログが残っていると判断した場合(ステップS8:Yes)、ステップS1に戻り、ルール群を読み出し、次の照合対象のログについて、ステップS2以降の処理を行う。照合部141は、照合対象のログが残っていないと判断した場合(ステップS8:No)、入力ログ群に対する照合処理を終了する。
【0049】
[具体例]
実際に、図2に示す8行のログL1と、3件のルールを示すルール群R1に対して、本実施の形態を適用した場合について説明する。図6は、図2に示す8行のログL1と、図3に示す3件のルールを有するルール群R1に対して、ルールの登録順に照合処理を行った場合と、本実施の形態を適用して照合処理を行った場合の照合内容を示す図である。図6の(a)は、ルールの登録順に照合処理を行った場合を示し、図6の(b)は、本実施の形態を適用して照合処理を行った場合の照合内容を示す。
【0050】
図6の(a)に示すように、ログL1とルール群R1に対して、ルールの登録順に照合処理を行った場合には、ログ1〜ログ8の全てのログに対して、全21回の照合が必要であった。これに対し、本実施の形態を適用して、合致したルールへのスコア加算及びスコアに基づくルールの照合順序の並び替えを実行しながら照合処理を行った場合には、ログ1〜ログ8の全てのログに対して、全18回の照合で足りた。
【0051】
具体的には、ルール2と合致するログ3について、登録順で照合処理を行うと、ルール1及びルール2に対して照合を行っている。これに対して、本実施の形態を適用した場合には、照合順序が先頭であるルール2との照合のみで足りる(矢印Y31参照)。また、ルール3と合致するログ7について、登録順で照合処理を行うと、ルール1、ルール2及びルール3の全てに対して照合を行っている。これに対して、本実施の形態を適用した場合には、照合順序が先頭であるルール2と、照合順序が2番目であるルール3との2回の照合のみで足りる(矢印Y32参照)。
【0052】
そして、ルール2と合致するログ8について、登録順で照合処理を行うと、ルール1及びルール2に対して照合を行っている。これに対して、本実施の形態を適用した場合には、照合順序が先頭であるルール2との照合のみで足りる(矢印Y33参照)。
【0053】
さらに、約60万行のログ群と約300件のルールを有するルール群とに対して、ルールの登録順に照合処理を行った場合には、約8600万回の照合が必要であった。これに対し、本実施の形態を適用した場合には、約60万行のログ群と約300件のルールを有するルール群とに対し、約1334万回の照合で完了した。したがって、約60万行のログ群と約300件のルールを有するルール群とに対し、本実施の形態を適用した場合には、登録順に照合を行う場合と比して、照合回数を約84%削減することができることが分かった。
【0054】
[本実施の形態の効果]
このように、照合装置10では、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算し、ルールの照合順序を各ルールのスコアに基づいて並び替えている。すなわち、照合装置10では、ルールの照合順序をスコアが高い順に並び替え、照合対象の文字列と、前記ルールとが合致するか否かを、ルールのスコアが高い順に照合している。したがって、照合装置10では、合致頻度が高いルールから順にログとの照合を行うことによって、ログと合致するルールに到達するまでの照合回数を低減し、実時間での障害検知の実現を図っている。
【0055】
さらに、照合装置10は、所定の並び替えタイミングでルール群の並び替えを行っているため、実際の照合処理中も、照合順序が適切に並び替えられたルール群を使用し、照合回数の低減を図ることができる。そして、照合装置10では、この並び替えタイミングは、並び替えに要する時間を考慮して設定されているため、並び替えに要する時間と、照合に要する時間とのトレードオフを調節できるように、並び替え条件を任意に設定することで、並び替えによる処理の影響も低減した状態で照合処理を実行できる。実際に、上述した具体例でも示すように、本実施の形態を適用した場合、登録順に照合を行う場合と比して照合回数を格段に減らすことができた。
【0056】
したがって、本実施の形態によれば、システム監視のためにログを監視する場合に、ログと合致するルールに到達するまでの照合回数を低減できるため、ログ数及びルール数が多い場合であっても、障害に関連するログ検知の遅延を低減できる。言い換えると、本実施の形態によれば、大量のログと大量の監視ルールを前提としても、リアルタイム性を担保した障害検知が可能になる。
【0057】
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0058】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0059】
[プログラム]
図7は、プログラムが実行されることにより、照合装置10が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0060】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0061】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、照合装置10の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、照合装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0062】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0063】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0064】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0065】
10 照合装置
11 入力部
12 通信部
13 記憶部
14 制御部
15 出力部
131 ルール群
132 スコア加算条件
133 並び替え条件
141 照合部
142 スコア加算部
143 並び替え部
図1
図2
図3
図4
図5
図6
図7