(57)【要約】      （修正有）【課題】ログ系列の特性を反映してログ系列の類似度を判定することで、異常ログを検出する。【解決手段】異常ログ検出システム１は、抽出部１０２と、算出部１０３と、検出部１０４と、を備える。抽出部は、情報システムのログから、先頭を一行ずつずらして２行以上の所定行数のログ系列を抽出する。算出部は、抽出した１のログ系列を１行ずつずらしながら、他のログ系列と一致する行数を数えてログ一致行数系列を作成し、作成したログ一致行数系列の面積と尖度との積を、類似度として算出する。検出部は、算出した類似度に基づき、ログ系列の異常を検出する。【選択図】図１
2017146832.tif 000002
【特許請求の範囲】
【請求項１】
情報システムのログから、先頭を一行ずつずらして２行以上の所定行数のログ系列を抽出する抽出部と、
抽出した１のログ系列を１行ずつずらしながら、他のログ系列と一致する行数を数えてログ一致行数系列を作成し、作成した前記ログ一致行数系列の面積と尖度との積を、類似度として算出する算出部と、
算出した類似度に基づき、前記１のログ系列の異常を検出する検出部と、
を備えることを特徴とする異常ログ検出システム。
【請求項２】
前記抽出部は、少なくとも２つのｎ行数のログ系列
【数１】
2017146832.tif 000017
を抽出し、
前記算出部は、前記２つのｎ行数のログ系列のログ一致行数系列
【数２】
2017146832.tif 000018
について、
【数３】
2017146832.tif 000019
により定義される面積ｓと、
【数４】
2017146832.tif 000020
（ただし式中、ｖは分散）により定義される尖度ｋと、の積
【数５】
2017146832.tif 000021
を、前記類似度として算出することを特徴とする請求項１に記載の異常ログ検出システム。
【請求項３】
前記算出部はさらに、前記類似度に基づき、前記１のログ系列と前記他のログ系列との間の距離を算出し、
前記検出部は、前記類似度に基づき算出された前記距離に基づき、前記１のログ系列の異常を検出することを特徴とする請求項１または２に記載の異常ログ検出システム。
【請求項４】
前記算出部は、前記類似度の逆数を前記距離として算出し、
前記検出部は、前記１のログ系列と前記他のログ系列との距離が、前記他のログ系列間の距離よりも所定値以上長い場合に、前記１のログ系列の異常を検出することを特徴とする請求項３に記載の異常ログ検出システム。
【請求項５】
情報システムのログから、先頭を一行ずつずらして２行以上の所定行数のログ系列を抽出する抽出工程と、
抽出した１のログ系列を１行ずつずらしながら、他のログ系列と一致する行数を数えてログ一致行数系列を作成し、作成した前記ログ一致行数系列の面積と尖度との積を、類似度として算出する算出工程と、
算出した類似度に基づき、前記１のログ系列の異常を検出する検出工程と、
をコンピュータが実行することを特徴とする異常ログ検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常ログ検出システムおよび異常ログ検出方法に関する。
【背景技術】
【０００２】
情報システムにおいて作成され記憶されるログの情報を利用した様々な技術が知られている。たとえば、ログデータと、所定の検出対象パターンとに含まれる非数値情報を数値情報に変換して、数値情報に変換された検出対象パターンの中の部分シーケンスと、数値情報に変換されたログデータの中の部分シーケンスとを対応づけた部分シーケンスペアの類似度を、動的計画法に基づく単一のスコア行列を用いて算出する手法が知られている（特許文献１）。また、端末から正常モデルを収集、統合して正常モデルを生成し、正常モデルを用いてログを分析して動作の異常度合いを示す異常度を算出して異常検知を行うことが知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１３８４２２号公報
【特許文献２】特開２０１５−１０８８９８号公報
【非特許文献】
【０００４】
【非特許文献１】Toby  Segaran著、「集合知プログラミング」、オライリー・ジャパン、２００８年７月２５日、p.31−41
【非特許文献２】上坂  吉則、尾関  和彦著、「パターン認識と学習のアルゴリズム」、文一総合出版、１９９０年５月、p.91−108
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ログを用いた異常検知において、ログの監視を通じて通常の状態を学習し、学習した通常の状態を用いて異常ログを検出することができれば有用と考えられる。
【０００６】
この点、ログの異常検出を行う方法として、ログを一行ずつ学習していく手法が考えられる。しかし、ログを一行ずつ切り離して学習した場合、複数行にまたがるログの系列に異常な振る舞いが現れる場合を検出することができない。
【０００７】
また、系列を比較する方法としては、系列をbag-of-wordsベクトルで表現し、系列間の距離（ユークリッド距離やコサイン距離）に基づいて類似性を判定することも考えられる。しかし、bag-of-wordsベクトルでは、要素間の距離や並び順は考慮されない。これに対して、ログ系列は、ログの並び順に規則性があり、並び順の一致度が高いほど類似性が高いといえる。このため、bag-of-wordsベクトルをログ系列の比較に用いた場合、ログ系列の特徴を反映した比較結果を得ることができない（非特許文献１参照）。
【０００８】
また、ログには、各種の機能が出力する一連の系列が混在する。したがって、単純にログ系列を比較するだけでなく、異なった機能が出力する多種のログが混在していても類似度を計算できるような方法によってログ系列を比較することが好ましい。そこで、系列を比較する他の方法として、ＤＰ（Dynamic  Programming）マッチング（動的計画法）を用いることも考えられる。ＤＰマッチングを用いた場合、他のログが混ざっていても、並び順を保って最適にマッチする行数を求めることができる。しかし、ログ系列では、複数行が連続して一致するほど類似性は高いといえるが、ＤＰマッチングは、不連続な一致を許容しすぎてしまい、そのままでは連続して一致する場合に類似度が高いと評価することができない（非特許文献２参照）。
【０００９】
開示の実施形態は、上記に鑑みてなされたものであり、ログ系列の特性を反映してログ系列の類似度を判定することで、異常ログを検出することを目的とする。
【課題を解決するための手段】
【００１０】
開示する異常ログ検出システムおよび異常ログ検出方法は、情報システムのログから、先頭を１行ずつずらして２行以上の所定行数のログ系列を抽出する。異常ログ検出システムおよび異常ログ検出方法は、抽出した１のログ系列を１行ずつずらしながら、他のログ系列と一致する行数を数えてログ一致行数系列を作成し、作成したログ一致行数系列の面積と尖度との積を、類似度として算出する。異常ログ検出システムおよび異常ログ検出方法は、算出した類似度に基づき、１のログ系列の異常を検出する。
【発明の効果】
【００１１】
開示する異常ログ検出システムおよび異常ログ検出方法は、ログ系列の特性を反映してログ系列の類似度を判定することで、異常ログを検出することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、第１の実施形態にかかる異常ログ検出システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態にかかる異常ログ検出システムにおける処理の概要について説明するための図である。
【図３】図３は、第１の実施形態にかかる異常ログ検出処理の大まかな流れの一例を示すフローチャートである。
【図４】図４は、第１の実施形態におけるログ系列の抽出手法の一例を説明するための図である。
【図５】図５は、第１の実施形態にかかる異常ログ検出システムにおいて、ログ系列間の類似度を算出する手法の一例を説明するための図である。
【図６】図６は、図５に示す二つのログ系列を突き合わせる場合について説明するための図である。
【図７】図７は、第１の実施形態におけるログ系列の比較と類似度の算出の具体例について説明するための図である。
【図８】図８は、第１の実施形態にかかる異常検出処理について説明するための図である。
【図９】図９は、プログラムが実行されることにより、異常ログ検出装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、開示するシステムおよび方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、各実施形態は適宜組み合わせることができる。
【００１４】
（第１の実施形態）
図１は、第１の実施形態にかかる異常ログ検出システム１の構成の一例を示す図である。第１の実施形態にかかる異常ログ検出システム１は、異常ログ検出装置１０と、情報処理システム２０とを備える。異常ログ検出装置１０と、情報処理システム２０とは、ネットワーク３０により通信可能に接続される。
【００１５】
異常ログ検出装置１０は、情報処理システム２０からログを取得し、ログを解析することにより、通常の状態と評価されるログと、通常の状態から逸脱した異常なログと評価されるログとを区別し、異常なログを検出する。
【００１６】
情報処理システム２０は、情報処理を実行する。情報処理システム２０の構成および機能は特に限定されず、所定の情報処理を実行し、実行した情報処理に応じてログを蓄積するシステムであればよい。情報処理システム２０は、情報処理に応じて生成蓄積されるログを、異常ログ検出装置１０に送信する。ログの送信タイミングは特に限定されないが、逐次的に情報処理システム２０の状態を監視し、安定した運用を実現するという観点からは、情報処理システム２０はログを生成するごとに異常ログ検出装置１０に送信するよう構成されることが好ましい。なお、図１は、異常ログ検出装置１０と、情報処理システム２０と、を別体として例示するが、異常ログ検出装置１０は、監視対象である情報処理システム２０に組み入れて構成してもよい。
【００１７】
ネットワーク３０は、任意の通信網である。ネットワーク３０の種類は特に限定されない。ネットワーク３０はたとえば、インターネット、ＷＡＮ（Wide  Area  Network）、ＬＡＮ（Local  Area  Network）など任意の通信網である。また、ネットワーク３０は、有線でも無線でもよく、両者の組み合わせであってもよい。
【００１８】
図２は、第１の実施形態にかかる異常ログ検出システム１における処理の概要について説明するための図である。図２に示すように、異常ログ検出装置１０は、情報処理システム２０が出力するログを取得する。ログは複数の行から構成される。複数の行から構成されるログを取得した異常ログ検出装置１０は、取得したログを蓄積し、学習処理を実行する。異常ログ検出装置１０は、学習処理により、ログの通常状態と、通常状態から逸脱する異常状態と、を識別する。そして、異常ログ検出装置１０は、以後情報処理システム２０から出力されるログと、学習済みのログとを比較することにより、通常状態から逸脱する異常ログを検出する。異常ログ検出装置１０は、検出した異常ログの情報を外部に出力（通知）する。これにより、情報処理システム２０の保守者は、情報処理システム２０の異常を検知し、開発者に解析を依頼する等の対応をとることができる。
【００１９】
このように、第１の実施形態の異常ログ検出システム１によれば、通常状態を逸脱するログを検出して早期に保守者に通知することができる。保守者は、早期に開発者に異常ログを詳細に解析させるなどの対応をとることができ、情報処理システム２０のトラブルを未然に防止して安定した運用を実現することができる。
【００２０】
次に、図１に戻り、異常ログ検出装置１０の構成の一例、および、異常ログ検出装置１０における異常ログ検出処理の流れの一例について説明する。
【００２１】
（異常ログ検出装置１０の構成の一例）
異常ログ検出装置１０は、制御部１００と、記憶部２００と、通信部３００と、を備える。
【００２２】
制御部１００は、異常ログ検出装置１０における異常ログ検出処理を制御する。制御部１００としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を利用することができる。また、制御部１００は、異常ログ検出装置１０における処理手順等を規定したプログラムや制御データを格納する記憶部を有する。制御部１００は、各種プログラムが動作することにより、各種の処理部として機能する。
【００２３】
制御部１００は、取得部１０１と、抽出部１０２と、算出部１０３と、検出部１０４と、を備える。
【００２４】
取得部１０１は、情報処理システム２０からログを取得する。取得部１０１は、取得したログを記憶部２００に記憶する。また、取得部１０１は、取得したログを、抽出部１０２に送信する。
【００２５】
抽出部１０２は、取得部１０１が取得したログから、所定の行数のログ系列を抽出する。具体的には、抽出部１０２は、取得部１０１が取得したログを、１行ずつずらして所定の行数分だけログ系列として抽出する。抽出部１０２は、抽出した所定の行数ｎ（ｎは２以上の自然数）のログ系列を、ｎ次元ベクトル（ｎ次元のログ系列）とする。
【００２６】
算出部１０３は、抽出部１０２が抽出したログ系列を、抽出済みの他のログ系列と比較して類似度を算出する。類似度の算出の詳細については後述する。
【００２７】
検出部１０４は、算出部１０３が算出した類似度に基づき、ログ系列の異常を検出する。たとえば、検出部１０４は、ログ系列と複数の他のログ系列との類似度のうち、上位所定数の類似度が閾値以下（すなわち類似度が低い）の場合、当該ログ系列は異常ログを含むと判定する。検出部１０４は、上位所定数の類似度が閾値より大きい場合、当該ログ系列は異常ログを含まないと判定する。検出部１０４は、判定結果を異常ログ検出装置１０の外部に出力する。
【００２８】
記憶部２００は、各種のデータを記憶する記憶装置である。記憶部２００は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、などのデータを書き換え可能な半導体メモリであってもよい。記憶部２００として使用される装置は特に限定されない。
【００２９】
記憶部２００は、ログ記憶部２０１と、ログ系列記憶部２０２と、類似度記憶部２０３と、検出結果記憶部２０４と、を備える。
【００３０】
ログ記憶部２０１は、情報処理システム２０から取得部１０１により取得されるログを記憶する。
【００３１】
ログ系列記憶部２０２は、抽出部１０２が抽出するログ系列を記憶する。
【００３２】
類似度記憶部２０３は、算出部１０３が算出するログ系列間の類似度を記憶する。
【００３３】
検出結果記憶部２０３は、検出部１０４により異常ログを含むと判定されたログ系列を記憶する。
【００３４】
なお、記憶部２００に含まれる各部は適宜統合分散することができる。また、記憶される情報の構成も適宜変更することができる。
【００３５】
通信部３００は、異常ログ検出装置１０と外部との通信を実行する。通信部３００は、検出部１０４が検出した異常ログの情報を外部に送信する。通信部３００はまた、情報処理システム２０が出力するログを受信する。通信部３００は、外部との通信を可能にするものであれば具体的な構成は特に限定されない。通信部３００は、情報の入力および出力を実行する入力部および出力部の機能も備えるものとする。
【００３６】
（異常ログ検出処理の流れの一例）
図３は、第１の実施形態にかかる異常ログ検出処理の大まかな流れの一例を示すフローチャートである。
【００３７】
異常ログ検出装置１０は、電源投入や指示入力等所定のトリガに応じて、情報処理システム２０の監視を開始する（ステップＳ４１）。異常ログ検出装置１０が監視を開始すると、情報処理システム２０から出力されるログを通信部３００を介して取得部１０１が取得し、ログ記憶部２０１に記憶する（ステップＳ４２）。ログが取得されると、抽出部１０２は、取得されたログを一行ずつずらしてｎ行のログをｎ次元のログ系列として抽出する（ステップＳ４３）。算出部１０３は、抽出されたログ系列と他の抽出済みのログ系列との類似度を算出する（ステップＳ４４）。検出部１０４は、上位所定数の類似度が閾値以下の場合、当該ログ系列は異常ログを含むと判定する。検出部１０４は、上位所定数の類似度が閾値より大きい場合、当該ログ系列は異常ログを含まないと判定する。検出部１０４は検出結果を外部に出力する（ステップＳ４５）。以上が、異常ログ検出処理の大まかな流れの一例である。
【００３８】
（ログ系列の抽出手法の一例）
図４は、第１の実施形態におけるログ系列の抽出手法の一例を説明するための図である。図４に示すように、ログとして、「Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，…」が、情報処理システム２０から出力され、異常ログ検出装置１０により取得されたものとする。なお、図４中、アルファベットの大文字は各々１つの行を表すものとする。このとき、予め５行分を一つのログ系列とする旨、異常ログ検出装置１０に設定されているとする。抽出部１０２は、最初の５行分「Ａ，Ｂ，Ｃ，Ｄ，Ｅ」を一つのログ系列として抽出する。また、抽出部１０２は、最初に抽出したログ系列の先頭から１行ずらした箇所を先頭として次のログ系列を抽出する。すなわち、抽出部１０２は、２番目の行を先頭とする５行分「Ｂ，Ｃ，Ｄ，Ｅ，Ｆ」を次のログ系列として抽出する。さらに、抽出部１０２は、さらに１行ずらして３番目の行を先頭とする５行分「Ｃ，Ｄ，Ｅ，Ｆ，Ｇ」を次のログ系列として抽出する。このように、抽出部１０２は、取得したログから、先頭を１行ずつずらしながら所定数行分を切り出してログ系列として抽出する。
【００３９】
（ログ系列の類似度算出手法の一例）
図５は、第１の実施形態にかかる異常ログ検出システムにおいて、ログ系列間の類似度を算出する手法の一例を説明するための図である。また、図６は、図５に示す二つのログ系列を突き合わせる場合について説明するための図である。一例として、図５では、５行のログ系列ａ「Ｚ，Ａ，Ｂ，Ｙ，Ｃ」と５行のログ系列ｂ「Ａ，Ｂ，Ｃ，Ｄ，Ｅ」との類似度を算出する場合を説明する。算出部１０３は、二つのログ系列を、一行ずつずらして突き合わせる。たとえば、ログ系列ａ「Ｚ，Ａ，Ｂ，Ｙ，Ｃ」と、ログ系列ｂ「Ａ，Ｂ，Ｃ，Ｄ，Ｅ」とを先頭をそろえて突き合わせると、両者間で一致する部分はない（図６の（１））。ログ系列ｂを１行分右にずらしてログ系列ａと突き合わせると、「Ａ，Ｂ」が両者間で一致する（図６の（２））。ログ系列ｂをさらに１行分、合計で２行分右にずらしてログ系列ａと突き合わせると、「Ｃ」が一致する（図６の（３））。このように、算出部１０３は、類似度を算出する対象となるログ系列の一方を一行ずつずらして、二つのログ系列を突き合わせ、一致する行数を数える。
【００４０】
算出部１０３は、突き合わせの結果に基づき、一致した行数の系列ｄを作成する。たとえば、図５の例では、算出部１０３は、ログ一致行数系列ｄ＝（０，０，１，２，０，０，０，０，０）を作成する。算出部１０３は、あらかじめ二つのログ系列を突き合わせる順序を設定しておき、その順序に応じて一致行数を並べてベクトルとしてログ一致行数系列を作成する。たとえば図６の例では、オフセット数を「１」から「９」まで設定し、オフセット数「１」の場合は、ログ系列ｂをログ系列ａから右に４行ずらす。オフセット数「２」の場合は、ログ系列ｂをログ系列ａから右に３行ずらす。また、オフセット数「３」の場合は、ログ系列ｂをログ系列ａから右に２行ずらす。そして、各オフセット数の場合の一致行数を数えて、ベクトル化する。図６のようにオフセット「１」から「９」の順に一致行数を並べると、図５に示すログ一致行数系列ｄが得られる。
【００４１】
そして、算出部１０３は、ログ一致行数系列の面積ｓ（系列の長さで正規化したもの）と尖度ｋの積を類似度ｍとして算出する。たとえば、ｎ次元（ｎ行）のログ系列Ａ
【数１】
2017146832.tif 000003
と、ｎ次元のログ系列Ｂ
【数２】
2017146832.tif 000004
と、があるとする。ログ系列Ａとログ系列Ｂとの類似度を算出する場合、ログ一致行数系列
【数３】
2017146832.tif 000005
を、
【数４】
2017146832.tif 000006
と定義する。この場合、ログ一致行数系列の面積ｓおよび尖度ｋはそれぞれ、以下の式（１）（２）で定義される。なお、式（２）中、ｖは分散を示す。
【００４２】
【数５】
2017146832.tif 000007
【００４３】
ログ系列Ａとログ系列Ｂとの類似度ｍは、面積ｓと尖度ｋの積であるから、以下の式（３）で表される。
【００４４】
【数６】
2017146832.tif 000008
【００４５】
また、ログ系列Ａとログ系列Ｂとの間の距離は、類似度の逆数、すなわち、式（４）で表される。
【００４６】
【数７】
2017146832.tif 000009
【００４７】
以上に基づき、図７を参照し、例としてログ系列Ｈ１＝（Ｚ，Ａ，Ｂ，Ｙ，Ｃ）、Ｈ２＝（Ｕ，Ｖ，Ａ，Ｗ，Ｙ）、Ｌ＝（Ａ，Ｂ，Ｃ，Ｄ，Ｅ）について、Ｈ１とＬとの類似度、Ｈ２とＬとの類似度を算出する場合を考える。図７は、第１の実施形態におけるログ系列の比較と類似度の算出の具体例について説明するための図である。
【００４８】
図７の（Ａ）は、ログ系列Ｈ１とログ系列Ｌとを比較する場合について示す。ログ系列Ｈ１と、ログ系列Ｌとを１行ずつずらして突き合わせていくと、ログ系列ＬをＨ１より右に１行分ずらしたときに、「Ａ，Ｂ」の行が一致する。また、ログ系列ＬをＨ１より右に２行分ずらしたときに、「Ｃ」の行が一致する。これ以外の場合には、一致する行はない。したがって、ログ系列Ｈ１とログ系列Ｌのログ一致行数系列は、式（５）で表すことができる。
【００４９】
【数８】
2017146832.tif 000010
【００５０】
ここで、式（５）のログ一致行数系列について面積ｓを式（１）に基づいて算出すると、ｓ＝０．３３となる。また、尖度ｋを式（２）に基づいて算出すると、ｋ＝２となる。したがって、ログ系列Ｈ１とログ系列Ｌとの類似度は、ｍ（Ｈ１，Ｌ）＝０．６７となる。
【００５１】
他方、図７の（Ｂ）は、ログ系列Ｈ２とログ系列Ｌとを比較する場合について示す。ログ系列Ｈ２と、ログ系列Ｌとを１行ずつずらして突き合わせていくと、ログ系列ＬをＨ２より右に２行分ずらしたときに、「Ａ」の行が一致する。これ以外の場合には、一致する行はない。したがって、ログ系列Ｈ２とログ系列Ｌのログ一致行数系列は、式（６）で表すことができる。
【００５２】
【数９】
2017146832.tif 000011
【００５３】
ここで、式（６）のログ一致行数系列について面積ｓを式（１）に基づいて算出すると、ｓ＝０．１１となる。また、尖度ｋを式（２）に基づいて算出すると、ｋ＝０．７０となる。したがって、ログ系列Ｈ２とログ系列Ｌとの類似度は、ｍ（Ｈ２，Ｌ）＝０．０７８となる。
【００５４】
ログ系列Ｈ１とログ系列Ｌ、ログ系列Ｈ２とログ系列Ｌの場合を比較すると、ログ系列Ｈ２とログ系列Ｌの場合の方がログ系列Ｈ１とログ系列Ｌの場合よりも、面積も尖度も小さく、結果的に算出される類似度も小さい。すなわち、ログ系列Ｈ２よりログ系列Ｈ１の方がログ系列Ｌと類似している、と評価することができる。
【００５５】
このように、第１の実施形態の異常ログ検出装置１０は、ログから先頭行を１行ずつずらしてログ系列を抽出した上で、上記のように他のログ系列と比較してログ一致行数系列を導出し、ログ系列間の類似度を算出する。このため、異常ログ検出装置１０は、仮に一つのログ系列の中に異なる機能により生成されたログが混ざっていたとしても、ログ系列間の類似度をログの並び順や連続性も考慮にいれて算出することができる。
【００５６】
（異常検出処理の一例）
図８は、第１の実施形態にかかる異常検出処理について説明するための図である。検出部１０４が異常ログを含むログ系列を検出する手法としてはたとえば、ＬＯＦ（Local  Outlier  Factor）等の外れ値検出法を利用することができる。まず、図８を用いて、外れ値を検出する手法について説明する。
【００５７】
上述のようにログ系列を抽出し、類似度を算出した場合に、各ログ系列間の距離を、類似度の逆数で表現することができる（上記式（４））。このようにして得た各ログ系列間の距離をグラフ化すると、例えば図８に示すグラフのようになる。図８のグラフには、クラスタ１とクラスタ２が示される。クラスタ１に含まれるログ系列ｐ、ｑは過去に抽出されたログ系列である。また、クラスタ２に含まれるログ系列ｒも過去に抽出されたログ系列である。新たに抽出されたログ系列は、過去に抽出されたログ系列との距離を評価し、過去に抽出されたログ系列によって形成されるクラスタ（集団）に近ければ、過去に抽出されたログ系列と同様のログ系列である、と評価することができる。逆に、新たに抽出されたログ系列が、それまでに抽出されたログ系列により形成される何れのクラスタからも遠ければ、通常状態から逸脱する異常ログを含むログ系列である、と評価することができる。
【００５８】
図８の例において、たとえば、新しくログ系列ａが抽出されたとする。そしてログ系列ａとログ系列ｐおよびログ系列ｑとの距離をそれぞれ算出したところ、ログ系列ａがグラフに示す位置に配置されたとする。この場合、ログ系列ａとログ系列ｐ、ｑとの距離は、同じクラスタ１を構成する他のログ系列とログ系列ｐ、ｑとの距離とあまり変わらない。つまり、ログ系列ａは、クラスタ１を構成する通常状態のログ系列である、と評価することができる。
【００５９】
他方、図８の例において、新しくログ系列ｂが抽出されたとする。そしてログ系列ｂと、ログ系列ｑおよびログ系列ｒとの距離をそれぞれ算出したところ、ログ系列ｂがグラフに示す位置に配置されたとする。この場合、ログ系列ｂとログ系列ｑとの距離は、クラスタ１に属する他のログ系列とログ系列ｑとの距離と比較して遠い。また、ログ系列ｂとログ系列ｒとの距離は、クラスタ２に属する他のログ系列とログ系列ｒとの距離と比較して遠い。したがって、ログ系列ｂは、クラスタ１およびクラスタ２のいずれにも属さない、通常状態を逸脱したログ系列である、と評価することができる。
【００６０】
このように、各ログ系列について算出される距離を用いて、当該ログ系列が通常状態から逸脱しているか否かを判定することができる。
【００６１】
異常検出処理の具体的な手順は、算出部１０３が算出した類似度または距離に基づいて検出するのであれば、特に限定されない。また、異常検出のために使用する閾値等は、過去のログ系列から算出された類似度や距離に基づいて設定すればよい。閾値の設定には機械学習等を用いてもよい。また閾値は、ログ系列から新たに算出される類似度や距離に基づいて、逐次更新していくものとしてもよい。
【００６２】
（第１の実施形態の効果）
第１の実施形態にかかる異常ログ検出システムは、抽出部と、算出部と、検出部とを備える。抽出部は、情報システムのログから、先頭を一行ずつずらして２行以上の所定行数のログ系列を抽出する。算出部は、抽出した１のログ系列を１行ずつずらしながら、他のログ系列と一致する行数を数えてログ一致行数系列を作成し、作成したログ一致行数系列の面積と尖度との積を、類似度として算出する。検出部は、算出した類似度に基づき、１のログ系列の異常を検出する。このため、異常ログ検出システムは、ログ系列の特性を反映してログ系列の類似度を判定し、異常ログを検出することができる。また、異常ログ検出システムは、ログ系列に複数機能に起因するログが含まれている場合であっても、ログ系列間の類似度を算出することができる。また、異常ログ検出システムは、ログの並び順や連続性を反映した類似度を算出することができる。
【００６３】
また、第１の実施形態にかかる異常ログ検出システムにおいて、抽出部は、少なくとも２つのｎ行数のログ系列
【数１０】
2017146832.tif 000012
を抽出し、算出部は、２つのｎ行数のログ系列のログ一致行数系列
【数１１】
2017146832.tif 000013
について、
【数１２】
2017146832.tif 000014
により定義される面積ｓと、
【数１３】
2017146832.tif 000015
（ただし式中、ｖは分散）により定義される尖度ｋと、の積
【数１４】
2017146832.tif 000016
を、類似度として算出する。このため、異常ログ検出システムは、ログ系列に含まれるログの並び順や連続性も加味しつつ、ログ系列間の類似度を算出することができる。また、ログ系列に複数機能に起因するログが含まれていても、ログ系列間の類似度を算出することができる。
【００６４】
また、第１の実施形態にかかる異常ログ検出システムにおいて、算出部はさらに、類似度に基づき、１のログ系列と他のログ系列との間の距離を算出し、検出部は、類似度に基づき算出された距離に基づき、１のログ系列の異常を検出する。このため、異常ログ検出システムは、距離によってあらわされるログ系列間の類似度に基づき、容易に通常状態を逸脱するログ系列を検出することができる。
【００６５】
また、第１の実施形態にかかる異常ログ検出システムにおいて、算出部は、類似度の逆数を距離として算出し、検出部は、１のログ系列と他のログ系列との距離が、他のログ系列間の距離よりも所定値以上長い場合に、１のログ系列の異常を検出する。このため、異常ログ検出システムは、容易に通常状態を逸脱するログ系列を検出することができる。
【００６６】
また、上記のように構成した異常ログ検出システムは、情報システムを自動的に監視して、ログの通常状態を学習し、通常状態を逸脱するログを検出することができる。このため、異常ログ検出システムは、通常と異なる異常な振る舞いをするログを早期に検出して、情報処理システムの不具合に早期に対応し、情報処理システムの安定した運用を実現することを可能にする。
【００６７】
（システム構成等）
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６８】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６９】
（プログラム）
一実施形態として、異常ログ検出装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の監視を実行する異常ログ検出プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の異常ログ検出プログラムを情報処理装置に実行させることにより、情報処理装置を異常ログ検出装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）等のスレート端末等がその範疇に含まれる。
【００７０】
また、異常ログ検出装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の異常ログ検出に関するサービスを提供するサーバ装置として実装することもできる。例えば、異常ログ検出装置１０は、ログを入力とし、検出した異常ログを含むログ系列を出力とする異常ログ検出サービスを提供するサーバ装置として実装される。この場合、異常ログ検出装置１０は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の異常ログ検出に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００７１】
図９は、プログラムが実行されることにより、異常ログ検出装置が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００７２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００７３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、異常ログ検出装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、異常ログ検出装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００７４】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００７５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００７６】
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７７】
１  異常ログ検出システム
１０  異常ログ検出装置
２０  情報処理システム
３０  ネットワーク
１００  制御部
１０１  取得部
１０２  抽出部
１０３  算出部
１０４  検出部
２００  記憶部
２０１  ログ記憶部
２０２  ログ系列記憶部
２０３  類似度記憶部
２０４  検出結果記憶部
３００  通信部
【図１】
2017146832.tif 000022
【図２】
2017146832.tif 000023
【図３】
2017146832.tif 000024
【図４】
2017146832.tif 000025
【図５】
2017146832.tif 000026
【図６】
2017146832.tif 000027
【図７】
2017146832.tif 000028
【図８】
2017146832.tif 000029
【図９】
2017146832.tif 000030