(57)【要約】【課題】システム監視のためにログを監視する場合に、ログ数及びルール数が多い場合であっても、障害に関連するログ検知の遅延を低減できる。【解決手段】照合装置１０は、監視対象の複数の文字列をそれぞれルールとして記憶するとともに、ルールと照合対象の文字列との合致頻度を示すスコアを各ルールに対応付けて記憶する記憶部１３と、入力されたログに含まれる照合対象の文字列と、ルールとが合致するか否かを、ルールの照合順序にしたがって照合する照合部１４１と、複数のルールのうち、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算するスコア加算部１４２と、ルールの照合順序を各ルールのスコアに基づいて並び替える並び替え部１４３と、を有する。【選択図】図１
2018112867.tif 000002
【特許請求の範囲】
【請求項１】
監視対象の複数の文字列をそれぞれルールとして記憶するとともに、前記ルールと照合対象の文字列との合致頻度を示すスコア及び前記ルールの照合順序を各ルールに対応付けて記憶する記憶部と、
入力されたログに含まれる照合対象の文字列と、前記ルールとが合致するか否かを、前記ルールの照合順序にしたがって照合する照合部と、
複数の前記ルールのうち、前記ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算するスコア加算部と、
前記ルールの照合順序を各ルールのスコアに基づいて並び替える並び替え部と、
を有することを特徴とする照合装置。
【請求項２】
前記並び替え部は、前記ルールの照合順序を前記スコアが高い順に並び替え、
前記照合部は、前記照合対象の文字列と、前記ルールとが合致するか否かを、前記ルールのスコアが高い順に照合することを特徴とする請求項１に記載の照合装置。
【請求項３】
前記ルールは、前記ログに含まれるキーワード或いは正規表現を指定する文字列であることを特徴とする請求項１または２に記載の照合装置。
【請求項４】
前記並び替え部は、任意のタイミングで前記ルールの照合順序を並び替えることを特徴とする請求項１〜３のいずれか一つに記載の照合装置。
【請求項５】
前記スコア加算部は、前記照合部の照合によって、前記ログに含まれる照合対象の文字列と任意の回数合致した前記ルールに対し、前記ルールのスコアに所定の値を加算することを特徴とする請求項１〜４のいずれか一つに記載の照合装置。
【請求項６】
監視対象の複数の文字列をそれぞれルールとして記憶するとともに、前記ルールと照合対象の文字列との合致頻度を示すスコアを各ルールに対応付けて記憶する記憶部を有する照合装置が実行する照合方法であって、
入力されたログに含まれる照合対象の文字列と、前記ルールとが合致するか否かを、前記ルールの照合順序にしたがって照合する工程と、
複数の前記ルールのうち、前記ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算する工程と、
前記ルールの照合順序を各ルールのスコアに基づいて並び替える工程と、
を含んだことを特徴とする照合方法。
【請求項７】
コンピュータを、請求項１〜５のいずれか一つに記載の照合装置として機能させるための照合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、照合装置、照合方法及び照合プログラムに関する。
【背景技術】
【０００２】
従来、システム監視方法の一つとして、障害を検知するためにログを監視するログ監視方法が用いられている。このログ監視方法では、ネットワーク（ＮＷ）機器やサーバ上のＯＳ（Operating  System）、ミドルウェア、アプリケーション等のソフトウェアが出力するログを常時監視している。ここで、このログ監視方法では、障害自体や障害発生後の動作、障害に関連すると判断したログが出力されたことを発見するために、予め定めた正規表現で書かれたルールと監視対象の機器が出力する各ログとを照合し，合致した場合に障害が発生した旨を運用者に通知することが一般的である。
【０００３】
これらのルールは、ログに含まれるキーワードや正規表現を指定することが多く、市中の監視システムもこの機能を備える。そして、ルールは、機器の種類、ソフトウェアの種類、障害の種類ごとに異なるため、複数指定されている。ログとルールとの照合は、ログ１行ごとに複数のルールのそれぞれに対して実行される。ここで、ルールの照合順序は、ルールの登録順序にしたがうことが一般的である（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】rewrite_tag_filter  Output  Plugin、［online］、［平成２８年１２月２２日検索］、インターネット＜ＵＲＬ：http://docs.fluentd.org/articles/out_rewrite_tag_filter＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
監視に用いられるルールは、個々の機器、ＯＳ、ミドルウェア、アプリケーション毎に異なり、新たな事象が発生する度に追加される。また、対象の機器が増加すると照合するログの量も増加する。
【０００６】
したがって、ログ監視方法では、ルール数が多くなると、１行のログに対する照合回数が増加するため、１行のログの照合に要する時間が増加する。このため、ログ監視方法では、監視のリアルタイム性が失われてしまい、障害に関連するログの検知が遅れてしまう。
【０００７】
すなわち、従来の方法では、ログ監視のフィルタリングの負荷が、ルール数とログ数とに依存して増加するため、これらが増えると実時間での障害検知が困難になるという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、システム監視のためにログを監視する場合に、ログ数及びルール数が多い場合であっても、障害に関連するログ検知の遅延を低減できる照合装置、照合方法及び照合プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の照合装置は、監視対象の複数の文字列をそれぞれルールとして記憶するとともに、ルールと照合対象の文字列との合致頻度を示すスコア及びルールの照合順序を各ルールに対応付けて記憶する記憶部と、入力されたログに含まれる照合対象の文字列と、ルールとが合致するか否かを、ルールの照合順序にしたがって照合する照合部と、複数のルールのうち、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算するスコア加算部と、ルールの照合順序を各ルールのスコアに基づいて並び替える並び替え部と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、システム監視のためにログを監視する場合に、ログ数及びルール数が多い場合であっても、障害に関連するログ検知の遅延を低減できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施の形態に係る照合装置の構成を示すブロック図である。
【図２】図２は、ログ群のデータ構成の一例を示す図である。
【図３】図３は、図１に示すルール群のデータ構成の一例を示す図である。
【図４】図４は、図１に示す照合装置によるルール群を用いた入力ログ群の照合の流れについて説明する図である。
【図５】図５は、図１に示す照合装置によるルール群を用いた入力ログ群の照合処理の処理手順を示すフローチャートである。
【図６】図６は、図２に示すログと図３に示すルール群に対して、ルールの登録順に照合処理を行った場合と、本実施の形態を適用して照合処理を行った場合の照合内容を示す図である。
【図７】図７は、プログラムが実行されることにより照合装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１３】
［実施の形態］
本発明の実施の形態について説明する。本発明の実施の形態では、入力されたログに含まれた照合対象の文字列と、監視対象の複数の文字列であるルールとが合致するか否かを照合する照合装置、照合方法及び照合プログラムについて説明する。まず、実施の形態における照合装置の概略について説明する。
【００１４】
［照合装置の構成］
図１は、本実施の形態に係る照合装置の構成を示すブロック図である。図１に示すように、照合装置１０は、入力部１１、通信部１２、記憶部１３、制御部１４及び出力部１５を有する。
【００１５】
入力部１１は、照合装置１０の操作者からの各種操作を受け付ける入力インタフェースである。例えば、入力部１１は、タッチパネル、音声入力デバイス、キーボードやマウス等の入力デバイスによって構成される。
【００１６】
通信部１２は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部１２は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部１４との間の通信を行う。例えば、監視対象のログ群は、通信部１２を介して、他の装置等から制御部１４に入力される。この監視対象のログ群は、ＮＷ機器やサーバ上のＯＳ、ミドルウェア、アプリケーション等のソフトウェアが出力するログである。
【００１７】
このログ群のデータ形式について説明する。図２は、ログ群のデータ構成の一例を示す図である。図２のログ群Ｌ１に示すように、ログ群は、ログ１行ごとに、出力順序を示す通番が付されたものである。このログは、ＮＷ機器やサーバ上のＯＳ、ミドルウェア、アプリケーション等のソフトウェアから出力された、アプリケーションや制御の規格の種別や動作を示す文字列を含む。
【００１８】
図２に示すように、ログ群Ｌ１は、各行に示されたそれぞれのログに、出力順が分かる通番が付加されたデータ形式を有する。例えば、ログ群Ｌ１の１行目には、このログが１行目であることを示す「通番１」と、「ACPI:FACS  000000002fff0200  00040」と記録されたログが示されている。なお、この「通番１」のログでは、電力制御の規格の一つである「ACPI」において、「FACS（Firmware  ACPI  Control  Structure)」と呼ばれるＢＩＯＳ（Basic  Input  Output  System）とのやりとりに使うメモリの位置が指し示されており、この位置にデータを記載したことを示している。また、ログ群は、各ログの出力順序が分かるデータ形式であれば足り、図２のログ群Ｌ１のデータ形式に限らず、出力された順番に各ログが記録されたデータ形式であってもよい。
【００１９】
記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、照合装置１０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部１３は、ルール群１３１、スコア加算条件１３２及び並び替え条件１３３を記憶する。
【００２０】
ルール群１３１は、複数のルールを含む。ルールは、監視対象の複数の文字列であり、ログに含まれるキーワード或いは正規表現を指定する文字列である。ルールは、機器の種類、ソフトウェアの種類、障害の種類ごとに異なる。そして、ルールの照合順序は、ルールに対応付けて記憶部１３に記憶されている。具体的には、ルールは、照合順に配列する。そして、ルール群１３１は、ルールと照合対象の文字列との合致頻度を示すスコア及びルールの照合順序が、各ルールに対応付けられたものである。スコアは、スコア加算部１４２（後述）によって値が加算される。ルール群１３１のルールの照合順序は、並び替え部１４３（後述）によって並び替えられる。
【００２１】
図３は、図１に示すルール群１３１のデータ構成の一例を示す図である。図３のルール群Ｒ１に示すように、ルール群１３１は、各ルールに、それぞれ、通番が付与されるとともに、スコアが対応付けられるデータ形式を有する。各ルールは、照合順に配列している。
【００２２】
図３に示すルール群Ｒ１は、初期状態のルール群に対応し、通番にしたがって、各ルールを配列しており、スコアはいずれも「０」に初期化されている。例えば、ルール群１３１では、１行目には、ルール「^kdump:FAILED$」が示され、通番「１」が付与されている。このルール「^kdump:FAILED$」は、Linux（登録商標）Kernelクラッシュ時にダンプを取得するサービス「kdump」を示す文字列と、サービス提供時での「FAILED（不成功）」を示す文字列とをキーワードとしたものである。そして、２行目には、電力制御の規格の一つであるACPIの動作状態に関するルール「^ACPI:FACS  \[\da-f\]+\d+$」が示され、通番「２」が付与されている。さらに、３行目には、セキュアＯＳ機能であるSELinuxに関するルール「^SELinux:\s+$」が示され、通番「３」が付与されている。
【００２３】
スコア加算条件１３２は、スコア加算部１４２によるスコアの算定式などである。例えば、スコア加算条件１３２の一例として、例えば、照合部１４１（後述）において、ルールとログとが１回合致するごとに、このルールのスコアに任意の値を加算する、という条件が挙げられる。或いは、スコア加算条件１３２の他の例として、照合部１４１（後述）において、ルールとログとが任意の回数合致したときに、このルールのスコアに任意の値を加算する条件が挙げられる。このスコア加算条件１３２は、予め定められたものであり、また、監視過程における照合結果に応じて適宜変更されてもよい。また、スコア加算条件１３２は、各ルールのスコアを、例えば、ログ群の入力時に初期化する条件も含む。
【００２４】
並び替え条件１３３は、ルール群１３１の各ルールの並び替えのタイミング条件を示すものである。並び替え条件１３３は、任意に設定することができる。例えば、並び替え条件１３３として、並び替えに要する時間を考慮したタイミングが設定できるように、照合装置１０では、並び替えに要する時間と、照合に要する時間とのトレードオフを調節できるように、並び替え条件１３３を任意に設定することが可能である。具体的には、並び替え条件として、照合部１４１（後述）において、ルールとログに含まれる照合対象の文字列とが任意の回数合致するごとにルールの並び替えを実行する条件が設定されている。また、並び替え条件として、照合部１４１（後述）において、任意の数の行のログに対して照合を行った場合に、ルールの並び替えを実行する条件が設定されている。
【００２５】
この並び替え条件１３３における並び替えタイミングは、ルールの並び替えによって照合処理を短縮できる短縮時間と、並び替えに要する時間とを比較することによって設定される。例えば、ルールの並び替えによって照合処理を短縮できる短縮時間よりも、並び替えに要する時間の方が短い場合には、並び替えタイミングを高頻度に設定し、逆の場合には、並び替えタイミングを低頻度に設定する。
【００２６】
制御部１４は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部１４は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。制御部１４は、照合部１４１、スコア加算部１４２及び並び替え部１４３を有する。
【００２７】
照合部１４１は、照合対象のログ群と、ルール群１３１とを入力とする。照合部１４１は、ログの照合対象行に含まれる照合対象の文字列と、ルールとが合致するか否かを、ルールの照合順序にしたがって照合する。照合部１４１は、並び替え部１４３によって並び替えられた照合順序にしたがって照合する。具体的には、照合部１４１は、照合対象の文字列とルールとが合致するか否かを、ルールのスコアが高い順に照合する。照合部１４１は、ログ１行ごとに、複数のルールのそれぞれを照合順に比較していく。そして、照合部１４１は、ログの照合対象行に含まれる照合対象の文字列と、ルールとが合致した場合、該ルールに関する障害等が発生した旨を、出力部１５（後述）を介して、照合装置１０の運用者に通知する。
【００２８】
スコア加算部１４２は、照合部１４１の照合によって、複数のルールのうち、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算する。スコア加算部１４２は、スコア加算条件１３２にしたがって、ルール群１３１の加算対象のルールのスコアを加算する。例えば、スコア加算部１４２は、照合部１４１の照合によって、ルール群１３１のルールのうち、ログに含まれる照合対象の文字列と任意の回数合致したルールに対し、該ルールのスコアに所定の値を加算する。
【００２９】
具体的には、スコア加算部１４２は、前述したスコア加算条件１３２に従い、照合部１４１において、ルールとログとが１回合致するごとに、このルールのスコアに任意の値を加算する。または、スコア加算部１４２は、前述したスコア加算条件の他の例に従い、照合部１４１において、ルール群１３１のあるルールと、ログとが任意の回数合致したとき、すなわち、ルール群１３１のあるルールと、入力されたログ群のログとが任意の回数合致したとき、このルールのスコアに任意の値を加算する。
【００３０】
並び替え部１４３は、ルール群１３１のルールの照合順序を各ルールのスコアに基づいて並び替える。並び替え部１４３は、ルールの照合順序をスコアが高い順に並び替える。そして、並び替え部１４３は、並び替え条件１３３に従ったタイミングで、ルール群１３１のルールの照合順序を並び替える。すわなち、並び替え部１４３は、並び替えに要する時間を考慮した任意のタイミングでルール群１３１のルールの照合順序を並び替える。照合装置１０では、並び替えに要する時間と、照合に要する時間とのトレードオフを調節できるように、並び替え条件１３３を任意に設定している。
【００３１】
出力部１５は、例えば、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現される。出力部１５は、後述する照合処理の結果を操作者に対して出力する。
【００３２】
［ルール群を用いた入力ログ群の照合の流れ］
続いて、照合装置１０によるルール群を用いた入力ログ群の照合の流れについて説明する。図４は、図１に示す照合装置１０によるルール群を用いた入力ログ群の照合の流れについて説明する図である。図４の（ａ）は、入力されたログ群Ｌ１を示す図である。図４の（ｂ）は、制御部１４による照合処理における各ルール群Ｒ１〜Ｒ４を示す図である。
【００３３】
まず、ここでは、スコア加算条件１３２を、照合部１４１の照合処理においてルールとログとが１回合致するごとに、このルールのスコアに１を加算する条件とし、並び換え条件１３３を、ルールとログとが１回合致するごとに、ルール群に対して並び替えを実行する条件とする。なお、並び替え部１４３は、並び替え処理では、ルールの照合順序を、スコアが高い順に並び替える。
【００３４】
まず、照合部１４１は、ログ群Ｌ１の通番「１」のログ「ACPI:FACS  000000002fff0200  00040」（以降、ログ１という。）（図４の（ａ）の１行目参照）と、初期状態のルール群Ｒ１の各ルールとの照合を行う（図４の矢印Ｙ１１参照）。この場合には、ログ１は、ルール群Ｒ１の通番「２」のルール「^ACPI:FACS\[\da-f\]+\d+$」（以降、ルール２という。）と合致する。このため、スコア加算部１４２は、ルール２のルールのスコアに１を加算し「１」とする（セルＣ２１２参照）。そして、並び替え部１４３は、ルール群の並び替えを行い、スコアが最も高い「１」であるルール２（セルＣ２１１参照）を先頭に配置したルール群Ｒ２を設定する（図４の（ｂ）の矢印Ｙ２１参照）。
【００３５】
続いて、照合部１４１は、ログ群Ｌ１の通番「２」のログ「XFS(dm-0):Mounting  V4  Filesystem」（以降、ログ２という。）（図４の（ａ）の２行目参照）と、並び替え後のルール群Ｒ２の各ルールとの照合を行う。この場合、ログ２は、ルール群Ｒ２のいずれのルールとも合致しない。このため、スコア加算部１４２によるスコア加算処理、及び、並び替え部１４３によるルール群の並び替え処理は、実行されない。
【００３６】
そして、照合部１４１は、ログ群Ｌ１の通番「３」のログ「ACPI:FACS  000000002fff0200  00040」（以降、ログ３という。）（図４の（ａ）の３行目参照）と、ルール群Ｒ２の各ルールとの照合を行う（図４の矢印Ｙ１３参照）。この場合には、ログ３は、ルール群Ｒ２のルール２と合致する。このため、スコア加算部１４２は、ルール群Ｒ２の通番「２」のルールのスコアに１を加算してスコアを「２」にする（セルＣ３１２参照）。この場合、先頭のルール２のスコアが「２」に変更されたルール群Ｒ３が設定される（図４の（ｂ）の矢印Ｙ２２参照）。
【００３７】
続いて、照合部１４１は、ログ群Ｌ１の通番「４」のログ「tty(/dev/tty6)main  process(1112)killed  by  TERM  signal」（以降、ログ４という。）（図４の（ａ）の４行目参照）と、ルール群Ｒ３の各ルールとの照合を行う。この場合、ログ４は、ルール群Ｒ３のいずれのルールとも合致しない。
【００３８】
このため、照合部１４１は、ログ群Ｌ１の通番「５」のログ「SELinux:Initializing.」（以降、ログ５という。）（図４の（ａ）の５行目参照）と、ルール群Ｒ３の各ルールとの照合を行う（図４の矢印Ｙ１５参照）。この場合には、ログ５は、ルール群Ｒ３の通番「３」のルール（以降、ルール３という。）と合致する。このため、スコア加算部１４２は、ルール群Ｒ３のルール３のスコアに１を加算してスコアを「１」にする。その後、並び替え部１４３は、スコア順に、ルール群の各ルールの照合順序を並び替える。この場合のルール群の照合順序は、スコア「２」のルール２が先頭になり、スコア「１」のルール３が２番目になり、スコア「０」の通番「１」のルール（以降、ルール１という。）が３番目になる。
【００３９】
続いて、照合部１４１は、ログ群Ｌ１の通番「６」のログ（以降、ログ６という。）（図４の（ａ）の６行目参照）と、ルール群の各ルールとの照合を行う。この場合、ログ６は、ルール群のいずれのルールとも合致しない。
【００４０】
このため、照合部１４１は、ログ群Ｌ１の通番「７」のログ「SELinux:Started.」（以降、ログ７という。）（図４の（ａ）の７行目参照）と、ルール群Ｒ３の各ルールとの照合を行う（図４の矢印Ｙ１７参照）。この場合には、ログ７は、ルール群Ｒ３のルール３と合致する。このため、スコア加算部１４２は、ルール群Ｒ３のルール３のスコアに１を加算してスコアを「２」にする。そして、並び替え部１４３によるルール群の照合順序の並び替えが実行される。
【００４１】
そして、照合部１４１は、ログ群Ｌ１の通番「８」のログ「ACPI:FACS  000000002fff0200  00040」（以降、ログ８という。）（図４の（ａ）の８行目参照）と、ルール群Ｒ４の各ルールとの照合を行う（図４の矢印Ｙ１８参照）。この場合には、ログ８は、ルール２と合致する。このため、スコア加算部１４２は、ルール群Ｒ２のルール２のスコアに１を加算してスコアを「３」にする。そして、並び替え部１４３によるルール群の照合順序の並び替えが実行される。この結果、照合順序が、スコア「３」（セルＣ４１２）のルール２が先頭になり、スコア「２」（セルＣ４２２）のルール３（セルＣ４２１）が２番目になり、スコア「０」のルール１が３番目であるルール群Ｒ４が設定される（図４の（ｂ）の矢印Ｙ２３参照）。
【００４２】
このように、照合装置１０では、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算し、ルールの照合順序を各ルールのスコアに基づいて並び替えている。
【００４３】
［ルール群を用いた入力ログ群の照合処理の処理手順］
図５は、図１に示す照合装置１０によるルール群を用いた入力ログ群の照合処理の処理手順を示すフローチャートである。
【００４４】
照合部１４１は、照合対象のログ群が照合装置１０に入力されると、ルール群１３１を読み出し（ステップＳ１）、ログ群のうちの照合対象のログを入力とし（ステップＳ２）、入力されたログに含まれる照合対象の文字列と、ルール群１３１のルールとが合致するか否かを、ルールの照合順序にしたがって照合する照合処理を行う（ステップＳ３）。
【００４５】
そして、照合部１４１は、入力されたログに含まれる照合対象の文字列と、ルール群１３１のいずれかのルールとが、任意の回数、合致するか否かを判断する（ステップＳ４）。入力されたログに含まれる照合対象の文字列とルール群１３１のいずれかのルールとが任意の回数合致したと照合部１４１が判断した場合（ステップＳ４：Ｙｅｓ）、スコア加算部１４２は、ルール群１３１のルールのうち、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算するスコア加算処理を行う（ステップＳ５）。すなわち、スコア加算部１４２は、ログに含まれる照合対象の文字列と任意の回数合致したルールに対し、このルールのスコアに所定の値を加算する。
【００４６】
続いて、並び替え部１４３は、並び替え条件に合うタイミングか否かを判断する（ステップＳ６）。並び替え部１４３は、並び替え条件に合うタイミングであると判断した場合（ステップＳ６：Ｙｅｓ）、ルール群１３１のルールの照合順序を各ルールのスコアに基づいて並び替えるルール群並び替え処理を行う（ステップＳ７）。並び替え部１４３は、この処理において、ルール群１３１のルールの照合順序をスコアが高い順に並び替える。
【００４７】
そして、入力されたログに含まれる照合対象の文字列と、ルール群１３１のいずれかのルールとが合致しないと照合部１４１が判断した場合（ステップＳ４：Ｎｏ）、並び替え条件１３３に合うタイミングでないと並び替え部１４３が判断した場合（ステップＳ６：Ｎｏ）、または、ルール群並び替え処理（ステップＳ７）が終了した場合、照合部１４１は、照合対象のログが残っているか否かを判断する（ステップＳ８）。
【００４８】
照合部１４１は、照合対象のログが残っていると判断した場合（ステップＳ８：Ｙｅｓ）、ステップＳ１に戻り、ルール群を読み出し、次の照合対象のログについて、ステップＳ２以降の処理を行う。照合部１４１は、照合対象のログが残っていないと判断した場合（ステップＳ８：Ｎｏ）、入力ログ群に対する照合処理を終了する。
【００４９】
［具体例］
実際に、図２に示す８行のログＬ１と、３件のルールを示すルール群Ｒ１に対して、本実施の形態を適用した場合について説明する。図６は、図２に示す８行のログＬ１と、図３に示す３件のルールを有するルール群Ｒ１に対して、ルールの登録順に照合処理を行った場合と、本実施の形態を適用して照合処理を行った場合の照合内容を示す図である。図６の（ａ）は、ルールの登録順に照合処理を行った場合を示し、図６の（ｂ）は、本実施の形態を適用して照合処理を行った場合の照合内容を示す。
【００５０】
図６の（ａ）に示すように、ログＬ１とルール群Ｒ１に対して、ルールの登録順に照合処理を行った場合には、ログ１〜ログ８の全てのログに対して、全２１回の照合が必要であった。これに対し、本実施の形態を適用して、合致したルールへのスコア加算及びスコアに基づくルールの照合順序の並び替えを実行しながら照合処理を行った場合には、ログ１〜ログ８の全てのログに対して、全１８回の照合で足りた。
【００５１】
具体的には、ルール２と合致するログ３について、登録順で照合処理を行うと、ルール１及びルール２に対して照合を行っている。これに対して、本実施の形態を適用した場合には、照合順序が先頭であるルール２との照合のみで足りる（矢印Ｙ３１参照）。また、ルール３と合致するログ７について、登録順で照合処理を行うと、ルール１、ルール２及びルール３の全てに対して照合を行っている。これに対して、本実施の形態を適用した場合には、照合順序が先頭であるルール２と、照合順序が２番目であるルール３との２回の照合のみで足りる（矢印Ｙ３２参照）。
【００５２】
そして、ルール２と合致するログ８について、登録順で照合処理を行うと、ルール１及びルール２に対して照合を行っている。これに対して、本実施の形態を適用した場合には、照合順序が先頭であるルール２との照合のみで足りる（矢印Ｙ３３参照）。
【００５３】
さらに、約６０万行のログ群と約３００件のルールを有するルール群とに対して、ルールの登録順に照合処理を行った場合には、約８６００万回の照合が必要であった。これに対し、本実施の形態を適用した場合には、約６０万行のログ群と約３００件のルールを有するルール群とに対し、約１３３４万回の照合で完了した。したがって、約６０万行のログ群と約３００件のルールを有するルール群とに対し、本実施の形態を適用した場合には、登録順に照合を行う場合と比して、照合回数を約８４％削減することができることが分かった。
【００５４】
［本実施の形態の効果］
このように、照合装置１０では、ログに含まれる照合対象の文字列と合致したルールに対してスコアを加算し、ルールの照合順序を各ルールのスコアに基づいて並び替えている。すなわち、照合装置１０では、ルールの照合順序をスコアが高い順に並び替え、照合対象の文字列と、前記ルールとが合致するか否かを、ルールのスコアが高い順に照合している。したがって、照合装置１０では、合致頻度が高いルールから順にログとの照合を行うことによって、ログと合致するルールに到達するまでの照合回数を低減し、実時間での障害検知の実現を図っている。
【００５５】
さらに、照合装置１０は、所定の並び替えタイミングでルール群の並び替えを行っているため、実際の照合処理中も、照合順序が適切に並び替えられたルール群を使用し、照合回数の低減を図ることができる。そして、照合装置１０では、この並び替えタイミングは、並び替えに要する時間を考慮して設定されているため、並び替えに要する時間と、照合に要する時間とのトレードオフを調節できるように、並び替え条件を任意に設定することで、並び替えによる処理の影響も低減した状態で照合処理を実行できる。実際に、上述した具体例でも示すように、本実施の形態を適用した場合、登録順に照合を行う場合と比して照合回数を格段に減らすことができた。
【００５６】
したがって、本実施の形態によれば、システム監視のためにログを監視する場合に、ログと合致するルールに到達するまでの照合回数を低減できるため、ログ数及びルール数が多い場合であっても、障害に関連するログ検知の遅延を低減できる。言い換えると、本実施の形態によれば、大量のログと大量の監視ルールを前提としても、リアルタイム性を担保した障害検知が可能になる。
【００５７】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５８】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５９】
［プログラム］
図７は、プログラムが実行されることにより、照合装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６０】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００６１】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、照合装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、照合装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００６２】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００６３】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００６４】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００６５】
１０  照合装置
１１  入力部
１２  通信部
１３  記憶部
１４  制御部
１５  出力部
１３１  ルール群
１３２  スコア加算条件
１３３  並び替え条件
１４１  照合部
１４２  スコア加算部
１４３  並び替え部
【図１】
2018112867.tif 000003
【図２】
2018112867.tif 000004
【図３】
2018112867.tif 000005
【図４】
2018112867.tif 000006
【図５】
2018112867.tif 000007
【図６】
2018112867.tif 000008
【図７】
2018112867.tif 000009