特許第5712243号(P5712243)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グリー株式会社の特許一覧

特許5712243監視処理方法、監視処理装置及び監視処理システム
<>
  • 特許5712243-監視処理方法、監視処理装置及び監視処理システム 図000002
  • 特許5712243-監視処理方法、監視処理装置及び監視処理システム 図000003
  • 特許5712243-監視処理方法、監視処理装置及び監視処理システム 図000004
  • 特許5712243-監視処理方法、監視処理装置及び監視処理システム 図000005
  • 特許5712243-監視処理方法、監視処理装置及び監視処理システム 図000006
  • 特許5712243-監視処理方法、監視処理装置及び監視処理システム 図000007
  • 特許5712243-監視処理方法、監視処理装置及び監視処理システム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5712243
(24)【登録日】2015年3月13日
(45)【発行日】2015年5月7日
(54)【発明の名称】監視処理方法、監視処理装置及び監視処理システム
(51)【国際特許分類】
   G06F 11/16 20060101AFI20150416BHJP
   G06F 11/30 20060101ALI20150416BHJP
【FI】
   G06F11/16 310C
   G06F11/30 A
【請求項の数】5
【全頁数】16
(21)【出願番号】特願2013-72411(P2013-72411)
(22)【出願日】2013年3月29日
(65)【公開番号】特開2014-197307(P2014-197307A)
(43)【公開日】2014年10月16日
【審査請求日】2013年3月29日
(73)【特許権者】
【識別番号】504437801
【氏名又は名称】グリー株式会社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100088683
【弁理士】
【氏名又は名称】中村 誠
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100095441
【弁理士】
【氏名又は名称】白根 俊郎
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100119976
【弁理士】
【氏名又は名称】幸長 保次郎
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100140176
【弁理士】
【氏名又は名称】砂川 克
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100172580
【弁理士】
【氏名又は名称】赤穂 隆雄
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100124394
【弁理士】
【氏名又は名称】佐藤 立志
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(74)【代理人】
【識別番号】100111073
【弁理士】
【氏名又は名称】堀内 美保子
(74)【代理人】
【識別番号】100134290
【弁理士】
【氏名又は名称】竹内 将訓
(72)【発明者】
【氏名】多田 健太
【審査官】 ▲高▼橋 正▲徳▼
(56)【参考文献】
【文献】 特開2013−012220(JP,A)
【文献】 特開2008−234117(JP,A)
【文献】 特開2001−092687(JP,A)
【文献】 特開2011−198205(JP,A)
【文献】 特開平05−233344(JP,A)
【文献】 国際公開第2008/107934(WO,A1)
【文献】 特開2006−323863(JP,A)
【文献】 特開2012−022429(JP,A)
【文献】 秋田 雄志,中村 英夫,フォールトトレラントシステム 鉄道信号制御フェールセーフシステム,電子情報通信学会誌,日本,社団法人電子情報通信学会,1990年11月25日,第73巻 第11号,1203-1208
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/16−11/20,
G06F 11/28−11/34,
G06F 9/46− 9/54
(57)【特許請求の範囲】
【請求項1】
監視対象を監視する監視処理装置が実行する監視処理方法であって、
前記監視対象を監視するための監視プログラムと前記監視プログラムを実行するための第1言語処理系とによって実現される第1監視処理手段と、前記監視プログラムと前記監視プログラムを実行するための、前記第1言語処理系と実装が異なる第2言語処理系とによって実現される第2監視処理手段とが前記監視対象を監視するステップと、
前記第1監視処理手段による前記監視対象についての第1監視結果と前記第2監視処理手段による前記監視対象についての第2監視結果とを出力するステップと
を具備することを特徴とする監視処理方法。
【請求項2】
前記第1監視結果と前記第2監視結果は、前記監視対象が正常または異常であることを含み、
前記第1監視結果と前記第2監視結果のうちの少なくとも1つが前記監視対象が異常であることを含むかを判定するステップと、
前記監視対象が異常であることを含むと判定された場合、前記監視対象の異常を通知するステップと
を更に具備することを特徴とする請求項1記載の監視処理方法。
【請求項3】
監視対象を監視する監視処理装置が実行する監視処理方法であって、
前記監視対象を監視するためのアルゴリズムが異なる複数の監視プログラムの各々と、前記複数の監視プログラムを各々実行するための複数の言語処理系とによって実現される複数の監視処理手段の各々が前記監視対象を監視するステップと、
前記複数の監視処理手段の各々による前記監視対象の監視結果を出力するステップと
を具備することを特徴とする監視処理方法。
【請求項4】
監視対象を監視する監視処理装置において、
前記監視対象を監視するための監視プログラムと、前記監視プログラムを実行するための第1言語処理系とによって実現され、前記監視対象を監視する第1監視処理手段と、
前記監視プログラムと、前記第1言語処理系と実装が異なる前記監視プログラムを実行するための第2言語処理系とによって実現され、前記監視対象を監視する第2監視処理手段と、
前記第1監視処理手段による前記監視対象についての第1監視結果と前記第2監視処理手段による前記監視対象についての第2監視結果を出力する出力手段と
を具備することを特徴とする監視処理装置。
【請求項5】
監視対象を監視する監視処理装置と前記監視処理装置と通信可能に接続される監視結果照合装置とを備える監視処理システムにおいて、
前記監視処理装置は、
前記監視対象を監視するための監視プログラムと前記監視プログラムを実行するための第1言語処理系とによって実現される、前記監視対象を監視する第1監視処理手段と、
前記監視プログラムと前記監視プログラムを実行するための、前記第1言語処理系と実装が異なる第2言語処理系とによって実現される、前記監視対象を監視する第2監視処理手段と、
前記第1監視処理手段による前記監視対象についての第1監視結果と前記第2監視処理手段による前記監視対象についての第2監視結果を出力する出力手段と
を含み、
前記第1監視結果と前記第2監視結果は、前記監視対象が正常または異常であることを含み、
前記監視結果照合装置は、
前記第1監視結果と前記第2監視結果のうちの少なくとも1つが前記監視対象が異常であることを含むかを判定する判定手段と、
前記監視対象が異常であることを含むと判定された場合、前記監視対象の異常を通知する通知手段と
を含むことを特徴とする監視処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視処理方法、監視処理装置及び監視処理システムに関する。
【背景技術】
【0002】
一般に、各種システム運用の現場では、当該システムでの異常を検知するために監視対象(例えば、サーバ装置の動作やディスク容量の利用率等)を監視することが行われている。
【0003】
このような監視は、当該監視手法が実装されたプログラム(以下、監視プログラムと表記)及び当該監視プログラムを計算機上で実行するためのソフトウェアである言語処理系によって実現される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012−022429号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記したよう監視対象を監視する際に言語処理系にバグが存在する場合、当該監視が正常に行われない可能性があり、異常を検知することができない場合がある。
【0006】
そこで、本発明の目的は、異常検知の精度を向上させることが可能な監視処理方法、監視処理装置及び監視処理システムを提供することにある。
【課題を解決するための手段】
【0007】
本発明の1つの態様によれば、監視対象を監視する監視処理装置が実行する監視処理方法が提供される。この監視処理方法は、前記監視対象を監視するための監視プログラムと前記監視プログラムを実行するための第1言語処理系とによって実現される第1監視処理手段と、前記監視プログラムと前記監視プログラムを実行するための、前記第1言語処理系と実装が異なる第2言語処理系とによって実現される第2監視処理手段とが前記監視対象を監視するステップと、前記第1監視処理手段による前記監視対象についての第1監視結果と前記第2監視処理手段による前記監視対象についての第2監視結果とを出力するステップとを具備する。
【発明の効果】
【0008】
本発明は、異常検知の精度を向上させることを可能とする。
【図面の簡単な説明】
【0009】
図1】本発明の第1の実施形態に係る監視処理システムの構成を示すブロック図。
図2】本実施形態に係る監視処理システムの処理手順を示すフローチャート。
図3】監視処理装置10及び監視結果照合装置20が組み込まれたサーバ装置のアーキテクチャを表す図。
図4】本発明の第3の実施形態に係る監視処理システムの構成を示すブロック図。
図5】本実施形態における監視処理装置40及び監視結果照合装置50が組み込まれたサーバ装置のアーキテクチャの一例を表す図。
図6】本実施形態に係る監視処理システムの処理手順を示すフローチャート。
図7】本発明の第4の実施形態に係る監視処理システムの構成を示すブロック図。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の各実施形態について説明する。
【0011】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る監視処理システムの構成を示すブロック図である。図1に示すように、監視処理システムは、監視処理装置10及び監視結果照合装置20を備える。監視処理装置10及び監視結果照合装置20は、通信可能に接続される。
【0012】
監視処理装置10は、監視対象30を監視する機能を有する。ここで、監視対象30には、例えばサーバ装置等が含まれる。具体的には、例えば任意のソフトウェア(監視対象プログラム)に基づくサーバ装置の動作や当該サーバ装置が有するHDD(Hard Disk Drive)等のハードウェアの状態等が監視される。
【0013】
監視処理装置10は、複数の監視処理部を含む。図1においては、複数の監視処理部として、便宜的に3つの監視処理部11〜13が示されている。なお、この監視処理部は、2つであってもよいし、4つ以上であっても構わない。以下の説明においては、監視処理装置10が複数の監視処理部として監視処理部11〜13を含むものとして説明する。
【0014】
複数の監視処理部11〜13の各々は、監視対象30を監視するためのプログラム(以下、監視プログラムと表記)と言語処理系とによって実現される。なお、言語処理系は、監視プログラムを監視処理装置10(計算機)上で実行するためのソフトウェア(例えば、コンパイラ等)である。
【0015】
なお、複数の監視処理部11〜13の各々を実現するための監視プログラムは、所定のプログラム言語で記述された同一のプログラムである。一方、複数の監視処理部11〜13の各々を実現するための言語処理系は、それぞれ実装が異なる言語処理系である。
【0016】
複数の監視処理部11〜13の各々は、監視対象30の監視結果を監視結果照合装置20に対して出力(送信)する。
【0017】
監視結果照合装置20は、監視結果照合部21及び異常通知部22を含む。監視結果照合部21は、複数の監視処理部11〜13の各々によって出力された監視対象30の監視結果を照合する。
【0018】
異常通知部22は、監視結果照合部21による照合結果に基づいて、監視対象30の異常(障害)を外部に通知する。
【0019】
なお、上記した監視処理装置10及び監視結果照合装置20は、それぞれ独立した装置であってもよいし、1台の物理的なコンピュータ(装置)を論理的に分割した仮想マシンとして実現されても構わない。更に、監視処理装置10及び監視結果照合装置20は、例えばサーバ装置に組み込まれていてもよいし、当該サーバ装置とは別個に設けられていても構わない。
【0020】
次に、図2のフローチャートを参照して、本実施形態に係る監視処理システムの処理手順について説明する。なお、図2において説明する処理は、予め定められた間隔で実行されるものとする。
【0021】
まず、監視処理装置10に含まれる、実装が異なる言語処理系によって実現される複数の監視処理部11〜13は、監視対象30に対する監視処理をそれぞれ実行する。
【0022】
具体的には、監視処理部11は、(当該監視処理部11を実現するための言語処理系で)監視対象30に対する監視処理を実行する(ステップS1)。
【0023】
監視処理部11は、監視対象30の監視結果を監視結果照合装置20に対して出力する(ステップS2)。なお、監視処理部11によって出力される監視対象30の監視結果には、当該監視対象30が正常または異常であることが含まれる。
【0024】
また、監視処理部12は、(当該監視処理部12を実現するための言語処理系で)監視対象30に対する監視処理を実行する(ステップS3)。
【0025】
監視処理部12は、監視対象30の監視結果を監視結果照合装置20に対して出力する(ステップS4)。なお、監視処理部12によって出力される監視対象30の監視結果には、上記した監視処理部11によって出力される監視対象30の監視結果と同様に、当該監視対象30が正常または異常であることが含まれる。
【0026】
更に、監視処理部13は、(当該監視処理部13を実現するための言語処理系で)監視対象30に対する監視処理を実行する(ステップS5)。
【0027】
監視処理部13は、監視対象30の監視結果を監視結果照合装置20に対して出力する(ステップS6)。なお、監視処理部13によって出力される監視対象30の監視結果には、上記した監視処理部11及び12によって出力される監視対象30の監視結果と同様に、当該監視対象30が正常または異常であることが含まれる。
【0028】
ここで、監視結果照合装置20に含まれる監視結果照合部21は、監視処理部11〜13の各々によって出力された監視対象30の監視結果のうちの少なくとも1つが当該監視対象30が異常であることを含む(つまり、監視処理部11〜13による監視結果の中に監視対象30の異常がある)か否かを判定する(ステップS7)。
【0029】
監視対象30の監視結果のうちの少なくとも1つが監視対象30が異常であることを含むと判定された場合(ステップS7のYES)、異常通知部22は、監視対象30の異常を例えば管理者(例えば、監視対象30であるサーバ装置の管理者)等に対して通知する。
【0030】
一方、監視対象30の監視結果のうちの少なくとも1つが監視対象30が異常であることを含まない(つまり、監視対象30の監視結果の全てが正常である)と判定された場合(ステップS7のNO)、ステップS8の処理は実行されない。なお、監視対象30の監視結果の全てが正常であると判定された場合には、ステップS8の処理に代えて、当該監視対象30が正常であることを通知する処理が実行されても構わない。
【0031】
上記したように本実施形態においては、監視対象30を監視するための監視処理部(を実現するための言語処理系)が多重化され、当該多重化された監視処理部(ここでは、監視処理部11〜13)の各々による監視結果に基づいて監視対象30の異常が通知される。
【0032】
なお、図2においては監視処理部11〜13の全てから監視対象30の監視結果が出力された後にステップS7の処理が実行されるものとして説明したが、例えばステップS2の処理の後に監視処理部11によって出力された監視対象30の監視結果が当該監視対象30が異常であることを含むか否かが判定され、監視対象30が異常であることを含むと判定された場合にはステップS8の処理が実行され、監視対象30が異常でないことを含むと判定された場合にはステップS3の処理が実行される構成とすることも可能である。この場合、例えばステップS4の処理の後に監視処理部12によって出力された監視対象30の監視結果が当該監視対象30が異常であることを含むか否かが判定され、監視対象30が異常であることを含むと判定された場合にはステップS8の処理が実行され、監視対象30が異常でないことを含むと判定された場合にはステップS5の処理が実行される。また、ステップS7においては監視処理部13によって出力された監視対象30の監視結果が当該監視対象30が異常であることを含むか否かが判定され、監視対象30が異常であることを含むと判定された場合にはステップS8の処理が実行され、監視対象30が異常でないことを含むと判定された場合には処理が終了される。
【0033】
ここで、本実施形態に係る監視処理システムについて具体的に説明する。ここでは、監視対象30がサーバ装置内の指定されたディレクトリのディスク容量の利用率(以下、単にディスク利用率と表記)であるものとし、監視処理装置10及び監視結果照合装置20は当該サーバ装置に組み込まれているものとする。なお、図3は、監視処理装置10及び監視結果照合装置20が組み込まれたサーバ装置のアーキテクチャの一例を表す。
【0034】
ここでは、図3に示すように例えばARMホールディングス(の事業部門であるARM Ltd)によるARMアーキテクチャが導入されていることを想定しており、ディスク利用率を監視するための監視プログラム(check_disk.rb)がrubyで記述され、当該監視プログラムを実行するための言語処理系としてMRI処理系、YARV処理系及びJRuby処理系が備えられているものとする。また、これらの言語処理系で監視プログラムを実行した結果を照合する照合プログラム(collator.rb)もrubyで記述されており、同一マシン上で監視結果の照合処理も実行される。 なお、ARMアーキテクチャ(hardware)は、組み込み機器や低電力アプリケーション向けに広く用いられる32ビットまたは64ビットRISC CPUのアーキテクチャである。
【0035】
Linux(登録商標)は、Unix(登録商標)系のオペレーティングシステム(OS)の1つであり、広範なプラットフォームに対応している。具体的には、Linuxは、例えばサーバ、組み込みシステム(携帯電話及びテレビ等)、デスクトップ、メインフレーム及びスーパーコンピュータ等、様々な用途で使用されている。なお、一般的にLinuxカーネルを使用しているOSのことをLinuxと称するが、狭義にはLinuxカーネルそのものを指す場合がある。
【0036】
Linuxカーネルは、Linuxを構成する基本要素であり、OSとして不可欠な基本機能を提供する。Linuxカーネルによって提供される基本機能としては、例えばシステムの初期化、主メモリ管理、プロセス管理、ファイルシステムや各種デバイスの制御等が含まれる。なお、Linuxカーネルの開発は日々進められており、頻繁にバージョンが更新されている。
【0037】
更に、Linuxを構成する基本要素としては、Glibc及びGNUソフトウェアがある。Glibcは、GNU C ライブラリと呼ばれるC言語で記述されたライブラリである。Linuxカーネルや様々なソフトウェアは、このライブラリで提供される機能を利用する。なお、Glibcが提供する具体的な機能には、標準入出力や文字列操作、数値演算等が含まれる。
【0038】
GNUソフトウェアは、GNUプロジェクトが開発し、GNU GPL(General Public License)というライセンスで提供されているフリーのソフトウェア群である。GNUプロジェクトでは、Unix系のOSの開発を目的として、必要なソフトウェア群を開発して提供している。これらのソフトウェア群とLinuxカーネルとGlibcとを組み合わせることにより、OSとして利用される。なお、GUIソフトウェアには、例えばシェルのBash、make、デバッガのgdb等のソフト開発ツール、cp、dir、ls、find、grep等の外部コマンドなど様々なものが含まれる。
【0039】
MRI処理系(Language implementation)は、C言語で実装されたRubyの公式処理系である。YARV処理系(Language implementation)は、Rubyインタプリタの高速化を目指して開発が進められたRuby言語処理系である。また、JRuby処理系(Language implementation)は、RubyインタプリタのJava(登録商標)による実装である。JRubyは、Javaと密に連携しており、インタプリタを任意のJavaアプリケーションに埋め込むことができ、JavaとRubyのコード間で双方向のアクセスを可能にしている。
【0040】
なお、監視プログラムを実行するための言語処理系としてMRI処理系、YARV処理系及びJRuby処理系を挙げたが、例えばIronRuby、Rubinius、XRuby、MacRuby、RubyJS、HotRubyまたはmruby等が備えられていても構わない。
【0041】
ここで、本実施形態に係る監視処理システムでは、例えばcronで5分毎に照合プログラムが実行される。なお、cronは、コマンド定時実行のスケジュール管理を行うために用いられるコマンドである。
【0042】
次に、照合プログラムは、言語処理系毎に監視プログラムを実行する。具体的には、MRI処理系で、監視プログラム(check_disk.rb)を実行する。ここで、指定されたディレクトリのディスク利用率が一定値以上でない場合には当該ディスク利用率が正常であることを含む監視結果が出力される。一方、指定されたディレクトリのディスク利用率が一定値以上である場合、当該ディスク利用率が異常であることを含む監視結果が出力される。
【0043】
同様に、YARV処理系で、監視プログラム(check_disk.rb)を実行する。上記したMRI処理系の場合と同様に、指定されたディレクトリのディスク利用率が一定値以上でない場合には当該ディスク利用率が正常であることを含む監視結果が出力され、当該ディスク利用率が一定値以上である場合には当該ディスク利用率が異常であることを含む監視結果が出力される。
【0044】
更に、JRuby処理系で、監視プログラム(check_disk.rb)を実行する。上記したMRI処理系及びYARV処理系の場合と同様に、指定されたディレクトリのディスク利用率が一定値以上でない場合にはディスク利用率が正常であることを含む監視結果が出力され、当該ディスク利用率が一定値以上である場合には当該ディスク利用率が異常であることを含む監視結果が出力される。
【0045】
照合プログラム(collator.rb)は、全ての処理系(MRI処理系、YARV処理系及びJRuby処理系)の監視結果に問題がない(つまり、全ての処理系の監視結果でディスク利用率が正常である)ことが確認された場合、処理を終了する。
【0046】
一方、全ての処理系の監視結果のうちの少なくとも1つに問題がある(つまり、少なくとも1つの監視結果でディスク利用率が異常である)ことが確認された場合には、当該ディスク利用率の異常(つまり、警告等)が例えばサーバ装置の管理者にメール等で通知される。
【0047】
このように、上記した監視プログラム(check_disk.rb)及び照合プログラム(collator.rb)によれば、MRI処理系、YARV処理系及びJRuby処理系のうちの少なくとも1つでディスク利用率の異常が検知された場合には、アラートを発生させることができる。
【0048】
なお、ここではディスク利用率を監視するための監視プログラム(check_disk.rb)が実行されるものとして説明したが、本実施形態において、例えばメモリの使用率を監視するための監視プログラム(check_proc.rb)や通信の使用率を監視するための監視プログラム(check_inode.rb)が実行されても構わない。
【0049】
上記したように本実施形態においては、監視対象30を監視するための同一の監視プログラムと当該監視プログラムを実行するための実装が異なる複数の言語処理系の各々とによって実現される複数の監視処理部11〜13が当該監視対象30を監視し、当該複数の監視処理部11〜13の各々による監視対象30の監視結果を出力する。
【0050】
また、本実施形態においては、出力された複数の監視処理部11〜13の各々による監視対象30の監視結果のうちの少なくとも1つが監視対象30が異常であることを含む場合、当該監視対象30の異常を通知する。
【0051】
本実施形態においては、このような構成により、監視対象30に対する異常検知の精度を向上させることが可能となる。すなわち、本実施形態によれば、監視プログラムを実行するための言語処理系が多重化されているため、例えば1つの言語処理系にバグが存在した場合であっても、他の言語処理系での監視結果と照合することによって適切に監視対象30の異常を検知することが可能となる。更に、例えば新アーキテクチャ(例えば、ARMアーキテクチャ等)の導入により、未成熟な言語処理系を実装する必要が生じた場合であっても、複数の言語処理系と組み合わせることによって、当該実装に依存することなく異常検知(障害検知)精度を向上させることができる。
【0052】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本実施形態に係る監視処理システムの構成は前述した第1の実施形態と同様であるため、適宜、図1を用いて説明する。
【0053】
前述した第1の実施形態においては複数の監視処理部11〜13の各々がそれぞれ同一の監視プログラムと実装が異なる言語処理系とから実現されるものとして説明したが、本実施形態は、複数の監視処理部11〜13の各々がそれぞれアルゴリズムが異なる監視プログラムと同一の言語処理系とから実現される点が異なる。なお、上記した点以外(監視処理システムの動作等)については前述した第1の実施形態と同様であるため、その詳しい説明を省略する。上記したように本実施形態においては、監視対象30を監視するためのアルゴリズムが異なる複数の監視プログラムの各々と当該監視プログラムを実行するための同一の言語処理系とによって実現される複数の監視処理部11〜13が当該監視対象30を監視し、当該複数の監視処理部11〜13の各々による監視対象30の監視結果を出力する構成により、監視プログラムが多重化されているため、例えば1つの監視プログラムにバグが存在した場合であっても、他の監視プログラムによる監視結果と照合することによって適切に監視対象30の異常を検知することが可能となる。
【0054】
本実施形態では、アルゴリズム多重化について説明をしていたが、アルゴリズム多重化及び実装手法の多重化も含まれてもよい。すなわち、プロセス監視(psコマンドを利用したスクリプト)の実装や、サーバ装置のロードアベレージ計算方法の実装がOSやライブラリなどのレイアに起因して問題が発生することがあるため、アルゴリズムはほぼ同じでも実装を複数用意して障害検知を行うといった手法を検討している。このようにして、本実施形態では、アルゴリズム多重化及び実装手法の多重化を行っているため、たとえハードウェア及びOSに障害があったとしても、ライブラリまたは言語処理系のレイヤで障害を吸収することができる。
【0055】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。図4は、本実施形態に係る監視処理システムの構成を示すブロック図である。図4に示すように、監視処理システムは、監視処理装置40及び監視結果照合装置50を備える。監視処理装置40及び監視結果照合装置50は、通信可能に接続される。
【0056】
監視処理装置40は、監視対象30を監視する機能を有する。なお、監視対象30については、前述した第1及び第2の実施形態において説明した通りであるため、その詳しい説明を省略する。
【0057】
監視処理装置40は、複数の監視処理部40−1、40−2、…、40−n(nは2以上の整数)を備える。複数の監視処理部40−1、40−2、…、40−nは、監視対象を監視するための監視プログラムと言語処理系とによって実現される。
【0058】
なお、本実施形態において、複数の監視処理部40−1、40−2、…、40−nの各々を実現するための監視プログラムは、複数用意されているものとする。一方、複数の監視処理部40−1、40−2、…、40−nの各々を実現するための言語処理系は、それぞれ実装が異なる言語処理系である。
【0059】
複数の監視処理部40−1、40−2、…、40−nは、監視対象30の監視結果を監視結果照合装置50に対して出力(送信)する。
【0060】
監視結果照合装置50は、監視結果照合部51及び異常通知部52を含む。監視結果照合部51は、複数の監視処理部40−1、40−2、…、40−nによって出力された監視対象30の監視結果を照合する。
【0061】
異常通知部52は、監視結果照合部51による照合結果に基づいて、監視対象30の異常(障害)を外部に通知する。
【0062】
なお、上記した監視処理装置40及び監視結果照合装置50は、それぞれ独立した装置であってもよいし、1台の物理的なコンピュータ(装置)を論理的に分割した仮想マシンとして実現されても構わない。更に、監視処理装置40及び監視結果照合装置50は、例えばサーバ装置に組み込まれていてもよいし、当該サーバ装置とは別個に設けられていても構わない。
【0063】
次に、本実施形態に係る監視処理システムの動作について説明する。ここで、図5は、本実施形態における監視処理装置40及び監視結果照合装置50が組み込まれたサーバ装置のアーキテクチャの一例を表す。なお、前述した第1の実施形態の図3において説明した部分については、その詳しい説明を省略する。
【0064】
本実施形態においては、複数の監視処理部40−1、40−2、…、40−nの各々を実現するための監視プログラムとして、図5に示すように監視対象30がサーバ装置内の指定されたディレクトリのディスク容量の利用率(ディスク利用率)を監視するための監視プログラム(check_disk.rb)、サーバ装置内のプロセスを監視するための監視プログラム(check_proc.rb)及びサーバ装置内におけるi−node使用率を監視するための監視プログラム(check_inode.rb)が用意されているものとする。
【0065】
なお、本実施形態では、サーバ装置内の指定されたディレクトリのディスク容量の利用率を監視するための監視プログラム(check_disk.rb)、サーバ装置内のプロセスを監視するための監視プログラム(check_proc.rb)及びサーバ装置内におけるi−node使用率を監視するための監視プログラム(check_inode.rb)を使用していたが、メモリ容量の使用率(以下、単にメモリ使用率と表記)を監視するための監視プログラム及びサーバ装置における通信の使用率(以下、単に通信使用率と表記)を監視するための監視プログラムが用意されていてもよい。なお、これらの監視プログラムは、Rubyで記述されたプログラムであるものとする。
【0066】
また、複数の監視処理部40−1、40−2、…、40−nの各々を実現するための言語処理系としては、図5に示すようにMRI(Glibc2.11)処理系、MRI(Glibc2.12)処理系及びYARV(2.11)処理系を含むn個(つまり、監視処理部の数)の言語処理系が備えられているものとする。なお、MRI(Glibc2.11)処理系、MRI(Glibc2.12)処理系及びYARV(2.11)処理系以外の言語処理系としては、前述したようにIronRuby、Rubinius、XRuby、MacRuby、RubyJS、HotRubyまたはmruby等がある。
【0067】
また、Glibcとしては、図5に示すようにバージョンの異なるGlibc(2.11)及びGlibc(2.12)等が含まれるものとする。
【0068】
次に、図6のフローチャートを参照して、本実施形態に係る監視処理システムの処理手順について説明する。なお、図6において説明する処理は、予め定められた間隔で実行されるものとする。また、図5において説明した3つの監視プログラム(check_disk.rb、check_proc.rb、check_inode.rb)が用意されているものとする。
【0069】
本実施形態においては、まず、1つの監視プログラム(例えば、check_disk.rb)について、以下のステップS11〜S16の処理が実行される。以下、ステップS11〜S16の処理の対象となる監視プログラムを対象監視プログラムと称する。
【0070】
この場合、監視処理装置40において、後述するiの値を1(つまり、i=1)とする(ステップS11)。
【0071】
次に、監視処理装置40は、i(ここでは、1)がnより大きいか否かを判定する(ステップS12)。ここで、nは、監視処理装置40に含まれる監視処理部(言語処理系)の個数である。
【0072】
iがnより大きくないと判定された場合(ステップS12のNO)、監視処理装置40に含まれる監視処理部40−i(ここでは、監視処理部40−1)は、(当該監視処理部40−iを実現するための言語処理系で)監視対象30に対する監視処理を実行する(ステップS13)。ここで、監視処理部40−iがMRI(Glibc2.11)処理系で実現されるものとすると、対象監視プログラムを当該MRI(Glibc2.11)処理系で実行することによって、監視対象30に対する監視処理が実行される。なお、監視処理部40−iによる監視対象30の監視結果は、監視結果照合装置20に対して出力される。この監視処理部40−iによって出力される監視対象30の監視結果には、当該監視対象30が正常または異常であることが含まれる。
【0073】
具体的には、対象監視プログラムがcheck_disk.rbである場合においては、ディスク利用率が一定値上でない場合には当該ディスク利用率が正常であることを含む監視結果が出力され、ディスク利用率が一定値以上である場合には当該ディスク利用率が異常であることを含む監視結果が出力される。
【0074】
また、対象監視プログラムがcheck_proc.rbである場合においては、プロセスの監視が一定値以上でない場合には当該プロセスの監視が正常であることを含む監視結果が出力され、プロセスの監視が一定値以上である場合には当該プロセスの監視が異常であることを含む監視結果が出力される。
【0075】
また、対象監視プログラムがcheck_inode.rbである場合においては、i−node使用率が一定値以上でない場合には当該i−node使用率が正常であることを含む監視結果が出力され、i−node使用率が一定値以上である場合には当該i−node使用率が異常であることを含む監視結果が出力される。
【0076】
次に、監視結果照合装置50に含まれる監視結果照合部51(照合プログラムcollator.rb)は、監視処理部40−iによって出力された監視対象30の監視結果が当該監視対象30が異常であることを含む(つまり、監視対象30の監視結果が異常である)か否かを判定する(ステップS14)。
【0077】
監視対象30の監視結果が監視対象30が異常であることを含まない(つまり、監視対象30の監視結果が正常である)と判定された場合(ステップS14のNO)、上記したiの値をi+1(つまり、i=i+1)とする(ステップS15)。
【0078】
ステップS15の処理が実行されると、上記したステップS12に戻って処理が繰り返される。これにより、上記したステップS13において監視処理を実行した監視処理部(監視処理部40−1)とは異なる監視処理部(監視処理部40−2)で監視処理が実行される。
【0079】
一方、監視対象30の監視結果が監視対象30が異常であることを含むと判定された場合(ステップS14のYES)、異常通知部52は、監視対象30の異常を例えば管理者(例えば、監視対象30であるサーバ装置の管理者)等に対して通知する(ステップS16)。
【0080】
次に、全ての監視プログラムについて上記したステップS11〜S16の処理が実行されたか否かが判定される(ステップS17)。
【0081】
全ての監視プログラムについて処理が実行されていないと判定された場合(ステップS17のNO)、上記したステップS11に戻って処理が繰り返される。この場合、ステップS11〜S16の処理が実行されていない監視プログラム(例えば、check_proc.rbまたはcheck_inode.rb)を対象監視プログラムとして処理が実行される。
【0082】
一方、全ての監視プログラムについて処理が実行されたと判定された場合(ステップS17のYES)、処理は終了される。
【0083】
なお、上記したステップS12においてiがnより大きいと判定された場合、全ての言語処理系(監視処理部)で対象監視プログラムが実行されているため、ステップS13の処理は実行されず、ステップS17の処理が実行される。
【0084】
上記したように本実施形態においては、複数の監視処理部40−1、40−2、…、40−n(それぞれ異なる言語処理系)で複数の監視プログラム(例えば、check_disk.rb、check_proc.rb及びcheck_inode.rb)に基づく監視処理を実行することによって、監視対象30(サーバ装置のディスク利用率、メモリ使用率及び通信使用率)の異常を適切に検知することができる。
【0085】
このようにして、本発明によれば、ライブラリの多重化を行っているので、たとえば、ある一つのライブラリに対して、ユーザプログラムや言語処理系が多用するスレッドの実装に問題があったとしても、別のライブラリを経由した処理系を通した障害検知結果と照合することで、ハードウェアでの障害問題を回避する可能性を格段に高めることができる。
【0086】
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。本実施形態は、前述した第1〜第3の実施形態において説明した監視処理システム(監視処理装置及び監視結果照合装置)を複数備えている点が、前述した第1〜第3の実施形態とは異なる。
【0087】
図7は、本実施形態に係る監視処理システムの構成を示すブロック図である。図7に示すように、本実施形態に係る監視処理システムにおいては、監視処理装置10及び監視結果照合装置20(が組み込まれたサーバ装置100)が複数備えられている。なお、この監視処理装置10及び監視結果照合装置20は、前述した第1及び第2の実施形態における監視処理装置10及び監視結果照合装置20と同様であるため、その詳しい説明を省略する。
【0088】
本実施形態においては、監視対象であるサーバ装置100の各々が当該サーバ装置100に組み込まれている監視処理装置10によって監視され、当該サーバ装置100の異常が検知された場合、監視結果照合装置20によって当該サーバ装置100の異常がネットワーク(例えば、インターネット)200を介して通信端末300に例えばメール等で通知される。
【0089】
なお、通信端末300には例えばパーソナルコンピュータ(PC)やスマートフォン等が含まれるが、この通信端末300は、ネットワーク200を介してサーバ装置100と通信可能な機器であれば他のものであっても構わない。
【0090】
また、図7においては便宜的に1つの通信端末300のみが示されているが、予め登録された複数の通信端末300に対して異常が通知される構成としても構わない。
【0091】
なお、本実施形態に係る監視処理システムは、例えばクラウドコンピューティング技術により実現されることができる。
【0092】
上記したように本実施形態においては、監視処理装置10及び監視結果照合装置20(が組み込まれたサーバ装置100)を複数備えることによって、当該複数の監視対象(サーバ装置100)の異常を適切に検知して通信端末300に通知することが可能となる。
【0093】
なお、本実施形態においては、前述した第1または第2の実施形態における監視処理装置10及び監視結果照合装置20(が組み込まれたサーバ装置100)が複数備えられているものとして説明したが、当該監視処理装置10及び監視結果照合装置20に代えて前述した第3の実施形態における監視処理装置40及び監視結果照合装置50が備えられていても構わない。
【0094】
なお、上記した各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0095】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【0096】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
【0097】
更に、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0098】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であってもよい。
【0099】
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【0100】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0101】
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【符号の説明】
【0102】
10…監視処理装置、11,12,13…監視処理部、20…監視結果照合装置、21…監視結果照合部、22…異常通知部、30…監視対象、40監視処理装置、40−1,40−2,…,40−n…監視処理部、50…監視結果照合装置、51…監視結果照合部、52…異常通知部、100…サーバ装置、200…ネットワーク、300…通信端末。
図1
図2
図3
図4
図5
図6
図7