説明

監視方法、監視装置、プログラム

【課題】監視のためのオーバーヘッドを低減し、障害の原因となる要素を明らかにすること。
【解決手段】本発明の監視方法は、監視対象機器の監視項目間の依存関係を保持する保持し、監視項目の中から、状態が正常状態もしくは障害状態のどちらであるか未確定の監視項目を順次選択し、選択中の監視項目における稼働状態もしくは性能状態のいずれかを示す監視情報を、監視対象機器から収集し、選択中の監視項目における監視情報に基づいて、監視項目の状態が正常状態もしくは障害状態のどちらであるかの障害判定を行い、障害判定の判定結果に基づいて選択中の監視項目の状態を確定し、確定済の監視項目の状態と監視項目間の依存関係とに基づいて未確定の監視項目の状態を推論により確定し、全ての監視項目の状態が確定した場合に、障害状態にある監視項目の一覧を示す障害箇所情報を、二次記憶装置もしくは出力装置に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視対象機器の状態が正常状態もしくは障害状態のいずれであるかを監視する監視方法、監視装置、プログラムに関する。
【背景技術】
【0002】
サービスを構成する各機器が正常状態であるか否かを監視し、障害を検知した際にユーザに知らせるための技術である、システム監視技術が広く用いられている。
【0003】
非特許文献1のように、システム監視技術で広く採用されているプロトコルを用いる場合、複数の監視対象機器の監視項目の情報を定期的に収集するポーリング(Polling)という技術が知られている。
【0004】
しかし、非特許文献1に記載の技術では、監視対象機器、監視項目、収集間隔の逆数に比例して、監視のためのオーバーヘッドが生じてしまうという課題があった。
【0005】
また、非特許文献2のように、実際のサービスのリクエストを模擬し、その結果を監視することで複数の監視対象機器、監視項目の情報を取得することなく、サービスとして障害が起きているか否かを判断する技術も知られている。
【0006】
しかし、非特許文献2に記載の技術では、サービス全体が障害であることは検知できるが、サービスを構成するどの要素が障害の原因となっているかは特定することができないという課題があった。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】「RFC1157 Simple Network Management Protocol (SNMP)」、[平成23年4月5日検索]、インターネット<http://www.potaroo.net/ietf/rfc/rfc1157.txt>
【非特許文献2】「Apache JMeter」、[平成23年4月5日検索]、インターネット<http://jakarta.apache.org/jmeter/>
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述したように、システム監視技術においては、非特許文献1に記載の技術のように、監視のためのオーバーヘッドが生じるという課題や、非特許文献2に記載の技術のように、障害の原因となる要素を特定できないという課題がある。
【0009】
本発明は、上記の課題を鑑みてなされたものであり、その目的とするところは、監視のためのオーバーヘッドを削減しつつ、障害が発生した際には障害の原因となる要素がどこに存在するのかを明らかにすることができる監視方法、監視装置、プログラムを提供するところにある。
【課題を解決するための手段】
【0010】
本発明の監視方法は、
監視装置が行う監視方法であって、
監視対象機器の監視項目間の依存関係を保持する保持ステップと、
前記監視項目の中から、状態が正常状態もしくは障害状態のどちらであるか未確定の監視項目を順次選択する選択ステップと、
選択中の監視項目における稼働状態もしくは性能状態のいずれかを示す監視情報を、前記監視対象機器から収集する収集ステップと、
選択中の監視項目における監視情報に基づいて、該監視項目の状態が正常状態もしくは障害状態のどちらであるかの障害判定を行う判定ステップと、
障害判定の判定結果に基づいて選択中の監視項目の状態を確定する確定ステップと、
確定済の監視項目の状態と前記監視項目間の依存関係とに基づいて、未確定の監視項目の状態を推論により確定する推論ステップと、
全ての監視項目の状態が確定した場合に、障害状態にある監視項目の一覧を示す障害箇所情報を、二次記憶装置もしくは出力装置に出力する出力ステップと、を備えることを特徴とする。
【0011】
本発明の監視装置は、
監視対象機器の監視項目における稼働状態もしくは性能状態のいずれかを示す監視情報を、前記監視対象機器から収集する監視情報収集手段と、
前記監視項目間の依存関係を保持する監視項目間依存関係保持手段と、
前記監視項目における監視情報に基づいて、該監視項目の状態が正常状態もしくは障害状態のどちらであるかの障害判定を行う障害判定手段と、
前記監視項目の中から状態が未確定の監視項目を順次選択し、選択中の監視項目における監視情報の収集を前記監視情報収集手段に指示すると共に、選択中の監視項目の障害判定を前記障害判定手段に依頼し、その判定結果に基づいて選択中の監視項目の状態を確定し、確定済の監視項目の状態と前記監視項目間依存関係保持手段が保持する依存関係とに基づいて未確定の監視項目の状態を推論により確定し、全ての監視項目の状態が確定した場合に、障害状態にある監視項目の一覧を示す障害箇所情報を出力する障害状態推論手段と、
前記障害状態推論手段が出力した障害箇所情報を、二次記憶装置もしくは出力装置に出力する障害箇所出力手段と、を備えることを特徴とする。
【0012】
本発明のプログラムは、前記監視方法を前記監視装置に実行させるためのプログラムであることを特徴とする。
【発明の効果】
【0013】
本発明によれば、監視項目間の依存関係を保持しておき、確定済の監視項目の状態と監視項目間の依存関係とに基づいて、未確定の監視項目の状態を推論により確定する。
【0014】
そのため、推論により状態を確定した監視項目については、監視情報の収集を省略できるため、監視のためのオーバーヘッドを低減できるという効果が得られる。
【0015】
また、本発明によれば、障害状態にある監視項目の一覧を示す障害箇所情報を出力するため、障害が発生した際に、障害の原因となる要素がどこに存在するのかを明らかにすることができるという効果が得られる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態の監視装置の構成を示すブロック図である。
【図2】図1に示した障害状態推論手段の動作を説明するフローチャートである。
【図3】図1に示した監視対象機器のモデルの例を示す図である。
【図4】図3に示した監視対象機器に対する、図1に示した障害状態推論手段の動作の手順を説明する図である。
【図5】図3に示した監視対象機器に対する、図1に示した障害状態推論手段の動作例1を説明する図である。
【図6】図3に示した監視対象機器に対する、図1に示した障害状態推論手段の動作例2を説明する図である。
【図7】図3に示した監視対象機器に対する、図1に示した障害状態推論手段の動作例2を説明する図である。
【発明を実施するための形態】
【0017】
以下に、本発明を実施するための形態について図面を参照して説明する。
【0018】
図1に示すように、本実施形態の監視装置20は、監視対象機器10の状態が正常状態もしくは障害状態のいずれであるかを監視する。
【0019】
ここで、本実施形態の監視装置20は、監視情報収集手段21と、障害判定手段22と、監視項目間依存関係保持手段23と、障害状態推論手段24と、障害箇所出力手段25と、を有している。
【0020】
監視情報収集手段21は、障害状態推論手段24から指示された監視項目における稼働状態もしくは性能状態のいずれかを示す監視情報を監視対象機器10から収集し、収集した監視情報を障害状態推論手段24に出力する。
【0021】
障害判定手段22は、障害状態推論手段24から判定依頼のあった監視項目の状態が正常状態もしくは障害状態のどちらであるのかの障害判定を、障害状態推論手段24から渡された監視情報を基に行い、その判定結果を障害状態推論手段24に返却する。
【0022】
例えば、障害判定手段22は、監視項目の稼働状態もしくは性能状態から、その監視項目が正常状態もしくは障害状態のどちらであるかを一意に特定できる対応表を保持しており、障害状態推論手段24から渡された監視情報が示す稼働状態もしくは性能状態と対応表とを照合することで、上記の障害判定を行う。
【0023】
監視項目間依存関係保持手段23は、監視項目間の依存関係を保持している。
【0024】
ここでいう依存関係とは、例えば、アプリケーションはOSに依存しており、OSはコンピュータ等のハードウェア(以降ハードウェア)に依存している、といった関係を指す。
【0025】
また、監視項目間依存関係保持手段23は、障害状態推論手段24からの依存関係の問い合わせに対して、保持している依存関係を論理式に変換した依存関係情報を返却する。例えば、アプリケーションはOSに依存している、という関係は、「(アプリケーション)→(OS)」という論理式に変換されて返却される。
【0026】
また、監視項目間依存関係保持手段23は、障害状態推論手段24からの監視項目の問い合わせに対して、依存関係の上位から順に監視項目を返却する。例えば、アプリケーションはOSに依存しており、OSはハードウェアに依存している場合、最初の問い合わせに対して(アプリケーション)を返却し、次の問い合わせに対して(OS)を返却し、次の問い合わせに対して(ハードウェア)を返却する。
【0027】
障害状態推論手段24は、図2に示した動作を行う。なお、図2に示した動作は、設定等に応じて定期的に行われる。
【0028】
まず、ステップS1において、監視項目間依存関係保持手段23に監視項目間の依存関係の問い合わせを行い、依存関係を論理式に変換した依存関係情報を取得する。
【0029】
次に、ステップS2において、依存関係の上位の監視項目から優先的に、状態が未確定の監視項目を選択して取得する。具体的には、最初に、監視項目間依存関係保持手段23に最上位の監視項目の問い合わせを行い、最上位の監視項目を取得する。取得した監視項目に対応する命題変数が、論理式の中で真もしくは偽で確定されている場合、次位の監視項目を問い合わせる。このステップS2の処理を、対応する命題変数が真にも偽にも確定されていない監視項目が取得できるまで繰り返す。状態が未確定の監視項目が取得できた場合はステップS3に進み、状態が未確定の監視項目が存在しなかった場合、すなわち、全ての監視項目の状態が確定している場合はステップS7に進む。
【0030】
ステップS3においては、ステップS2で取得した監視項目における監視情報の収集を監視情報収集手段21に指示する。
【0031】
次に、ステップS4において、監視情報収集手段21から監視項目における監視情報を取得し、取得した監視情報を障害判定手段22に渡して、その監視項目が正常状態もしくは障害状態のどちらであるかの障害判定を依頼する。
【0032】
次に、ステップS5において、障害判定手段22から受け取った判定結果が障害状態を示す場合は、ステップS2で取得した監視項目に対応する命題変数を偽と確定し、正常状態を示す場合は、ステップS2で取得した監視項目に対応する命題変数を真と確定する。
【0033】
次に、ステップS6において、ステップS1で取得した論理式を推論により簡略化する。すなわち、真偽値が未確定の命題変数のうち、確定済みの命題変数の真偽値(直前のステップS5で確定した命題変数の真偽値を含む)を用いることで推論可能となった命題変数の真偽値を推論により確定させる。
【0034】
その後、ステップS2に戻る。
【0035】
ステップS7においては、ステップS1で取得した論理式に含まれる命題変数のうち、偽と確定した命題変数に対応する監視項目の一覧を示す障害箇所情報を作成し、障害箇所出力手段25に出力する。
【0036】
以上で、障害状態推論手段24の動作が完了する。
【0037】
障害箇所出力手段25は、障害状態推論手段24から出力された障害箇所情報を、二次記憶装置、または、画面等を表示する出力装置に出力する。
【0038】
以下、図2に示した障害状態推論手段24の動作について、具体例を挙げてさらに詳細に説明する。
【0039】
ここでは、監視対象機器10が図3に示したモデルであるとする。
【0040】
図3において、最上位の監視項目はslaであり、slaの下位の監視項目はweb、ap、dbである。また、webの下位の監視項目はcpu_s1、mem_s1、proc_webで、apの下位の監視項目はcpu_s1、mem_s1、proc_apで、dbの下位の監視項目はcpu_s2、mem_s2、proc_dbである。
【0041】
ここで、slaは、システム全体のサービスレベルに対応しており、サービスレベルが悪化した場合、もしくはサービスが正常に受けられなくなった場合が障害状態であり、それ以外の場合が正常状態である監視項目である。
【0042】
webは、Webサーバ単体での動作状況に対応しており、Webサーバ単体で正常に応答が返せない状態のとき障害状態、そうでない場合は正常状態となる監視項目である。
【0043】
apは、APサーバ単体での動作状況に対応しており、APサーバ単体で正常に応答が返せない状態のとき障害状態、そうでない場合は正常状態となる監視項目である。
【0044】
dbは、DBサーバ単体での動作状況に対応しており、DBサーバ単体で正常に応答が返せない状態のとき障害状態、そうでない場合は正常状態となる監視項目である。
【0045】
cpu_s1は、サーバ1のCPU使用率に対応しており、一定のしきい値を超えた場合に障害状態、そうでない場合は正常状態となる監視項目である。
【0046】
cpu_s2は、サーバ2のCPU使用率に対応しており、一定のしきい値を超えた場合に障害状態、そうでない場合は正常状態となる監視項目である。
【0047】
mem_s1は、サーバ1のメモリ使用量に対応しており、一定のしきい値を超えた場合に障害状態、そうでない場合は正常状態となる監視項目である。
【0048】
mem_s2は、サーバ2のメモリ使用量に対応しており、一定のしきい値を超えた場合に障害状態、そうでない場合は正常状態となる監視項目である。
【0049】
proc_webは、Webサーバのプロセス状態に対応しており、プロセスが停止している場合に障害状態、プロセスが動作している場合に正常状態となる監視項目である。
【0050】
proc_apは、APサーバのプロセス状態に対応しており、プロセスが停止している場合に障害状態、プロセスが動作している場合に正常状態となる監視項目である。
【0051】
proc_dbは、DBサーバのプロセス状態に対応しており、プロセスが停止している場合に障害状態、プロセスが動作している場合に正常状態となる監視項目である。
【0052】
障害状態推論手段24は、図3の命題を充足し得る、各監視項目に対応する命題変数の真偽値を確定する。
【0053】
このとき、障害状態推論手段24は、分岐限定法を用いて、図4に示すように、監視項目間の依存関係を分岐木として定義し、上位の監視項目から優先的に選択し、選択中の監視項目に対応する命題変数の真偽値を障害判定結果を基に確定し、続いて、選択中の監視項目の下位の監視項目を特定し、確定済みの命題変数の真偽値を基に、特定した下位の監視項目に対応する命題変数の真偽値を推論により確定する。
【0054】
そして、障害状態推論手段24は、図3の命題を充足し得る、各監視項目に対応する命題変数の真偽値が全て確定した時点で処理を終了する。ここで、偽と確定された命題変数に対応する監視項目が障害状態となる。
(A)動作例1
図5に示す動作例1は、最上位の監視項目slaが正常状態である場合の例である。
【0055】
この場合、まず、ステップS1において、監視項目間の依存関係を論理式に変換した依存関係情報を受け取る。
【0056】
次に、ステップS2〜S5において、最上位の監視項目slaを選択し、監視項目slaに対応する命題変数を真(T)と確定する。
【0057】
次に、ステップS6において、監視項目slaに対応する命題変数が真(T)であることに基づいて、ステップS1で取得した論理式を推論により簡略化する。
【0058】
ここでは、全ての監視項目に対応する命題変数を真(T)と確定することができるため、全ての監視項目が正常状態となる。この場合、ステップS7においては、障害箇所情報を出力しなくても良いし、監視項目の記述がない障害箇所情報を出力しても良い。
【0059】
したがって、監視情報は、監視項目slaのみ収集すれば良く、監視のためのオーバーヘッドを低減することができる。
(B)動作例2
図6および図7に示す動作例2は、最上位の監視項目slaが障害状態であり、その下位の監視項目のうちapのみが障害状態である場合の例である。
【0060】
この場合、まず、ステップS1において、監視項目間の依存関係を論理式に変換した依存関係情報を受け取る。
【0061】
次に、ステップS2〜S5において、最上位の監視項目slaを選択し、監視項目slaに対応する命題変数を偽(F)と確定する。
【0062】
次に、ステップS6において、監視項目slaに対応する命題変数が偽(F)であることに基づいて、ステップS1で取得した論理式を推論により簡略化する。
【0063】
以降、監視項目web、ap、dbを順次選択し、その都度、ステップS2〜S6を実行して、ステップS1で取得した論理式を推論により簡略化する。
【0064】
そして、監視項目proc_apに対応する命題変数を偽(F)と確定した時点で、全ての監視項目に対応する命題変数が確定する。
【0065】
ここでは、監視項目sla、ap、proc_apが障害状態であるため、ステップS7において、これらの監視項目の一覧を示す障害箇所情報を作成し出力する。
【0066】
したがって、監視情報は、監視項目sla、web、ap、db、proc_apのみを収集すれば良く、監視のためのオーバーヘッドを低減することができる。
【0067】
ここで、動作例2では、監視項目slaが障害状態であるため、その下位の監視項目のweb、ap、dbについては監視情報を収集する。
【0068】
ただし、監視項目apの下位の監視項目のうちcpu_s1、mem_s1については監視情報の収集を省略できる。これは、本発明において、論理式を推論により簡略化したことの効果によるものである。
【0069】
上述したように本実施形態においては、監視項目間の依存関係を保持しておき、確定済の監視項目の状態と監視項目間の依存関係とに基づいて、未確定の監視項目の状態を推論により確定する。
【0070】
そのため、推論により状態を確定した監視項目については、監視情報の収集を省略できるため、監視のためのオーバーヘッドを低減できるという効果が得られる。
【0071】
また、本実施形態においては、障害状態にある監視項目の一覧を示す障害箇所情報を出力するため、障害が発生した際に、障害の原因となる要素がどこに存在するのかを明らかにすることができるという効果が得られる。
【0072】
なお、本発明の監視装置20にて行われる方法は、コンピュータに実行させるためのプログラムに適用しても良い。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。
【符号の説明】
【0073】
10 監視対象機器
20 監視装置
21 監視情報収集手段
22 障害判定手段
23 監視項目間依存関係保持手段
24 障害状態推論手段
25 障害箇所出力手段

