(57)【要約】【課題】システムの信頼性を向上させる情報処理装置、情報処理プログラム及び情報処理方法を提供する。【解決手段】情報収集部１１は、ＶＭホスト２の稼働状態を表す性能情報を収集する。特徴量生成部１２は、情報収集部１１により収集された各性能情報を基に、性能情報の発生傾向を表す特徴量を生成する。グルーピング部１３は、特徴量生成部１２により生成された特徴量を基に、各性能情報をグループ分けする。代表指標抽出部１４は、グルーピング部１３により生成されたグループ毎に、各グループに含まれる性能情報の中から異常検知の基準とする基準情報を抽出する。通知部１５は、代表指標抽出部１４が抽出したグループ毎の基準情報をＶＭホスト２へ通知し、基準情報を用いてＶＭホスト２に異常検知を行わせる。【選択図】図２
2019200596.tif 000002
【特許請求の範囲】
【請求項１】
計算機の稼働状態を表す性能情報を収集する収集部と、
収集部により収集された各前記性能情報を基に、前記性能情報の発生傾向を表す特徴量を生成する特徴量生成部と、
前記特徴量生成部により生成された前記特徴量を基に、各前記性能情報をグループ分けするグルーピング部と、
前記グルーピング部により生成された前記グループ毎に、各前記グループに含まれる前記性能情報の中から異常検知の基準とする基準情報を抽出する抽出部と、
前記抽出部が抽出した前記グループ毎の前記基準情報を前記計算機へ通知し、前記基準情報を用いて前記計算機に異常検知を行わせる異常検知制御部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記特徴量生成部は、各前記性能情報を取得する動作に与えられた権利範囲を基に、前記特徴量を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特徴量生成部は、各前記性能情報を取得する動作を実行する際に使用された関数を基に、前記特徴量を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記グルーピング部は、特徴量をクラスタリングすることでグループ分けを行うことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記抽出部は、各前記性能情報が属するグループにおける各前記性能情報の尤度を基に前記基準情報を抽出することを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
計算機の稼働中の稼働状態を表す性能情報を収集し、
収集した各前記性能情報を基に、前記性能情報の発生傾向を表す特徴量を生成し、
生成した前記特徴量を基に、各前記性能情報をグループ分けし、
生成された前記グループ毎に、各前記グループに含まれる前記性能情報の中から異常検知の基準とする基準情報を抽出し、
抽出した前記グループ毎の前記基準情報を前記計算機へ通知し、前記基準情報を用いて前記計算機に異常検知を行わせる
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項７】
計算機の稼働中の性能を表す性能情報を収集し、
収集した各前記性能情報を基に、前記性能情報の発生傾向を表す特徴量を生成し、
生成した前記特徴量を基に、各前記性能情報をグループ分けし、
生成された前記グループ毎に、各前記グループに含まれる前記性能情報の中から異常検知の基準とする基準情報を抽出し、
抽出した前記グループ毎の前記基準情報を前記計算機へ通知し、前記基準情報を用いて前記計算機に異常検知を行わせる
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、インターネットなどのコンピュータネットワークを介して、計算機リソース及び計算機リソース上で動作するサービスを提供するクラウドコンピューティングと呼ばれるサービスの提供形態が普及している。クラウドコンピューティングでは、物理サーバの仮想化による高集約化に伴い、障害発生時には複数の利用者に影響が及ぶ。そのため、クラウドコンピューティングにおけるサービスの提供者は、利用者に対して迅速に障害連絡を行うことが求められる。
【０００３】
このようなクラウドコンピューティンを実現する環境、すなわち、クラウド環境では、仮想計算機（ＶＭ：Virtual  Machine）の性能異常が、同じ物理環境を共有する他の仮想計算機からの干渉を要因とする場合がある。ここでの性能とは、例えば、ハードウェア性能であれば、メモリやネットワークのアクセスレイテンシやバンド幅、ＣＰＵ（Central  Processing  Unit）の時間当たりの演算処理性能やＩＯ（Input  Output）の時間当たりのＩＯ回数などである。また、アプリケーソン性能としては、ここでの性能には、Ｗｅｂサーバのレスポンス性能やＤＢ（Data  Base）のトランザクション処理性能であるスループットなどが含まれる。
【０００４】
クラウド環境における他の仮想計算機からの影響を要因とする障害の場合、他の仮想計算機からの影響を常に受けるわけではないため、その障害の問題発生が断続的且つ再現が困難であることが多い。このようなことから、クラウド環境で性能異常が発生した場合、その場で迅速に要因調査を遂行することが好ましい。そのため、クラウド環境では、即時性のある性能異常検知を行うことが重要となる。
【０００５】
ここで、異常検出の技術として、計算機の性能情報の中から予め決められた優先度や閾値にしたがって性能情報を収集し、収集した性能情報を基に計算機の監視を行う従来技術がある。また、モデルを作成する際に、作成の対象モデルと蓄積された参照モデルとを代表指数を基に比較して類似する構造を有する参照モデルを特定し、特定した参照モデルの部分構造を用いて対象モデルを作成する従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１０８１２０号公報
【特許文献２】特開２００９−２６６１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、クラウド環境では常時監視に使用する性能指標が数百から数千にのぼるため、データの加工や分析処理に時間が掛かり、異常判定を行う時間間隔が粗くなることが多い。例えば、従来の実運用上では、クラウド環境における異常判定の時間粒度は１時間単位などと設定されることが多い。このように、クラウド環境における従来の障害検知の方法では、即時性を有する異常検知を行いシステムの信頼性を向上させることは困難である。
【０００８】
また、従来の監視対象の性能指標の絞り込みでは、管理者の経験や知見に基づき性能指標が絞り込まれてきた。しかし、管理者による絞り込みでは各性能指標の関連性や重要性の把握が不十分であり、絞り込みを行った後にも未だ多くの性能指標が残ってしまう場合がある。そのため、異常検知にはやはり時間が掛かってしまい、即時性を有する異常検知を行いシステムの信頼性を向上させることは困難である。
【０００９】
また、計算機の性能情報の中から予め決められた優先度や閾値にしたがって性能情報を収集する技術では、優先度又は閾値の効果定な決定方法が提示されていない。そのため、この従来技術でも従来の絞り込みが行われると考えられ、即時性を有する異常検知を行いシステムの信頼性を向上させることは困難である。さらに、代表指数を基に類似する構造を有する参照モデルを特定して対象モデルの作成に活用する従来技術では、性能指標についての考慮はなされていない。そのため、この技術を性能指標の絞り込みに用いることは容易ではなく、即時性を有する異常検知を行いシステムの信頼性を向上させることは困難である。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、システムの信頼性を向上させる情報処理装置、情報処理プログラム及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する情報処理装置、情報処理プログラム及び情報処理方法の一つの態様において、収集部は、計算機の稼働状態を表す性能情報を収集する。特徴量生成部は、収集部により収集された各前記性能情報を基に、前記性能情報の発生傾向を表す特徴量を生成する。グルーピング部は、前記特徴量生成部により生成された前記特徴量を基に、前記各性能情報をグループ分けする。抽出部は、前記グルーピングにより生成された前記グループ毎に、各前記グループに含まれる前記性能情報の中から異常検知の基準とする基準情報を抽出する。通知部１５は、前記抽出部が抽出した前記グループ毎の前記基準情報を前記計算機）へ通知し、前記基準情報を用いて前記計算機に異常検知を行わせる。
【発明の効果】
【００１２】
１つの側面では、本発明は、システムの信頼性を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、情報処理システムの概略構成図である。
【図２】図２は、異常検知管理装置のブロック図である。
【図３】図３は、性能指標のＯＳモード及びＵＳＥＲモードを用いた特徴量の一例を表す図である。
【図４】図４は、グルーピングの一例を表す図である。
【図５】図５は、代表指標の決定手順の概要を表す図である。
【図６】図６は、実施例１に係る異常検知管理装置による代表指標決定処理のフローチャートである。
【図７】図７は、プロファイル採取の動作を説明するための図である。
【図８】図８は、ＶＭホストにおいてプロファイリングにより取得される情報を表す図である。
【図９】図９は、関数を用いた場合の特徴量の一例を表す図である。
【図１０】図１０は、異常検知管理装置のハードウェア構成図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する情報処理装置、情報処理プログラム及び情報処理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理プログラム及び情報処理方法が限定されるものではない。
【実施例１】
【００１５】
図１は、情報処理システムの概略構成図である。情報処理システム１００は、異常検知管理装置１及び複数のＶＭホスト２を有する。各ＶＭ（Virtual  Machine）ホスト２は、複数の物理ＣＰＵ（Central  Processing  Unit）２１を有する。そして、ＶＭホスト２は、物理ＣＰＵ２１がプログラムを実行させることで実現される仮想環境２２を有する。
【００１６】
物理ＣＰＵ２１は、ＶＭホスト２の動作の監視として、異常検知管理装置１から指定された性能情報の監視を行う。そして、物理ＣＰＵ２１は、その性能情報の値が決められた閾値を超えた場合に、障害が発生したと判定する。そして、物理ＣＰＵ２１は、障害が発生した場合、アラートを上げて管理者に障害発生を通知する。以下では、障害が発生するか否かを判定する基準とする性能情報を指して、障害検知の「指標」と呼ぶ場合がある。
【００１７】
仮想環境２２は、ハイパーバイザ２２１、仮想ＣＰＵ２２２、ＶＭ２２３、ＯＳ（Operating  System）２２４及びアプリケーション２２５を含む。
【００１８】
ハイパーバイザ２２１は、仮想環境２２の統括的な管理を行う。ハイパーバイザ２２１は、仮想ＣＰＵ２２２、ＶＭ２２３、ＯＳ２２４及びアプリケーション２２５を管理する。
【００１９】
仮想ＣＰＵ２２２は、各ＶＭ２２３を動作させるための仮想的なプロセッサである。ＶＭホスト２では、１つ股の複数の仮想ＣＰＵ２２２により１つのＶＭ２２３が動作する。
【００２０】
ＶＭ２２３は、仮想的な情報処理装置である。各ＯＳ２２４は、各ＶＭ２２３においてそれぞれ別個に動作する。ＯＳ２２４は、それぞれ同じ種類でもよいし異なる種類でもよい。アプリケーション２２５は、ＯＳ２２４上で動作する。１つ又は複数のアプリケーション２２５が、１つのＯＳ２２４上で動作可能である。
【００２１】
異常検知管理装置１は、複数のＶＭホスト２とネットワークで接続される。異常検知管理装置１は、各ＶＭホスト２において監視対象とする性能情報を決定して、各ＶＭホスト２に決定した性能情報を用いた障害検知を行わせる。以下に、異常検知管理装置１の詳細について説明する。
【００２２】
図２は、異常検知管理装置のブロック図である。異常検知管理装置１は、図２に示すように、情報収集部１１、特徴量生成部１２、グルーピング部１３、代表指標抽出部１４及び通知部１５を有する。以下では、１つのＶＭホスト２についての異常検知用指標の特定について説明するが、異常検知管理装置１は、複数のＶＭホスト２のそれぞれについて行ってもよい。また他にも、異常検知管理装置１は、１つのＶＭホスト２について決定した異常検知に用いる性能情報を他のＶＭホスト２に用いてもよい。
【００２３】
情報収集部１１は、ＶＭホスト２で取得された全ての性能情報を取得する。ここで、性能情報とは、処理を実行した際のハードウェア及びソフトウェアの動作状態を表す情報である。ハードウェアの性能情報としては、ＣＰＵ２１や図１に図示しないメモリ、並びに、ストレージ及びネットワークを含むＩＯ（Input  Output）デバイスの動作状態を表す情報が含まれる。また、ソフトウェアの性能情報としては、ハイパーバイザ２２１、仮想ＣＰＵ２２２、ＶＭ２２３、ＯＳ２２４及びアプリケーション２２５の動作状態を表す情報が含まれる。例えば、物理ＣＰＵ２１の性能情報には、クロックサイクル数、実行命令回数及びキャッシュミス数などが含まれる。
【００２４】
性能情報は、物理ＣＰＵ２１が有する性能監視カウンタ（ＰＭＣ：Performance  Monitoring  Counter）レジスタにより計測される。各性能情報の計測処理を、性能イベントと言う。ＰＭＣレジスタは、物理ＣＰＵ２１に搭載されたＣＰＵコアのそれぞれに複数設けられる。そして、各ＰＭＣに対して、計測対象とする性能情報の種類や特権モードを設定することができる。ここで、特権モードとは、性能情報を取得する動作に与えられた権利範囲を表す情報である。特権モードには、例えば、ＯＳモードとＵＳＥＲモードが存在する。そして、ＶＭホスト２は、各ＰＭＣに対して計測対象とする性能情報の種類や特権モードを設定するための設定用レジスタを有する。
【００２５】
性能情報の測定では、偶数のＰＭＣを用いて、ＯＳモードでの動作による性能情報及びＵＳＥＲモードでの動作による性能情報を同時に取得することができる。例えば、性能情報が３００種類あるとすると、各性能情報を発生させる動作についての監視を１秒毎に切り替えて、同時に２つのＰＭＣを用いて１つの性能情報を１秒毎に切り替えて監視する場合、３００秒で全ての性能情報の測定が完了する。
【００２６】
情報収集部１１は、予め決められた期間内の性能情報を収集する。ここで、情報収集部１１は、全ての性能情報の収集を複数回繰り返してもよい。そして、情報収集部１１は、収集した性能情報を特徴量生成部１２へ出力する。この情報収集部１１が、「収集部」の一例にあたる。
【００２７】
特徴量生成部１２は、ＶＭホスト２における各性能情報の入力を情報収集部１１から受ける。次に、特徴量生成部１２は、取得した性能情報の数から各性能イベントの発生回数を取得する。本実施例では、特徴量生成部１２は、各性能イベントについてのＯＳモードでの発生回数及びＵＳＥＲモードでの発生回数の特徴量を取得する。ここで、性能イベントのＯＳモードでの発生回数及びＵＳＥＲモードでの発生回数は、性能情報の発生傾向と言える。
【００２８】
この際、特徴量生成部１２は、データが無い性能イベント、すなわち動いていない性能イベントは除去する。また、特徴量生成部１２は、所定の時間内に同じイベントを複数回計測した場合には、その性能イベントを単位時間平均に換算する。また、特徴量生成部１２は、分散値が多大きいデータは除去する。
【００２９】
例えば、特徴量生成部１２は、図３に示すような情報を生成する。図３は、性能指標のＯＳモード及びＵＳＥＲモードを用いた特徴量の一例を表す図である。図３の表１０１におけるＣＰＵ＿ＣＬＫ＿ＵＮＨＡＬＴＥＤは、物理ＣＰＵ２１のクロック数を取得する性能イベントである。この性能イベントのＵＳＥＲモードでの発生回数が２３１４２９９７５６回であり、ＯＳモードでの発生回数が２１２１９３８５５２回である。
【００３０】
次に、特徴量生成部１２は、取得した性能イベントの特徴量を正規化する。例えば、特徴量生成部１２は、各性能イベントの特徴量の標準偏差が１になるようにスケーリングし、平均が０になるようにセンタリングして、各性能イベントの特徴量を補正する。他にも、特徴量に正負の符号がある場合、何れかの符号を逆にして符号を一方にまとめてもよい。そして、特徴量生成部１２は、生成した各性能イベントの特徴量をグルーピング部１３へ出力する。
【００３１】
グルーピング部１３は、各性能イベントの特徴量の入力を特徴量生成部１２から受ける。そして、グルーピング部１３は、取得した特徴量について、混合正規分布モデルによるモデルベースクラスタリング手法を用いてクラスタリングして、グループを作成する。この場合、クラスタ数も統計根拠により自動で決定される。例えば、グルーピング部１３は、ｋ−ｍｅａｎｓ法などを用いてクラスタリングを行う。そして、グルーピング部１３は、グループの分類の情報とともに各グループに含まれる性能イベントの情報を代表指標抽出部１４へ出力する。
【００３２】
例えば、図４は、グルーピングの一例を表す図である。グルーピング部１３は、ＣＰＵ性能を表す性能情報の性能イベントごとに、ＯＳモードでの発生回数を縦軸にとり、ＵＳＥＲモードでの発生回数を横軸にとって２次元座標を生成する。次に、グルーピング部１３は、その座標空間に各性能イベントの特徴量を表す点をプロットして、図４に示すグラフを生成する。そして、グルーピング部１３は、モデルベースクラスタリングを行い、グループ１１１〜１１４という４つのグループを生成する。グループ１１１は、三角形の点で表される性能イベントが属する。グループ１１２は、四角形の点で表される性能イベントが属する。グループ１１３は、丸の点で表される性能イベントが属する。グループ１１４は、バツの点で表される性能イベントが属する。
【００３３】
代表指標抽出部１４は、グループの分類の情報とともに各グループに含まれる性能イベントの情報の入力をグルーピング部１３から受ける。そして、代表指標抽出部１４は、各グループに属する各性能イベントのもっともらしさの確率である尤度（likelihood）を求める。具体的には、代表指標抽出部１４は、グルーピング部１３によるモデルベースクラスタリング処理におけるＥＭアルゴリズムによって、各性能イベントの尤度を求めることができる。尤度が高いとは、グループの中心により近いと言い換えることもできる。
【００３４】
次に、代表指標抽出部１４は、グループ毎に尤度が最も高い性能イベントを抽出し、抽出した性能イベントにより取得される性能情報をそのグループの代表指標とする。ここで代表指標とは、あるグループに含まれる全ての性能イベントで取得された性能情報で表されるＶＭホスト２の稼働状態の傾向を、まとめて表すことができる性能情報である。すなわち、あるグループの代表指標の傾向を把握することで、そのグループに属する性能イベントで取得される全ての性能情報の傾向を把握することができる。この代表指標が、「基準情報」の一例にあたる。
【００３５】
ここで、尤度が最も高い性能イベントに対応する性能情報を代表指標とする理由について説明する。尤度がより低い性能イベント、言い換えればuncertaintyがより高い性能イベントほど、クラスタ間の境界領域に位置するといえるため、尤度がより低い性能イベントほどグループの誤分類の可能性が高くなるからである。ここで、uncertainty＝１−likelihoodである。
【００３６】
また、本実施例では、尤度が最も高い性能イベントを抽出したが、尤度が高ければ御分類の可能性は低く抑えることができるので、尤度が最高に近い性能イベントであれば、他の性能イベントに対応する性能情報を代表指標としてもよい。
【００３７】
その後、代表指標抽出部１４は、グループの分類とともに各グループの代表指標を通知部１５へ出力する。この代表指標抽出部１４が、「抽出部」の一例にあたる。
【００３８】
例えば、図５は、代表指標の決定手順の概要を表す図である。ここでは、図４と同様にＣＰＵ性能を表す性能情報に関する代表指標の取得を例に説明する。まず、情報収集部１１が、ＣＰＵ性能を表す性能情報を取得する各性能イベントの発生回数を取得する。そして、グルーピング部１３が性能情報の特徴量に対してクラスタリングを行い（ステップＳ１）、図４に示したグループ１１１〜１１４を生成する。
【００３９】
そして、代表指標抽出部１４は、各グループ１１１〜１１４に関して代表指標を抽出する（ステップＳ２）。具体的には、代表指標抽出部１４は、実行待ち命令数をグループ１１１の代表指標１２１として抽出する。また、代表指標抽出部１４は、実行命令数をグループ１１２の代表指標１２２として抽出する。また、代表指標抽出部１４は、デコーダ実行数をグループ１１３の代表指標１２３として抽出する。また、代表指標抽出部１４は、Ｌ（Layer）２ミス数をグループ１１４の代表指標１２４として抽出する。
【００４０】
ここで、代表指標１２１〜１２３は、物理ＣＰＵ２１の状態を直接表す命令系の性能情報である。これに対して、代表指標１２４のＬ２ミス数は、メモリ系の性能情報であり、直接的に物理ＣＰＵ２１の状態を表す情報ではない。ここで、管理者が過去の経験から代表指標を決定する場合、物理ＣＰＵ２１の状態を表す代表指標としてメモリ系の性能情報を用いることは困難である。このように、本実施例に係る異常検知管理装置１は、管理者が過去の経験から代表指標として抽出することが困難な性能情報を代表指標として選択することができ、より適切な性能情報を異常検出のための指標として設定することができる。
【００４１】
通知部１５は、グループの分類とともに各グループの代表指標の通知を代表指標抽出部１４から受ける。そして、通知部１５は、グループの分類とともに各グループの代表指標の情報をＶＭホスト２に送信する。これにより、通知部１５は、通知した代表指標を用いた障害検知をＶＭホスト２に行わせる。この通知部１５が、「異常検知制御部」の一例にあたる。
【００４２】
次に、図６を参照して、本実施例に係る異常検知管理装置１による代表指標決定処理の流れについて説明する。図６は、実施例１に係る異常検知管理装置による代表指標決定処理のフローチャートである。
【００４３】
ＶＭホスト２は、全ての性能情報を測定し異常検知管理装置１へ送信する（ステップＳ１１）。
【００４４】
情報収集部１１は、ＶＭホスト２における全ての性能情報を収集する（ステップＳ１２）。そして、情報収集部１１は、収集した性能情報を特徴量生成部１２へ出力する。
【００４５】
特徴量生成部１２は、情報収集部１１により収集されたＶＭホスト２の性能情報の入力を情報収集部１１から受ける。そして、特徴量生成部１２は、取得した性能情報をＯＳモード及びＵＳＥＲモード毎にカウントして、各性能イベントのＯＳモードでの発生回数及び各性能イベントのＵＳＥＲモードでの発生回数を取得する。次に、特徴量生成部１２は、取得した各性能イベントのＯＳモードでの発生回数及び各性能イベントのＵＳＥＲモードでの発生回数を正規化して特徴量を生成する（ステップＳ１３）。その後、特徴量生成部１２は、生成した各性能イベントの特徴量をグルーピング部１３へ出力する。
【００４６】
グルーピング部１３は、各性能イベントの特徴量の入力を特徴量生成部１２から受ける。そして、グルーピング部１３は、取得した各性能イベントの特徴量に対してモデルベースクラスタリング手法を用いてグループ分けする（ステップＳ１４）。その後、グルーピング部１３は、グループの分類の情報及び各グループに属する性能イベントの情報を代表指標抽出部１４へ出力する。
【００４７】
代表指標抽出部１４は、グループの分類の情報及び各グループに属する性能イベントの情報の入力をグルーピング部１３から受ける。そして、代表指標抽出部１４は、各グループにおいてそのグループに属する性能イベントのうち最も尤度が高い性能イベントを抽出し、その性能イベントに対応する性能情報を代表指標として抽出する（ステップＳ１５）。その後、代表指標抽出部１４は、抽出した各グループの代表指標の情報を通知部１５へ出力する。
【００４８】
通知部１５は、各グループの代表指標の情報の入力を代表指標抽出部１４から受ける。そして、通知部１５は、取得した各グループの代表指標の情報をＶＭホスト２へ通知する（ステップＳ１６）。
【００４９】
ＶＭホスト２は、各グループの代表指標の情報の通知を通知部１５から受ける。そして、ＶＭホスト２は、取得した代表指標を用いて異常検知を実行する（ステップＳ１７）。具体的には、ＶＭホスト２は、代表指標とされた性能情報を計測し、計測結果が予め決められた閾値を超える場合に障害の発生を管理者に報知する。
【００５０】
以上に説明したように、本実施例に係る異常検知管理装置は、ＶＭホストで計測された性能情報毎に特徴量を生成し、その生成した特徴量をいくつかのグループに分け、そのグループにおける代表指標を決定する。さらに、本実施例に係る異常検知管理装置は、決定した代表指標を用いた異常検知をＶＭホストに行わせる。これにより、本実施例に係る異常検知管理装置は、管理者の経験などに依らずに、実動作状況の監視及び異常検知に適した指標を個数を絞って抽出することができ、各ＭＶホストに即時性を有する異常検知を行わせることが可能になる。例えば、本実施例に係る異常検知管理装置を用いた場合、各ＶＭホストは、秒単位や分単位での即時性を有する異常検知を行うことができる。
【００５１】
例えば、８００種類の性能情報が存在する場合について、本実施例に係る異常検知管理装置と、全ての性能情報を計測して異常検出を行う従来技術とを比較する。この場合、本実施例に係る異常検知管理装置は、従来技術に比べて監視時間間隔を約３０分の１にすることができ、監視時間間隔の細粒化が可能となる。また、本実施例に係る異常検知管理装置は、従来技術に比べて誤検出をおよそ約７分の１に抑えることができ、誤検出の低減が可能となる。また、本実施例に係る異常検知管理装置は、管理者が経験により代表指標を決定する場合に比べて初期学習の時間をおよそ約４分の１にすることができ、初期学習時間の短縮が可能となる。これにより、本実施例に係る異常検知管理装置は、大量の指標を用いた異常検知では検知困難なＣＰＵ負荷やメモリ枯渇といった瞬間異常の検知をＶＭホストに行わせることが可能となる。
【００５２】
また、本実施例に係る異常検知管理装置は、特定部分の状態を表現する指標としてその特定部分に関する性能情報だけではなく、対象とするシステム全体を表現できる性能情報を用いることができる。そのため、管理者の経験に基づくだけでなく、例えば未知の性能情報を含む場合であっても、その性能情報を異常検知に用いることが可能となる。
【実施例２】
【００５３】
次に、実施例２について説明する。本実施例に係る異常検知管理装置は、特徴量の生成方法が実施例１と異なる。本実施例に係る異常検知管理装置も、図２のブロック図で表される。以下の説明では、実施例１と同様の各部の機能については説明を省略する。
【００５４】
ＶＭホスト２は、プロファイル採取を行う。図７は、プロファイル採取の動作を説明するための図である。カーネル２４１は、ＯＳ２２４上で動作する。そして、プロファイル採取を行う機能は、カーネルレベルのモージュールドライバであるサンプリングドライバ２４２として実装される。
【００５５】
サンプリングドライバ２４２は、ＶＭホスト２で動作するプログラムの動作情報を一定間隔で採取する。具体的には、ＰＭＣ２１１が、レジスタのカウンタのオーバーフロー割り込みをサンプリングドライバ２４２に発行する。サンプリングドライバ２４２は、ＰＭＣ２１１から発行されたオーバーフロー割り込みをトリガとして、その時動作するプログラムの識別情報を採取する。例えば、オーバーフロー割り込みが１ｍｓ毎に発生する場合、サンプリングドライバ２４２は、１ｍｓ周期で動作中のプログラムの識別情報を採取する。ここで、プログラムの識別情報としては、例えば、ＰＩＤ（Program  Identifier）又は命令アドレスである。そして、サンプリングドライバ２４２は、取得した動作中のプログラムの識別情報を解析部２５０へ送信する。
【００５６】
解析部２５０は、プログラムの識別情報をサンプリングドライバ２４２から一定間隔で取得する。そして、解析部２５０は、プログラムの識別情報から、プログラム名及びその時使用された関数の情報を取得する。例えば、解析部２５０は、ＰＩＤからプログラム名を取得し、命令アドレスから関数名を取得する。
【００５７】
次に、解析部２５０は、所定期間において一定間隔で取得した、プログラム名及びその時使用された関数の情報から、各プログラムにおける各関数のＣＰＵ使用率を求める。この場合、ＣＰＵ使用率が性能情報となる。
【００５８】
そして、解析部２５０は、図８に示すように、ＣＰＵ使用率の多い順に、そのＣＰＵ使用率に対応するプログラム名、関数名及びサンプリング数を並べる。図８は、ＶＭホストにおいてプロファイリングにより取得される情報を表す図である。例えば、解析部２５０は、今回のサンプリング数から前回の性能情報の取得時までのサンプリング数を減算することで、今回の所定期間におけるサンプリング数を求めることができる。このサンプリング数が、各性能情報を取得する性能イベントの発生回数にあたる。ただし、サンプリング数の算出方法は他の方法でもよく、例えば、解析部２５０が、所定期間の最初にカウンタを初期化してその所定期間におけるサンプリング数をカウントしてもよい。
【００５９】
ここで、本実施例では、ＣＰＵ使用率を性能情報として取得する場合で説明したが、解析部２５０は、他の情報を取得することもできる。例えば、各プログラムがストレージへのアクセスを行う場合、解析部２５０は、サンプリングドライバ２４２から取得した情報を用いて、ストレージに対するスループットやレイテンシを求めることもできる。
【００６０】
そして、解析部２５０は、各性能指標とともに図４に示すようなその性能指標に対応するサンプリング数、プログラム名及び関数名を異常検知管理装置１の情報収集部１１へ送信する。
【００６１】
情報収集部１１は、各性能指標に対応するサンプリング数、プログラム名及び関数名をＶＭホスト２の解析部２５０から取得する。情報収集部１１は、全ての性能情報が送られてくるまで取得した性能情報を蓄積する。その後、情報収集部１１は、全ての性能情報について、各性能情報に対応する対応するサンプリング数、プログラム名及び関数名を特徴量生成部１２へ出力する。
【００６２】
ここで、本実施例では、ＶＭホスト２がプログラム名及び関数名に対応する性能情報の算出やサンプリング数の取得を行ったが、特徴量抽出部１２が、サンプリング情報の解析を行ってもよい。
【００６３】
特徴量生成部１２は、全ての性能情報について、各性能情報に対応する対応するサンプリング数、プログラム名及び関数名の入力を情報収集部１１から受ける。次に、特徴量生成部１２は、各性能情報において上位４位以内の関数名を取得する。ここで、取得する関数名はその性能情報に対する影響が大きい関数を選べればよく、例えば、特徴量生成部１２は、各性能情報における上位９０％を占める関数名を取得してもよい。
【００６４】
そして、特徴量生成部１２は、各関数に対応するサンプリング数をその関数に対応する性能イベントの発生回数として取得する。そして、特徴量抽出部１２は、各性能情報について、関数毎に発生回数を集計する。例えば、特徴量生成部１２は、図９に示すような情報を生成する。図９は、関数を用いた場合の特徴量の一例を表す図である。図９は、各性能情報について、関数Ａ〜Ｄという関数名を有する関数のそれぞれの発生回数を表す。
【００６５】
そして、特徴量生成部１２は、各性能情報についての関数毎の発生回数をそれぞれの性能情報を取得する性能イベントの特徴量とする。すなわち、この場合、特徴量生成部１２は、関数の数の次元数を有する特徴量を生成する。例えば、図９に示される特徴量は、４次元の特徴量である。その後、特徴量抽出部１２は、算出した特徴量を正規化し、正規化した特徴量をグルーピング部１３へ出力する。
【００６６】
グルーピング部１３は、特徴量の入力を特徴量抽出部１２から受ける。そして、グルーピング部１３は、各性能イベントの特徴量に対してモデルクラスタリング手法を用いてグループを生成する。例えば、図９に示すような特徴量を有する場合、グルーピング部１３は、関数Ａ〜Ｄとして表される４つの関数の発生回数を座標軸に持つ４次元座標空間を用いて、各性能イベントをグループ分けする。
【００６７】
その後、代表指標抽出部１４は、グルーピング部１３により生成されたグループ毎に、各グループに属する性能イベントの中から尤度が最も高い性能イベントにより取得される性能情報を代表指標として抽出する。そして、通知部１５は、代表指標抽出部１４により抽出された代表指標をＶＭホスト２に通知して、その代表指標を用いた異常検知をＶＭホスト２に行わせる。
【００６８】
以上に説明したように、本実施例に係る異常検知管理装置は、各性能イベントを行った関数毎の性能イベントの発生回数を特徴量としてグループ分けを行い、グループ毎に代表指標を決定してＶＭホストに性能検知を行わせる。このように、ＯＳモードとＵＳＥＲモードとを用いた特徴量以外にも、関数毎の性能イベントの発生回数を用いても代表指数を決定することが可能である。そして、この場合にも、代表指数はそれが属するグループに含まれる性能イベントの傾向を適切に表すことができ、少ない性能情報の監視で適切な異常検知を行うことができる。
【００６９】
さらに、以上の説明では、２次元以上の次元数を有する特徴量を使用したが、１次元の特徴量を用いてもよい。その場合、性能情報のそのままの値を特徴量として用いることもできる。
【００７０】
（ハードウェア構成）
次に、図１０を参照して、異常検知管理装置１のハードウェア構成について説明する。図１０は、異常検知管理装置のハードウェア構成図である。異常検知管理装置１０は、ＣＰＵ９１、主記憶装置９２、外部記憶装置９３、出力インタフェース９４、入力インタフェース９５及び通信インタフェース９６を有する。
【００７１】
ＣＰＵ９１は、主記憶装置９２、外部記憶装置９３、出力インタフェース９４、入力インタフェース９５及び通信インタフェース９６とバスで接続される。ＣＰＵ９１は、主記憶装置９２、外部記憶装置９３、出力インタフェース９４、入力インタフェース９５及び通信インタフェース９６とバスを介して通信を行う。
【００７２】
通信インタフェース９６は、ＶＭホスト２を含む外部装置との通信のためのインタフェースである。ＣＰＵ９１は、通信インタフェース９６を介してＶＭホスト２と通信を行う。
【００７３】
出力インタフェース９４は、ディスプレイなどの出力装置が接続される。また、入力インタフェース９５は、マウスやキーボードといった入力装置が接続される。ただし、出力インタフェース９４及び入力インタフェース９５には通常は入力装置や出力装置は接続されず、異常検知管理装置１に対する入出力は通信インタフェース９６を介して外部の装置との間で行われる。
【００７４】
外部記憶装置９３は、ハードディスクやＳＳＤ（Solid  State  Drive）などの補助記憶装置である。外部記憶装置９３は、図２に例示した情報収集部１１、特徴量生成部１２、グルーピング部１３、代表指標抽出部１４及び通知部１５の機能を実現するためのプログラムを含む各種プログラムを格納する。
【００７５】
主記憶装置９２は、ＤＲＡＭなどのメモリである。ＣＰＵ９１は、図２に例示した情報収集部１１、特徴量生成部１２、グルーピング部１３、代表指標抽出部１４及び通知部１５の機能を実現するためのプログラムを含む各種プログラムを外部記憶装置９３から読み出して主記憶装置９２に展開して実行する。これにより、ＣＰＵ９１は、図２に例示した情報収集部１１、特徴量生成部１２、グルーピング部１３、代表指標抽出部１４及び通知部１５の機能を実現する。
【符号の説明】
【００７６】
１  異常検知管理装置
２  ＶＭホスト
１１  情報収集部
１２  特徴量生成部
１３  グルーピング部
１４  代表指標抽出部
１５  通知部
２１  ＣＰＵ
２２  仮想環境
１００  情報処理システム
２２１  ハイパーバイザ
２２２  仮想ＣＰＵ
２２３  ＶＭ
２２４  ＯＳ
２２５  アプリケーション
【図１】
2019200596.tif 000003
【図２】
2019200596.tif 000004
【図３】
2019200596.tif 000005
【図４】
2019200596.tif 000006
【図５】
2019200596.tif 000007
【図６】
2019200596.tif 000008
【図７】
2019200596.tif 000009
【図８】
2019200596.tif 000010
【図９】
2019200596.tif 000011
【図１０】
2019200596.tif 000012