(57)【要約】      （修正有）【課題】障害発生の前兆を検知し、サービス品質の向上を図る事のできる異常検知装置を提供する。【解決手段】異常検知装置１が、検知対象の異常状態のそれぞれに、異常状態の検知に用いるパラメータと判定方式とを関連付けた異常状態判定テーブルを保持する。収集部１１が、監視対象のサーバ２Ａ〜２Ｃから当該サーバの状態およびソフトウェアの状態に関するパラメータを収集する。検知部１２が、異常状態判定テーブルを参照し、異常状態のそれぞれについて、異常状態判定テーブルにおいて関連付けられたパラメータを入力値として、異常状態判定テーブルにおいて関連付けられた判定方式を適用して異常状態を検知する。【選択図】図１
2020038525.tif 000002
【特許請求の範囲】
【請求項１】
監視対象のサーバから当該サーバの状態および当該サーバが実行するソフトウェアの状態に関するパラメータを収集する収集手段と、
検知対象の複数の異常状態のそれぞれに、当該異常状態の検知に用いるパラメータと判定方式とを関連付けた異常状態判定テーブルを格納する記憶手段と、
前記異常状態のそれぞれについて、前記異常状態判定テーブルにおいて関連付けられた前記パラメータを入力値として、前記異常状態判定テーブルにおいて関連付けられた前記判定方式を適用して前記異常状態を検知する検知手段と、
を備えることを特徴とする異常検知装置。
【請求項２】
前記異常状態判定テーブルにおいて、２つ以上のパラメータが関連付けられた前記異常状態の判定方式は、各パラメータの時間変化の相関に基づいて前記異常状態を検知する判定方式であることを特徴とする請求項１に記載の異常検知装置。
【請求項３】
前記異常状態判定テーブルにおいて、単独のパラメータが関連付けられた前記異常状態の判定方式は、前記パラメータの値が正常な範囲内であるか否かに基づいて前記異常状態を検知する判定方式であることを特徴とする請求項１又は２に記載の異常検知装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバの異常を検知する技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータや携帯端末などのネットワークにアクセス可能な機器は１人１台を上回る台数が保有されている。ネットワークを介して提供されるサービスは不可欠なものとなっている。サービスを提供するサーバに障害が発生するとサービスが利用できなくなる。そのため、サーバを監視し、サーバの障害に可能な限り素早く対応することで、障害発生時のサービス停止時間および影響範囲拡大を最小限に抑えることがより重要である。近年、クラウド上の仮想サーバを利用してサービスを提供することも多く、監視対象として仮想サーバやサーバ機能を有する携帯端末などの各種機器も含まれる。
【０００３】
一方、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）機器の異常検知においては、ディープラーニングを用いた技術が開示されている（特許文献１）。特許文献１では、正常な状態のデータを学習し、正常な状態とは異なる特徴が抽出された場合に、異常な状態と判定することにより、ＩｏＴ機器の異常を検知している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−７３２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の監視システムは、障害発生後の対策に重点が置かれているため、対応が遅れがちであった。例えば、従来の監視システムは、障害を検知したサーバから障害発生通知の信号を受信することで障害の発生を検知し、管理者に障害発生を通知する。管理者は、障害発生後に対応することになり、顧客への影響は不可避であった。
【０００６】
障害の発生を防ぐためには、障害の発生よりも前の段階で対応ができるとよい。障害発生の前には、前兆となる異常な状態が続くことが多く、この異常な状態を検知し、対応することで、障害発生前の早い段階で障害の発生を未然に防ぐことができると考えられる。サーバ系の障害の発生に至る異常な状態は多種多様であり、網羅的に異常な状態を検知する必要がある。
【０００７】
本発明は、上記に鑑みてなされたものであり、障害発生の前兆を検知し、サービス品質の向上を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る異常検知装置は、監視対象のサーバから当該サーバの状態および当該サーバが実行するソフトウェアの状態に関するパラメータを収集する収集手段と、検知対象の複数の異常状態のそれぞれに、当該異常状態の検知に用いるパラメータと判定方式とを関連付けた異常状態判定テーブルを格納する記憶手段と、前記異常状態のそれぞれについて、前記異常状態判定テーブルにおいて関連付けられた前記パラメータを入力値として、前記異常状態判定テーブルにおいて関連付けられた前記判定方式を適用して前記異常状態を検知する検知手段を備えることを特徴とする。
【０００９】
上記異常検知装置において、前記異常状態判定テーブルにおいて、２つ以上のパラメータが関連付けられた前記異常状態の判定方式は、各パラメータの時間変化の相関に基づいて前記異常状態を検知する判定方式であることを特徴とする。
【００１０】
上記異常検知装置において、前記異常状態判定テーブルにおいて、単独のパラメータが関連付けられた前記異常状態の判定方式は、前記パラメータの値が正常な範囲内であるか否かに基づいて前記異常状態を検知する判定方式であることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、障害発生の前兆を検知し、サービス品質の向上を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態における異常検知装置の構成を示す機能ブロック図である。
【図２】異常状態判定テーブルの例を示す図である。
【図３】外れ値検知を説明するための図である。
【図４】変化点検知を説明するための図である。
【図５】ディープラーニングを説明するための図である。
【図６】検知、誤検知、検知漏れを説明するための図である。
【図７Ａ】変化が緩やかなデータを用いて、外れ値検知により異常を検知したときの様子を示す図である。
【図７Ｂ】変化が緩やかなデータを用いて、ディープラーニングにより異常を検知したときの様子を示す図である。
【図８Ａ】変化が急なデータを用いて、外れ値検知により異常を検知したときの様子を示す図である。
【図８Ｂ】変化が急なデータを用いて、ディープラーニングにより異常を検知したときの様子を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を用いて説明する。
【００１４】
図１は、本実施の形態における異常検知装置１の構成を示す機能ブロック図である。異常検知装置１は、監視対象のサーバ２Ａ〜２Ｃから収集したサーバの状態やサーバが実行するソフトウェアの状態に関する運用データ（以下「パラメータ」と称する）を解析し、障害発生前の早い段階で各サーバ２Ａ〜２Ｃの異常状態を検知する装置である。サーバ２Ａ〜２Ｃのそれぞれは、Ｗｅｂサーバ、アプリケーションサーバ、及びデータベースサーバとして機能し、サーバ２Ａ〜２Ｃが協調してサービスを提供する。サーバ２Ａ〜２Ｃは、物理サーバであってもよいし、クラウド上の仮想サーバやサーバ機能を有する携帯端末などの各種機器であってもよい。異常検知装置１が、サーバ２Ａ〜２Ｃから異常状態を検知するためのパラメータを取得できればよい。
【００１５】
図１の異常検知装置１は、収集部１１、検知部１２、通知部１３、及び記憶部１４を備える。異常検知装置１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは異常検知装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００１６】
収集部１１は、監視対象のサーバ２Ａ〜２Ｃからパラメータを受信する。本実施形態では、主に、単一プロセスの状態、プロセスグループの状態、及びノード（サーバ）の状態に関するパラメータを利用する。単一プロセスの状態を示すパラメータとしては、例えば、プロセスの生存時間、プロセスのユーザＣＰＵ使用率などが挙げられる。プロセスグループの状態を示すパラメータとしては、例えば、アプリケーションでのコネクション数、アプリケーションの応答速度などが挙げられる。ノードの状態を示すパラメータとしては、例えば、システムＣＰＵ使用率、メモリ使用率などが挙げられる。
【００１７】
検知部１２は、受信した各パラメータを入力値として、検知対象の異常状態に応じた判定方式を適用し、サーバ２Ａ〜２Ｃのそれぞれの異常状態を検知する。検知対象の異常状態に、その異常状態と相関のあるパラメータと、そのパラメータを用いた判定方式を関連付けた異常状態判定テーブルを記憶部１４に格納しておく。検知部１２は、異常状態判定テーブルに従って異常状態を検知する。異常状態判定テーブルでは、１種類のパラメータが関連付けられた異常状態の判定方式としては、正常範囲を設定し、入力したパラメータの値に基づいて判定する方法を関連付ける。２種類以上のパラメータが関連付けられた異常状態の判定方式としては、各パラメータの時間変化の相関に基づいて判定する方法を関連付ける。異常状態判定テーブルの詳細については後述する。
【００１８】
通知部１３は、検知部１２が異常状態を検知したときに、検知した異常状態を管理者へ通知する。例えば、通知部１３は、検知した異常状態に関する情報を表示してもよいし、検知した異常状態に関する情報を管理者の端末などの別の装置へ送信してもよい。管理者は、通知された異常状態に応じた対処を行う。あるいは、サーバ２Ａ〜２Ｃ自身が自動で対処可能な異常状態であれば、通知部１３はサーバ２Ａ〜２Ｃに対処方法を通知してもよい。サーバ２Ａ〜２Ｃは、通知された対処方法に従って対処する。
【００１９】
記憶部１４は、異常状態判定テーブルを格納する。記憶部１４は、サーバ２Ａ〜２Ｃから受信したパラメータを蓄積してもよい。
【００２０】
次に、異常状態判定テーブルについて説明する。
【００２１】
図２は、異常状態判定テーブルの例を示す図である。同図に示す異常状態判定テーブルでは、検知対象の異常状態の種別（以下「異常種別」と称する）のそれぞれにパラメータと判定方式を関連付けている。
【００２２】
本実施の形態では、発生し得る異常状態を複数の観点から検討し、２３種類の異常種別を選定した。具体的には、過去に発生した障害を解析して異常状態を特定したり、ＯＳ起因の異常状態を推定したりすることで、４１種類程度の異常種別を洗い出した。この４１種類の異常種別について、既存の監視システムで異常が検知できるもの、及びハードウェア故障を除外し、さらに重複する異常を１つにまとめることで、障害発生につながる異常状態を網羅的に検知できる２３種類の異常種別を選定した。
【００２３】
本実施の形態では、２３種類の異常種別を一次対処手法に基づいて３つの異常グループに分類した。具体的には、２３種類の異常種別を、単一プロセスの再起動で対処する単一プロセスの異常（６種類）、サービスの再起動で対処するプロセスグループの異常（１１種類）、及びロードバランサにてサーバ閉塞、サーバの系切替、あるいはサーバの再起動で対処するノードの異常（６種類）の３つの異常グループに分類した。
【００２４】
異常状態判定テーブルにおいて異常種別に関連付けられたパラメータは、その異常種別と相関するパラメータである。異常種別と相関するパラメータを仮定し、実際に異常状態を発生させて変動が見られるパラメータを特定した。異常状態判定テーブルでは、異常種別のそれぞれに対して、その異常種別の検知に利用する１つまたは２つ以上のパラメータが関連付けられる。
【００２５】
異常状態判定テーブルにおいて異常種別に関連付けられた判定方式は、その異常種別の検知に用いる方法を示す。判定方式については、異常の検知に有効とされる各々のアルゴリズムの特長に基づき、異常種別のそれぞれに対して適切な判定方式を選定した。特に、複数のパラメータと相関のある異常種別については、複数のパラメータ間の相関を見ることができるアルゴリズムを選択した。
【００２６】
正常な状態の運用データの蓄積が多分にある状況下では、教師なし学習による異常の検知が有効とされる。教師なし学習で有効とされるアルゴリズムの代表的なものとしては、外れ値検知、変化点検知、ディープラーニングが知られている。
【００２７】
外れ値検知は、平均データから著しく離れた値を検出する場合に有効な手法である。図３に示すように、値が上下に変動するパラメータであって、異常時に大きく変動するものに適している。例えば、あるパラメータに閾値を設定しておき、閾値を基準として上下に正常状態を示す正常判定範囲を設定する。パラメータの値が正常判定範囲から外れた場合、そのパラメータが関連付けられた異常種別の異常状態であると判定する。
【００２８】
変化点検知は、状態が急激に変化したポイントを検出する場合に用いる手法である。図４に示すように、以前の状態からの大きな変化を検知する。例えば、あるパラメータの前回の値との差分をとり、その差分が所定の閾値よりも大きい場合に、そのパラメータが関連付けられた異常種別の異常状態であると判定する。変化点検知は、パラメータの値が上下に大きく動き、断続的に発生するような異常状態の検知には向かない。
【００２９】
ディープラーニングは、複数のパラメータの関係性を学習し、相関崩れなどを検知する手法である。図５に示すように、各パラメータの時間変化の相関が崩れたことを検知する。例えば、複数のパラメータ間の相関が崩れた場合に、複数のパラメータが関連付けられた異常種別の異常状態であると判定する。
【００３０】
上記のアルゴリズムのうち、外れ値検知と変化点検知は単独のパラメータの扱いが得意であり、ディープラーニングは単独のパラメータの検知には不向きである。本実施の形態では、単独のパラメータが関連付けられた異常種別の判定方式には、単独のパラメータの異常検知を得意とする外れ値検知を選定した。
【００３１】
外れ値検知の正常判定範囲は、もっとも誤検知が少なくなるように設定する。例えば、図６に示すように、正常データ（正常状態時のパラメータ）と異常データ（異常状態時のパラメータ）をパラメータの値ごとに並べ、誤検知が少なく閾値を自動的に設定して正常判定範囲を定める。異常データを正しく異常と検知することを検知という。誤検知とは、正常データを異常と検知することである。検知漏れとは、異常データを正常と検知することである。
【００３２】
外れ値検知と変化点検知は、複数のパラメータの各パラメータを独立して検知することで、複数のパラメータが関連付けられた異常種別を検知することもできるが、複数のパラメータ間の相関崩れの検知には不向きである。ディープラーニングは、相関関係を含め、複数のパラメータの異常の検知が可能である。本実施の形態では、複数のパラメータが関連付けられた異常種別の判定方式には、複数のパラメータ間の相関を見ることができるディープラーニングを選定した。正常な状態の運用データは膨大な量が蓄積されているので、正常な状態の運用データを学習させた学習モデルを用意する。
【００３３】
複数のパラメータが関連付けられた異常種別であっても、各パラメータを独立に見て異常検知できるものは判定方式として外れ値検知を選定してもよい。例えば、パラメータＡまたはパラメータＢのいずれかが正常判定範囲を超えた場合、あるいはパラメータＡおよびパラメータＢのどちらもが正常判定範囲を超えた場合に異常状態となるような異常種別の判定方式には、外れ値検知を選定してもよい。判定方式は、上記に限るものではなく、異常検知に適したものであればよい。
【００３４】
なお、異常状態判定テーブルでは、異常種別のそれぞれに、判定方式に加えて、選定された判定方式で用いる学習モデルや正常の範囲を定める閾値などの必要な情報を関連付けておく。
【００３５】
また、監視対象のサーバ２Ａ〜２Ｃによって発生する異常状態が異なる場合もあるので、異常状態判定テーブルの異常種別のそれぞれに、監視対象のサーバ２Ａ〜２Ｃを関連付けてもよい。異常検知装置１は、異常状態判定テーブルの異常種別のそれぞれについて、関連付けられたサーバ２Ａ〜２Ｃの異常状態を検知する。
【００３６】
次に、本実施の形態の異常検知装置１の動作について説明する。
【００３７】
異常検知装置１は、サーバ２Ａ〜２Ｃからパラメータを受信すると、記憶部１４に記憶しておく。
【００３８】
異常検知装置１は、サーバ２Ａ〜２Ｃのそれぞれについて、定期的に異常検知処理を開始する。異常検知装置１は、例えば、異常状態判定テーブルの項番１の異常種別から順番に異常状態の検知を行う。異常検知装置１は、異常状態判定テーブルを参照し、異常種別の判定に必要なパラメータを取得し、取得したパラメータを指定の判定方式に用いて異常種別を判定する。
【００３９】
異常状態を検知した場合、異常検知装置１は検知した異常状態を管理者へ通知する。
【００４０】
指定の項番の異常種別の判定が終わると、異常検知装置１は、異常状態判定テーブルの次の項番の異常種別の判定を行う。
【００４１】
異常状態判定テーブルの異常グループごとに検知処理の周期を変えてもよい。例えば、単一プロセスの異常のグループは短い周期で検知処理を行い、プロセスグループの異常のグループはより長い周期で検知処理を行い、ノードの異常のグループはさらに長い周期で検知処理を行う。
【００４２】
次に、パラメータ／異常度の変化の緩急の違い、アルゴリズムによる検知の差について説明する。
【００４３】
図７Ａは、パラメータ／異常度の変化が緩やかなデータを用いて、外れ値検知により異常を検知したときの様子を示す図であり、図７Ｂは、ディープラーニングにより異常を検知したときの様子を示す図である。発生する障害は、ＳＱＬ処理（ＰｏｓｔｇｒｅＳＱＬプロセス）滞留であり、データベースサーバを監視対象とした。異常検知の閾値の設定は３シグマとした。
【００４４】
図７Ａの外れ値検知による異常の検知では、パラメータとしてＣＰＵの割り込み実行時間割合を用いた。外れ値検知では、障害発生の１時間５０分前に、異常を検知できた。
【００４５】
図７Ｂのディープラーニングによる異常の検知では、ＣＰＵの割り込み実行時間割合、Ｉ／Ｏ街のＣＰＵ時間の割合を用いて異常度を求めた。ディープラーニングでは、障害発生の５時間５０分前に、異常を検知できた。
【００４６】
図８Ａは、パラメータ／異常度の変化が急なデータを用いて、外れ値検知により異常を検知したときの様子を示す図であり、図８Ｂは、ディープラーニングにより異常を検知したときの様子を示す図である。発生する障害は、ＳＱＬ処理（ＰｏｓｔｇｒｅＳＱＬプロセス）滞留であり、データベースサーバを監視対象とした。異常検知の閾値の設定は３シグマとした。
【００４７】
図８Ａの外れ値検知による異常の検知では、パラメータとしてロードアベレージを用いた。外れ値検知では、障害発生の１時間前に、異常を検知できた。
【００４８】
図８Ｂのディープラーニングによる異常の検知では、ロードアベレージ、ＣＰＵ（システム領域）使用率を用いて異常度を求めた。ディープラーニングでは、障害発生の１時間前に、異常を検知できた。
【００４９】
このように、パラメータ／異常度の変化の緩急の違いで、異常を検知できる時間に差が生じた。また、同じ障害においても判定方式のアルゴリズムにより差が有り、ディープラーニングの方が早く異常を検知できる場合があった。
【００５０】
以上説明したように、本実施の形態によれば、異常検知装置１が、検知対象の異常状態のそれぞれに、異常状態の検知に用いるパラメータと判定方式とを関連付けた異常状態判定テーブルを保持し、収集部１１が、監視対象のサーバ２Ａ〜２Ｃから当該サーバの状態およびソフトウェアの状態に関するパラメータを収集し、検知部１２が、異常状態判定テーブルを参照し、異常状態のそれぞれについて、異常状態判定テーブルにおいて関連付けられたパラメータを入力値として、異常状態判定テーブルにおいて関連付けられた判定方式を適用して異常状態を検知することにより、障害発生につながる異常状態の検知を異常状態のそれぞれに適した方法で網羅的に検知することができ、より早い段階での対処が可能となる。
【符号の説明】
【００５１】
１…異常検知装置
１１…収集部
１２…検知部
１３…通知部
１４…記憶部
２Ａ〜２Ｃ…サーバ
【図１】
2020038525.tif 000003
【図２】
2020038525.tif 000004
【図３】
2020038525.tif 000005
【図４】
2020038525.tif 000006
【図５】
2020038525.tif 000007
【図６】
2020038525.tif 000008
【図７Ａ】
2020038525.tif 000009
【図７Ｂ】
2020038525.tif 000010
【図８Ａ】
2020038525.tif 000011
【図８Ｂ】
2020038525.tif 000012
【手続補正書】
【提出日】令和1年10月30日(2019.10.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
監視対象のサーバから当該サーバの状態および当該サーバが実行するソフトウェアの状態に関するパラメータを収集する収集手段と、
検知対象の複数の異常状態のそれぞれに、当該異常状態の検知に用いるパラメータと判定方式とを関連付けた異常状態判定テーブルを格納する記憶手段と、
前記異常状態のそれぞれについて、前記異常状態判定テーブルにおいて関連付けられた前記パラメータを入力値として、前記異常状態判定テーブルにおいて関連付けられた前記判定方式を適用して前記異常状態を検知する検知手段と、を備え、
前記異常状態判定テーブルにおいて、２つ以上のパラメータが関連付けられた前記異常状態の判定方式は、各パラメータの時間変化の相関に基づいて前記異常状態を検知する判定方式であり、単独のパラメータが関連付けられた前記異常状態の判定方式は、前記パラメータの値が正常な範囲内であるか否かに基づいて前記異常状態を検知する判定方式である
ことを特徴とする異常検知装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明に係る異常検知装置は、監視対象のサーバから当該サーバの状態および当該サーバが実行するソフトウェアの状態に関するパラメータを収集する収集手段と、検知対象の複数の異常状態のそれぞれに、当該異常状態の検知に用いるパラメータと判定方式とを関連付けた異常状態判定テーブルを格納する記憶手段と、前記異常状態のそれぞれについて、前記異常状態判定テーブルにおいて関連付けられた前記パラメータを入力値として、前記異常状態判定テーブルにおいて関連付けられた前記判定方式を適用して前記異常状態を検知する検知手段と、を備え、前記異常状態判定テーブルにおいて、２つ以上のパラメータが関連付けられた前記異常状態の判定方式は、各パラメータの時間変化の相関に基づいて前記異常状態を検知する判定方式であり、単独のパラメータが関連付けられた前記異常状態の判定方式は、前記パラメータの値が正常な範囲内であるか否かに基づいて前記異常状態を検知する判定方式であることを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】