【特許請求の範囲】
【請求項1】
監視装置が行う監視方法であって、
監視対象機器の監視項目間の依存関係を保持する保持ステップと、
前記監視項目の中から、状態が正常状態もしくは障害状態のどちらであるか未確定の監視項目を順次選択する選択ステップと、
選択中の監視項目における稼働状態もしくは性能状態のいずれかを示す監視情報を、前記監視対象機器から収集する収集ステップと、
選択中の監視項目における監視情報に基づいて、該監視項目の状態が正常状態もしくは障害状態のどちらであるかの障害判定を行う判定ステップと、
障害判定の判定結果に基づいて選択中の監視項目の状態を確定する確定ステップと、
確定済の監視項目の状態と前記監視項目間の依存関係とに基づいて、未確定の監視項目の状態を推論により確定する推論ステップと、
全ての監視項目の状態が確定した場合に、障害状態にある監視項目の一覧を示す障害箇所情報を、二次記憶装置もしくは出力装置に出力する出力ステップと、を備えることを特徴とする監視方法。
【請求項2】
請求項1に記載の監視方法であって、
前記推論ステップでは、前記監視項目間の依存関係に基づいて、選択中の監視項目の下位の監視項目を特定し、確定済の監視項目の状態に基づいて、特定した下位の監視項目の状態を推論により確定することを特徴とする監視方法。
【請求項3】
請求項2に記載の監視方法であって、
前記選択ステップでは、前記監視項目間の依存関係の上位の監視項目から順次選択することを特徴とする監視方法。
【請求項4】
監視対象機器の監視項目における稼働状態もしくは性能状態のいずれかを示す監視情報を、前記監視対象機器から収集する監視情報収集手段と、
前記監視項目間の依存関係を保持する監視項目間依存関係保持手段と、
前記監視項目における監視情報に基づいて、該監視項目の状態が正常状態もしくは障害状態のどちらであるかの障害判定を行う障害判定手段と、
前記監視項目の中から状態が未確定の監視項目を順次選択し、選択中の監視項目における監視情報の収集を前記監視情報収集手段に指示すると共に、選択中の監視項目の障害判定を前記障害判定手段に依頼し、その判定結果に基づいて選択中の監視項目の状態を確定し、確定済の監視項目の状態と前記監視項目間依存関係保持手段が保持する依存関係とに基づいて未確定の監視項目の状態を推論により確定し、全ての監視項目の状態が確定した場合に、障害状態にある監視項目の一覧を示す障害箇所情報を出力する障害状態推論手段と、
前記障害状態推論手段が出力した障害箇所情報を、二次記憶装置もしくは出力装置に出力する障害箇所出力手段と、を備えることを特徴とする監視装置。
【請求項5】
請求項4に記載の監視装置であって、
前記障害状態推論手段は、前記監視項目間依存関係保持手段が保持する依存関係に基づいて、選択中の監視項目の下位の監視項目を特定し、確定済の監視項目の状態に基づいて、特定した下位の監視項目の状態を推論により確定することを特徴とする監視装置。
【請求項6】
請求項5に記載の監視装置であって、
前記障害状態推論手段は、前記監視項目間依存関係保持手段が保持する依存関係の上位の監視項目から順次選択することを特徴とする監視装置。
【請求項7】
請求項1から3のいずれか1項に記載の監視方法を前記監視装置に実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate