(57)【要約】【課題】異常検知の精度を向上させることをと可能とする。【解決手段】複数の監視処理部１１〜１３の各々は、監視対象３０を監視するための監視プログラムと当該監視プログラムを実行するための実装が異なる複数の言語処理系の各々とによって実現され、監視対象３０を監視する。複数の監視処理部１１〜１３の各々は、当該監視処理部による監視対象３０の監視結果を出力する。【選択図】図１
2014197307.tif 000002
【特許請求の範囲】
【請求項１】
監視対象を監視する監視処理装置が実行する監視処理方法であって、
前記監視対象を監視するための監視プログラムと当該監視プログラムを実行するための実装が異なる複数の言語処理系の各々とによって実現される複数の監視処理手段の各々が前記監視対象を監視するステップと、
前記複数の監視処理手段の各々による前記監視対象の監視結果を出力するステップと
を具備することを特徴とする監視処理方法。
【請求項２】
前記監視対象の監視結果は、前記監視対象が正常または異常であることを含み、
前記出力された前記複数の監視処理手段の各々による前記監視対象の監視結果のうちの少なくとも１つが前記監視対象が異常であることを含むかを判定するステップと、
前記監視対象の監視結果のうちの少なくとも１つが前記監視対象が異常であることを含むと判定された場合、前記監視対象の異常を通知するステップと
を更に具備することを特徴とする請求項１記載の監視処理方法。
【請求項３】
監視対象を監視する監視処理装置が実行する監視処理方法であって、
前記監視対象を監視するためのアルゴリズムが異なる監視プログラムの各々と当該監視プログラムを実行するための言語処理系とによって実現される複数の監視処理手段の各々が前記監視対象を監視するステップと、
前記複数の監視処理手段の各々による前記監視対象の監視結果を出力するステップと
を具備することを特徴とする監視処理方法。
【請求項４】
監視対象を監視する監視処理装置において、
前記監視対象を監視するための監視プログラムと当該監視プログラムを実行するための実装が異なる複数の言語処理系の各々とによって実現され、前記監視対象を監視する複数の監視処理手段と、
前記複数の監視処理手段の各々による前記監視対象の監視結果を出力する出力手段と
を具備することを特徴とする監視処理装置。
【請求項５】
監視対象を監視する監視処理装置と当該監視処理装置と通信可能に接続される監視結果照合装置とを備える監視処理システムにおいて、
前記監視処理装置は、
前記監視対象を監視するための監視プログラムと当該監視プログラムを実行するための実装が異なる複数の言語処理系の各々とによって実現され、前記監視対象を監視する複数の監視処理手段と、
前記複数の監視処理手段の各々による前記監視対象の監視結果を出力する出力手段と
を含み、
前記監視対象の監視結果は、前記監視対象が正常または異常であることを含み、
前記監視結果照合装置は、
前記出力された前記複数の監視処理手段の各々による前記監視対象の監視結果のうちの少なくとも１つが前記監視対象が異常であることを含むかを判定する判定手段と、
前記監視対象の監視結果のうちの少なくとも１つが前記監視対象が異常であることを含むと判定された場合、前記監視対象の異常を通知する通知手段と
を含む
ことを特徴とする監視処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視処理方法、監視処理装置及び監視処理システムに関する。
【背景技術】
【０００２】
一般に、各種システム運用の現場では、当該システムでの異常を検知するために監視対象（例えば、サーバ装置の動作やディスク容量の利用率等）を監視することが行われている。
【０００３】
このような監視は、当該監視手法が実装されたプログラム（以下、監視プログラムと表記）及び当該監視プログラムを計算機上で実行するためのソフトウェアである言語処理系によって実現される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−０２２４２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記したよう監視対象を監視する際に言語処理系にバグが存在する場合、当該監視が正常に行われない可能性があり、異常を検知することができない場合がある。
【０００６】
そこで、本発明の目的は、異常検知の精度を向上させることが可能な監視処理方法、監視処理装置及び監視処理システムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の１つの態様によれば、監視対象を監視する監視処理装置が実行する監視処理方法が提供される。この監視処理方法は、前記監視対象を監視するための監視プログラムと当該監視プログラムを実行するための実装が異なる複数の言語処理系の各々とによって実現される複数の監視処理手段の各々が前記監視対象を監視するステップと、前記複数の監視処理手段の各々による前記監視対象の監視結果を出力するステップとを具備する。
【発明の効果】
【０００８】
本発明は、異常検知の精度を向上させることを可能とする。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態に係る監視処理システムの構成を示すブロック図。
【図２】本実施形態に係る監視処理システムの処理手順を示すフローチャート。
【図３】監視処理装置１０及び監視結果照合装置２０が組み込まれたサーバ装置のアーキテクチャを表す図。
【図４】本発明の第３の実施形態に係る監視処理システムの構成を示すブロック図。
【図５】本実施形態における監視処理装置４０及び監視結果照合装置５０が組み込まれたサーバ装置のアーキテクチャの一例を表す図。
【図６】本実施形態に係る監視処理システムの処理手順を示すフローチャート。
【図７】本発明の第４の実施形態に係る監視処理システムの構成を示すブロック図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の各実施形態について説明する。
【００１１】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る監視処理システムの構成を示すブロック図である。図１に示すように、監視処理システムは、監視処理装置１０及び監視結果照合装置２０を備える。監視処理装置１０及び監視結果照合装置２０は、通信可能に接続される。
【００１２】
監視処理装置１０は、監視対象３０を監視する機能を有する。ここで、監視対象３０には、例えばサーバ装置等が含まれる。具体的には、例えば任意のソフトウェア（監視対象プログラム）に基づくサーバ装置の動作や当該サーバ装置が有するＨＤＤ（Hard Disk Drive）等のハードウェアの状態等が監視される。
【００１３】
監視処理装置１０は、複数の監視処理部を含む。図１においては、複数の監視処理部として、便宜的に３つの監視処理部１１〜１３が示されている。なお、この監視処理部は、２つであってもよいし、４つ以上であっても構わない。以下の説明においては、監視処理装置１０が複数の監視処理部として監視処理部１１〜１３を含むものとして説明する。
【００１４】
複数の監視処理部１１〜１３の各々は、監視対象３０を監視するためのプログラム（以下、監視プログラムと表記）と言語処理系とによって実現される。なお、言語処理系は、監視プログラムを監視処理装置１０（計算機）上で実行するためのソフトウェア（例えば、コンパイラ等）である。
【００１５】
なお、複数の監視処理部１１〜１３の各々を実現するための監視プログラムは、所定のプログラム言語で記述された同一のプログラムである。一方、複数の監視処理部１１〜１３の各々を実現するための言語処理系は、それぞれ実装が異なる言語処理系である。
【００１６】
複数の監視処理部１１〜１３の各々は、監視対象３０の監視結果を監視結果照合装置２０に対して出力（送信）する。
【００１７】
監視結果照合装置２０は、監視結果照合部２１及び異常通知部２２を含む。監視結果照合部２１は、複数の監視処理部１１〜１３の各々によって出力された監視対象３０の監視結果を照合する。
【００１８】
異常通知部２２は、監視結果照合部２１による照合結果に基づいて、監視対象３０の異常（障害）を外部に通知する。
【００１９】
なお、上記した監視処理装置１０及び監視結果照合装置２０は、それぞれ独立した装置であってもよいし、１台の物理的なコンピュータ（装置）を論理的に分割した仮想マシンとして実現されても構わない。更に、監視処理装置１０及び監視結果照合装置２０は、例えばサーバ装置に組み込まれていてもよいし、当該サーバ装置とは別個に設けられていても構わない。
【００２０】
次に、図２のフローチャートを参照して、本実施形態に係る監視処理システムの処理手順について説明する。なお、図２において説明する処理は、予め定められた間隔で実行されるものとする。
【００２１】
まず、監視処理装置１０に含まれる、実装が異なる言語処理系によって実現される複数の監視処理部１１〜１３は、監視対象３０に対する監視処理をそれぞれ実行する。
【００２２】
具体的には、監視処理部１１は、（当該監視処理部１１を実現するための言語処理系で）監視対象３０に対する監視処理を実行する（ステップＳ１）。
【００２３】
監視処理部１１は、監視対象３０の監視結果を監視結果照合装置２０に対して出力する（ステップＳ２）。なお、監視処理部１１によって出力される監視対象３０の監視結果には、当該監視対象３０が正常または異常であることが含まれる。
【００２４】
また、監視処理部１２は、（当該監視処理部１２を実現するための言語処理系で）監視対象３０に対する監視処理を実行する（ステップＳ３）。
【００２５】
監視処理部１２は、監視対象３０の監視結果を監視結果照合装置２０に対して出力する（ステップＳ４）。なお、監視処理部１２によって出力される監視対象３０の監視結果には、上記した監視処理部１１によって出力される監視対象３０の監視結果と同様に、当該監視対象３０が正常または異常であることが含まれる。
【００２６】
更に、監視処理部１３は、（当該監視処理部１３を実現するための言語処理系で）監視対象３０に対する監視処理を実行する（ステップＳ５）。
【００２７】
監視処理部１３は、監視対象３０の監視結果を監視結果照合装置２０に対して出力する（ステップＳ６）。なお、監視処理部１３によって出力される監視対象３０の監視結果には、上記した監視処理部１１及び１２によって出力される監視対象３０の監視結果と同様に、当該監視対象３０が正常または異常であることが含まれる。
【００２８】
ここで、監視結果照合装置２０に含まれる監視結果照合部２１は、監視処理部１１〜１３の各々によって出力された監視対象３０の監視結果のうちの少なくとも１つが当該監視対象３０が異常であることを含む（つまり、監視処理部１１〜１３による監視結果の中に監視対象３０の異常がある）か否かを判定する（ステップＳ７）。
【００２９】
監視対象３０の監視結果のうちの少なくとも１つが監視対象３０が異常であることを含むと判定された場合（ステップＳ７のＹＥＳ）、異常通知部２２は、監視対象３０の異常を例えば管理者（例えば、監視対象３０であるサーバ装置の管理者）等に対して通知する。
【００３０】
一方、監視対象３０の監視結果のうちの少なくとも１つが監視対象３０が異常であることを含まない（つまり、監視対象３０の監視結果の全てが正常である）と判定された場合（ステップＳ７のＮＯ）、ステップＳ８の処理は実行されない。なお、監視対象３０の監視結果の全てが正常であると判定された場合には、ステップＳ８の処理に代えて、当該監視対象３０が正常であることを通知する処理が実行されても構わない。
【００３１】
上記したように本実施形態においては、監視対象３０を監視するための監視処理部（を実現するための言語処理系）が多重化され、当該多重化された監視処理部（ここでは、監視処理部１１〜１３）の各々による監視結果に基づいて監視対象３０の異常が通知される。
【００３２】
なお、図２においては監視処理部１１〜１３の全てから監視対象３０の監視結果が出力された後にステップＳ７の処理が実行されるものとして説明したが、例えばステップＳ２の処理の後に監視処理部１１によって出力された監視対象３０の監視結果が当該監視対象３０が異常であることを含むか否かが判定され、監視対象３０が異常であることを含むと判定された場合にはステップＳ８の処理が実行され、監視対象３０が異常でないことを含むと判定された場合にはステップＳ３の処理が実行される構成とすることも可能である。この場合、例えばステップＳ４の処理の後に監視処理部１２によって出力された監視対象３０の監視結果が当該監視対象３０が異常であることを含むか否かが判定され、監視対象３０が異常であることを含むと判定された場合にはステップＳ８の処理が実行され、監視対象３０が異常でないことを含むと判定された場合にはステップＳ５の処理が実行される。また、ステップＳ７においては監視処理部１３によって出力された監視対象３０の監視結果が当該監視対象３０が異常であることを含むか否かが判定され、監視対象３０が異常であることを含むと判定された場合にはステップＳ８の処理が実行され、監視対象３０が異常でないことを含むと判定された場合には処理が終了される。
【００３３】
ここで、本実施形態に係る監視処理システムについて具体的に説明する。ここでは、監視対象３０がサーバ装置内の指定されたディレクトリのディスク容量の利用率（以下、単にディスク利用率と表記）であるものとし、監視処理装置１０及び監視結果照合装置２０は当該サーバ装置に組み込まれているものとする。なお、図３は、監視処理装置１０及び監視結果照合装置２０が組み込まれたサーバ装置のアーキテクチャの一例を表す。
【００３４】
ここでは、図３に示すように例えばＡＲＭホールディングス（の事業部門であるＡＲＭ  Ｌｔｄ）によるＡＲＭアーキテクチャが導入されていることを想定しており、ディスク利用率を監視するための監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）がｒｕｂｙで記述され、当該監視プログラムを実行するための言語処理系としてＭＲＩ処理系、ＹＡＲＶ処理系及びＪＲｕｂｙ処理系が備えられているものとする。また、これらの言語処理系で監視プログラムを実行した結果を照合する照合プログラム（ｃｏｌｌａｔｏｒ．ｒｂ）もｒｕｂｙで記述されており、同一マシン上で監視結果の照合処理も実行される。  なお、ＡＲＭアーキテクチャ（hardware）は、組み込み機器や低電力アプリケーション向けに広く用いられる３２ビットまたは６４ビットＲＩＳＣ  ＣＰＵのアーキテクチャである。
【００３５】
Ｌｉｎｕｘ（登録商標）は、Ｕｎｉｘ（登録商標）系のオペレーティングシステム（ＯＳ）の１つであり、広範なプラットフォームに対応している。具体的には、Ｌｉｎｕｘは、例えばサーバ、組み込みシステム（携帯電話及びテレビ等）、デスクトップ、メインフレーム及びスーパーコンピュータ等、様々な用途で使用されている。なお、一般的にＬｉｎｕｘカーネルを使用しているＯＳのことをＬｉｎｕｘと称するが、狭義にはＬｉｎｕｘカーネルそのものを指す場合がある。
【００３６】
Ｌｉｎｕｘカーネルは、Ｌｉｎｕｘを構成する基本要素であり、ＯＳとして不可欠な基本機能を提供する。Ｌｉｎｕｘカーネルによって提供される基本機能としては、例えばシステムの初期化、主メモリ管理、プロセス管理、ファイルシステムや各種デバイスの制御等が含まれる。なお、Ｌｉｎｕｘカーネルの開発は日々進められており、頻繁にバージョンが更新されている。
【００３７】
更に、Ｌｉｎｕｘを構成する基本要素としては、Ｇｌｉｂｃ及びＧＮＵソフトウェアがある。Ｇｌｉｂｃは、ＧＮＵ  Ｃ  ライブラリと呼ばれるＣ言語で記述されたライブラリである。Ｌｉｎｕｘカーネルや様々なソフトウェアは、このライブラリで提供される機能を利用する。なお、Ｇｌｉｂｃが提供する具体的な機能には、標準入出力や文字列操作、数値演算等が含まれる。
【００３８】
ＧＮＵソフトウェアは、ＧＮＵプロジェクトが開発し、ＧＮＵ  ＧＰＬ（General Public License）というライセンスで提供されているフリーのソフトウェア群である。ＧＮＵプロジェクトでは、Ｕｎｉｘ系のＯＳの開発を目的として、必要なソフトウェア群を開発して提供している。これらのソフトウェア群とＬｉｎｕｘカーネルとＧｌｉｂｃとを組み合わせることにより、ＯＳとして利用される。なお、ＧＵＩソフトウェアには、例えばシェルのＢａｓｈ、ｍａｋｅ、デバッガのｇｄｂ等のソフト開発ツール、ｃｐ、ｄｉｒ、ｌｓ、ｆｉｎｄ、ｇｒｅｐ等の外部コマンドなど様々なものが含まれる。
【００３９】
ＭＲＩ処理系（Language implementation）は、Ｃ言語で実装されたＲｕｂｙの公式処理系である。ＹＡＲＶ処理系（Language implementation）は、Ｒｕｂｙインタプリタの高速化を目指して開発が進められたＲｕｂｙ言語処理系である。また、ＪＲｕｂｙ処理系（Language implementation）は、ＲｕｂｙインタプリタのＪａｖａ（登録商標）による実装である。ＪＲｕｂｙは、Ｊａｖａと密に連携しており、インタプリタを任意のＪａｖａアプリケーションに埋め込むことができ、ＪａｖａとＲｕｂｙのコード間で双方向のアクセスを可能にしている。
【００４０】
なお、監視プログラムを実行するための言語処理系としてＭＲＩ処理系、ＹＡＲＶ処理系及びＪＲｕｂｙ処理系を挙げたが、例えばＩｒｏｎＲｕｂｙ、Ｒｕｂｉｎｉｕｓ、ＸＲｕｂｙ、ＭａｃＲｕｂｙ、ＲｕｂｙＪＳ、ＨｏｔＲｕｂｙまたはｍｒｕｂｙ等が備えられていても構わない。
【００４１】
ここで、本実施形態に係る監視処理システムでは、例えばｃｒｏｎで５分毎に照合プログラムが実行される。なお、ｃｒｏｎは、コマンド定時実行のスケジュール管理を行うために用いられるコマンドである。
【００４２】
次に、照合プログラムは、言語処理系毎に監視プログラムを実行する。具体的には、ＭＲＩ処理系で、監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）を実行する。ここで、指定されたディレクトリのディスク利用率が一定値以上でない場合には当該ディスク利用率が正常であることを含む監視結果が出力される。一方、指定されたディレクトリのディスク利用率が一定値以上である場合、当該ディスク利用率が異常であることを含む監視結果が出力される。
【００４３】
同様に、ＹＡＲＶ処理系で、監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）を実行する。上記したＭＲＩ処理系の場合と同様に、指定されたディレクトリのディスク利用率が一定値以上でない場合には当該ディスク利用率が正常であることを含む監視結果が出力され、当該ディスク利用率が一定値以上である場合には当該ディスク利用率が異常であることを含む監視結果が出力される。
【００４４】
更に、ＪＲｕｂｙ処理系で、監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）を実行する。上記したＭＲＩ処理系及びＹＡＲＶ処理系の場合と同様に、指定されたディレクトリのディスク利用率が一定値以上でない場合にはディスク利用率が正常であることを含む監視結果が出力され、当該ディスク利用率が一定値以上である場合には当該ディスク利用率が異常であることを含む監視結果が出力される。
【００４５】
照合プログラム（ｃｏｌｌａｔｏｒ．ｒｂ）は、全ての処理系（ＭＲＩ処理系、ＹＡＲＶ処理系及びＪＲｕｂｙ処理系）の監視結果に問題がない（つまり、全ての処理系の監視結果でディスク利用率が正常である）ことが確認された場合、処理を終了する。
【００４６】
一方、全ての処理系の監視結果のうちの少なくとも１つに問題がある（つまり、少なくとも１つの監視結果でディスク利用率が異常である）ことが確認された場合には、当該ディスク利用率の異常（つまり、警告等）が例えばサーバ装置の管理者にメール等で通知される。
【００４７】
このように、上記した監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）及び照合プログラム（ｃｏｌｌａｔｏｒ．ｒｂ）によれば、ＭＲＩ処理系、ＹＡＲＶ処理系及びＪＲｕｂｙ処理系のうちの少なくとも１つでディスク利用率の異常が検知された場合には、アラートを発生させることができる。
【００４８】
なお、ここではディスク利用率を監視するための監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）が実行されるものとして説明したが、本実施形態において、例えばメモリの使用率を監視するための監視プログラム（ｃｈｅｃｋ＿ｐｒｏｃ．ｒｂ）や通信の使用率を監視するための監視プログラム（ｃｈｅｃｋ＿ｉｎｏｄｅ．ｒｂ）が実行されても構わない。
【００４９】
上記したように本実施形態においては、監視対象３０を監視するための同一の監視プログラムと当該監視プログラムを実行するための実装が異なる複数の言語処理系の各々とによって実現される複数の監視処理部１１〜１３が当該監視対象３０を監視し、当該複数の監視処理部１１〜１３の各々による監視対象３０の監視結果を出力する。
【００５０】
また、本実施形態においては、出力された複数の監視処理部１１〜１３の各々による監視対象３０の監視結果のうちの少なくとも１つが監視対象３０が異常であることを含む場合、当該監視対象３０の異常を通知する。
【００５１】
本実施形態においては、このような構成により、監視対象３０に対する異常検知の精度を向上させることが可能となる。すなわち、本実施形態によれば、監視プログラムを実行するための言語処理系が多重化されているため、例えば１つの言語処理系にバグが存在した場合であっても、他の言語処理系での監視結果と照合することによって適切に監視対象３０の異常を検知することが可能となる。更に、例えば新アーキテクチャ（例えば、ＡＲＭアーキテクチャ等）の導入により、未成熟な言語処理系を実装する必要が生じた場合であっても、複数の言語処理系と組み合わせることによって、当該実装に依存することなく異常検知（障害検知）精度を向上させることができる。
【００５２】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。本実施形態に係る監視処理システムの構成は前述した第１の実施形態と同様であるため、適宜、図１を用いて説明する。
【００５３】
前述した第１の実施形態においては複数の監視処理部１１〜１３の各々がそれぞれ同一の監視プログラムと実装が異なる言語処理系とから実現されるものとして説明したが、本実施形態は、複数の監視処理部１１〜１３の各々がそれぞれアルゴリズムが異なる監視プログラムと同一の言語処理系とから実現される点が異なる。なお、上記した点以外（監視処理システムの動作等）については前述した第１の実施形態と同様であるため、その詳しい説明を省略する。上記したように本実施形態においては、監視対象３０を監視するためのアルゴリズムが異なる複数の監視プログラムの各々と当該監視プログラムを実行するための同一の言語処理系とによって実現される複数の監視処理部１１〜１３が当該監視対象３０を監視し、当該複数の監視処理部１１〜１３の各々による監視対象３０の監視結果を出力する構成により、監視プログラムが多重化されているため、例えば１つの監視プログラムにバグが存在した場合であっても、他の監視プログラムによる監視結果と照合することによって適切に監視対象３０の異常を検知することが可能となる。
【００５４】
本実施形態では、アルゴリズム多重化について説明をしていたが、アルゴリズム多重化及び実装手法の多重化も含まれてもよい。すなわち、プロセス監視（ｐｓコマンドを利用したスクリプト）の実装や、サーバ装置のロードアベレージ計算方法の実装がＯＳやライブラリなどのレイアに起因して問題が発生することがあるため、アルゴリズムはほぼ同じでも実装を複数用意して障害検知を行うといった手法を検討している。このようにして、本実施形態では、アルゴリズム多重化及び実装手法の多重化を行っているため、たとえハードウェア及びＯＳに障害があったとしても、ライブラリまたは言語処理系のレイヤで障害を吸収することができる。
【００５５】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。図４は、本実施形態に係る監視処理システムの構成を示すブロック図である。図４に示すように、監視処理システムは、監視処理装置４０及び監視結果照合装置５０を備える。監視処理装置４０及び監視結果照合装置５０は、通信可能に接続される。
【００５６】
監視処理装置４０は、監視対象３０を監視する機能を有する。なお、監視対象３０については、前述した第１及び第２の実施形態において説明した通りであるため、その詳しい説明を省略する。
【００５７】
監視処理装置４０は、複数の監視処理部４０−１、４０−２、…、４０−ｎ（ｎは２以上の整数）を備える。複数の監視処理部４０−１、４０−２、…、４０−ｎは、監視対象を監視するための監視プログラムと言語処理系とによって実現される。
【００５８】
なお、本実施形態において、複数の監視処理部４０−１、４０−２、…、４０−ｎの各々を実現するための監視プログラムは、複数用意されているものとする。一方、複数の監視処理部４０−１、４０−２、…、４０−ｎの各々を実現するための言語処理系は、それぞれ実装が異なる言語処理系である。
【００５９】
複数の監視処理部４０−１、４０−２、…、４０−ｎは、監視対象３０の監視結果を監視結果照合装置５０に対して出力（送信）する。
【００６０】
監視結果照合装置５０は、監視結果照合部５１及び異常通知部５２を含む。監視結果照合部５１は、複数の監視処理部４０−１、４０−２、…、４０−ｎによって出力された監視対象３０の監視結果を照合する。
【００６１】
異常通知部５２は、監視結果照合部５１による照合結果に基づいて、監視対象３０の異常（障害）を外部に通知する。
【００６２】
なお、上記した監視処理装置４０及び監視結果照合装置５０は、それぞれ独立した装置であってもよいし、１台の物理的なコンピュータ（装置）を論理的に分割した仮想マシンとして実現されても構わない。更に、監視処理装置４０及び監視結果照合装置５０は、例えばサーバ装置に組み込まれていてもよいし、当該サーバ装置とは別個に設けられていても構わない。
【００６３】
次に、本実施形態に係る監視処理システムの動作について説明する。ここで、図５は、本実施形態における監視処理装置４０及び監視結果照合装置５０が組み込まれたサーバ装置のアーキテクチャの一例を表す。なお、前述した第１の実施形態の図３において説明した部分については、その詳しい説明を省略する。
【００６４】
本実施形態においては、複数の監視処理部４０−１、４０−２、…、４０−ｎの各々を実現するための監視プログラムとして、図５に示すように監視対象３０がサーバ装置内の指定されたディレクトリのディスク容量の利用率（ディスク利用率）を監視するための監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）、サーバ装置内のプロセスを監視するための監視プログラム（ｃｈｅｃｋ＿ｐｒｏｃ．ｒｂ）及びサーバ装置内におけるｉ−ｎｏｄｅ使用率を監視するための監視プログラム（ｃｈｅｃｋ＿ｉｎｏｄｅ．ｒｂ）が用意されているものとする。
【００６５】
なお、本実施形態では、サーバ装置内の指定されたディレクトリのディスク容量の利用率を監視するための監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）、サーバ装置内のプロセスを監視するための監視プログラム（ｃｈｅｃｋ＿ｐｒｏｃ．ｒｂ）及びサーバ装置内におけるｉ−ｎｏｄｅ使用率を監視するための監視プログラム（ｃｈｅｃｋ＿ｉｎｏｄｅ．ｒｂ）を使用していたが、メモリ容量の使用率（以下、単にメモリ使用率と表記）を監視するための監視プログラム及びサーバ装置における通信の使用率（以下、単に通信使用率と表記）を監視するための監視プログラムが用意されていてもよい。なお、これらの監視プログラムは、Ｒｕｂｙで記述されたプログラムであるものとする。
【００６６】
また、複数の監視処理部４０−１、４０−２、…、４０−ｎの各々を実現するための言語処理系としては、図５に示すようにＭＲＩ（Ｇｌｉｂｃ２．１１）処理系、ＭＲＩ（Ｇｌｉｂｃ２．１２）処理系及びＹＡＲＶ（２．１１）処理系を含むｎ個（つまり、監視処理部の数）の言語処理系が備えられているものとする。なお、ＭＲＩ（Ｇｌｉｂｃ２．１１）処理系、ＭＲＩ（Ｇｌｉｂｃ２．１２）処理系及びＹＡＲＶ（２．１１）処理系以外の言語処理系としては、前述したようにＩｒｏｎＲｕｂｙ、Ｒｕｂｉｎｉｕｓ、ＸＲｕｂｙ、ＭａｃＲｕｂｙ、ＲｕｂｙＪＳ、ＨｏｔＲｕｂｙまたはｍｒｕｂｙ等がある。
【００６７】
また、Ｇｌｉｂｃとしては、図５に示すようにバージョンの異なるＧｌｉｂｃ（２．１１）及びＧｌｉｂｃ（２．１２）等が含まれるものとする。
【００６８】
次に、図６のフローチャートを参照して、本実施形態に係る監視処理システムの処理手順について説明する。なお、図６において説明する処理は、予め定められた間隔で実行されるものとする。また、図５において説明した３つの監視プログラム（ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ、ｃｈｅｃｋ＿ｐｒｏｃ．ｒｂ、ｃｈｅｃｋ＿ｉｎｏｄｅ．ｒｂ）が用意されているものとする。
【００６９】
本実施形態においては、まず、１つの監視プログラム（例えば、ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ）について、以下のステップＳ１１〜Ｓ１６の処理が実行される。以下、ステップＳ１１〜Ｓ１６の処理の対象となる監視プログラムを対象監視プログラムと称する。
【００７０】
この場合、監視処理装置４０において、後述するｉの値を１（つまり、ｉ＝１）とする（ステップＳ１１）。
【００７１】
次に、監視処理装置４０は、ｉ（ここでは、１）がｎより大きいか否かを判定する（ステップＳ１２）。ここで、ｎは、監視処理装置４０に含まれる監視処理部（言語処理系）の個数である。
【００７２】
ｉがｎより大きくないと判定された場合（ステップＳ１２のＮＯ）、監視処理装置４０に含まれる監視処理部４０−ｉ（ここでは、監視処理部４０−１）は、（当該監視処理部４０−ｉを実現するための言語処理系で）監視対象３０に対する監視処理を実行する（ステップＳ１３）。ここで、監視処理部４０−ｉがＭＲＩ（Ｇｌｉｂｃ２．１１）処理系で実現されるものとすると、対象監視プログラムを当該ＭＲＩ（Ｇｌｉｂｃ２．１１）処理系で実行することによって、監視対象３０に対する監視処理が実行される。なお、監視処理部４０−ｉによる監視対象３０の監視結果は、監視結果照合装置２０に対して出力される。この監視処理部４０−ｉによって出力される監視対象３０の監視結果には、当該監視対象３０が正常または異常であることが含まれる。
【００７３】
具体的には、対象監視プログラムがｃｈｅｃｋ＿ｄｉｓｋ．ｒｂである場合においては、ディスク利用率が一定値上でない場合には当該ディスク利用率が正常であることを含む監視結果が出力され、ディスク利用率が一定値以上である場合には当該ディスク利用率が異常であることを含む監視結果が出力される。
【００７４】
また、対象監視プログラムがｃｈｅｃｋ＿ｐｒｏｃ．ｒｂである場合においては、プロセスの監視が一定値以上でない場合には当該プロセスの監視が正常であることを含む監視結果が出力され、プロセスの監視が一定値以上である場合には当該プロセスの監視が異常であることを含む監視結果が出力される。
【００７５】
また、対象監視プログラムがｃｈｅｃｋ＿ｉｎｏｄｅ．ｒｂである場合においては、ｉ−ｎｏｄｅ使用率が一定値以上でない場合には当該ｉ−ｎｏｄｅ使用率が正常であることを含む監視結果が出力され、ｉ−ｎｏｄｅ使用率が一定値以上である場合には当該ｉ−ｎｏｄｅ使用率が異常であることを含む監視結果が出力される。
【００７６】
次に、監視結果照合装置５０に含まれる監視結果照合部５１（照合プログラムｃｏｌｌａｔｏｒ．ｒｂ）は、監視処理部４０−ｉによって出力された監視対象３０の監視結果が当該監視対象３０が異常であることを含む（つまり、監視対象３０の監視結果が異常である）か否かを判定する（ステップＳ１４）。
【００７７】
監視対象３０の監視結果が監視対象３０が異常であることを含まない（つまり、監視対象３０の監視結果が正常である）と判定された場合（ステップＳ１４のＮＯ）、上記したｉの値をｉ＋１（つまり、ｉ＝ｉ＋１）とする（ステップＳ１５）。
【００７８】
ステップＳ１５の処理が実行されると、上記したステップＳ１２に戻って処理が繰り返される。これにより、上記したステップＳ１３において監視処理を実行した監視処理部（監視処理部４０−１）とは異なる監視処理部（監視処理部４０−２）で監視処理が実行される。
【００７９】
一方、監視対象３０の監視結果が監視対象３０が異常であることを含むと判定された場合（ステップＳ１４のＹＥＳ）、異常通知部５２は、監視対象３０の異常を例えば管理者（例えば、監視対象３０であるサーバ装置の管理者）等に対して通知する（ステップＳ１６）。
【００８０】
次に、全ての監視プログラムについて上記したステップＳ１１〜Ｓ１６の処理が実行されたか否かが判定される（ステップＳ１７）。
【００８１】
全ての監視プログラムについて処理が実行されていないと判定された場合（ステップＳ１７のＮＯ）、上記したステップＳ１１に戻って処理が繰り返される。この場合、ステップＳ１１〜Ｓ１６の処理が実行されていない監視プログラム（例えば、ｃｈｅｃｋ＿ｐｒｏｃ．ｒｂまたはｃｈｅｃｋ＿ｉｎｏｄｅ．ｒｂ）を対象監視プログラムとして処理が実行される。
【００８２】
一方、全ての監視プログラムについて処理が実行されたと判定された場合（ステップＳ１７のＹＥＳ）、処理は終了される。
【００８３】
なお、上記したステップＳ１２においてｉがｎより大きいと判定された場合、全ての言語処理系（監視処理部）で対象監視プログラムが実行されているため、ステップＳ１３の処理は実行されず、ステップＳ１７の処理が実行される。
【００８４】
上記したように本実施形態においては、複数の監視処理部４０−１、４０−２、…、４０−ｎ（それぞれ異なる言語処理系）で複数の監視プログラム（例えば、ｃｈｅｃｋ＿ｄｉｓｋ．ｒｂ、ｃｈｅｃｋ＿ｐｒｏｃ．ｒｂ及びｃｈｅｃｋ＿ｉｎｏｄｅ．ｒｂ）に基づく監視処理を実行することによって、監視対象３０（サーバ装置のディスク利用率、メモリ使用率及び通信使用率）の異常を適切に検知することができる。
【００８５】
このようにして、本発明によれば、ライブラリの多重化を行っているので、たとえば、ある一つのライブラリに対して、ユーザプログラムや言語処理系が多用するスレッドの実装に問題があったとしても、別のライブラリを経由した処理系を通した障害検知結果と照合することで、ハードウェアでの障害問題を回避する可能性を格段に高めることができる。
【００８６】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。本実施形態は、前述した第１〜第３の実施形態において説明した監視処理システム（監視処理装置及び監視結果照合装置）を複数備えている点が、前述した第１〜第３の実施形態とは異なる。
【００８７】
図７は、本実施形態に係る監視処理システムの構成を示すブロック図である。図７に示すように、本実施形態に係る監視処理システムにおいては、監視処理装置１０及び監視結果照合装置２０（が組み込まれたサーバ装置１００）が複数備えられている。なお、この監視処理装置１０及び監視結果照合装置２０は、前述した第１及び第２の実施形態における監視処理装置１０及び監視結果照合装置２０と同様であるため、その詳しい説明を省略する。
【００８８】
本実施形態においては、監視対象であるサーバ装置１００の各々が当該サーバ装置１００に組み込まれている監視処理装置１０によって監視され、当該サーバ装置１００の異常が検知された場合、監視結果照合装置２０によって当該サーバ装置１００の異常がネットワーク（例えば、インターネット）２００を介して通信端末３００に例えばメール等で通知される。
【００８９】
なお、通信端末３００には例えばパーソナルコンピュータ（ＰＣ）やスマートフォン等が含まれるが、この通信端末３００は、ネットワーク２００を介してサーバ装置１００と通信可能な機器であれば他のものであっても構わない。
【００９０】
また、図７においては便宜的に１つの通信端末３００のみが示されているが、予め登録された複数の通信端末３００に対して異常が通知される構成としても構わない。
【００９１】
なお、本実施形態に係る監視処理システムは、例えばクラウドコンピューティング技術により実現されることができる。
【００９２】
上記したように本実施形態においては、監視処理装置１０及び監視結果照合装置２０（が組み込まれたサーバ装置１００）を複数備えることによって、当該複数の監視対象（サーバ装置１００）の異常を適切に検知して通信端末３００に通知することが可能となる。
【００９３】
なお、本実施形態においては、前述した第１または第２の実施形態における監視処理装置１０及び監視結果照合装置２０（が組み込まれたサーバ装置１００）が複数備えられているものとして説明したが、当該監視処理装置１０及び監視結果照合装置２０に代えて前述した第３の実施形態における監視処理装置４０及び監視結果照合装置５０が備えられていても構わない。
【００９４】
なお、上記した各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００９５】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【００９６】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。
【００９７】
更に、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００９８】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であってもよい。
【００９９】
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【０１００】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１０１】
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。  
【符号の説明】
【０１０２】
１０…監視処理装置、１１，１２，１３…監視処理部、２０…監視結果照合装置、２１…監視結果照合部、２２…異常通知部、３０…監視対象、４０監視処理装置、４０−１，４０−２，…，４０−ｎ…監視処理部、５０…監視結果照合装置、５１…監視結果照合部、５２…異常通知部、１００…サーバ装置、２００…ネットワーク、３００…通信端末。
【図１】
2014197307.tif 000003
【図２】
2014197307.tif 000004
【図３】
2014197307.tif 000005
【図４】
2014197307.tif 000006
【図５】
2014197307.tif 000007
【図６】
2014197307.tif 000008
【図７】
2014197307.tif 000009