(57)【要約】【課題】異なる集計単位および異なる機器について生成されたログの出力数の分布を用いて高精度に異常検出を行うことができる異常判定方法、システムおよびプログラムを提供すること。【解決手段】本発明の一実施形態に係る異常判定方法は、第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、複数の基準ログ情報から、分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択し、分析対象ログ情報と第１の基準ログ情報とに基づいて第１の機器の異常の有無を判定する。【選択図】図１
2020191137.tif 000002
【特許請求の範囲】
【請求項１】
第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、
第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、
前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択し、
前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する、
異常判定方法。
【請求項２】
前記基準ログ情報は前記第１の時間幅におけるログ出力数の時系列変化を表し、
前記分析対象ログ情報は前記第２の時間幅におけるログ出力数の時系列変化を表す
請求項１の異常判定方法。
【請求項３】
前記類似度は、相関係数である、請求項２の異常判定方法。
【請求項４】
複数の前記基準ログ情報に関する各々の前記第１の時間幅は、複数の時間幅である、請求項１の異常判定方法。
【請求項５】
前記第１の基準機器は、１以上の、機器またはプログラムを含む、請求項１の異常判定方法。
【請求項６】
前記複数の基準ログ情報として、第１の時間幅における第２の基準機器のログ出力数に関する情報を含む基準ログ情報をさらに取得する、請求項１の異常判定方法。
【請求項７】
第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、
第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、且つ
前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択する
取得部と、
前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する判定部と
を備える、異常判定システム。
【請求項８】
前記基準ログ情報は前記第１の時間幅におけるログ出力数の時系列変化を表し、
前記分析対象ログ情報は前記第２の時間幅におけるログ出力数の時系列変化を表す
請求項７の異常判定システム。
【請求項９】
前記類似度は、相関係数である、請求項８の異常判定システム。
【請求項１０】
複数の前記基準ログ情報に関する各々の前記第１の時間幅は、複数の時間幅である、請求項７の異常判定システム。
【請求項１１】
前記第１の基準機器は、１以上の、機器またはプログラムを含む、請求項７の異常判定システム。
【請求項１２】
前記複数の基準ログ情報として、第１の時間幅における第２の基準機器のログ出力数に関する情報を含む基準ログ情報をさらに取得する、請求項７の異常判定システム。
【請求項１３】
第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、
第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、
前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択し、
前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する
工程をコンピュータに実行させるためのプログラム。
【請求項１４】
第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、
第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、且つ
前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択する
取得部、及び、
前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する判定部
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログから異常を検出するための異常検出方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
コンピュータ上で実行されるシステムでは、一般的にイベントの結果やメッセージ等を含むログが出力される。システム異常等が発生した際には、通常時と比べてログの出力数の分布が変化することが多い。これは、例えば通常は出力されるログがシステム異常によって出力されない、あるいは通常は出力されないログがシステム異常によって出力されるためである。このようなログの出力数の変化を利用して異常を検出する技術が従来考案されている。
【０００３】
特許文献１に記載の技術は、過去のログ（イベント）が出力された頻度の分布から平均および標準偏差を算出し、算出された平均および標準偏差から理論的分布（正規分布、ポワソン分布等）を生成する。そして該技術は、理論的分布に基づいて分析対象のログから異常が発生したか否かを判定する。また、特許文献１には、正規分布、ポワソン分布等の異なる統計手法を用いて複数の種類の理論的分布を生成し、複数の種類の理論的分布から最適な理論的分布を選択して異常検出を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２３６８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的にログの出力数を変動させる要因は複数存在し、ログを集計する時間の単位（１時間ごと、１日ごと等）によってログの出力数に影響を与える主な要因が変わる場合がある。そのため、過去の一定期間のログを平均化した平均状態を基準とする場合に、適切に異常を検出できない可能性がある。また、同じ種類の機器であっても機器ごとに特性が異なるため、機器ごとのログの出力数の分布の特徴も変わり得る。そのため、複数の機器から出力されるログを平均化した平均状態を基準とすると、機器ごとおよび集計単位ごとの分布の特徴が埋もれてしまい、適切に異常を検出できない可能性がある。
【０００６】
しかしながら、特許文献１には、異なる統計手法の分布から選択された分布を異常検出の基準とすることは記載されているものの、異なる集計単位および異なる機器についてのログの分布を用いることは想定されていない。
【０００７】
本発明は、上述の問題に鑑みて行われたものであって、異なる集計単位および異なる機器について生成されたログの出力数の分布を用いて高精度に異常検出を行うことができる異常検出方法、システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様は、異常判定方法であって、第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択し、前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する工程を含む。
【０００９】
本発明の第２の態様は、異常判定システムであって、第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、且つ前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択する取得部と、前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する判定部とを備える。
【００１０】
本発明の第３の態様は、異常判定プログラムであって、第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択し、前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する工程をコンピュータに実行させる。
【００１１】
本発明の第４の態様は、異常判定プログラムであって、第１の時間幅における第１の基準機器のログ出力数に関する情報を含む複数の基準ログ情報を取得し、第２の時間幅における第１の機器のログ出力数に関する情報を含む分析対象ログ情報を取得し、且つ前記複数の基準ログ情報から、前記分析対象ログ情報との類似度に基いて第１の基準ログ情報を選択する取得部、及び、前記分析対象ログ情報と前記第１の基準ログ情報とに基づいて前記第１の機器の異常の有無を判定する判定部としてコンピュータを機能させる。
【発明の効果】
【００１２】
本発明によれば、ログを出力する機器ごとおよびログの集計単位ごとに生成された複数の分布を用いて異常を検出するため、機器ごとおよび集計単位ごとの分布の特徴を生かして高精度に異常を検出することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係る異常検出システムのブロック図である。
【図２】第１の実施形態に係る分析対象ログの模式図である。
【図３】第１の実施形態に係るフォーマットの模式図である。
【図４】第１の実施形態に係る異常検出方法の模式図である。
【図５】第１の実施形態に係る例示的な集計単位の模式図である。
【図６】第１の実施形態に係る異常検出システムの概略構成図である。
【図７】第１の実施形態に係る異常検出方法のフローチャートを示す図である。
【図８】第２の実施形態に係る異常検出システムのブロック図である。
【図９】第２の実施形態に係る異常検出方法の模式図である。
【図１０】第２の実施形態に係る異常検出方法のフローチャートを示す図である。
【図１１】各実施形態に係る異常検出システムのブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
【００１５】
（第１の実施形態）
図１は、本実施形態に係る異常検出システム１００のブロック図である。図１において、矢印は主なデータの流れを示しており、図１に示したもの以外のデータの流れがあってよい。図１において、各ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図１に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてよい。
【００１６】
異常検出システム１００は、処理部として、ログ入力部１１０、フォーマット判定部１２０、分析対象分布生成部１３０、基準分布取得部１４０、異常検出部１５０および通知制御部１６０を備える。また、異常検出システム１００は、記憶部として、フォーマット記憶部１７１および基準分布記憶部１７２を備える。
【００１７】
ログ入力部１１０は、分析の対象とする分析対象ログ１０を受け取り、異常検出システム１００に入力する。分析対象ログ１０は、異常検出システム１００の外部から取得されてよく、あるいは異常検出システム１００の内部に予め記録されたものを読み出すことにより取得されてよい。分析対象ログ１０は、１つ以上の装置又はプログラムから出力される１つ以上のログを含む。分析対象ログ１０は、任意のデータ形式（ファイル形式）で表されたログであり、例えばバイナリデータ又はテキストデータでよい。また、分析対象ログ１０はデータベースのテーブルとして記録されてよく、あるいはテキストファイルとして記録されてよい。
【００１８】
図２は、例示的な分析対象ログ１０の模式図である。本実施形態における分析対象ログ１０は、装置又はプログラムから出力される１つのログを１単位とし、１つ以上の任意の数のログを含む。１つのログは１行の文字列でよく、あるいは複数行の文字列でよい。すなわち、分析対象ログ１０は分析対象ログ１０に含まれるログの総体を指し、ログは分析対象ログ１０から抜き出された１つのログを指す。各ログは、タイムスタンプおよびメッセージ等を含む。異常検出システム１００は、特定の種類のログに限らず、広範な種類のログを分析対象とすることができる。例えば、ｓｙｓｌｏｇ、イベントログ等のオペレーティングシステムやアプリケーションなどから出力されるメッセージを記録する任意のログを分析対象ログ１０として用いることができる。
【００１９】
フォーマット判定部１２０は、分析対象ログ１０に含まれる各ログに対して、フォーマット記憶部１７１に予め記録されているいずれのフォーマット（形式）に合致するかを判定し、合致するフォーマットを用いて各ログを変数部分と定数部分とに分離する。フォーマットとは、ログの特性に基づいて予め決められた、ログの種類である。ログの特性は、互いに類似するログ間で変化しやすい又は変化しづらいという性質や、ログ中で変化しやすい部分を示す文字列が記載されているという性質を含む。変数部分とはフォーマットの中で変化可能な部分であり、定数部分とはフォーマットの中で変化しない部分である。入力されたログ中の変数部分の値（数値、文字列およびその他のデータを含む）を変数値と呼ぶ。変数部分および定数部分はフォーマット毎に異なる。そのため、あるフォーマットでは変数部分として定義される部分が、別のフォーマットでは定数部分として定義されることや、その逆があり得る。
【００２０】
図３は、フォーマット記憶部１７１に記録される例示的なフォーマットの模式図である。フォーマットは、一意のフォーマットＩＤに関連付けられたフォーマットを表す文字列を含む。フォーマットは、ログ中の変化可能な部分に所定の識別子を記載することによって変数部分として規定し、ログ中の変数部分以外の部分を定数部分として規定する。変数部分の識別子として、例えば「＜変数：タイムスタンプ＞」はタイムスタンプを表す変数部分を示し、「＜変数：文字列＞」は任意の文字列を表す変数部分を示し、「＜変数：数値＞」は任意の数値を表す変数部分を示し、「＜変数：ＩＰ＞」は任意のＩＰアドレスを表す変数部分を示す。変数部分の識別子はこれらに限られず、正規表現や、取り得る値のリスト等の任意の方法により定義されてよい。また、フォーマットは変数部分を含まずに定数部分のみによって構成されてよく、あるいは定数部分を含まずに変数部分のみによって構成されてよい。
【００２１】
例えば、フォーマット判定部１２０は、図２の３行目のログを、図３のＩＤが１であるフォーマットに合致すると判定する。そして、フォーマット判定部１２０は、判定されたフォーマットに基づいて該ログを処理し、タイムスタンプである「２０１５／０８／１７  ０８：２８：３７」、文字列である「ＳＶ００３」、数値である「３２５８」およびＩＰアドレスである「１９２．１６８．１．２３」を変数値として決定する。
【００２２】
図３において、フォーマットは視認性のために文字列のリストで表されているが、任意のデータ形式（ファイル形式）で表されてよく、例えばバイナリデータ又はテキストデータでよい。また、フォーマットはバイナリファイル又はテキストファイルとしてフォーマット記憶部１７１に記録されてよく、あるいはデータベースのテーブルとしてフォーマット記憶部１７１に記録されてよい。
【００２３】
分析対象分布生成部１３０、基準分布取得部１４０および異常検出部１５０は、以下に説明する異常検出方法によって、分析対象ログ１０から生成された分析対象分布、および基準分布記憶部１７２から分析対象分布に基づいて選択された基準分布を用いて異常を検出する。
【００２４】
図４は、本実施形態に係る異常検出方法の模式図である。基準分布記憶部１７２には、基準分布マトリクスＡ０が予め記録されている。基準分布マトリクスＡ０は、集計単位および機器の各組み合わせに対して生成されるログ出力数の分布Ａ１の集合である。ログ出力数の分布Ａ１は、少なくとも２つの集計単位および少なくとも２つの機器に対して生成される。基準分布マトリクスＡ０は、１つのフォーマットのログの出力数を用いて生成されてよく、あるいは複数のフォーマットのログの出力数の合計を用いて生成されてよく、あるいは全てのフォーマットのログの出力数の合計を用いて生成されてよい。すなわち本実施形態において、基準分布マトリクスＡ０は、１つ又は複数の所定のフォーマットのログの出力数から生成される分布の集合である。
【００２５】
集計単位は、ログ出力数の分布Ａ１を生成するために集計対象とする時間範囲の長さおよび時間範囲が該当する条件を規定する。例えば、集計単位は集計対象とする時間範囲の分、時、日等の長さを規定し、さらに該時間範囲が特定の曜日又は起点の条件を満たすことを規定する。各集計単位には、識別のための集計単位番号（集計単位Ｎｏ．）が割り振られる。
【００２６】
図５は、例示的な集計単位の模式図である。集計単位は、識別のための集計単位番号（集計単位Ｎｏ．）に関連付けられ、予め異常検出システム１００中で定義される。集計単位は、基準分布マトリクスＡ０に含まれるログ出力数の分布Ａ１を生成するための時間範囲を規定する規則である。すなわち、過去に出力されたログ（フォーマット）の出力数を、集計単位に従って集計することによってログ出力数の分布Ａ１が生成される。例えば集計単位が「１０分間」の場合には、過去に出力されたログ中で、１０分間（すなわち時刻Ｎから時刻Ｎ＋１０分の間、時刻Ｎは任意）に出力されたログの時系列分布の平均をログ出力数の分布Ａ１とする。集計単位が「１日（日曜日）」の場合には、過去に出力されたログ中で、１日間かつ日曜日に出力されたログの時系列分布の平均をログ出力数の分布Ａ１とする。集計単位が「過去１日」の場合には、過去に出力されたログ中で、現在を起点として遡った１日間に出力されたログの時系列分布をログ出力数の分布Ａ１とする。このように、集計単位は、ログの集計対象である時間範囲の長さおよび時間範囲の該当する条件を規定する。
【００２７】
図５に示した集計単位は一例であり、図５に示された一部の集計単位を用いてよく、あるいは図５に示されていない他の集計単位を用いてよい。図５では視認性のために集計単位は文字列で示されているが、実際には集計単位は集計の規則を示す任意のバイナリデータ又はテキストデータでよい。
【００２８】
機器は、ログの出力元の装置である。各機器には、識別のための機器番号（機器Ｎｏ．）が割り振られる。同じ種類の装置であっても、異なる実体である場合には異なる機器番号が割り振られる。また、同じ機器の中でログを出力する複数のソフトウェアが実行される場合には、各ソフトウェアに異なる機器番号が割り振られてよい。すなわち、ここではログを出力するソフトウェアも１つの機器とみなす。
【００２９】
ログ出力数の分布Ａ１は、集計単位および機器の各組み合わせにおけるログの出力数の時系列分布である。すなわち、ログ出力数の分布Ａ１は、集計単位および機器の各組み合わせについて、該集計単位の時間範囲において該機器から出力されたログの数の時系列の遷移を示す。ログの出力数の分布Ａ１は、図４では視認性のためにグラフとして表されているが、ログの出力数を時系列で並べたバイナリデータ又はテキストデータとして基準分布記憶部１７２に記録されてよい。
【００３０】
分析対象分布生成部１３０は、分析対象ログ１０から分析対象分布Ａ２を生成する。分析対象分布Ａ２は、分析対象とするログの出力数の時系列分布である。すなわち、分析対象分布Ａ２は、分析対象の期間において出力されたログの数の時系列の遷移を示す。分析対象分布Ａ２は１つの機器から出力されたログを用いて生成されてよく、あるいは複数の機器から出力されたログを用いて生成されてよい。分析対象分布Ａ２において集計対象とする１つ又は複数のフォーマットは、基準分布マトリクスＡ０において集計対象とされている１つ又は複数のフォーマットと同一である。分析対象分布Ａ２は、図４では視認性のためにグラフとして表されているが、ログの出力数を時系列で並べたバイナリデータ又はテキストデータとして生成されてよい。
【００３１】
基準分布取得部１４０は、基準分布マトリクスＡ０に含まれるログ出力数の分布Ａ１のうち、分析対象分布Ａ２に最も類似している分布を基準分布Ａ３として取得する。具体的には、基準分布取得部１４０は、異常検出を行う際に基準分布記憶部１７２から基準分布マトリクスＡ０を読み出す。次に、基準分布取得部１４０は、基準分布マトリクスＡ０に含まれるログ出力数の分布Ａ１そのそれぞれと、分析対象分布Ａ２との間の類似度を算出する。類似度としては、ログ出力数の分布Ａ１および分析対象分布Ａ２が類似している程度を示す任意の指標を用いることができ、例えば相関係数を用いてよい。相関係数が高いほど、ログ出力数の分布Ａ１および分析対象分布Ａ２が類似していることを示す。そして、基準分布取得部１４０は、算出された類似度に基づいて、基準分布マトリクスＡ０に含まれるログ出力数の分布Ａ１のうち、分析対象分布Ａ２と最も類似している分布（例えば最も類似度が高い分布）を基準分布Ａ３として選択する。
【００３２】
異常検出部１５０は、基準分布取得部１４０によって選択された基準分布Ａ３と分析対象分布Ａ２とを比較することによって異常を検出する。具体的には、異常検出部１５０は、基準分布Ａ３を基準とした分析対象分布Ａ２の異常度を算出する。そして異常検出部１５０は、算出された異常度が所定の正常範囲内でない場合に、異常を検出する。異常度としては、分析対象分布Ａ２が基準分布Ａ３から外れている程度を示す任意の指標を用いることができ、例えば相関係数を用いてよい。相関係数が低いほど、分析対象分布Ａ２が基準分布Ａ３から外れている程度が大きいことを示す。
【００３３】
通知制御部１６０は、異常検出部１５０によって検出された異常を示す情報を、ディスプレイ２０を用いて通知する制御を行う。通知制御部１６０による異常の通知は、ディスプレイ２０による表示に限らず、プリンタによる印刷、ランプの点灯、スピーカによる音声出力等、利用者に対して通知することが可能な任意の方法によって行われてよい。
【００３４】
このように本実施形態では、基準分布取得部１４０は様々な集計単位および機器のログ出力数の分布Ａ１の中から分析対象分布Ａ２に最も近い基準分布Ａ３を選択し、異常検出部１５０は選択された基準分布Ａ３を基準として分析対象分布Ａ２が異常か否かを判定する。そのため、分析対象分布Ａ２により近い基準を用いて高精度に異常を検出することができる。
【００３５】
本実施形態では分析対象分布Ａ２を基準分布マトリクスＡ０に含まれる全てのログ出力数の分布Ａ１と比較しているが、同一の集計単位で生成された分析対象分布Ａ２およびログ出力数の分布Ａ１に限定して比較を行ってもよい。例えば、分析対象分布生成部１３０は分析対象分布Ａ２を１０分間の集計単位で生成し、基準分布取得部１４０は基準分布マトリクスＡ０から集計単位番号１（１０分間）のログ出力数の分布Ａ１を抽出して類似度を算出し、その中から基準分布Ａ３を選択する。
【００３６】
本実施形態では１つの分析対象分布Ａ２を用いて異常を検出しているが、複数の分析対象分布Ａ２の組み合わせを用いて異常を検出してもよい。例えば、分析対象分布生成部１３０は、分析対象ログ１０から異なる集計単位（例えば１０分間および１時間）で２つの分析対象分布Ａ２を生成する。次に、基準分布取得部１４０は、各機器番号において同じ集計単位（すなわち１０分間および１時間）の２つのログ出力数の分布Ａ１に対して２つの類似度を算出する。そして、基準分布取得部１４０は、１つの機器番号について２つの類似度の合計が最も高い（すなわち最も類似している）２つのログ出力数の分布Ａ１を、２つの基準分布Ａ３として選択する。分析対象分布Ａ２の数は２つに限られず任意の数でよい。
【００３７】
図６は、本実施形態に係る異常検出システム１００の例示的な機器構成を示す概略構成図である。異常検出システム１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、メモリ１０２と、記憶装置１０３と、通信インターフェース１０４と、ディスプレイ２０とを備える。異常検出システム１００は独立した装置でよく、あるいは他の装置と一体に構成されてよい。
【００３８】
通信インターフェース１０４は、データの送受信を行う通信部であり、有線通信および無線通信の少なくとも一方の通信方式を実行可能に構成される。通信インターフェース１０４は、該通信方式に必要なプロセッサ、電気回路、アンテナ、接続端子等を含む。通信インターフェース１０４は、ＣＰＵ１０１からの信号に従って、該通信方式を用いてネットワークに接続され、通信を行う。通信インターフェース１０４は、例えば分析対象ログ１０を外部から受信する。
【００３９】
記憶装置１０３は、異常検出システム１００が実行するプログラムや、プログラムによる処理結果のデータ等を記憶する。記憶装置１０３は、読み取り専用のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、読み書き可能のハードディスクドライブ又はフラッシュメモリ等を含む。また、記憶装置１０３は、ＣＤ−ＲＯＭ等のコンピュータ読取可能な可搬記憶媒体を含んでもよい。メモリ１０２は、ＣＰＵ１０１が処理中のデータや記憶装置１０３から読み出されたプログラムおよびデータを一時的に記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含む。
【００４０】
ＣＰＵ１０１は、処理に用いる一時的なデータをメモリ１０２に一時的に記録し、記憶装置１０３に記録されたプログラムを読み出し、該プログラムに従って該一時的なデータに対して種々の演算、制御、判別などの処理動作を実行するプロセッサである。また、ＣＰＵ１０１は、記憶装置１０３に処理結果のデータを記録し、また通信インターフェース１０４を介して処理結果のデータを外部に送信する。
【００４１】
本実施形態においてＣＰＵ１０１は、記憶装置１０３に記録されたプログラムを実行することによって、図１のログ入力部１１０、フォーマット判定部１２０、分析対象分布生成部１３０、基準分布取得部１４０、異常検出部１５０および通知制御部１６０として機能する。また、本実施形態において記憶装置１０３は、図１のフォーマット記憶部１７１および基準分布記憶部１７２として機能する。
【００４２】
ディスプレイ２０は、利用者に対して情報を表示する表示装置である。ディスプレイ２０として、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ、液晶ディスプレイ等の任意の表示装置を用いてよい。ディスプレイ２０は、ＣＰＵ１０１からの信号に従って、所定の情報を表示する。
【００４３】
異常検出システム１００は、図６に示す具体的な構成に限定されない。異常検出システム１００は、１つの装置に限られず、２つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されていてもよい。異常検出システム１００に含まれる各部は、それぞれ電気回路構成により実現されていてもよい。ここで、電気回路構成とは、単一のデバイス、複数のデバイス、チップセット又はクラウドを概念的に含む文言である。
【００４４】
また、異常検出システム１００の少なくとも一部がＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）形式で提供されてよい。すなわち、異常検出システム１００を実現するための機能の少なくとも一部が、ネットワーク経由で実行されるソフトウェアによって実行されてよい。
【００４５】
図７は、本実施形態に係る異常検出システム１００を用いる異常検出方法のフローチャートを示す図である。図７のフローチャートは、例えば利用者が異常検出システム１００に対して異常検出を実行するための所定の操作を行うことによって開始される。まず、ログ入力部１１０は、分析対象ログ１０を受け取り、異常検出システム１００に入力する（ステップＳ１０１）。フォーマット判定部１２０は、ステップＳ１０１で入力された分析対象ログ１０に含まれる各ログについて、フォーマット記憶部１７１に記録されたいずれのフォーマットに適合するか判定する（ステップＳ１０２）。
【００４６】
次に、分析対象分布生成部１３０は、ステップＳ１０２でフォーマットが判定されたログから分析対象の所定のフォーマットのログを抽出し、該ログの出力数の時系列分布を分析対象分布として生成する（ステップＳ１０３）。ここで、分析対象ログの全期間について分析対象分布が生成されてよく、１つ又は複数の所定の集計単位について分析対象分布が生成されてよい。
【００４７】
基準分布取得部１４０は、基準分布記憶部１７２から基準分布マトリクスを読み出し、基準分布マトリクスに含まれるログ出力数の分布のそれぞれと、ステップＳ１０３で生成された分析対象分布との間の類似度を算出する（ステップＳ１０４）。そして、基準分布取得部１４０は、ステップＳ１０４で算出された類似度に基づいて、基準分布マトリクスに含まれるログ出力数の分布のうち、分析対象分布と最も類似している分布（例えば最も類似度が高い分布）を基準分布として選択する（ステップＳ１０５）。
【００４８】
異常検出部１５０は、ステップＳ１０５で選択された基準分布を基準として分析対象分布の異常度を算出する。そして異常検出部１５０は、算出された異常度が所定の正常範囲内でない場合に、異常を検出する（ステップＳ１０６）。
【００４９】
ステップＳ１０６で異常が検出された場合に（ステップＳ１０７のＹＥＳ）、通知制御部１６０は、ステップＳ１０６で検出された異常を示す情報を、ディスプレイ２０を用いて通知する制御を行う（ステップＳ１０８）。ステップＳ１０８における通知を行った後、あるいはステップＳ１０６で異常が検出されない場合に（ステップＳ１０７のＮＯ）、異常検出方法を終了する。
【００５０】
異常検出システム１００のＣＰＵ１０１は、図７に示す異常検出方法に含まれる各ステップ（工程）の主体となる。すなわち、ＣＰＵ１０１は、図７に示す異常検出方法を実行するためのプログラムをメモリ１０２又は記憶装置１０３から読み出し、該プログラムを実行して異常検出システム１００の各部を制御することによって図７に示す異常検出方法を実行する。
【００５１】
従来の異常検出方法では様々な集計単位および機器の分布を平均化したものを異常検出の基準としていたため、集計単位ごとおよび機器ごとの分布の特徴が埋もれてしまい、正確に異常を検出できない場合があった。それに対して、本実施形態に係る異常検出システム１００は、基準分布取得部１４０によって様々な集計単位および機器のログ出力数の分布Ａ１の中から分析対象分布Ａ２に最も近い基準分布Ａ３を選択し、選択された基準分布Ａ３を基準として分析対象分布Ａ２が異常か否かを判定する。そのため、集計単位ごとおよび機器ごとの分布の特徴を生かして、分析対象分布Ａ２に近い基準を用いて高精度に異常を検出することができる。
【００５２】
（第２の実施形態）
第１の実施形態は分析対象分布を基準分布マトリクスと比較することによって分析対象分布の異常を検出する。それに対して、本実施形態は基準分布マトリクスの中から外れた分布を抽出することによって、異常な分布又は異常な機器を検出する。
【００５３】
図８は、本実施形態に係る異常検出システム２００のブロック図である。図８において、矢印は主なデータの流れを示しており、図８に示したもの以外のデータの流れがあってよい。図８において、各ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図８に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてよい。
【００５４】
異常検出システム２００は、処理部として、基準分布取得部２４０、異常検出部２５０および通知制御部２６０を備える。また、異常検出システム１００は、記憶部として、基準分布記憶部２７２を備える。異常検出システム２００の機器構成は、図６と同様でよい。基準分布取得部２４０および異常検出部２５０は、以下に説明する異常検出方法によって、基準分布マトリクスから異常を検出する。
【００５５】
図９は、本実施形態に係る異常検出方法の模式図である。基準分布記憶部２７２には、基準分布マトリクスＢ０が予め記録されている。基準分布マトリクスＢ０は、集計単位および機器の各組み合わせに対して生成されるログ出力数の分布Ｂ１の集合である。集計単位および機器の定義は第１の実施形態と同様である。また、ログ出力数の分布Ｂ１は、第１の実施形態のログ出力数の分布Ａ１と同様の方法で生成される。
【００５６】
基準分布取得部２４０は、異常検出を行う際に基準分布記憶部２７２から基準分布マトリクスＢ０を読み出す。異常検出部２５０は、基準分布マトリクスＢ０に含まれるログ出力数の分布Ｂ１を機器（機器番号）ごとに平均することによって機器平均分布を算出する。次に、異常検出部２５０は、算出された機器平均分布同士の類似度を算出し、類似度に基づいて機器のグループ（例えば所定の閾値以上の類似度を有する機器のグループ）を生成する。機器のグループ化には、既知のクラスタリング方法を用いてよい。異常検出部２５０は、以下の異常検出処理を機器のグループごとに行う。また、機器をグループ化せずに全ての機器を対象として以下の異常検出処理を行ってよい。
【００５７】
異常検出部２５０は、各集計単位について分布Ｂ１を平均することによって集計単位ごとの平均分布を算出し、算出された平均分布と該集計単位の各分布Ｂ１との類似度を算出する。そして、異常検出部２５０は、集計単位ごとの平均分布から外れている（例えば平均分布に対する類似度が所定の閾値以下である）分布Ｂ１を、異常な分布Ｂ２として抽出する。また、平均分布との類似度が低い順に所定の数の分布Ｂ１を異常な分布Ｂ２として抽出してもよい。
【００５８】
別の方法として、異常検出部２５０は、各集計単位に含まれる分布Ｂ１同士の類似度を算出し、同じ集計単位内の他の分布から外れている分布、すなわち他の分布に対する類似度の合計値又は平均値が低い分布Ｂ１を、異常な分布Ｂ２として抽出する。また、他の分布との類似度の合計値又は平均値が低い順に所定の数の分布Ｂ１を異常な分布Ｂ２として抽出してもよい。
【００５９】
基準分布マトリクスＢ０から異常な分布Ｂ２を抽出する方法として、ここに示したものに限られず、集計単位ごとに外れた分布を抽出可能な任意の方法を用いてよい。
【００６０】
さらに異常検出部２５０は、各機器（機器番号）に係る分布Ｂ１のうち異常な分布Ｂ２の数又は割合を算出し、算出された数又は割合が所定の閾値以上である機器を異常な機器として検出する。
【００６１】
通知制御部２６０は、異常検出部２５０によって検出された異常を示す情報を、ディスプレイ２０を用いて通知する制御を行う。通知制御部２６０による検出された異常の通知は、ディスプレイ２０による表示に限らず、プリンタによる印刷、ランプの点灯、スピーカによる音声出力等、利用者に対して通知することが可能な任意の方法によって行われてよい。
【００６２】
図１０は、本実施形態に係る異常検出システム２００を用いる異常検出方法のフローチャートを示す図である。図１０のフローチャートは、例えば利用者が異常検出システム２００に対して異常検出を実行するための所定の操作を行うことによって開始される。まず、基準分布取得部２４０は、基準分布記憶部２７２から基準分布マトリクスを読み出して取得する（ステップＳ２０１）。
【００６３】
異常検出部２５０は、ステップＳ２０１で取得された基準分布マトリクスに含まれるログ出力数の分布を機器（機器番号）ごとに平均することによって機器平均分布を算出する。次に、異常検出部２５０は、算出された機器平均分布同士の類似度を算出し、類似度に基づいて機器のグループを生成する（ステップＳ２０２）。以下の処理は、機器のグループごとに行われる。
【００６４】
異常検出部２５０は、ステップＳ２０１で取得された基準分布マトリクスに含まれるログ出力数の分布のうち、集計単位ごとに外れた分布を異常な分布として抽出する（ステップＳ２０３）。
【００６５】
さらに異常検出部２５０は、各機器（機器番号）についてステップＳ２０４で抽出された異常な分布の数又は割合を算出し、算出された数又は割合が所定の閾値以上である機器を異常な機器として検出する（ステップＳ２０４）。
【００６６】
ステップＳ２０３〜Ｓ２０４で異常な分布又は機器が検出された場合に（ステップＳ２０５のＹＥＳ）、通知制御部２６０は、ステップＳ２０３〜Ｓ２０４で検出された異常を示す情報を、ディスプレイ２０を用いて通知する制御を行う（ステップＳ２０６）。ステップＳ２０６における通知を行った後、あるいはステップＳ２０３〜２０４で異常が検出されない場合に（ステップＳ２０５のＮＯ）、異常検出方法を終了する。
【００６７】
異常検出システム２００のＣＰＵ１０１は、図１０に示す異常検出方法に含まれる各ステップ（工程）の主体となる。すなわち、ＣＰＵ１０１は、図１０に示す異常検出方法を実行するためのプログラムをメモリ１０２又は記憶装置１０３から読み出し、該プログラムを実行して異常検出システム２００の各部を制御することによって図１０に示す異常検出方法を実行する。
【００６８】
以上のように、本実施形態に係る異常検出システム２００は、様々な集計単位および機器のログ出力数の分布Ｂ１の中から外れている分布Ｂ２を抽出することによって異常を検出する。そのため、集計単位ごとおよび機器ごとの分布の特徴を生かして、異常な分布又は機器を検出することができる。
【００６９】
（その他の実施形態）
図１１は、上述の各実施形態に係る異常検出システム１００、２００の概略構成図である。図１１には、異常検出システム１００、２００が異なる集計単位および異なる機器について生成されたログの出力数の分布を用いて異常を検出する装置として機能するための構成例が示されている。異常検出システム１００、２００は、ログを出力する機器ごとおよび前記ログを集計する時間範囲の単位ごとに生成された複数の分布を取得する分布取得部１４０、２４０と、前記複数の分布を用いて異常を検出する異常検出部１５０、２５０と、を備え、前記複数の分布のそれぞれは、前記単位中の前記ログの出力数の時系列分布である。
【００７０】
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【００７１】
上述の実施形態の機能を実現するように該実施形態の構成を動作させるプログラム（より具体的には、図７、１０に示す処理をコンピュータに実行させる異常検出プログラム）を記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記録媒体はもちろん、そのプログラム自体も各実施形態に含まれる。
【００７２】
該記録媒体としては例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、ＯＳ上で動作して処理を実行するものも各実施形態の範疇に含まれる。
【００７３】
上述の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７４】
（付記１）
ログを出力する機器ごとおよび前記ログを集計する時間範囲の単位ごとに生成された複数の分布を取得する工程と、
前記複数の分布を用いて異常を検出する工程と、
を含み、
前記複数の分布のそれぞれは、前記単位中の前記ログの出力数の時系列分布である異常検出方法。
【００７５】
（付記２）
分析対象ログに含まれるログの出力数の時系列分布である分析対象分布を生成する工程をさらに備え、
前記取得する工程は、前記複数の分布から前記分析対象分布に最も類似している基準分布を選択し、
前記検出する工程は、前記分析対象分布と前記基準分布とを比較することによって、前記分析対象ログにおける前記異常を検出することを特徴とする、付記１に記載の異常検出方法。
【００７６】
（付記３）
前記取得する工程は、前記分析対象分布と前記複数の分布のそれぞれとの類似度を算出し、前記複数の分布のうち前記類似度が所定の閾値以上である分布を前記基準分布として選択することを特徴とする、付記２に記載の異常検出方法。
【００７７】
（付記４）
前記検出する工程は、前記基準分布を基準とした前記分析対象分布の異常度を算出し、前記異常度が所定の正常範囲内でない場合に前記異常を検出することを特徴とする、付記２又は３に記載の異常検出方法。
【００７８】
（付記５）
前記複数の分布から外れた分布を異常な分布として抽出することによって前記異常を検出することを特徴とする、付記１に記載の異常検出方法。
【００７９】
（付記６）
前記複数の分布の互いの類似度を算出し、前記互いの類似度に基づいて前記複数の分布から外れた分布を抽出することを特徴とする、付記５に記載の異常検出方法。
【００８０】
（付記７）
前記機器ごとの前記異常な分布の数又は割合が所定の閾値以上である前記機器を異常な機器として抽出することによって前記異常を検出することを特徴とする、付記５又は６に記載の異常検出方法。
【００８１】
（付記８）
前記単位は、前記時間範囲の長さおよび前記時間範囲が該当する条件を示すことを特徴とする、付記１〜７のいずれか一項に記載の異常検出方法。
【００８２】
（付記９）
コンピュータに、
ログを出力する機器ごとおよび前記ログを集計する時間範囲の単位ごとに生成された複数の分布を取得する工程と、
前記複数の分布を用いて異常を検出する工程と、
を実行させ、
前記複数の分布のそれぞれは、前記単位中の前記ログの出力数の時系列分布である異常検出プログラム。
【００８３】
（付記１０）
ログを出力する機器ごとおよび前記ログを集計する時間範囲の単位ごとに生成された複数の分布を取得する分布取得部と、
前記複数の分布を用いて異常を検出する異常検出部と、
を備え、
前記複数の分布のそれぞれは、前記単位中の前記ログの出力数の時系列分布である異常検出システム。
【図１】
2020191137.tif 000003
【図２】
2020191137.tif 000004
【図３】
2020191137.tif 000005
【図４】
2020191137.tif 000006
【図５】
2020191137.tif 000007
【図６】
2020191137.tif 000008
【図７】
2020191137.tif 000009
【図８】
2020191137.tif 000010
【図９】
2020191137.tif 000011
【図１０】
2020191137.tif 000012
【図１１】
2020191137.tif 000013