(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-01
(45)【発行日】2024-10-09
(54)【発明の名称】異常要因判定方法および異常要因判定プログラム
(51)【国際特許分類】
G06F 11/07 20060101AFI20241002BHJP
G06F 11/34 20060101ALI20241002BHJP
【FI】
G06F11/07 190
G06F11/34 176
G06F11/07 140A
(21)【出願番号】P 2021031957
(22)【出願日】2021-03-01
【審査請求日】2023-11-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】樋口 淳一
(72)【発明者】
【氏名】児玉 武司
(72)【発明者】
【氏名】上野 仁
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2015-164005(JP,A)
【文献】特開2012-003647(JP,A)
【文献】国際公開第2016/199210(WO,A1)
【文献】米国特許出願公開第2014/0324862(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
それぞれ情報処理システムに含まれるリソースの使用状況を示す複数のメトリックのうち、第1のメトリックに基づいて第1の時刻に異常が検知された場合、前記複数のメトリックのうち前記第1のメトリックを除くメトリックの中から、前記第1の時刻の直前において対応するリソースが不使用状態であることを示す1以上の第2のメトリックを特定し、
前記1以上の第2のメトリックのそれぞれが示す前記使用状況に基づき、前記第1の時刻の直前から過去に遡って対応するリソースが不使用状態から使用状態に変化する第2の時刻を前記1以上の第2のメトリックのそれぞれについて特定し、
特定された前記第2の時刻のうち最も古い第3の時刻から前記第1の時刻までを検索期間として指定して、前記情報処理システムに対して実行されたイベントのログが蓄積されたデータベースから、前記検索期間において実行された、前記第1のメトリックに基づく異常の要因候補となる候補イベントのログを取得し、
取得したログが示す前記候補イベントに基づいて前記第1のメトリックに基づく異常の発生要因を判定する、
異常要因判定方法。
【請求項2】
前記1以上の第2のメトリックの特定では、前記複数のメトリックのうち前記第1のメトリックを除くメトリックの中から、前記第1の時刻の直前において値が所定値以下であるメトリックを前記1以上の第2のメトリックとして特定し、
前記第2の時刻の特定では、前記1以上の第2のメトリックのそれぞれについて、前記第1の時刻の直前から過去に遡って値が前記所定値以下から前記所定値を超えたときの時刻を、前記第2の時刻として特定する、
請求項1記載の異常要因判定方法。
【請求項3】
前記コンピュータは、さらに、前記1以上の第2のメトリックのうち、前記第1の時刻において対応するリソースが不使用状態から使用状態に変化したことを示す1以上の第3のメトリックを特定し、
前記第2の時刻の特定では、前記1以上の第3のメトリックのそれぞれについて前記第2の時刻を特定する、
請求項1記載の異常要因判定方法。
【請求項4】
前記1以上の第2のメトリックの特定では、前記複数のメトリックのうち前記第1のメトリックを除くメトリックの中から、前記第1の時刻の直前において値が所定値以下であるメトリックを前記1以上の第2のメトリックとして特定し、
前記1以上の第3のメトリックの特定では、前記1以上の第2のメトリックの中から、前記第1の時刻において値が前記所定値以下から前記所定値を超えたメトリックを前記1以上の第3のメトリックとして特定し、
前記第2の時刻の特定では、前記1以上の第3のメトリックのそれぞれについて、前記第1の時刻の直前から過去に遡って値が前記所定値以下から前記所定値を超えたときの時刻を、前記第2の時刻として特定する、
請求項3記載の異常要因判定方法。
【請求項5】
前記コンピュータは、前記複数のメトリックのうち複数の特定メトリックのそれぞれに基づいて異常の有無を判定する判定処理を所定時間間隔の判定時刻ごとに実行し、
前記1以上の第2のメトリックの特定では、前記判定時刻のうちの前記第1の時刻に、前記特定メトリックのうちの前記第1のメトリックに基づいて異常が検知された場合に、前記複数のメトリックのうち前記第1のメトリックを除くメトリックの中から、前記判定時刻のうち前記第1の時刻の直前の判定時刻において対応するリソースが不使用状態であることを示す前記1以上の第2のメトリックを特定する、
請求項1乃至4のいずれか1項に記載の異常要因判定方法。
【請求項6】
コンピュータに、
それぞれ情報処理システムに含まれるリソースの使用状況を示す複数のメトリックのうち、第1のメトリックに基づいて第1の時刻に異常が検知された場合、前記複数のメトリックのうち前記第1のメトリックを除くメトリックの中から、前記第1の時刻の直前において対応するリソースが不使用状態であることを示す1以上の第2のメトリックを特定し、
前記1以上の第2のメトリックのそれぞれが示す前記使用状況に基づき、前記第1の時刻の直前から過去に遡って対応するリソースが不使用状態から使用状態に変化する第2の時刻を前記1以上の第2のメトリックのそれぞれについて特定し、
特定された前記第2の時刻のうち最も古い第3の時刻から前記第1の時刻までを検索期間として指定して、前記情報処理システムに対して実行されたイベントのログが蓄積されたデータベースから、前記検索期間において実行された、前記第1のメトリックに基づく異常の要因候補となる候補イベントのログを取得し、
取得したログが示す前記候補イベントに基づいて前記第1のメトリックに基づく異常の発生要因を判定する、
処理を実行させる異常要因判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常要因判定方法および異常要因判定プログラムに関する。
【背景技術】
【0002】
情報処理システムの動作状況を監視装置によって監視して、異常の発生を検知できるようにする技術は、広く普及している。異常の発生を検知する方法としては、例えば、情報処理システムに含まれるリソースの使用状況を示すメトリックを用いる方法がある。また、このような異常検知技術では、異常が検知された場合に、その異常の発生要因を判定することが求められる。異常の発生要因を判定する方法としては、例えば、情報処理システムに対して実行されたイベントのログを解析する方法が挙げられる。
【0003】
また、情報処理システムの監視や異常要因の解析に関しては、次のような技術が提案されている。例えば、監視対象システムから継続的に監視データを取得してシステムの挙動をモデル化した挙動モデルを作成し、連続して作成された挙動モデルの差に基づいて挙動が変化した期間を推測し、ユーザに通知する障害分析システムが提案されている。また、システム内の機器の入出力とアプリケーションプログラムの変数との対応を示す変数リレーション情報を生成し、機器の異常発生を検知すると、当該機器の入出力に関する変数を変数リレーション情報に基づいて特定し、特定された変数に関連するイベントの情報を発生イベント情報から抽出して表示する異常解析支援システムも提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開WO2014/184934号
【文献】特開2017-227973号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記のような監視装置が、情報処理システムの異常が検知すると、情報処理システムに対して実行されたイベントのログを取得し、取得したログの内容に基づいて異常の発生要因を判定することが考えられている。通常、異常が検知された場合、その異常発生要因となり得るイベントは、検知時刻の直前に実行されていることが多い。しかし、イベントの実行によって異常が発生してから、その異常が検知されるまでに長い時間がかかるケースもある。このようなケースでは、異常発生要因となり得るイベントのログをデータベースから検索する検索期間を、異常が検知された時刻を終端とする長い期間に設定しないと、適切なイベントのログを取得できない。しかし、検索期間が長くなるほど、検索対象となるログの数が増大し、検索にかかる時間が長くなって、その結果として異常発生要因の判定にかかる時間が長くなるという問題がある。
【0006】
1つの側面では、本発明は、異常発生要因の判定時間を短縮することが可能な異常要因判定方法および異常要因判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、コンピュータが、それぞれ情報処理システムに含まれるリソースの使用状況を示す複数のメトリックのうち、第1のメトリックに基づいて第1の時刻に異常が検知された場合、複数のメトリックのうち第1のメトリックを除くメトリックの中から、第1の時刻の直前において対応するリソースが不使用状態であることを示す1以上の第2のメトリックを特定し、1以上の第2のメトリックのそれぞれが示す使用状況に基づき、第1の時刻の直前から過去に遡って対応するリソースが不使用状態から使用状態に変化する第2の時刻を1以上の第2のメトリックのそれぞれについて特定し、特定された第2の時刻のうち最も古い第3の時刻から第1の時刻までを検索期間として指定して、情報処理システムに対して実行されたイベントのログが蓄積されたデータベースから、検索期間において実行された、第1のメトリックに基づく異常の要因候補となる候補イベントのログを取得し、取得したログが示す候補イベントに基づいて第1のメトリックに基づく異常の発生要因を判定する、異常要因判定方法が提供される。
【0008】
また、1つの案では、上記の異常要因判定方法と同様の処理をコンピュータに実行させる異常要因判定プログラムが提供される。
【発明の効果】
【0009】
1つの側面では、異常発生要因の判定時間を短縮できる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態に係る異常要因判定装置を示す図である。
【
図2】第2の実施の形態に係る情報処理システムの構成例を示す図である。
【
図3】監視装置のハードウェア構成例を示す図である。
【
図4】運用管理装置および監視装置が備える処理機能の構成例を示す図である。
【
図5】メトリックデータベースのデータ構成例を示す図である。
【
図6】判定ルールデータベースのデータ構成例を示す図である。
【
図7】判定結果データベースのデータ構成例を示す図である。
【
図8】異常発生の要因判定処理についての比較例を示す第1の図である。
【
図9】異常発生の要因判定処理についての比較例を示す第2の図である。
【
図10】第2の実施の形態における異常発生の要因判定処理を示す図である。
【
図11】第2の実施の形態における監視装置の処理手順を示すフローチャートの例である。
【
図12】変形例における異常発生の要因判定処理を示す図である。
【
図13】変形例における監視装置の処理手順を示すフローチャートの例である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る異常要因判定装置を示す図である。
図1に示す異常要因判定装置1は、図示しない情報処理システムの動作状況を監視し、異常が検知された場合にその異常の発生要因を判定する装置である。異常要因判定装置1は、例えば、サーバ装置やパーソナルコンピュータなどのコンピュータとして実現される。この場合、以下で説明する異常要因判定装置1の処理は、例えば、異常要因判定装置1が備えるプロセッサが所定のプログラムを実行することで実現される。
【0012】
異常要因判定装置1は、メトリックデータベース(DB)2からメトリックを取得可能になっている。メトリックデータベース2には、それぞれ上記の情報処理システムに含まれるリソースの使用状況を示す複数のメトリックが、情報処理システムから逐次収集されて蓄積される。例えば、対応するリソースがCPU(Central Processing Unit)の場合、メトリックとしてはCPU使用率、CPU待ち時間などがある。対応するリソースがメモリの場合、メトリックとしてはメモリ使用量、メモリスワップアウト量などがある。対応するリソースがネットワークインタフェースの場合、メトリックとしてはネットワーク使用量、パケットロス数などがある。
【0013】
異常要因判定装置1は、メトリックデータベース2に蓄積された複数のメトリックの中から、特定のメトリックを定期的に取得し、取得したメトリックの値に基づいて情報処理システムにおける異常を検知できる。また、異常要因判定装置1は、異常を検知した場合に、その異常の発生要因を判定するためにメトリックデータベース2内の他のメトリックを取得することもできる。
【0014】
また、イベントログデータベース(DB)3には、情報処理システムに対して実行されたイベントのログが蓄積される。異常要因判定装置1は、検知された異常の発生要因を判定するために、検索条件を指定して、検索条件に合致するイベントのログをイベントログデータベース3から取得できる。なお、イベントログデータベース3に対する検索処理自体は、異常要因判定装置1で実行されてもよいし、異常要因判定装置1の外部に接続された他の装置で実行されてもよい。
【0015】
一方、
図1の右側に示すタイムチャート4は、あるメトリックに基づいて異常が検知された場合における他のメトリックやイベントの状況の例を示す。以下、このタイムチャート4に示された例を用いて、異常要因判定装置1の処理を説明する。
【0016】
異常要因判定装置1は、メトリックデータベース2に蓄積されたメトリックのうち、1以上の特定のメトリックに基づいて、情報処理システムにおける異常の有無を判定する。ここでは例として、特定のメトリックに基づいて異常の有無を判定する判定処理が、所定時間間隔の判定時刻ごとに実行されるものとする。この場合、ある判定時刻における判定処理は、前回の判定時刻から現判定時刻までの期間にメトリックデータベース2に蓄積されたメトリックに基づいて実行される。
【0017】
図1のタイムチャート4では、メトリックM1(第1のメトリック)に基づいて異常の有無が判定されている例を示している。異常要因判定装置1は、メトリックM1から、上記の判定時刻のうち時刻T1,T2,T3,T4では異常を検知しなかったが、時刻T5(第1の時刻)で異常を検知したとする(ステップS1)。
【0018】
すると、異常要因判定装置1は、メトリックデータベース2に蓄積された複数のメトリックのうち、メトリックM1を除く他のメトリックの中から、時刻T5の直前において対応するリソースが不使用状態であることを示す1以上のメトリック(第2のメトリック)を特定する。
図1のタイムチャート4では、メトリックM1を除くメトリックM2~M4の中から、時刻T5の直前の判定時刻である時刻T4において対応するリソースが未使用状態であることを示すメトリックM2,M3が特定されたとする(ステップS2)。
【0019】
次に、異常要因判定装置1は、特定されたメトリックM2,M3のそれぞれが示す使用状況に基づき、時刻T5の直前(ここでは時刻T4)から過去に遡って対応するリソースが不使用状態から使用状態に変化する時刻(第2の時刻)を、メトリックM2,M3のそれぞれについて特定する(ステップS3)。
【0020】
図1のタイムチャート4では、メトリックM2については、時刻T2から時刻T1までの期間で対応するリソースが使用状態に変化している。このため、メトリックM2についての上記時刻としては時刻T1が特定される。また、メトリックM3については、時刻T3から時刻T2までの期間で対応するリソースが使用状態に変化している。このため、メトリックM3についての上記時刻としては時刻T2が特定される。
【0021】
次に、異常要因判定装置1は、ステップS3で特定された時刻T1,T2のうち、最も古い時刻T1を選択し、選択した時刻T1から、異常が検知された時刻T5までを検索期間として指定する。そして、異常要因判定装置1は、イベントログデータベース3から、指定された検索期間において実行された、メトリックM1に基づく異常の要因候補となる候補イベントのログを取得する(ステップS4)。ここで、検知された異常の要因候補となる候補イベントは、例えば、異常検知の元になったメトリックに応じてあらかじめ決められている。
【0022】
ステップS4では、時刻T1から時刻T5までの検索期間と候補イベントとを検索条件としてイベントログデータベース3が検索されることで、検索条件に合致する候補イベントのログが取得される。なお、前述のように、イベントログデータベース3の検索処理自体は、異常要因判定装置1で実行されてもよいし、異常要因判定装置1の外部に接続された他の装置で実行されてもよい。
【0023】
図1のタイムチャート4では、時刻T2から時刻T3の期間において、異常の要因となったイベントが実行され、このイベントに対応するログ5がイベントログデータベース3に登録されたとする。この場合、ステップS4では、候補イベントのログとしてログ5が取得される。すると、異常要因判定装置1は、ステップS4で取得したログ5が示す候補イベントに基づいて、メトリックM1に基づく異常の発生要因を判定する(ステップS5)。
【0024】
ここで、情報処理システムの異常が検知された場合、その異常発生要因となり得るイベントは、検知時刻の直前に実行されていることが多い。このようなイベントのログをイベントログデータベース3から取得するためには、ログの検索期間を異常の判定周期に相当する期間に設定すれば十分である。
【0025】
一方、
図1のタイムチャート4に示した例では、ログ5が示すイベントの実行によって異常が発生してから、その異常が検知されるまでに長い時間がかかっている。このようなイベントのログをイベントログデータベース3から取得するためには、ログの検索期間をより長くする必要がある。しかし、ログの検索期間が長くなるほど、検索対象となるログの数が増大し、検索にかかる時間が長くなる。その結果、異常発生要因の判定にかかる時間が長くなってしまう。
【0026】
異常が発生してから検知されるまでに長い時間がかかるケースとしては、リソースが使用されていない期間において、そのリソースに関する異常が発生しているケースがある。より具体的には、あるイベントの実行によってあるリソースに関する異常が発生したが、その時点ではリソースが使用されておらず、その後にリソースの使用が開始された時点で異常事象が出現し、異常が検知される、というケースがある。
【0027】
図1のタイムチャート4に示した例では、ログ5が示すイベントが実行されたとき、そのイベントに関係するリソースが使用されておらず、その後に時刻T5の直前でリソースの使用が開始されたことで、時刻T5で異常が検知された、と考えることができる。
【0028】
そこで、異常要因判定装置1は、メトリックM1を除く他のメトリックの中から、時刻T5の直前において対応するリソースが不使用状態であることを示すメトリックM2,M3を特定する。次に、異常要因判定装置1は、特定されたメトリックM2,M3のそれぞれについて、時刻T5の直前から過去に遡って対応するリソースが不使用状態から使用状態に変化する時刻T1,T2を特定する。そして、異常要因判定装置1は、特定された時刻T1,T2のうち最も古い時刻を、ログの検索期間の開始時刻に決定する。
【0029】
このような処理により、異常が検知された時刻T5の直前まで不使用状態になっていたリソースに関係するイベントのログをすべて検索対象に含めることができるように、検索期間の開始時刻が決定される。これにより、検索期間を必要最小限の長さに設定できる。このため、検索期間の長さを抑制しながら、検知された異常の発生要因となり得る候補イベントのログを取得できる可能性が高まる。したがって、イベントログデータベース3の検索にかかる時間を短縮し、それによって異常要因判定装置1による異常の検知から異常発生要因の判定までにかかる時間を短縮しつつ、その判定精度を高めることができる。
【0030】
〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。
図2に示す情報処理システムは、運用管理装置100と監視装置200とを含む。
【0031】
運用管理装置100は、ICT(Information and Communication Technology)インフラストラクチャ110の運用を管理する。以下、ICTインフラストラクチャを「ICTインフラ」と略称する。ICTインフラ110は、コンピュータやネットワーク機器などの各種の情報処理機器を含む。例えば、ICTインフラ110がクラウドサービスを提供するものである場合、ICTインフラ110には、クラウドサーバとして動作するサーバ装置や、サーバ装置間を接続するネットワーク機器などが含まれる。
【0032】
運用管理装置100は、ICTインフラ110に含まれる各情報処理機器に対する、運用管理に関する各種のイベント(運用イベント)を実行する。運用イベントは、ICTインフラ110における各種の構成変更や設定変更を行う処理であり、例えば、サーバ装置上で動作する仮想マシンの作成、削除、マイグレーションや、ドライバなどのプログラムの更新などがある。監視装置200は、運用イベントを実行するとともに、実行した運用イベントに関するログをデータベースに記録する。
【0033】
また、運用管理装置100は、ICTインフラ110に含まれる各情報処理機器の稼働状態を監視し、各情報処理機器からリソースに関するメトリックを収集する。メトリックは、プロセッサやメモリなどの監視対象のリソースの動作状態を示す情報であり、例えば、リソースの動作状態を評価するための尺度を与える。
【0034】
監視装置200は、運用管理装置100を介してICTインフラ110の稼働状態を監視し、異常が検知された場合にはその発生要因を解析する。具体的には、監視装置200は、運用管理装置100によって収集されたメトリックを取得し、動作の正常性を判定する。異常が検知された場合、監視装置200は、運用管理装置100から運用イベントのログを取得し、異常発生の契機となり得る運用イベントを特定する、監視装置200は、特定された運用イベントに基づいて異常発生要因を判定する。
【0035】
図3は、監視装置のハードウェア構成例を示す図である。監視装置200は、例えば、
図3に示すようなコンピュータとして実現される。
図3に示す監視装置200は、プロセッサ201、RAM(Random Access Memory)202、HDD(Hard Disk Drive)203、GPU(Graphics Processing Unit)204、入力インタフェース(I/F)205、読み取り装置206および通信インタフェース(I/F)207を備える。
【0036】
プロセッサ201は、監視装置200全体を統括的に制御する。プロセッサ201は、例えば、CPU、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ201は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0037】
RAM202は、監視装置200の主記憶装置として使用される。RAM202には、プロセッサ201に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、プロセッサ201による処理に必要な各種データが格納される。
【0038】
HDD203は、監視装置200の補助記憶装置として使用される。HDD203には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0039】
GPU204には、表示装置204aが接続されている。GPU204は、プロセッサ201からの命令にしたがって、画像を表示装置204aに表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
【0040】
入力インタフェース205には、入力装置205aが接続されている。入力インタフェース205は、入力装置205aから出力される信号をプロセッサ201に送信する。入力装置205aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0041】
読み取り装置206には、可搬型記録媒体206aが脱着される。読み取り装置206は、可搬型記録媒体206aに記録されたデータを読み取ってプロセッサ201に送信する。可搬型記録媒体206aとしては、光ディスク、半導体メモリなどがある。
【0042】
通信インタフェース207は、ネットワーク207aを介して、運用管理装置100などの他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、監視装置200の処理機能を実現することができる。なお、運用管理装置100についても、例えば、
図3に示すような構成のコンピュータとして実現することができる。
【0043】
図4は、運用管理装置および監視装置が備える処理機能の構成例を示す図である。
まず、運用管理装置100は、イベント実行部101、イベントログ検索部102およびメトリック収集部103を備える。イベント実行部101、イベントログ検索部102およびメトリック収集部103の処理は、例えば、運用管理装置100が備える図示しないプロセッサが所定のプログラムを実行することで実現される。また、運用管理装置100の図示しない記憶装置(例えばRAM)には、イベントログデータベース(DB)104とメトリックデータベース(DB)105とが記憶される。
【0044】
イベント実行部101は、ICTインフラ110に含まれる各情報処理機器に対する運用イベントを実行する。イベント実行部101は、実行された運用イベントに関するログをイベントログデータベース104に登録する。運用イベントのログには、実行された処理内容を示す情報や、実行の成否を示す情報、実行された時刻などの情報が含まれる。
【0045】
イベントログ検索部102は、例えば監視装置200からの検索依頼に応じて、イベントログデータベース104を検索し、検索された運用イベントのログを返信する。
メトリック収集部103は、ICTインフラ110に含まれる各情報処理機器からメトリックを収集し、収集されたメトリックをメトリックデータベース105に登録する。メトリックとしては、例えば、サーバ装置におけるCPU待ち時間、CPU使用率、メモリスワップアウト量、パケットロス数、ネットワーク使用率などが収集される。
【0046】
次に、監視装置200は、メトリック取得部211、正常性判定部212および要因判定部213を備える。メトリック取得部211、正常性判定部212および要因判定部213の処理は、例えば、監視装置200が備えるプロセッサ201が所定のプログラムを実行することで実現される。また、監視装置200の記憶装置(例えばRAM202)には、メトリックデータベース(DB)221、判定ルールデータベース(DB)222および判定結果データベース(DB)223が記憶される。
【0047】
メトリック取得部211は、運用管理装置100のメトリックデータベース105に登録されたメトリックを取得して、メトリックデータベース221に登録する。
正常性判定部212は、メトリックデータベース221に登録されたメトリックに基づいて、メトリックに関する正常性判定処理を定期的に実行する。この正常性判定処理、直近の一定時間内に運用管理装置100によって収集されたメトリックを用いて実行される。正常性判定部212は、メトリックの異常が検知されると、そのメトリック(異常検知メトリック)を要因判定部213に通知する。
【0048】
判定ルールデータベース222には、異常検知メトリックと、そのメトリックの異常発生の要因となり得る運用イベントと、異常発生要因とが、あらかじめ対応付けて登録されている。要因判定部213は、判定ルールデータベース222に基づいて、正常性判定部212から通知された異常検知メトリックについての異常発生の要因となり得る運用イベント(要因イベント)を特定する。
【0049】
要因判定部213は、現時刻から所定時間だけ前の時刻までの期間に実行された要因イベントのログをイベントログデータベース104から検索するように、イベントログ検索部102に依頼する。要因判定部213は、イベントログデータベース104から要因イベントのログが検索された場合、判定ルールデータベース222から、検索されたログが示す運用イベントに対応する異常発生要因を抽出し、異常発生要因の判定結果を判定結果データベース223に登録する。
【0050】
図5は、メトリックデータベースのデータ構成例を示す図である。この
図5では監視装置200のメトリックデータベース221について示すが、運用管理装置100のメトリックデータベース105も同様のデータ構成を有する。
【0051】
メトリックデータベース221には、メトリックが収集された収集時刻に対して、メトリックの種別(監視項目)ごとのメトリックの値が対応付けて登録される。
図5の例では、メトリックの項目として、ホスト#1のCPU使用率、ホスト#1のNIC(Network Interface Card)#1におけるネットワーク使用率、ホスト#1のNIC#2におけるネットワーク使用率が登録されている。この例では、少なくとも、仮想マシンが動作するサーバ装置であるホスト#1が、CPUや2つのNIC#1,#2を備えているものとする。
【0052】
図6は、判定ルールデータベースのデータ構成例を示す図である。判定ルールデータベース222は、異常が検知されたメトリック(異常検知メトリック)から、異常発生要因を推定するために参照されるデータベースである。判定ルールデータベース222には、異常検知メトリックに対して、異常発生の要因となり得る運用イベントである要因イベントと、異常発生の要因とが対応付けて登録される。これらの情報は、判定ルールデータベース222にあらかじめ登録される。
【0053】
図6の例では、異常検知メトリックがCPU待ち時間の場合に、要因イベントとして仮想マシン(Virtual Machine:VM)のマイグレーションが考えられ、そのマイグレーションによるCPUの競合が異常発生要因になり得ることが登録されている。また、異常検知メトリックがメモリスワップアウト量の場合に、要因イベントとして仮想マシンのマイグレーションが考えられ、そのマイグレーションによるメモリの競合が異常発生要因になり得ることが登録されている。
【0054】
さらに、異常検知メトリックがパケットロス数の場合に、要因イベントとして仮想マシンのマイグレーションが考えられ、そのマイグレーションによるネットワークの競合が異常発生要因になり得ることが登録されている。また、異常検知メトリックがパケットロス数の場合には他の例として、要因イベントとしてNICドライバの更新が考えられ、そのNICドライバの不具合が異常発生要因になり得ることが登録されている。
【0055】
図7は、判定結果データベースのデータ構成例を示す図である。判定結果データベース223には、判定結果を示す情報として、異常検知時刻、監視ホスト名、監視箇所、異常検知メトリックおよび要因が対応付けて登録されている。異常検知時刻は、異常が検知された時刻を示す。監視ホスト名は、監視対象のホストを示す。監視箇所は、そのホストにおける監視対象の箇所を示す。異常検知メトリックは、異常が検知されたメトリックを示す。要因は、判定された異常発生要因を示す。
【0056】
次に、
図8、
図9を用いて、異常発生の要因判定処理についての比較例を説明する。
図8は、異常発生の要因判定処理についての比較例を示す第1の図である。
監視装置200の正常性判定部212は、運用管理装置100によって収集されたメトリックに基づいて、ICTインフラ110の稼働状況の正常性を判定する。このような正常性の判定時刻は一定時間間隔で設定され、正常性判定部212は、判定時刻を基準とした直近の一定時間に収集されたメトリックに基づいて、正常性の判定を行う。
図8では例として、3分間隔で正常性の判定時刻が設定されている。
【0057】
収集された複数項目のメトリックの中には、正常性判定のために使用される1以上の特定のメトリックがあらかじめ決められている。
図8では、正常性判定のために使用されるメトリックとして、CPU使用率、メモリスワップアウト量、パケットロス数が例示されている。なお、メモリスワップアウト量は、一定期間(前回の判定時刻から現在の判定時刻までの期間)においてメモリからHDDやSSDに退避されたデータの量を示し、パケットロス数は、一定期間に発生したパケットロスの回数を示す。
【0058】
正常性判定部212は、例えば、メトリックごとに設定された判定閾値に基づき、メトリックの値が判定閾値を超えた場合、あるいは判定閾値未満になった場合に、そのメトリックについての異常が検知されたと判定する。例えば、
図8に示したCPU使用率やメモリスワップアウト量、パケットロス数の場合、値が判定閾値を超えた場合に異常検知と判定される。なお、実際には、互いに関連する複数項目のメトリックの値に基づいて正常性(および異常検知)が判定されてもよい。例えば、一定期間でのパケットロス数と、一定期間での送信パケット数の相関関係に基づいて、正常か異常かが判定されてもよい。
【0059】
正常性判定部212によってあるメトリックについて異常が検知されると、要因判定部213は、判定ルールデータベース222を参照して、異常が検知されたメトリックについての異常発生の要因となり得る運用イベント(要因イベント)を特定する。
図8の例では、10時9分においてパケットロス数についての異常が検知されたとする。ここで、
図6に示した判定ルールデータベース222の例では、パケットロス数に対して要因イベントとしてVMマイグレーションとNICドライバ更新とが登録されている。したがって、
図8の例では要因イベントとしてVMマイグレーションとNICドライバ更新が特定される。
【0060】
また、要因判定部213は、現在の判定時刻から前回の判定時刻までの期間(10時6分から10時9分までの期間)に実行された要因イベントのログの検索を、運用管理装置100のイベントログ検索部102に依頼する。
図8の例では、NICドライバを更新したことを示すログLG1が検索されたとする。この場合、要因判定部213は、判定ルールデータベース222からパケットロス数およびNICドライバ更新に対応付けられた異常発生の要因を抽出する。
図6の判定ルールデータベース222に基づく場合、要因としてNICドライバの不具合が抽出される。要因判定部213は、このような異常発生要因の判定結果を判定結果データベース223に登録する。
【0061】
ここで、ICTインフラ110で発生する異常は、ICTインフラ110の運用管理において実行される構成変更や設定変更のイベント(運用イベント)を契機として発生することが多い。上記処理によれば、異常が検知されたメトリックに関連する運用イベントのログに基づいて異常発生要因が判定されるので、要因判定精度を高めることができる。
【0062】
ところが、上記の方法では、次の
図9に例示するような場合に、適切な要因イベントのログを検索により取得できず、異常判定要因を正確に判定できないという問題がある。
図9は、異常発生の要因判定処理についての比較例を示す第2の図である。異常の事象中には、要因イベントの実行に伴って異常が発生したときに、すぐには異常が検知されず、時間が経過してから異常が検知されるものがある。その例として、要因イベントの実行によりあるリソースに異常が発生したが、その時点でリソースが使用されておらず、その後にリソースが使用された時点で異常が検知される、というものがある。
【0063】
図9の例では、10時9分から12分までの期間に、NIC#1のドライバを更新するという要因イベントが実行され、これに伴ってNIC#1のドライバ(またはNIC#1)の動作に異常が発生したとする。ただし、この時点でNIC#1のドライバは使用されていなかった(NIC#1で通信が行われていなかった)とする。この場合、NIC#1による通信ではパケットロスが発生しないので、パケットロス数というメトリックからは異常は検知されない。
【0064】
しかし、その後の10時15分から18分までの期間においてNIC#1による通信が開始されたとする。NIC#1のドライバ(またはNIC#1)には異常が発生しているので、NIC#1によって開始された通信ではパケットロスが発生する。このため、10時18分における正常性判定処理で、パケットロス数から異常が検知される。このように、要因イベントの実行から長い時間遅れて異常が検知されるケースがある。
【0065】
ここで、
図8で説明したように、イベントログデータベース104から運用イベントのうち要因イベントのログを検索する期間を、正常性の判定周期に相当する時間とする。この場合、
図9において10時18分にパケットロス数から異常が検出されると、その直前の3分間がログの検索期間(P1とする)となる。しかし、検索期間P1においてはNIC#1のドライバ更新を示すログLG2を取得できないので、異常発生要因を判定できない。
【0066】
このような問題を解決する方法としては、要因イベントのログの検索期間を長くする方法が考えられる。例えば
図9に示すように、より長い検索期間P2を設定することで、NIC#1のドライバ更新を示すログLG2を取得できるようになる。しかし、検索期間を長くするほど、イベントログデータベース104における検索対象のイベントログ数が多くなり、大量のイベントログの中から検索条件に合致する要因イベントのログを検索しなければならなくなる。このため、運用管理装置100における検索処理にかかる時間が長くなり、それによって監視装置200による異常発生要因の判定処理全体にかかる時間も長くなってしまう。また、運用管理装置100における検索処理負荷が増大することで、場合によっては運用管理装置100による運用イベントの実行処理に支障が出る可能性もある。
【0067】
図10は、第2の実施の形態における異常発生の要因判定処理を示す図である。本実施の形態において、監視装置200の要因判定部213は、次のような手順で要因イベントログの検索期間を決定する。この
図10では、
図9と同様にNIC#1のドライバ更新に起因する異常がパケットロス数から検知されたものとする。
【0068】
10時18分にパケットロス数から異常が検知されると、要因判定部213は、その時刻を要因イベントログの検索期間の終了時刻Teとする。また、要因判定部213は、メトリックデータベース221を参照し、パケットロス数とは異なる他のメトリックの中から、直前の正常性判定時刻において対応するリソースが使用されていないことを示すメトリックを特定する。
図10の例では、他のメトリックとして、リソースの使用量を示すメトリックであるCPU使用率およびネットワーク使用率が存在するとする。これらのメトリックは、数値が0の場合にリソースが使用されていないことを示す。このため、
図10の例では、数値が0であるメトリックとして、NIC#1のネットワーク使用率と、NIC#2のネットワーク使用率が特定される。
【0069】
次に、要因判定部213は、特定されたメトリックのそれぞれについて過去に遡って数値を取得し、数値が0より大きい値に転じた時刻を特定する。これにより、メトリックに対応するリソースが使用状態であった期間の終端が特定される。
図10の例では、10時6分においてNIC#1のネットワーク使用率が0%から30%に転じており、10時9分においてNIC#2のネットワーク使用率が0%から20%に転じている。したがって、数値が0より大きい値に転じた時刻として、NIC#1のネットワーク使用率については10時6分が特定され、NIC#2のネットワーク使用率については10時9分が特定される。
【0070】
要因判定部213は、このようにして特定された時刻の中から最も古い時刻を特定し、その時刻を要因イベントログの検索期間の開始時刻Tsとする。
図10の例では、NIC#1のネットワーク使用率についての時刻である10時6分が、検索期間の開始時刻Tsと特定される。これにより、開始時刻Tsから前述の終了時刻Teまでの期間が検索期間に決定される。このような検索期間から要因イベントログが検索されることで、要因判定部213は、NIC#1のドライバ更新を示すログLG2を取得でき、異常発生要因を正確に判定できる。
【0071】
前述のように、あるリソースに関する異常の発生から検知までに時間がかかる場合、その異常は、リソースが使用されていない期間に実行された運用イベントを契機として発生した可能性がある。上記の処理では、メトリックの値が0より大きい値に転じた時刻のうち、最も古い時刻が検索期間の開始時刻とされる。これにより、異常が検知される直前まで使用されていない状態になっていたリソースに関係する運用イベントのログを、すべて検索対象に含めることができる。すなわち、要因イベントログの検索期間を必要最小限の長さに設定できる。このため、検索期間の長さを抑制しながら、検知された異常の発生の契機となった運用イベントのログを取得できる可能性が高まる。したがって、運用管理装置100における検索処理時間を短縮し、それによって監視装置200による異常発生要因の判定処理にかかる時間を短縮しつつ、その判定精度を高めることができる。また、異常発生要因の判定精度を高めつつ、運用管理装置100における検索処理負荷を抑制できる。
【0072】
なお、
図10では、異常の発生から検知までに時間がかかる例として、パケットロス数の異常検知に応じて、他のメトリックとしてネットワーク使用率の数値変化が解析される例を示した。他の例としては、メトリックとしてCPU待ち時間から異常が検知された場合に、他のメトリックとしてCPU使用量の数値変化が解析される場合が考えられる。
【0073】
図11は、第2の実施の形態における監視装置の処理手順を示すフローチャートの例である。
図11の処理は、正常性の判定時刻ごとに実行される。
[ステップS11]メトリック取得部211は、運用管理装置100のメトリックデータベース105から、現判定時刻から前回の判定時刻までの期間に収集されたメトリックを取得し、メトリックデータベース221に登録する。
【0074】
[ステップS12]正常性判定部212は、ステップS11で登録されたメトリックのうちあらかじめ決められた1以上のメトリックに基づいて、ICTインフラ110の正常性を判定する。メトリックに基づいて異常が検知された場合、処理がステップS13に進められる。この場合、異常が検知されたメトリックが正常性判定部212から要因判定部213に通知される。そして、ステップS13~S17の処理は、通知されたメトリックごとに実行される。一方、いずれのメトリックからも異常が検知されなかった場合、
図11の処理が終了される。
【0075】
[ステップS13]要因判定部213は、判定ルールデータベース222に基づいて、異常が検知されたメトリックに対応する要因イベント(異常発生要因の候補となる運用イベント)を特定する。
【0076】
[ステップS14]要因判定部213は、異常が検知されたメトリックとは異なる他のメトリックの中から、異常検知時刻の直前の正常性判定時刻において、対応するリソースが不使用状態であることを示すメトリックを特定する。例えば、リソースの使用量を示すメトリックの中から、異常検知時刻の直前の正常性判定時刻において数値が0であるメトリックを特定する。
【0077】
[ステップS15]要因判定部213は、メトリックデータベース221から、ステップS14で特定された各メトリックについて過去に遡って数値を取得する。そして、要因判定部213は、各メトリックについて、リソースの使用状態が不使用状態から使用状態に変化した時刻を特定する。上記のようにリソースの使用量を示すメトリックの場合、メトリックの値が0からそれより大きい値に転じた時刻が特定される。
【0078】
なお、リソースの使用量を示すメトリックを用いた場合、ステップS14,S15では、メトリックの値が0か、それより大きいかという判定基準が用いられたが、この判定基準としては0より大きい判定閾値が用いられてもよい。例えば、判定閾値を0.01とし、ステップS14では数値が0.01以下のメトリックが特定され、ステップS15ではメトリックの値が0.01以下から0.01を超えた時刻が特定されてもよい。
【0079】
[ステップS16]要因判定部213は、ステップS15で特定された時刻の中から最も古い時刻を特定し、その時刻を要因イベントログの検索期間の開始時刻Tsに決定する。
【0080】
[ステップS17]要因判定部213は、現判定時刻(終了時刻Te)から上記の開始時刻Tsまでの期間を検索期間とし、この検索期間と、ステップS13で特定された要因イベントの識別情報とを引数で指定して、運用管理装置100に対してイベントログの検索を依頼する。運用管理装置100のイベントログ検索部102は、指定された検索期間に収集された運用イベントのログの中から、指定された要因イベントのログを抽出して、監視装置200に返信する。要因判定部213は、抽出された要因イベントのログを受信し、取得する。
【0081】
[ステップS18]要因判定部213は、判定ルールデータベース222を参照し、異常が検知されたメトリック(異常検知メトリック)と、ステップS17で取得されたログが示す要因イベントとに対応付けられた要因を取得する。要因判定部213は、取得された要因を異常発生要因と判定し、その判定結果を出力する。例えば、判定結果は、異常検知時刻、監視ホスト名、監視箇所、異常検知メトリック、および取得された要因の組み合わせとして判定結果データベース223に登録される。
【0082】
ここで、監視ホスト名および監視箇所は、異常検知メトリック、ステップS17で取得されたログが示す要因イベントの内容、これらに基づく異常発生要因の少なくとも1つ、または2つ以上の組み合わせから特定される。例えば、要因イベントがNICドライバ更新の場合、更新されたNICドライバに対応するNICが監視箇所として特定され、そのNICが搭載されたホスト(サーバ装置)の名前が監視ホスト名として特定される。また、異常検知メトリックがCPU待ち時間、要因イベントがVMマイグレーションの場合、監視箇所はCPU待ち時間の検出対象とされたCPUとして特定され、そのCPUが搭載されたホストの名前が監視ホスト名として特定される。
【0083】
なお、ステップS17の検索で複数の要因イベントのログが取得された場合、ステップS18では、各要因イベントに基づく異常発生要因が、それぞれ可能性のある異常発生要因として出力されればよい。
【0084】
〔第2の実施の形態の変形例〕
第2の実施の形態における監視装置200の処理の一部は、以下のように変形されてもよい。
【0085】
図12は、変形例における異常発生の要因判定処理を示す図である。この
図12では、
図9、
図10と同様にNIC#1のドライバ更新に起因する異常がパケットロス数から検知されたものとする。
【0086】
図9、
図10、
図12のように異常の発生から検知までに時間がかかるケースでは、使用されていない状態のリソースに関して異常が発生した後、そのリソースの使用が開始されることで異常が検知される。そこで、要因判定部213は、メトリックの異常が検知されると、それとは異なる他のメトリックの中から、メトリックの値に基づき、その直前の正常性判定時刻から現判定時刻までの期間に対応するリソースの使用が開始されたメトリックを特定する。そして、要因判定部213は、特定されたメトリックについて過去に遡って数値を取得し、取得した数値に基づき、対応するリソースが使用状態であった期間の終端を特定して、要因イベントログの検索期間の開始時刻を決定する。
【0087】
図12の例では、10時18分にパケットロス数から異常が検知されると、要因判定部213は、パケットロス数とは異なる、リソースの使用量を示す他のメトリックの中から、直前の正常性判定時刻で数値が0であり、現判定時刻で数値が0を超えたメトリックを特定する。
図12ではこのようなメトリックとして、NIC#1のネットワーク使用率が特定される。すると、要因判定部213は、特定されたネットワーク使用率の数値を過去に遡って取得し、数値が0からそれより大きい値に転じた時刻を特定する。
図12では、10時6分においてNIC#1のネットワーク使用率が0%から30%に転じており、数値が0より大きい値に転じた時刻として10時6分が特定され、この時刻が検索期間の開始時刻Tsと決定される。
【0088】
以上の処理によれば、対応するリソースが使用状態であった期間の終端を特定するための数値の変化を解析する対象のメトリックを絞り込むことができ、検索期間の開始時刻を決定するための処理負荷を軽減でき、その処理時間を短縮できる。また、異常検知時刻の直前において対応するリソースの使用が開始されたメトリックを特定することで、検知された異常に関連する可能性の高いメトリックだけを数値変化の解析対象として絞り込むことができる。このため、異常発生要因の判定精度を落とさずに、検索期間の決定処理時間を短縮でき、その結果、異常発生要因の判定処理全体を短縮できる。
【0089】
図13は、変形例における監視装置の処理手順を示すフローチャートの例である。本変形例では、
図11に示したフローチャートの処理ステップのうち、ステップS14の処理が次のステップS14aの処理に変更される。
【0090】
[ステップS14a]要因判定部213は、異常が検知されたメトリックとは異なる他のメトリックの中から、異常検知時刻の直前の正常性判定時刻において、対応するリソースが不使用状態であり、かつ、異常検知時刻において使用状態に変化しているメトリックを特定する。例えば、リソースの使用量を示すメトリックの中から、異常検知時刻の直前の正常性判定時刻において数値が0であり、異常検知時刻において数値が0より大きいメトリックを特定する。
【0091】
次のステップS15では、ステップS14aで特定された各メトリックが数値取得の対象となる。これにより、第2の実施の形態と比較して、数値取得の対象となるメトリックが絞り込まれる。
【0092】
なお、上記の各実施の形態に示した装置(例えば、異常要因判定装置1、運用管理装置100、監視装置200)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。
【0093】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0094】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【0095】
1 異常要因判定装置
2 メトリックデータベース
3 イベントログデータベース
4 タイムチャート
5 ログ
M1~M4 メトリック
S1~S5 ステップ
T1~T5 時刻