(57)【要約】      （修正有）【課題】アプリケーションシステムの更新を考慮した適切な異常検出が可能な計算機システムを提供する。【解決手段】計算機システムは、監視システム１００、アプリケーションデプロイシステム３００を備える。デプロイ管理システム３１０は、アプリケーション２２０−１、２２０−２のソースコードのバージョンを管理し、ソースコードをコンパイルして電子計算機２１０−１、２１０−２にデプロイする。更新通知機能３１５は、デプロイする際に、監視装置１５０にアプリケーションをデプロイすることを通知する。電子計算機は、デプロイ管理システムがデプロイしたことを契機にアプリケーションの更新を反映させる為、ミドルウェアやプロセスを再起動させる。監視装置は、アプリケーションの更新を監視し、その更新を契機に、計測値に基づいて、アプリケーションの構成要素の計測値の変動を再学習し、アプリケーションの更新を考慮した障害判定を行う。【選択図】図１
2018045475.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが稼働する電子計算機に接続され前記電子計算機の性能値を監視する監視装置と、前記電子計算機に接続され前記電子計算機にアプリケーションをデプロイするデプロイ管理システムと、を有する計算機システムであって、
前記監視装置は、
前記電子計算機の複数種の性能値を取得し、前記複数種の性能値のうち２種の性能値の相関値を算出して基準値として記憶し、
前記基準値の算出後、前記複数種の性能値を取得し、
前記２種の性能値の相関値を算出して、前記基準値と比較することで、異常判定を行い、
前記デプロイ管理システムは、
前記電子計算機で稼働するアプリケーションに更新があると当該更新を前記監視装置に通知し、
前記監視装置は、
前記通知を受信すると、前記アプリケーション更新後の前記複数種の性能値を取得して前記複数種の性能値のうち２種の性能値の相関値を計算して新たな基準値として記憶し、
前記新たな基準値の算出後、前記複数種の性能値を取得し、
前記２種の性能値の相関値を算出して前記新たな基準値と比較することで、異常判定を行う、
計算機システム。
【請求項２】
前記通知は前記更新されたアプリケーションを特定する識別子を有し、
前記監視装置は、前記アプリケーションを特定する識別子と前記アプリケーションが稼働する電子計算機の性能値の計測対象を特定する識別子とを対応づけて管理し、
前記監視装置は、前記通知を受信すると、前記アプリケーションを特定する識別子と前記アプリケーションが稼働する電子計算機の性能値の計測対象を特定する識別子との対応づけに基づいて、前記更新されたアプリケーションを特定する識別子から前記更新されたアプリケーションの稼働する電子計算機の性能値の計測対象を特定し、
前記特定された計測対象に対して性能値を取得する、
請求項１に記載の計算機システム。
【請求項３】
前記監視装置は、
前記アプリケーションの更新後の所定の期間、前記異常判定の結果にアプリケーションの更新があったことを対応づけて管理する、
請求項２に記載の計算機システム。
【請求項４】
前記通知はさらにアプリケーションの更新種別を有し、
前記監視装置は、前記更新種別毎に前記新たな基準値を算出し、前記更新種別毎に前記複数種の性能値を取得し、
前記２種の性能値の相関値を前記更新種別毎に算出し、
同じ更新種別である前記新たな基準値と前記２種の性能値の相関値とを比較することで異常判定を行う、
請求項３に記載の計算機システム。
【請求項５】
前記監視装置は、前記更新種別と前記更新種別の影響度とを対応付けて管理し、
前記更新種別ごとの前記新たな基準値は、影響度がより大きい更新種別を有する前記通知以降に取得した前記電子計算機の性能値に基づいて算出した相関値である、
請求項４に記載の計算機システム。
【請求項６】
アプリケーションが稼働する電子計算機に接続され前記電子計算機の性能値を監視する監視装置と、前記電子計算機に接続され前記電子計算機にアプリケーションをデプロイするデプロイ管理システムと、を有する計算機システムの管理方法であって、
前記電子計算機の複数種の性能値を取得し、前記複数種の性能値のうち２種の性能値の相関値を算出して基準値として記憶し、
前記基準値の算出後、前記複数種の性能値を取得し、
前記２種の性能値の相関値を算出して、前記基準値と比較することで、異常判定を行い、
前記電子計算機で稼働するアプリケーションに更新があると当該更新を前記監視装置に通知し、
前記通知を受信すると、前記アプリケーション更新後の前記複数種の性能値を取得して前記複数種の性能値のうち２種の性能値の相関値を計算して新たな基準値として記憶し、
前記新たな基準値の算出後、前記複数種の性能値を取得し、
前記２種の性能値の相関値を算出して前記新たな基準値と比較することで、異常判定を行う、
計算機システムの管理方法。
【請求項７】
前記通知は前記更新されたアプリケーションを特定する識別子を有し、
前記アプリケーションを特定する識別子と前記アプリケーションが稼働する電子計算機の性能値の計測対象を特定する識別子とを対応づけて管理し、
前記通知を受信すると、前記アプリケーションを特定する識別子と前記アプリケーションが稼働する電子計算機の性能値の計測対象を特定する識別子との対応づけに基づいて、前記更新されたアプリケーションを特定する識別子から前記更新されたアプリケーションの稼働する電子計算機の性能値の計測対象を特定し、
前記特定された計測対象に対して性能値を取得する、
請求項６に記載の計算機システムの管理方法。
【請求項８】
前記アプリケーションの更新後の所定の期間、前記異常判定の結果にアプリケーションの更新があったことを対応づけて管理する、
請求項７に記載の計算機システムの管理方法。
【請求項９】
前記通知はさらにアプリケーションの更新種別を有し、
前記更新種別毎に前記新たな基準値を算出し、前記更新種別毎に前記複数種の性能値を取得し、
前記２種の性能値の相関値を前記更新種別毎に算出し、
同じ更新種別である前記新たな基準値と前記２種の性能値の相関値とを比較することで異常判定を行う、
請求項８に記載の計算機システムの管理方法。
【請求項１０】
前記更新種別と前記更新種別の影響度とを対応付けて管理し、
前記更新種別ごとの前記新たな基準値は、影響度がより大きい更新種別を有する前記通知以降に取得した前記電子計算機の性能値に基づいて算出した相関値である、
請求項９に記載の計算機システムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、アプリケーションシステムの異常検出システムに関する。
【背景技術】
【０００２】
近年、クラウドやサーバ仮想化の進展に伴い、アプリケーションの性能劣化やアプリケーションのバージョンアップデートに含まれるソースコードのバグによる障害等のサイレント障害の検出が求められている。このようなサイレント障害は、従来のサーバのＣＰＵ使用率やメモリ使用量やプロセスの生死確認、アプリケーションのシステムログの監視では検出されない。
【０００３】
上記問題を解決する為、特許文献１においては、運用管理装置が、システムを構成する被管理装置から複数種の性能種目毎の性能情報の計測値を取得し、取得した計測値の組合せに対する相関分析を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２００９／０２１６６２４号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、例えばＤｅｖＯｐｓ環境のようにアプリケーションの運用中にアプリケーションを頻繁に更新する環境では、アプリケーションの更新に伴って更新前と更新後でアプリケーションの処理が頻繁に変わる場合がある。特許文献１ではアプリケーションの更新を考慮していないため、障害検出装置がアプリケーション更新前に学習した情報に基づいて障害判定してしまい、アプリケーション更新後の適切な障害判定が行えないという課題がある。
【課題を解決するための手段】
【０００６】
アプリケーションが稼働する電子計算機に接続され電子計算機の性能値を監視する監視装置と、電子計算機に接続され電子計算機にアプリケーションをデプロイするデプロイ管理システムと、を有する計算機システムであって、監視装置は、電子計算機の複数種の性能値を取得し、複数種の性能値のうち２種の性能値の相関値を算出して基準値として記憶する。さらに、監視装置は、基準値の算出後、複数種の性能値を取得し、２種の性能値の相関値を算出して、基準値と比較することで、異常判定を行う。デプロイ管理システムは、電子計算機で稼働するアプリケーションに更新があるとその更新を監視装置に通知する。監視装置は、通知を受信すると、アプリケーション更新後の複数種の性能値を取得して複数種の性能値のうち２種の性能値の相関値を計算して新たな基準値として記憶し、新たな基準値の算出後、複数種の性能値を取得し、２種の性能値の相関値を算出して新たな基準値と比較することで、異常判定を行う。
【発明の効果】
【０００７】
本発明により、アプリケーションシステムの更新を考慮した適切な異常検出が可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施形態が適用されるシステムの全体構成を示す図である。
【図２】監視装置が保持する計測結果テーブルを示す図である。
【図３】監視装置が保持する計測結果と構成要素マッピングテーブルを示す図である。
【図４】監視装置が保持する学習結果テーブルを示す図である。
【図５】監視装置が保持する更新履歴テーブルを示す図である。
【図６】監視装置が保持するアプリケーション状態テーブルを示す図である。
【図７】監視シシステムがアプリケーションの通常時の動作を学習する動作概要を例示するシーケンス図である。
【図８】監視装置が障害時に異常判定する動作概要を例示するシーケンス図である。
【図９】監視装置がアプリケーション更新時に異常判定する動作概要を例示するシーケンス図である。
【図１０】監視装置がアプリケーションの通常時の動作を学習する際の動作概要を例示するチャート図である。
【図１１】監視装置が異常判定する際の動作概要を例示するフローチャート図である。
【図１２】監視装置が更新検出する際の動作概要を例示するフローチャート図である。
【図１３】相関係数の数式（１）、（２）を表わす図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して実施の形態を詳細に説明する。
【００１０】
本実施例においては、フローとは、データ通信のパケットヘッダに含まれる送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、送信先ＩＰアドレス、送信元ＩＰアドレス、Ｌ４ポート番号、及び、仮想ネットワーク識別子（ＶＬＡＮタグなど）によって一意に定められる通信である。
【００１１】
なお、上記の代わりに、送信先ＩＰアドレス、送信元ＩＰアドレス、Ｌ４ポート番号、及び、仮想ネットワーク識別子（ＶＬＡＮタグなど）をフローと捉えても、送信先ＩＰアドレス、送信元ＩＰアドレス、及び、仮想ネットワーク識別子（ＶＬＡＮタグなど）をフローと置き換えてもよい。
【００１２】
図１は、本実施形態におけるデータセンタの物理構成例を示す図である。第1の実施形態のシステムは、監視システム１００、実行環境２００、アプリケーションデプロイシステム３００、開発環境４００、データ通信用ネットワーク５００、および、管理通信用ネットワーク６００を備える。本実施形態に示される装置や端末、計算機器はいずれも物理装置であっても、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：ＶＭ）によって仮想的に実装されてもよい。
【００１３】
実行環境２００は電子計算機２１０、および、通信装置２３０によって構成される。電子計算機２１０には、アプリケーション２２０、および、計測機能２４０が格納され、それぞれ実行される。電子計算機２１０は複数台あってよく、図１では例として電子計算機２１０-１、電子計算機２１０-２と、電子計算機２１０が２台ある場合を図示している。図1では電子計算機２１０-１にはアプリケーション２２０-１と計測機能２４０-１が、電子計算機２１０-２にはアプリケーション２２０-２と計測機能２４０−２が格納されている場合を図示している。
【００１４】
電子計算機２１０は、プロセッサ、通信装置、揮発性の記憶装置（ＤＲＡＭなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。すなわち、電子計算機２１０にデプロイされるアプリケーション２２０は、電子計算機２１０に備わる不揮発性の記憶装置に保持されたプログラムが、プロセッサによって揮発性の記憶装置において実行されることによって実現される。またこれらのプログラムは、あらかじめ不揮発性記憶装置に格納されていてもよいし、ネットワークを介してまたは可搬型記憶媒体を介して外部装置から導入されても良い。アプリケーション２２０は、アプリケーションシステムの一部であり、電子計算機２１０において動作するプロセスなどのデータ処理機能である。アプリケーション２２０は、例えば、Ｗｅｂサーバ、アプリケーションサーバ、データベースサーバなどの種類がある。
【００１５】
これらのアプリケーションは同一のアプリケーションシステム内の他のアプリケーションの構成要素とリクエストやレスポンスなどを相互に送ることで、エンドユーザからの処理要求に応答する。なお、アプリケーション２２０を以下では、アプリケーションの構成要素と呼ぶ。
【００１６】
計測機能２４０は、自身を格納する電子計算機２１０の状態を計測し、計測結果を監視装置１５０に送信する機能である。計測対象は、アプリケーション構成要素間の通信量、アプリケーション構成要素が消費するＣＰＵ使用率、メモリ使用率、および、ストレージへの書込み（Ｉ／Ｏ）などの電子計算機２１０の性能値である。計測機能は、ＬＳＩ回路などのハードウェアとして提供されても、ソフトウェアプログラムとして実現されてもよい。
通信装置２３０は、電子計算機２１０間のリクエストやレスポンスを転送する装置で、例えば、ルータやネットワークスイッチなどである。通信装置には、計測機能２４０-３が含まれる。計測機能２４０-３は、電子計算機２１０-１に含まれる計測機能２４０-１や電子計算機２１０-２に含まれる計測機能２４０-２と同じである。
【００１７】
アプリケーションデプロイシステム３００はデプロイ管理システム３１０、および、アプリリポジトリ３２０が含まれる。デプロイ管理システム３１０は、アプリケーションのソースコードを事前にスケジュールされたタイミング、または、リポジトリに格納されるアプリケーションのソースコードが更新されたタイミングで事前に規定されたタスクを実行する。
【００１８】
デプロイ管理システム３１０は、開発用端末４１０を認証するためのユーザ管理テーブル、デプロイの時間帯をスケジューリングするためのスケジュール管理テーブル、タスク管理するためのタスク管理テーブル、および、アプリケーションのソースコードのバージョンを管理する為のバージョン管理テーブルなどを保持する。デプロイ管理システム３１０は、事前に規定されたタスクとして、従来では、アプリリポジトリ３２０に格納されたソースコードの構文をチェックし、ソースコードをコンパイルして、電子計算機２１０にデプロイする機能を備える。これらの機能は公知である。これに加えて、本実施形態においては、更新通知機能３１５を備える。
【００１９】
更新通知機能３１５は、アプリケーションを電子計算機にデプロイする際に、監視装置１５０にデプロイすることを通知する機能である。更新通知機能３１５は、スケジュール管理テーブルなどに記載されたアプリケーションの更新の種別、および、タスク管理テーブルなどに記載されたアプリケーションのデプロイ先の電子計算機２１０の識別子、テナントの識別子などを通知する。電子計算機２１０の識別子とは、例えば、ＩＰアドレスである。
【００２０】
開発環境４００は、開発用端末４１０が含まれる。開発用端末４１０は、アプリケーション開発者がアプリケーションのソースコードを作成するための端末である。アプリケーション開発者は、開発用端末４１０から作成したソースコードをアプリリポジトリ３２０にアップロードする。
【００２１】
データ通信用ネットワーク５００は、実行環境２００の通信装置２３０からエンドユーザ（図示しない）に接続する通信ネットワークである。通信ネットワークである。データ通信用ネットワーク５００には、アプリケーション２２０が行うデータ処理に関連する通信が流れる。
【００２２】
管理通信用ネットワーク６００は、アプリケーションデプロイシステム３００、開発環境４００、実行環境２００、および、監視システム１００を繋ぐ通信用ネットワークである。
【００２３】
監視システム１００は、管理用端末１８０と監視装置１５０を備える。管理用端末１８０は、監視装置１５０の分析結果を閲覧し、また、分析パラメータ等を入力するためのＧＵＩ、および、キーボードやタッチパネルなどの入力機能を備える。監視装置１５０は電子計算機２２０で動作するアプリケーション２２０を監視して、異常を検出し、管理用端末１８０に警報する装置である。
【００２４】
監視システム１００は、プロセッサ、通信装置、揮発性の記憶装置（ＤＲＡＭなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。すなわち、監視装置１５０が備えるプログラム１１０，１１５，１２０は、監視装置１００に備わる不揮発性の記憶装置に保持されたプログラムが、プロセッサによって揮発性の記憶装置において実行されることによって実現される。またこれらのプログラムは、あらかじめ不揮発性記憶装置に格納されていてもよいし、ネットワークを介してまたは可搬型記憶媒体を介して外部装置から導入されても良い。
【００２５】
監視装置１５０は挙動分析プログラム１１０、障害判定プログラム１１５、状態管理プログラム１２０、および、データ記憶部１６０を備える。挙動分析プログラム１１０は、アプリケーションの通常の状態を学習する処理を担う。障害判定プログラム１１５は、挙動分析プログラムが学習した通常の状態に基づいて、アプリケーションの異常を判定する。状態管理プログラム１２０は、アプリケーションの更新などの状態を監視し、複数の通常の状態を管理する。
【００２６】
データ記憶部１６０は計測結果テーブル５１００、計測対象と構成要素マッピングテーブル５２００、学習結果テーブル５３００、更新履歴テーブル５４００、および、アプリケーション状態テーブル５５００を備える。以下、各テーブルに関して説明する。なお、各テーブルは複数のテーブルとして正規化されていてもよく、逆に、他のテーブルと結合されたテーブルであってもよい。また、テーブル形式は一例であって、本明細書及び図面においてテーブル形式で示す情報は、テーブル形式以外の他の方法によって管理されてよい。
【００２７】
図２は、計測結果テーブル５１００を示す説明図である。計測結果テーブル５１００は、後に説明するように通信装置２３０や電子計算機２２０から計測値が収集されたときに、監視装置１５０によって生成される。計測結果テーブル５１００は、学習結果テーブル５３００、および、アプリケーション状態テーブル５５００を作成する際に参照される。
【００２８】
計測結果テーブル５１００においては、例えば、計測対象識別子、種別、計測時刻、および、計測値が含まれる。計測対象識別子は、計測対象を一意に特定するための識別子である。ここで、計測対象は、アプリケーション構成要素間の通信量、アプリケーション構成要素が消費するＣＰＵ使用率、メモリ使用率、および、ストレージへの書込み（Ｉ／Ｏ）などの種別に分類される。
【００２９】
種別とは、計測対象識別子が属する種別を示す。例えば、前述の通り、アプリケーション構成要素間の通信量を示すＡｐｐｌｉｃａｔｉｏｎ  ｔｒａｆｆｉｃ  ａｍｏｕｎｔやアプリケーション構成要素のＣＰＵ利用率を示すＣＰＵ  ｕｔｉｌｉｚａｔｉｏｎ  ｒａｔｉｏ、Ｍｅｍｏｒｙ  ｕｔｉｌｉｚａｔｉｏｎ  ｒａｔｉｏ、および、Ｉ／Ｏ  ｕｔｉｌｉｚａｔｉｏｎ  ｒａｔｉｏなどである。計測時刻は計測値が収集された日付や時間を特定する為の情報である。計測値は収集された計測値である。計測対象識別子、種別、計測時刻、および、計測値の各値は、電子計算機２１０や通信装置２３０から通知される。なお、計測対象識別子は、通知された情報に基づいて監視装置１５０が算出しても良い。
【００３０】
図３は、計測対象と構成要素マッピングテーブル ５２００を示す説明図である。計測対象と構成要素マッピングテーブル ５２００は、電子計算機２１０や通信装置２３０から計測値を収集したとき、および、デプロイ管理システム３１０から通知を受けたときに、監視装置１５０によって生成される。計測対象と構成要素マッピングテーブル ５２００は学習結果テーブル５３００、および、アプリケーション状態テーブル５５００を作成する際に参照される。
【００３１】
計測対象と構成要素マッピングテーブル ５２００においては、例えば、アプリケーション構成要素識別子、計測対象特定用識別子、種別、および、計測対象識別子が含まれる。アプリケーション構成要素識別子は、アプリケーションの構成要素を一意に特定する為の識別子である。アプリケーション構成要素識別子は、複数のアプリケーションシステムやテナントが混在するクラウドコンピューティング向けのデータセンタ環境においては、全てのアプリケーション構成要素に跨って一意に特定される識別子である。
【００３２】
なお、アプリケーションの構成要素とは、各電子計算機２１０において動作するプロセスなどのデータ処理機能であり、例えば、Ｗｅｂサーバ、アプリケーションサーバ、データベースサーバなどの種類がある。これらのアプリケーションの構成要素は同一のアプリケーションシステム内の他のアプリケーションの構成要素とリクエストやレスポンスなどを相互に送ることで、エンドユーザからの処理要求に応答する。
【００３３】
計測対象特定用識別子は、アプリケーション構成要素識別子と計測対象識別子を紐付ける為のアプリケーション構成要素の識別子であり、例えば、ＩＰアドレスである。なお、同一のＩＰアドレスが複数存在する仮想環境においては、ＩＰアドレスとＶＬＡＮタグ番号の組合せなどとしてもよい。
【００３４】
種別は、計測結果テーブル５１００に含まれる種別と同じである。計測対象識別子は、計測結果テーブル５１００に示す計測対象識別子と同じである。
【００３５】
図４は、学習結果テーブル５３００を示す説明図である。学習結果テーブル５３００は、シーケンス１０９０の学習において、監視装置１５０によって生成される。学習結果テーブル５３００はアプリケーション状態テーブル５５００を作成する際に参照される。
【００３６】
学習結果テーブル５３００においては、計測対象識別子、状態、および、分析値が含まれる。計測対象識別子は、計測結果テーブル５１００に示す計測対象識別子と同じである。状態は、計測対象識別子に関連するアプリケーション構成要素識別子の状態を示す。状態には、例えば、通常、通常（負荷増大時）、通常（日々更新時）、および、通常（月次更新時）などが含まれる。分析値は、計測対象識別子の各状態における分析結果の値を示す。分析結果の値とは、例えば、同じ状態下における相関係数の平均値やマハラノビス距離などである。
【００３７】
監視装置１５０はこの分析値を複数の状態毎に保持することで、様々な状態を考慮して通常の状態（分析値）と比較して障害を検出できる。
【００３８】
図５は、更新履歴テーブル５４００を示す説明図である。更新履歴テーブル５４００は、シーケンス１０６０の更新検出において、監視装置１５０によって生成される。更新履歴テーブル５４００は学習結果テーブル５３００、および、アプリケーション状態テーブル５５００を作成する際に参照される。
【００３９】
更新履歴テーブル５４００においては、アプリケーション構成要素識別子、更新時刻、状態、および、構成変更影響度が含まれる。アプリケーション構成要素識別子は、計測対象と構成要素マッピングテーブル５２００に含まれるアプリケーション構成要素識別子と同じである。更新時刻は、計測結果テーブル５１００に含まれる更新時刻と同じである。状態は、学習結果テーブル５３００に含まれる状態と同じである。
【００４０】
構成変更影響度とは、アプリケーションの更新などが学習結果テーブル５３００に示す分析値に与える影響の大きさを示す。図５では影響度の大きさを大、小の２段階しか示していないが、構成変更影響度は、分析値に与える影響度を更新履歴テーブル５４００の状態の種類に対応させ３段階以上で表してもよい。
【００４１】
構成変更影響度を備えることによって、構成変更が発生した際に、どの分析値を再計算しなければならないのかを判断することが可能になる。
【００４２】
例えば、日々更新に比べて月次更新の方が、アプリケーションは大きく変更されている可能性が高い。そのため、月次更新の後には、それ以前に算出された日々更新時の分析値が参考にならなくなっている可能性が高い。そのため、月次更新の後に、それ以前に算出された日々更新時の情報から、月次更新に収集された計測値に基づいて日々更新の情報を再計算することが必要である。このような場合、月次更新の構成変更影響度の値を、日々更新の構成変更影響度の値よりも大きな値にすることによって、日々更新の値を再計算することが可能になる。
【００４３】
図６は、アプリケーション状態テーブル５５００を示す説明図である。アプリケーション状態テーブル５５００は、シーケンス３０７０の異常判定において、監視装置１５０によって生成される。アプリケーション状態テーブル５５００は、シーケンス３０８０において、監視装置１５０が管理用端末１８０に通知する際に使用される。
【００４４】
アプリケーション状態テーブル５５００においては、アプリケーション構成要素識別子、異常検出フラグ、状態、および、判定時刻が含まれる。アプリケーション構成要素識別子は、計測対象と構成要素マッピングテーブル５２００に含まれるアプリケーション構成要素識別子と同じである。異常検出フラグは、アプリケーション構成要素が通常の挙動と異なるか否かを示すフラグである。
Stableの場合、通常の挙動であることを示し、Anomalyの場合、通常の挙動と異なることを示す。判定時刻は、異常判定を行った時刻である。
【００４５】
図７は、アプリケーションの更新が行われた際に、監視装置１５０が再学習する際の動作概要を例示するシーケンス図である。本処理によって、計測結果テーブル５１００、計測対象と構成要素マッピングテーブル５２００、更新履歴テーブル５４００、学習結果テーブル５３００が作成される。本処理は、監視システム１００を導入後、定期的、および、開発端末４１０がソースコードをアップロードする度に実行される。以下に各処理手順を示す。
【００４６】
シーケンス１０１０において、電子計算機２１０−１〜ｎ、または、通信装置２３０は計測機能２４０を用いて通信装置の性能値の計測を行う。計測する項目は、例えば、アプリケーション構成要素間の通信量を示すＡｐｐｌｉｃａｔｉｏｎ  ｔｒａｆｆｉｃ  ａｍｏｕｎｔ（本明細においては、通信量と呼ぶ）やアプリケーション構成要素の演算処理の利用率を示すＣＰＵ  ｕｔｉｌｉｚａｔｉｏｎ  ｒａｔｉｏ、アプリケーション構成要素のメモリ利用率を示すＭｅｍｏｒｙ  ｕｔｉｌｉｚａｔｉｏｎ、および、アプリケーション構成要素の記憶媒体への入力と出力の利用率を示すＩ／Ｏ  ｕｔｉｌｉｚａｔｉｏｎ  ｒａｔｉｏなどである。なお、本シーケンスは、他の処理シーケンスとは独立に繰り返し実行される。
【００４７】
計測方法は公知の技術が適用可能である。通信量の計測方法として，例えば、ｓＦｌｏｗプロトコルによるパケットサンプリングやＮｅｔｆｌｏｗによるパケット収集が挙げられる。収集したパケットの送信元ＩＰアドレスと送信先ＩＰアドレス、および、Ｌ４ポート番号が同一であるパケット数をカウントし、平均パケット長をかけることによって、通信量が計測される。ＣＰＵやメモリ、Ｉ／Ｏ使用率に関しては、Ｔｏｐコマンドや既製品の計測用のエージェントを用いることで計測される。
【００４８】
シーケンス１０２０において、電子計算機２１０−１〜ｎ、または、通信装置２３０が計測値を監視装置１５０に送信する。本シーケンスは、他の処理シーケンスとは独立に繰り返し実行される。通知される計測値には、計測対象識別子、種別、計測時刻、および、計測値が含まれる。監視装置１５０は、計測値を受信すると以下の２つの処理を行う。
【００４９】
1つ目は、計測結果テーブル５１００への保存である。本シーケンスで受信した計測対象識別子、種別、計測時刻、および、計測値を、それぞれ、計測結果テーブル５１００の計測対象識別子、計測時刻、および、計測値に保存する。
【００５０】
２つ目は、計測対象と構成要素マッピングテーブル５２００への保存である。監視装置１５０は、計測対象と構成要素マッピングテーブル５２００の計測対象識別子に、本シーケンスで受取った計測対象識別子が含まれるかを判定し、含まれていない場合、同テーブルに新規エントリを追加して以下を保存する。計測対象識別子、種別に、それぞれ本シーケンスで受取った計測対象識別子、種別を保存する。計測対象特定用識別子に、計測対象識別子に対応した識別子としてＩＰアドレスを保存する。本ＩＰアドレスは、監視装置１５０が計測対象識別子とＩＰアドレスのマッピング情報として保持しても、また、本シーケンスにおいて電子計算機２１０から通知されてもよい。なお、種別がＡｐｐｌｉｃａｔｉｏｎ  ｔｒａｆｆｉｃ  ａｍｏｕｎｔである場合、計測対象特定用識別子が２つ存在するため、２つエントリを登録する。理由は、通信は送信元と送信先のアプリケーション構成要素が存在する為、２つのＩＰアドレスが存在するためである。
【００５１】
アプリケーション構成要素識別子は、この段階では空白となっており、シーケンス１０６０の更新検出において登録される。
【００５２】
シーケンス１０１０とシーケンス１０２０は以下の処理とは独立に繰り返し実行される。シーケンス１０３０において、開発用端末４１０が、アプリケーションのソースコードをアプリリポジトリ３２０にアップロードする。
【００５３】
シーケンス１０４０において、デプロイ管理システム３１０はアプリリポジトリ３２０に格納されたアプリケーションのソースコードの構文チェック、コンパイルを行い、電子計算機２１０にデプロイする。本シーケンスが実行されるタイミングは、事前に規定されたスケジュール、または、アプリリポジトリ３２０に更新用のプログラムがデプロイされたタイミングにおいて実行される。
【００５４】
シーケンス１０５０において、デプロイ管理システム３１０が、アプリケーションの構成要素識別子、アプリケーションをデプロイする電子計算機２１０の識別子、および、更新の種別を監視装置１５０に通知する。
【００５５】
シーケンス１０６０において、監視装置１５０の状態管理プログラム１２０がアプリケーションの更新を検出する。
【００５６】
図１２を用いて説明する。図７のシーケンス１０６０について図１２は監視装置１５０の状態管理プログラム１２０がアプリケーションの更新を検出する際の動作概要である。本処理によって、更新履歴テーブル、および、計測対象と構成要素マッピングテーブルが作成される。
【００５７】
ステップ８５１０において、状態管理プログラム１２０が更新履歴テーブル５４００、および、計測対象と構成要素マッピングテーブル５２００に通知を受けた更新情報を保存する。 具体的には、状態管理プログラム１２０は、シーケンス１０５０において受信した、アプリケーションの構成要素識別子と更新の種別、および、同通知を受信した更新時刻を、それぞれ、更新履歴テーブル５４００のアプリケーションの構成要素識別子、状態、および、更新時刻に保存する。また、状態管理プログラム１２０は、事前に人手で設定される更新の種別と構成変更影響度の対応表に基づいて、更新の種別に対応する構成変更影響度を、同エントリの構成変更影響度に保存する。
【００５８】
ステップ８５２０において、状態管理プログラム１２０は、計測対象と構成要素マッピングテーブル５２００を参照し、計測対象特定用識別子が、シーケンス１０５０において受信した電子計算機の識別子と同じであるエントリのアプリケーション構成要素識別子に、シーケンス１０５０において受信したアプリケーション構成要素識別子を格納する。以上が図１２の説明である。
【００５９】
図７の説明に戻る。シーケンス１０７０において、電子計算機２１０はアプリケーションの更新を反映させる為、ミドルウェアやプロセスを再起動させる。本シーケンスは１０４０において、デプロイ管理システム３１０がデプロイしたことを契機に実行される。
【００６０】
シーケンス１０８０とシーケンス１０８５は、シーケンス１０１０、および、シーケンス１０２０と同じである。但し、シーケンス１０８０における計測値には、シーケンス１０７０において、電子計算機２１０が更新に伴う再起動を行った影響が含まれている。具体的には、再起動する際にアプリケーションの構成要素が一時的に停止する為、データ処理が止まり、ＣＰＵ利用率、メモリ使用率、Ｉ／Ｏ使用率の低下や、通信量の低下が生じる。
【００６１】
シーケンス１０９０において、監視装置１５０は計測値に基づいて、アプリケーションの構成要素の計測値の変動を学習する。本シーケンスは、シーケンス１０６０の更新検出を契機に実行される。本シーケンスは、シーケンス１０６０の直後ではなく、一定期間後に繰り返し実行される。理由は２つあり、１つは、更新に伴う再起動を学習する必要があるが、シーケンス１０７０の更新に伴う再起動の影響を、シーケンス１０８５の計測値の収集によって取得後に本シーケンスを実行しなければ、シーケンス１０７０の影響を学習できない為である。もう１つは、更新によって挙動が変わるアプリケーションの状態を学習しなければならないが、シーケンス１０８５の後でなければ、学習する為に必要な情報が収集されていない為である。シーケンス１０９０の処理内容を、図１０を用いて説明する。
【００６２】
図１０は、監視装置１５０の挙動分析プログラム１１０が、学習する際の動作概要である。本処理によって、学習結果テーブル５３００が作成される。
【００６３】
ステップ８１１０において、挙動分析プログラム１１０が、管理用端末１８０から管理システム構築時に規定された時間だけ待機する。 事前に規定された時間とは、アプリケーションの更新が計測値に反映されるまでの時間である。具体的には，シーケンス１０８０とシーケンス１０８５が実行されるまでの間である。
【００６４】
ステップ８１２０において、挙動分析プログラム１１０が、更新履歴テーブル５４００を参照し、アプリケーション毎、かつ、状態毎に相関値の計算に利用する時間帯を参照時刻として把握する。 具体的には、以下の処理を全てのアプリケーション構成要素識別子に対して行う。更新履歴テーブル５４００のアプリケーション構成要素識別子が同一である全てのエントリの中から、更新時刻、状態、および、構成変更影響度を把握し、構成変更影響度が最も大きいエントリの全ての更新時刻のうち、最新の更新時刻を暫定参照時刻として把握し、構成変更影響度が、把握された構成変更影響度未満である全ての状態の参照時刻として保存する。
【００６５】
次に、同様にして、構成変更影響度が次に大きいエントリの全ての更新時刻のうち、最新の更新時刻を暫定参照時刻として把握し、構成変更影響度が、把握された構成変更影響度未満である全ての状態の参照時刻として更新する。本処理を全ての構成変更影響度に対して繰り返し実行する。構成変更影響度が最大の状態の参照時刻については、例えば一番古いエントリの時刻にしてもよいし、最新のエントリの時刻から予め定められた時間分過去の時刻としてもよい。これにより、更新履歴テーブル５４００の状態ごとに参照時刻が決定される。
【００６６】
ステップ８１３０において、挙動分析プログラム１１０が、計測結果テーブル５１００、更新履歴テーブル５４００と計測対象と構成要素マッピングテーブル５２００を結合する。 具体的には、計測対象テーブル５１００と、計測対象と構成要素マッピングテーブル５２００とを計測対象識別子をキーにして結合し、また、更新履歴テーブル５４００と、計測対象と構成要素マッピングテーブル５２００とをアプリケーション構成要素識別子をキーにして結合する。結合したテーブルを、更新履歴付き計測結果テーブルと呼ぶ。更新履歴付き計測結果テーブルは、計測対象識別子、計測時刻、計測値、アプリケーション構成要素識別子、計測対象特定用識別子、種別、更新時刻、状態、および、構成変更影響度を含む。
【００６７】
ステップ８１４０において、挙動分析プログラム１１０が、状態が同一である計測値を把握する。 具体的には、シーケンス１０５０において受信した全てのアプリケーション構成要素識別子、および、全ての状態に対して、以下の処理を行う。
【００６８】
挙動分析プログラム１１０が、ステップ８１３０において作成された更新履歴付き計測結果テーブルを参照し、アプリケーション構成要素識別子、および、状態が共に同一である全てのエントリ（第1エントリグループと呼ぶ）を把握する。次に、ステップ８１２０において決定した状態ごとの参照時刻のうち、第１エントリグループの状態と同一の状態について参照時刻を特定し、特定した参照時刻と第１エントリグループに含まれるエントリの計測時刻とを比較し、第１エントリグループに含まれるエントリのうち、エントリの計測時刻が特定された参照時刻よりも新しい全てのエントリ（第２エントリグループ）を把握する。これを全てのアプリケーション構成要素識別子と状態の組合せについて行う。つまり、アプリケーション構成要素識別子と状態の組合せの数だけ第１エントリグループと第２エントリグループが決定される。
【００６９】
ステップ８１５０において、挙動分析プログラム１１０が，分析値（相関値）を計算し、学習結果テーブル５３００に保存する。具体的には、全ての計測対象識別子、および、全ての状態に対して、以下の処理を行う。複数の第２エントリグループの中から計測対象識別子がi，計測時刻がtであり、かつ状態がkである計測値fi(t)，を把握する。同様に複数の第２エントリグループの中から計測対象識別子がｊ，計測時刻がtであり、かつ状態がkである計測値fｊ(t),を把握する
相関値を計算するために用いる期間（相関窓）を[tsij，tfij]とし、計測対象識別子iのサンプリングパケット数の合計値をfi(t)とする。計測対象識別子iと計測対象識別子jの相関係数の計算に、ピアソンの積率相関係数の式を適用すると、相関係数ri,jは図１３の数式（１）によって算出される。これによって、期間[tsij，tfij]間の相関係数が算出される。
【００７０】
ここで、期間[tsij，tfij]は、ステップ８１４０において把握された計測対象識別子iと計測対象識別子jの情報が含まれ、状態がkである全ての時刻（即ち、tsijが計測対象識別子iと計測対象識別子jのうち、新しい方（現在時刻に近い）の参照時刻であり、tfijがステップ８１４０において把握された計測対象識別子iと計測対象識別子jの時刻のうち古い方（現在時刻から遠い）である。挙動分析プログラム１１０が、学習結果テーブル５３００の計測対象識別子、状態、および、分析値に、計測対象識別子i，計測対象識別子j，状態k，および、相関係数ri,jを保存する。
【００７１】
数式（１）による相関係数の算出は一例にすぎず、異なる計算式によって算出されてもよい。以上が図１０の説明である。
【００７２】
図８は、障害判定を行う動作概要を例示するシーケンス図である。本処理によって、アプリケーション状態テーブル５５００が作成される。本処理は、監視システム１００を導入後、常時、実行される。以下に各処理手順を示す。
【００７３】
シーケンス２０１０、および、シーケンス２０２０は、シーケンス１０１０、および、シーケンス１０２０と同様である。シーケンス２０３０において、監視装置１５０が異常判定を行う。本シーケンスの処理を、図１１を用いて説明する。
【００７４】
図１１は、監視装置１５０の障害判定プログラム１１５が、異常判定する際の動作概要である。本処理によって、アプリケーション状態テーブル５４００が作成される。
【００７５】
ステップ８３１０において、障害判定プログラム１１５が計測結果テーブル５１００を参照する。具体的には、障害判定プログラム１１５は、計測結果テーブル５１００の計測時刻が、直近の規定された時間（例えば、1時間前から現在まで）tmに含まれる全てのエントリを把握する。なお、規定された時間は、監視システム１５０導入時に管理者によって指定される。
【００７６】
ステップ８３２０において，障害判定プログラム１１５が分析値を計算する。具体的には，全ての計測対象識別子に対して、以下の処理を行う。ステップ８３１０において障害判定プログラム１１５が把握した全てエントリから、2つの計測対象識別子（計測対象識別子i、計測対象識別子j）、および，1つの状態（状態k）を選択する。同エントリの中から計測対象識別子がi，計測時刻がtであり，かつ状態がkである計測値fi(t)，を把握する。
【００７７】
相関値を計算するために用いる期間（相関窓）を[tp-tm，tp]とし、計測対象識別子iの計測値をfi(t)とする。同様に計測対象識別子ｊの計測値をfｊ(t)とする。ここで，tpは現在時刻である。計測対象識別子iと計測対象識別子jの相関係数の計算に、ピアソンの積率相関係数の式を適用すると、相関係数r’i,jは図１３の数式（２）によって算出される。数式（２）による相関係数の算出は一例にすぎず、異なる計算式によって算出されてもよい。
【００７８】
ステップ８３３０において、障害判定プログラム１１５が更新履歴テーブル５４００と、計測対象と構成要素マッピングテーブル５２００を、アプリケーション構成要素識別子をキーにして結合し、計測対象識別子、時刻、状態、および，構成変更影響度を全て把握する。
【００７９】
ステップ８３４０において，障害判定プログラム１１５が，学習結果テーブル５３００を参照し、状態が同じ条件下で分析値を比較する。具体的には、以下の処理をステップ８３２０において、計算した全ての計測対象識別子i，計測対象識別子ｊの組合せに対して、以下の処理を行う。ステップ８３３０において障害判定プログラム１１５が把握した中から、計測対象識別子がiであるエントリのうち構成変更影響度が最大のエントリの状態を把握する、同様に、計測対象識別子がjであるエントリのうち構成変更影響度が最第のエントリの状態を把握する。把握された2つの状態のうち、構成変更影響度が最大の状態を現在状態として把握する。
【００８０】
障害判定プログラム１１５が，学習結果テーブル５３００において、計測対象識別子が、本ステップで把握された識別子i，jと同じであるエントリのうち，状態が現在状態と同じであるエントリの分析値を把握する。つまり、ステップ８３２０において算出されたr’i,jとステップ８１５０において算出されたri,jの差を計算して差の絶対値が閾値以上である場合には判定結果を異常、閾値未満である場合には判定結果を正常、と記憶する。
【００８１】
ステップ８３５０において、障害判定プログラム１１５が分析結果をアプリケーション状態テーブル５５００に保存する。
【００８２】
具体的には、ステップ８３４０において，把握された全ての計測対象識別子i，jに対して、以下の処理を行う。障害判定プログラム１１５が、計測対象と構成要素識別子マッピングテーブル５２００において、計測対象識別子がiまたはjである全てのエントリのアプリケーション構成要素識別子を把握する。
【００８３】
障害判定プログラム１１５が、アプリケーション状態テーブル５５００の，アプリケーション構成要素識別子に本ステップで把握されたアプリケーション構成要素識別子を、異常検出フラグにステップ８３４０において算出された判定結果を、状態にステップ８３２０において把握された状態ｋを、時刻に現在時刻（本ステップを実行した時刻）を保存する。以上が図１１の説明である。
【００８４】
図８の説明に戻る。シーケンス２０４０において、監視装置１５０がアプリケーション状態テーブル５５００の情報を管理用端末１８０に通知する。なお、ステップ８３５０において、更新されたエントリのみ通知しても、異常検出フラグが異常であるエントリのみを通知しても良い。管理用端末においては，状態を含めて通知される為，異常判定されたものが、アプリケーションの更新に伴うものか、否かを判別してフィルタすることが可能になる。以上が図８の説明である。
【００８５】
図９にアプリケーション更新時の異常判定する動作概要を示す。なお、本動作概要における監視装置１５０の処理内容は図８と同様である。
【００８６】
シーケンス３０１０から３０３０の処理はシーケンス１０３０〜１０５０の処理と同じである。
【００８７】
シーケンス３０１０において，開発用端末４１０が、アプリケーションのソースコードをアプリリポジトリ３２０にアップロードする。
【００８８】
シーケンス３０２０において、アプリリポジトリ３２０に格納されたアプリケーションのソースコードの構文チェック、コンパイルを行い、電子計算機２１０にデプロイする。本シーケンスが実行されるタイミングは、事前に規定されたスケジュール、または、アプリリポジトリ３２０に更新用のプログラムがデプロイされたタイミングにおいて実行される。
【００８９】
シーケンス３０３０において、デプロイ管理システム３１０が、アプリケーションの構成要素識別子、アプリケーションをデプロイする電子計算機２１０の識別子、および、更新の種別を監視装置１５０に通知する。
【００９０】
シーケンス３０４０と３０５０の処理はシーケンス１０１０と１０２０の処理と同じである。
シーケンス３０４０において、電子計算機２１０−１〜ｎ、または、通信装置２３０は計測を行う。
【００９１】
シーケンス３０５０において、電子計算機２１０−１〜ｎ、または、通信装置２３０が計測値を監視装置１５０に送信する。本シーケンスは、他の処理シーケンスとは独立に繰り返し実行される。
【００９２】
シーケンス３０６０と３０７０の処理は、シーケンス２０３０と２０４０の処理と同じである。シーケンス３０６０において、監視装置１５０が異常判定を行う。シーケンス３０７０において、監視装置１５０が管理用端末１８０に判定結果３０７０を通知する。
【００９３】
以上に示すとおり、アプリケーション更新時の異常判定は、障害時の異常判定の処理と同様の処理となっていることから，障害時の異常判定と比べて特殊な処理を行うことなく、アプリケーションの更新を、障害と切り分けることが可能であることが分かる。以上が図９の説明である。
【符号の説明】
【００９４】
１００：監視システム
１１０：挙動分析プログラム
１１５：障害判定プログラム
１２０：状態管理プログラム
１５０：監視装置
１６０：データ記憶部
１８０：管理用端末
２００：実行環境
２１０：電子計算機
２２０：アプリケーション
２３０：通信装置
２４０：計測機能
３００：アプリケーションデプロイシステム
３１０：デプロイ管理システム
３１５：更新通知機
３２０：アプリリポジトリ
４００：開発環境
４１０：開発用端末
５００：データ通信用ネットワーク
６００：管理通信用ネットワーク
【図１】
2018045475.tif 000003
【図２】
2018045475.tif 000004
【図３】
2018045475.tif 000005
【図４】
2018045475.tif 000006
【図５】
2018045475.tif 000007
【図６】
2018045475.tif 000008
【図７】
2018045475.tif 000009
【図８】
2018045475.tif 000010
【図９】
2018045475.tif 000011
【図１０】
2018045475.tif 000012
【図１１】
2018045475.tif 000013
【図１２】
2018045475.tif 000014
【図１３】
2018045475.tif 000015