JP2021149849A - 障害原因特定システム、障害原因特定方法および障害原因特定プログラム - Google Patents

障害原因特定システム、障害原因特定方法および障害原因特定プログラム Download PDF

Info

Publication number
JP2021149849A
JP2021149849A JP2020051630A JP2020051630A JP2021149849A JP 2021149849 A JP2021149849 A JP 2021149849A JP 2020051630 A JP2020051630 A JP 2020051630A JP 2020051630 A JP2020051630 A JP 2020051630A JP 2021149849 A JP2021149849 A JP 2021149849A
Authority
JP
Japan
Prior art keywords
variable
objective
node
abnormality
explanatory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020051630A
Other languages
English (en)
Other versions
JP7415714B2 (ja
Inventor
裕志 藤田
Hiroshi Fujita
裕志 藤田
幸洋 渡辺
Koyo Watanabe
幸洋 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020051630A priority Critical patent/JP7415714B2/ja
Priority to EP21153425.0A priority patent/EP3885915A1/en
Priority to US17/166,513 priority patent/US20210294683A1/en
Publication of JP2021149849A publication Critical patent/JP2021149849A/ja
Application granted granted Critical
Publication of JP7415714B2 publication Critical patent/JP7415714B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0718Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an object-oriented system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】障害原因の特定に要する時間を短縮することで、ICTインフラストラクチャの運用を効率化する。【解決手段】障害原因特定システム150は、第1の考え方(「複数の異常が同時に発生する場合、共通の要因が存在する」)に基づいて、ネットワークシステム100の構成情報からアプリケーションに異常が生じたノードと関連のある関連ノードを抽出する。抽出した関連ノードの各メトリックを「目的変数」とし、その他を「説明変数」の候補とし、その候補中から、各目的変数について予測モデルに使える説明変数を選択する。目的変数の異常をJIT判定により検出し、異常を検出した目的変数と、その説明変数を検出する。つぎに、第2の考え方(「複数の異常に共通する要因があれば、それが異常原因である可能性が高い」)に基づいて、異常を検出した目的変数の各説明変数に共通する目的変数の数を抽出し、その数が最多のものが、異常原因候補第1位となる。【選択図】図1

Description

本発明は、障害原因特定システム、障害原因特定方法および障害原因特定プログラムに関する。
近年、コンピュータネットワークシステムにおいて、ITサービスのコンテナ化、マイクロサービス化により、サービスを構成する要素が増加している。それにともない、ICT(Information and Communication Technology)インフラストラクチャの運用管理が複雑化しており、その運用の効率化が求められている。そのため、システム内で障害が発生した場合に、その異常箇所を特定する技術がある。
また、関連する先行技術としては、コンピュータネットワークシステムにおいて、障害が発生した第1機器を示す障害発生情報を取得し、その第1機器を起点として、障害の影響がおよぶ可能性のある第1影響範囲内に存在する複数の第2機器を探索する。そして、複数の第2機器それぞれについて、異常が起きているか否かを判定し、異常が起きている第3機器を起点として、第3機器の異常の影響がおよぶ可能性のある第2影響範囲内に存在するか否かの判定結果に基づいて、複数の第2機器それぞれについてランクを決定する技術がある(下記特許文献1を参照)。これにより、障害の影響を受ける可能性の高さの違いが判別可能となる影響範囲を特定でき、影響がすでに出ている機器だけでなく、まだ検知されていないが影響を受ける機器も探索し、障害影響のランク付けをおこない、障害影響範囲を絞り込むことができる。
特開2018−205811号公報
しかしながら、従来技術にあっては、異常(障害)の有無を判定することができても、障害の原因箇所を明らかにすることができない。したがって、異常箇所をそれぞれ確認する必要があるため、複数の異常箇所がある場合には時間がかかるという問題点がある。また、関連する先行技術にあっては、障害影響範囲を絞り込んで、影響を受ける箇所をそれぞれ確認しても、障害の原因特定には時間がかかるという問題点がある。
一つの側面では、本発明は、障害原因の特定に要する時間を短縮することで、ICTインフラストラクチャの運用を効率化することを目的とする。
一つの実施態様では、複数のノードから構成されるネットワークシステムにおいて異常が発生したノードと関連のある関連ノードを抽出し、抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出し、算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する、制御部を有する障害原因特定システムが提供される。
本発明の一側面によれば、障害原因の特定に要する時間を短縮することで、ICTインフラストラクチャの運用を効率化することができる。
図1は、実施の形態にかかる障害原因特定システム、障害原因特定方法および障害原因特定プログラムの概要の一例を示す説明図である。 図2は、ネットワークシステムのシステム構成の一例を示す説明図である。 図3Aは、ネットワークシステムを構成する管理サーバ、ネットワーク(NW)機器、データベース、サーバのハードウェア構成の一例を示すブロック図である。 図3Bは、ネットワークシステムを構成するユーザ端末装置のハードウェア構成の一例を示すブロック図である。 図4は、実施の形態にかかる障害原因特定システムの機能的構成の一例を示すブロック図である。 図5は、ノード検出部に対する入力データ(「構成情報」)、出力データ(「関連ノード情報」)の関係の一例を示す説明図である。 図6は、ノード検出処理の手順の一例を示すフローチャートである。 図7は、説明変数選択部に対する入力データ(「関連ノード情報」)、出力データ(「説明変数選択結果」)の関係の一例を示す説明図である。 図8は、説明変数選択処理の手順の一例を示すフローチャートである。 図9は、JIT判定部に対する入力データ(「説明変数選択結果」)、出力データ(「異常判定結果」)の関係の一例を示す説明図である。 図10は、JIT判定処理の手順の一例を示すフローチャートである。 図11は、異常検出変数抽出部に対する入力データ(「異常判定結果」)、出力データ(「異常検出した目的変数」)の関係の一例を示す説明図である。 図12は、異常検出変数抽出処理の手順の一例を示すフローチャートである。 図13は、共通目的変数算出部に対する入力データ(「異常検出した目的変数」)、出力データ(「共通する目的変数の数」)の関係の一例を示す説明図である。 図14は、共通目的変数算出処理の手順の一例を示すフローチャートである。 図15は、優先順位設定部に対する入力データ(「共通する目的変数の数」)、出力データ(「調査優先度」)の関係の一例を示す説明図である。 図16は、優先順位設定処理の手順の一例を示すフローチャートである。 図17は、表示画面の一例を示す説明図である。
以下に図面を参照して、本発明にかかる、障害原因特定システム、障害原因特定方法および障害原因特定プログラムの実施の形態を詳細に説明する。
(実施の形態)
(障害原因特定処理の概要)
図1は、実施の形態にかかる障害原因特定システム、障害原因特定方法および障害原因特定プログラムの概要の一例を示す説明図である。図1においては、ネットワークシステム100は、アプリケーション(App1(101)〜App4(104))、コンテナ(コンテナ1(111)〜コンテナ4(114))、バーチャルマシン(VM1(121)、VM2(122))、サーバ(Server1(131)、Server2(132))、スイッチ(SW)141などのノードにより構成されている。
また、各ノードには、それぞれ稼働データである「メトリック」が存在する。図1に示すように、アプリケーション(App1(101)〜App4(104))のメトリックは、具体的には、たとえば、(HTTPリクエストなどの)応答時間、リクエスト数などである。また、コンテナ(コンテナ1(111)〜コンテナ4(114))、バーチャルマシン(VM1(121)、VM2(122))、サーバ(Server1(131)、Server2(132))のメトリックは、たとえば、コア使用時間、メモリ使用量、ディスクIO(書き込み/読み込み)量、NW(ネットワーク)IO(受信/送信)量などである。また、スイッチ(SW)141のメトリックは、たとえば、NWIO量などである。ネットワークシステム100において障害(異常)箇所は、この「ノード+メトリック」の単位であるとする。
このネットワークシステム100において障害(異常)が発生した場合に、障害原因特定システム150は、その障害原因、すなわち、「ノード+メトリック」の単位で障害箇所を特定する。その際に、障害原因特定システム150は、2つの考え方に基づいて、障害原因の特定をおこなう。第1は、『複数の異常が同時に発生する場合、共通の要因が存在する』という考え方である。第2は、『複数の異常に共通する要因があれば、それが異常原因である可能性が高い』という考え方である。
第1の考え方(『複数の異常が同時に発生する場合、共通の要因が存在する』)に基づいて、障害原因特定システム150は、ネットワークシステム100の構成情報からアプリケーションに異常が生じたノード(図1において、障害マークを付したノード(たとえば、App1(101)、コンテナ3(113)などの6個のノード))と関連のある関連ノード(図1において、楕円で囲ったノード(たとえば、コンテナ1(111)、App3(103)などの9個のノード))を抽出する。
つぎに、障害原因特定システム150は、抽出した関連ノードと、当該関連ノードの各メトリック(各ノードの応答時間、リクエスト数、NWIO量など)のそれぞれの組み合わせを「目的変数」とし、その他のノードとメトリックの組み合わせを「説明変数」の候補とする。そして、「説明変数」の候補の中から、各目的変数について近似モデルに使える説明変数を選択する。ここで、「目的変数」とは、予測したい変数、すなわち、物事の結果を示す。また、「説明変数」とは、目的変数を説明する変数、すなわち、物事の原因を示す。したがって、「目的変数」が、障害が発生したノードに関連するノードとそのメトリックとの組み合わせであり、「説明変数」が、その障害の原因となったノードとそのノードのメトリックとの組み合わせである。
つぎに、目的変数の異常を検出する。具体的には、たとえば、選択した説明変数を用いて、JIT(Just−In−Time)判定をおこない、実際に異常が発生しているかを検証する。JIT判定の詳細な内容については、後述する。そして、異常を検出した目的変数(ノード+メトリックの組み合わせ)と、その説明変数(ノード+メトリックの組み合わせ)を検出する。
その後、第2の考え方(『複数の異常に共通する要因があれば、それが異常原因である可能性が高い』)に基づいて、障害原因特定システム150は、異常を検出した目的変数の各説明変数(ノード+メトリックの組み合わせ)に共通する目的変数(ノード+メトリックの組み合わせ)の数を抽出する。そして、その説明変数を目的変数としたとき異常検出しており、かつ、共通する目的変数の数が大きい順に調査の優先順位を付ける。共通する目的変数の数が最多のものが、異常原因候補第1位となる。
図1において、説明変数のうち、ノード+メトリックの組み合わせ:「VM1(121)・NWIO量」が、共通する3つの目的変数(「App1(101)・応答時間」、「App3(103)・応答時間」、「VM2(122)・NWIO量」)を有しており、障害原因特定システム150は、この説明変数(「VM1(121)・NWIO量」)が、共通する目的変数の数が最多であり、異常原因候補第1位であることを特定することができる。
このように、障害原因特定システム150は、上述した2つの考え方に基づいて、障害原因特定処理をおこなうことで、より適切な異常原因候補の順位付けをすることができる。
(ネットワークシステムのシステム構成)
図2は、ネットワークシステムのシステム構成の一例を示す説明図である。図2において、ICTインフラストラクチャを実現するネットワークシステム100は、ネットワーク200によってそれぞれ接続された、管理サーバ201、ネットワーク機器202、データベース203、サーバ204、ユーザ端末装置205などの各ハードウェア装置あるいはハードウェア機器(以下、「ハードウェア装置」という)から構成される。また、サーバ204には、各種のアプリケーション206がインストールされている。
ネットワーク200は、具体的には、たとえば、Local Area Network(LAN)や、広域通信網であるWide Area Network(WAN)などである。ネットワーク200の通信形式は、有線通信であってもよく、また、無線通信であってもよく、有線通信と無線通信とが混在していてもよい。
管理サーバ201は、たとえば、ネットワーク200における通信処理を管理するハードウェア装置である。また、ネットワーク機器202は、たとえば、データ通信の流れを司るハードウェア機器である。ネットワーク機器202は、具体的には、たとえば、スイッチ(SW)やルーターなどによって構成される。データベース203は、たとえば、検索や蓄積が容易にできるよう整理された情報を収集し、蓄積したハードウェア装置である。サーバ204は、たとえば、サービスや機能を提供するコンピュータ(ハードウェア装置)である。ユーザ端末装置205は、たとえば、ユーザが操作するコンピュータ(ハードウェア装置)である。
これらのハードウェア装置201〜205における稼働データ(メトリック)には、たとえば、「CPU(Central Processing Unit)使用率」、「プロセッサーのエラーイベント数」、「実行キューの長さ」、「メモリ使用量」、「メモリ不足エラーイベント数」、「OOM(Out Of Memory)キラーイベント数」、「スワップ使用量」、「読み取り・書き込み平均待機時間」、「読み取り量・書き込み量」、「ファイルシステムエラー・ディスクエラー数」、「I/O(Input/Output)キューの深さ」、「ネットワークドライバキュー長」、「1秒当たりの受信バイト数・送信バイト数・パケット数」、「ネットワークデバイスエラー」、「ドロップされたパケット」などが含まれていてもよい。
アプリケーション206は、たとえば、ユーザの業務に応じて作成されたプログラム(ソフトウェア)である。アプリケーション206には、たとえばWEBアプリケーションなどがある。アプリケーション206は、図1に示したアプリケーション101〜104のほか、コンテナ111〜114や、バーチャルマシン121、122などが含まれていてもよい。
アプリケーション206の一例としてのWEBアプリケーションにおける稼働データ(メトリック)には、「ページの平均接続時間」、「平均レスポンス時間」、「トランザクション中断数」、「httpリクエスト数」などが含まれていてもよい。
(ネットワークシステムのハードウェア構成)
図3Aは、ネットワークシステムを構成する管理サーバ、ネットワーク(NW)機器、データベース、サーバのハードウェア構成の一例を示すブロック図である。図3Aにおいて、各ハードウェア装置、すなわち、管理サーバ201、ネットワーク機器202、データベース203、サーバ204は、CPU301と、メモリ302と、ネットワークI/F(Int1erface)303と、記録媒体I/F304と、記録媒体305と、を有する。また、各構成部301〜304は、バス300によってそれぞれ接続されている。
ここで、CPU301は、各ハードウェア装置の全体の制御を司る。メモリ302は、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、たとえば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。これにより、たとえば、サーバ204は、サーバ204にインストールされているアプリケーション206を実行することができる。
ネットワークI/F303は、通信回線を通じてネットワーク200に接続され、ネットワーク200を介して他の装置(たとえば、他のハードウェア装置201〜205など)に接続される。そして、ネットワークI/F303は、ネットワーク200と自装置内部とのインタフェースを司り、他の装置からのデータの入出力を制御する。ネットワークI/F303には、たとえば、モデムやLANアダプタなどを採用することができる。
記録媒体I/F304は、CPU301の制御にしたがって記録媒体305に対するデータのリード/ライトを制御する。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する。記録媒体305としては、たとえば、磁気ディスク、光ディスクなどが挙げられる。
なお、ハードウェア装置201〜205は、上述した構成部301〜305のほかに、たとえば、図示を省略する、SSD(Solid State Drive)、キーボード、ポインティングデバイス、ディスプレイなどを有することにしてもよい。
図3Bは、ネットワークシステムを構成するユーザ端末装置のハードウェア構成の一例を示すブロック図である。図3Bにおいて、ユーザ端末装置205は、CPU351と、メモリ352と、ネットワークI/F353と、ディスプレイ354と、入出力装置355と、を有する。また、各構成部351〜355は、バス350によってそれぞれ接続される。
CPU351は、図3Aに示したCPU301と同様に、ユーザ端末装置205の全体の制御を司る。メモリ352は、図3Aに示したメモリ302と同様に、たとえば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、たとえば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU351のワークエリアとして使用される。メモリ352に記憶されるプログラムは、CPU351にロードされることで、コーディングされている処理をCPU351に実行させる。
ネットワークI/F353は、図3Aに示したネットワークI/F303と同様に、通信回線を通じてネットワーク200に接続され、ネットワーク200を介して他の装置(たとえば、他のハードウェア装置201〜205など)に接続される。そして、ネットワークI/F353は、ネットワーク200と自装置内部とのインタフェースを司り、他の装置からのデータの入出力を制御する。ネットワークI/F353には、たとえば、モデムやLANアダプタなどを採用することができる。
ディスプレイ354は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ354としては、たとえば、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどを採用することができる。このディスプレイ354によって、後述する図17に示す表示画面を表示することができる。
入出力装置355は、文字、数字、各種指示などの入力のためのキーを有し、データの入力をおこなう。入出力装置355は、キーボードや、マウスなどのポインティングデバイスであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。また、入出力装置405は、プリンタなどの印刷装置であってもよい。なお、ユーザ端末装置205は、上述した構成部のほかに、たとえば、SSD、HDD(Hard Disk Drive)などを有することにしてもよい。
(障害原因特定システムの機能的構成)
図4は、実施の形態にかかる障害原因特定システムの機能的構成の一例を示すブロック図である。図4において、障害原因特定システム150は、制御部400を有する。そして、この制御部400は、ノード検出部401、説明変数選択部402、JIT(Just−In−Time)判定部403、異常検出変数抽出部404、共通目的変数算出部405、優先順位設定部406の各構成部を含んでいる。
制御部400は、図2に示したネットワークシステム100のハードウェア装置によってその機能を実現することができる。すなわち、制御部400は、図3Aに示したハードウェア装置201〜204のCPU301が、メモリ302や記録媒体305に記録されたプログラムを実行することによって、その機能を実現することができる。あるいは、図3Bに示したユーザ端末装置205のCPU351が、メモリ352に記録されたプログラムを実行することによって、その機能を実現することができる。制御部400は、各構成部401〜406の機能を、いずれかのハードウェア装置201〜205のいずれか、具体的には、たとえば、ネットワークシステム100の管理サーバ201によって実現するようにしてもよい。また、制御部400は、各構成部401〜406の各機能を、管理サーバ201および管理サーバ201以外のハードウェア装置202〜205によって、分散して実現するようにしてもよい。
ノード検出部401は、複数のノードから構成されるネットワークシステム100において異常が発生したノードと関連のある関連ノードを抽出する。ノードの異常は、たとえば、各ノードの監視プログラム(アプリケーション監視プログラム、コンテナ監視プログラムなど)によって、その発生を検出することができる。異常が発生したノードと関連のある関連ノードの抽出は、たとえば、当該異常が発生したノードと、ネットワークシステム100において通信経路が繋がっているかということに基づいて判断し、その判断結果に基づいておこなうことができる。
説明変数選択部402は、ノード検出部401によって抽出された関連ノードと当該関連ノードの稼働データ(メトリック)との各組み合わせを、それぞれ「目的変数」とする。具体的には、たとえば、関連ノードが2つ(ノードA、ノードB)抽出され、それぞれメトリックを2つずつ(メトリックa、メトリックb)有する場合、「目的変数」は、組み合わせ1(ノードA+メトリックa)、組み合わせ2(ノードA+メトリックb)、組み合わせ3(ノードB+メトリックa)、組み合わせ4(ノードB+メトリックb)の4つとなる。
つぎに、説明変数選択部402は、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択する。目的変数以外の組み合わせは、具体的には、たとえば、組み合わせ1を「目的変数」とした場合、組み合わせ2、組み合わせ3、組み合わせ4が、その「説明変数」となる。また、組み合わせ2を「目的変数」とした場合、組み合わせ1、組み合わせ3、組み合わせ4が、その「説明変数」となる。同様に、「目的変数」=「組み合わせ3」の場合、「説明変数」=「組み合わせ1、2、4」、「目的変数」=「組み合わせ4」の場合、「説明変数」=「組み合わせ1、2、3」となる。
そして、各目的変数に対する説明変数の中から予測モデルとして使用できる組み合わせのみを選択する。予測モデルに基づいて選択するとは、具体的には、たとえば、各ノードがポートごとに分かれている場合に、関連ノードと異なるポートにおける関連ノードにおける説明変数を除外するなどである。このように、説明変数の中から予測モデルとして使用できる組み合わせのみを選択することで、説明変数の数を減少させ、処理を迅速化することができる。
さらに、説明変数の選択を機械的におこなう方法もある。たとえば、目的変数に対する寄与率が大きい変数を逐次的に追加していき、一定の規則に従って停止する変数増加法であったり、それとは逆に、目的変数に対する単寄与率が小さい変数を逐次的に除去していく変数減少法であったり、それらを組み合わせた変数増減法などがあってもよい。
JIT判定部403は、説明変数選択部402によって選択された説明変数を用いて異常検出をおこなう。この異常検出は、たとえば、ジャストインタイム(Just−In−Time(JIT))判定によりおこなうことができる。
JIT判定部403は、たとえば、目的変数(たとえばHTTP応答遅延など)の予測値と観測値のずれが大きいときに、異常が発生したと判定する。具体的には、たとえば、はじめに、目的変数と説明変数(たとえばHTTPリクエスト数など)の観測値を計測し保存しておく。つぎに、判定時刻の説明変数の観測値に近い過去の説明変数の値から目的変数の予測モデルを作成し、予測値と予測値の分散を計算する。そして、目的変数の予測値の分散範囲(正常範囲)から観測値が逸脱すると異常と判定する。このようにして、各ノード+メトリックの組み合わせごとに、実際に異常が発生しているかどうかを判定することができる。
異常検出変数抽出部404は、選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出する。異常検出変数抽出部404は、具体的には、たとえば、JIT判定部403によるJIT判定の結果に基づいて、実際に異常が発生していると判定されたノード+メトリックの組み合わせにかかる目的変数を異常検出目的変数(異常検出した目的変数)として抽出する。
また、異常検出変数抽出部404は、選択された説明変数を用いておこなわれた異常検出において、異常が検出されなかった異常非検出目的変数と、当該異常非検出目的変数の説明変数を抽出するようにしてもよい。異常検出変数抽出部404は、具体的には、たとえば、JIT判定部403によるJIT判定の結果に基づいて、実際に異常が発生しないないと判定されたノード+メトリックの組み合わせにかかる目的変数を異常非検出目的変数(異常検出しなかった目的変数)として抽出するようにしてもよい。
共通目的変数算出部405は、異常検出変数抽出部404によって抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出する。共通目的変数算出部405は、具体的には、たとえば、異常検出目的変数以外の目的変数において、異常検出目的変数の説明変数のノード+メトリックの組み合わせと同じ組み合わせを説明変数としている目的変数がいくつあるかを算出する。
また、共通目的変数算出部405は、異常検出変数抽出部404によって抽出された異常非検出目的変数の説明変数に共通する目的変数の数を算出するようにしてもよい。共通目的変数算出部405は、具体的には、たとえば、異常非検出目的変数以外の目的変数において、異常非検出目的変数の説明変数のノード+メトリックの組み合わせと同じ組み合わせを説明変数としている目的変数がいくつあるかを算出するようにしてもよい。
優先順位設定部406は、共通目的変数算出部405によって算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する。具体的には、たとえば、異常検出目的変数の説明変数のうち、算出された目的変数の数が多い順に優先順位を高くする。したがって、算出された目的変数の数が最多の説明変数であるノード+メトリックの組み合わせを、障害原因箇所候補の第1位とすることができる。
優先順位設定部406は、たとえば、異常非検出目的変数の説明変数のうち、算出された目的変数の数が多い順に優先順位を高くするようにしてもよい。そして、算出された目的変数の数が最多の説明変数であるノード+メトリックの組み合わせを、異常検出目的変数の説明変数の優先順位の最下位のつぎの順位とするようにしてもよい。このように、異常検出目的変数だけの順位ではなく、異常非検出目的変数の順位も加味して、障害原因箇所候補の順位を設定することで、より適切な優先順位とすることができる。
また、上述した説明変数選択部402は、所定のタイミングで、所定のノードと当該所定のノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを説明変数として選択し、当該選択の結果を記憶しておくようにしてもよい。そして、JIT判定部403は、ネットワークシステム100を構成するノードに異常が発生した場合に、記憶された選択の結果にかかる説明変数を用いて、異常検出をおこなうようにしてもよい。
この所定のタイミングは、たとえば、ネットワークシステム100を構成するノードの起動時または当該起動時から所定時間が経過した時であってもよい。また、この所定のタイミングは、ネットワークシステム100の構成に変化があったときであってもよい。また、この所定のタイミングは、ユーザによるトリガーがあったときであってもよい。このように、説明変数選択処理を、異常が発生する前に、事前におこなっておくことによって、異常が発生した際のレスポンスをより早くすることができる。
また、上述したJIT判定部403は、上述した異常検出を所定のタイミングでおこなうようにしてもよい。この所定のタイミングは、たとえば、周期的であってもよく、また、ユーザまたはプログラムによるトリガーがあったときであってもよい。
また、上述した共通目的変数算出部405は、算出された目的変数の数に、各当該目的変数が有する係数を乗算したスコアを算出するようにしてもよい。この係数は、たとえば、ノードの種類、メトリックの種類、過去の障害の履歴などに基づいて設定することができる。また、この係数は、適宜、変更することができる。そして、優先順位設定部406は、共通目的変数算出部405によって算出されたスコアに基づいて、障害原因箇所候補の優先順位を設定するようにしてもよい。このように、共通目的変数算出部405における算出処理について、その算出結果を、適宜、チューニングすることによって、より精度のよい優先順位を設定することができる。
(ノード検出部によるノード検出処理)
図5は、ノード検出部に対する入力データ(「構成情報」)、出力データ(「関連ノード情報」)の関係の一例を示す説明図である。図5において、構成情報501には、たとえば、ネットワークシステム100の構成に関する情報を記憶している。構成情報501は、図5に示すように、具体的には、たとえば、ネットワークシステム100を構成する各ノードの種類、各ノードのメトリックに関する情報、各ノードどうしの接続状況などに関する情報を含む。
ネットワークシステム100を構成するノードには、たとえば、アプリケーション(App1(101)〜App4(104))、コンテナ(コンテナ1(111)〜コンテナ4(114)、仮想マシン(VM1(121)、VM2(122))、サーバ(Server1(131)、Server2(132))、スイッチ(SW141)などが含まれる。したがって、ネットワークシステム100を構成するノードには、ハードウェア装置によって実現するノードと、ソフトウェアによって実現するノードの両方が含まれる。
ここで、アプリケーション(App1(101)〜App4(104))は、たとえば、各種業務システムなどにおけるプログラムであり、より具体的には、たとえば、購買システムの入力画面などを表示するプログラムなどである。また、コンテナ(コンテナ1(111)〜コンテナ4(114))は、アプリケーションの起動に必要なアプリケーション本体・必要なライブラリ・設定ファイルなどをひとまとめにしたものである。また、バーチャルマシン(VM1(121)、VM2(122))は、仮想的に作られたハードウェアを実現するプログラムである。
これらのノードは、いずれも、ハードウェア装置にインストールされたプログラムあるいはデータである。したがって、ネットワークシステム100においては、必ずしも図5の構成情報501どおりの構成でなくてもよい。すなわち、ネットワークシステム100において、VMがなかったり、あるいは、コンテナがなかったり、また、VMにコンテナが載って、その上にVMが載ったりという構成であってもよい。
また、サーバ(Server1(131)、Server2(132))は、図2に示した、ネットワークシステム100を構成する管理サーバ201、データベース203、サーバ204、ユーザ端末装置205などのハードウェア装置である。また、スイッチ(SW141)は、図2に示したネットワークシステム100を構成するネットワーク機器202などのハードウェア装置である。
ノード検出部401は、異常が発生したノードを特定する。そして、構成情報501を参照して、特定したノードに関連するノードを抽出する。具体的には、たとえば、図1に示したように、App1(101)を、異常が発生したノードと特定した場合に、構成情報501を参照して、App1(101)に関連するノードとして、コンテナ1(111)、VM1(121)、Server1(131)、SW(141)を、関連するノードとして抽出する。
また、同様に、VM1(121)を、異常が発生したノードと特定した場合に、構成情報501を参照して、VM1(121)に関連するノードとして、App1(101)、コンテナ1(111)、Server1(131)、SW(141)を、関連するノードとして抽出する。同様に、コンテナ3(113)を、異常が発生したノードと特定した場合に、構成情報501を参照して、コンテナ3(113)に関連するノードとして、App3(103)、VM2(122)、Server2(132)、SW(141)を、関連するノードとして抽出する。
異常が発生したその他のノード(コンテナ1(111)、Server1(131)、VM2(122))についても、同様に関連するノードを抽出する。このように、ノード検出部401は、異常が発生した各ノードに関連するノードを抽出し、関連ノード情報502を作成し、出力あるいは記憶する。
関連ノード情報502には、異常が発生したノードに関する情報と、異常が発生したノードに関連のあるノードに関する情報を記憶している。関連ノード情報502は、具体的には、たとえば、異常が発生したノードに関する情報、異常が発生したノードに関連のあるノードに関する情報を含む。また、関連ノード情報502には、図示は省略するが、各ノードのメトリック情報を含んでいてもよい。
図6は、ノード検出処理の手順の一例を示すフローチャートである。図6のフローチャートにおいて、ノード検出部401は、まず、システムにおいて異常が発生したか否かを判断する(ステップS601)。ここで、異常が発生するのを待って(ステップS601:No)、異常が発生した場合(ステップS601:Yes)は、異常が発生したノードを特定する(ステップS602)。
つぎに、構成情報501を読み込み(ステップS603)、読み込んだ構成情報501から、ステップS602において特定したノードと関連のあるノードを抽出する(ステップS604)。そして、抽出されたノードに基づいて、関連ノード情報502を作成する(ステップS605)。その後、作成した関連ノード情報502を出力(あるいは記憶)し(ステップS606)、一連の処理を終了する。
(説明変数選択部による説明変数選択処理)
図7は、説明変数選択部に対する入力データ(「関連ノード情報」)、出力データ(「説明変数選択結果」)の関係の一例を示す説明図である。図7において、関連ノード情報502は、図5において、ノード検出部401によって作成・出力(記憶)された関連ノード情報502である。
説明変数選択部402は、第1に、関連ノード情報502を参照して、ノード検出部401において抽出されたノードと当該ノードの各メトリックとの組み合わせを目的変数とする。メトリックは、各ノードによってそれぞれ異なる。図1に示したように、アプリケーションのメトリックは、たとえば、応答時間、リクエスト数などである。また、コンテナ、VM、サーバのメトリックは、たとえば、コア使用時間、メモリ使用時間、ディスクIO量、NW(ネットワーク)IO量などである。なお、メトリックの詳細情報については、後述する。
説明変数選択部402は、第2に、目的変数としたノードとメトリックの組み合わせ以外の組み合わせを説明変数とする。具体的には、ノードである「App1(101)」とそのメトリックである「応答時間」の組み合わせを目的変数とした場合に、目的変数とした「App1(101)・応答時間」の組み合わせ以外のメトリックである、「App1(101)・リクエスト数」、「App3(103)・リクエスト数」、「コンテナ1(111)・NWIO量」、「コンテナ3(113)・NWIO量」、「VM1(121)・NWIO量」、「VM2(122)・NWIO量」、「Server1(131)・NWIO量」などを説明変数とする。
説明変数選択部402は、第3に、各目的変数について、予測モデルに使える説明変数を選択し、説明変数選択結果700を作成し、出力する。説明変数選択結果700には、説明変数選択部402によって選択された説明変数の選択結果が記憶される。図7に示した説明変数選択結果700においては、説明変数選択部402が第1に特定した目的変数を列方向に示し(重複する目的変数は削除している)、説明変数選択部402が第2に特定した説明変数を行方向に示している。
また、説明変数選択部402が第3に選択した説明変数を『○』で示している。具体的には、たとえば、目的変数:「App1(101)・応答時間」について予測モデルに使える説明変数は、「コンテナ1(111)・NWIO量」と、「VM1(121)・NWIO量」の2つであり、また、目的変数:「App1(101)・リクエスト数」について予測モデルに使える説明変数は、「App1(101)・応答時間」と、「App3(103)・リクエスト数」の2つである。
図8は、説明変数選択処理の手順の一例を示すフローチャートである。図8において、説明変数選択部402は、まず、関連ノード情報502を読み込む(ステップS801)。つぎに、読み込んだ関連ノード情報502からノード情報を一つ抽出する(ステップS802)。抽出したノード情報からメトリックを一つ抽出し、そのメトリックとの組み合わせを目的変数とする(ステップS803)。つぎに、抽出したノード情報と当該メトリック以外の他の組み合わせを説明変数の候補とする(ステップS804)。そして、候補の中から、予測モデルに使える説明変数を選択し(ステップS805)、選択した説明変数を記憶する(ステップS806)。
つぎに、抽出したノード情報において未処理のメトリックがあるか否かを判断する(ステップS807)。ここで、未処理のメトリックがある場合(ステップS807:Yes)は、当該未処理のメトリックを一つ抽出し、当該ノード情報と組み合わせて目的変数とする(ステップS808)。その後、ステップS804へ戻って、ステップS804〜S808の各処理を繰り返しおこなう。
ステップS807において、未処理のメトリックがない場合(ステップS807:No)は、つぎに、関連ノード情報に未処理のノード情報はあるか否かを判断する(ステップS809)。ここで、未処理のノード情報がある場合(ステップS809:Yes)は、関連ノード情報から、当該未処理のノード情報を一つ抽出する(ステップS810)。その後、ステップS803へ戻って、ステップS803〜S810の各処理を繰り返しおこなう。
一方、ステップS809において、未処理のノード情報がない場合(ステップS809:No)は、記憶した説明変数に基づいて説明変数選択結果700を作成する(ステップS811)。そして、作成した説明変数選択結果700を出力(あるいは記憶)し(ステップS812)、一連の処理を終了する。
(JIT判定部によるJIT判定処理)
図9は、JIT判定部に対する入力データ(「説明変数選択結果」)、出力データ(「異常判定結果」)の関係の一例を示す説明図である。図9において、説明変数選択結果700は、図7において、説明変数選択部402によって作成・出力(記憶)された説明変数選択結果700である。
JIT判定部403は、上述したジャストインタイムによる異常検出方法を用いて、各メトリックの異常を判定する。そして、判定結果に基づいて、異常判定結果900を作成し、出力(あるいは記憶)する。異常判定結果900には、JIT判定部403による各ノード+メトリック組み合わせの異常判定結果が記憶される。図9に示した異常判定結果900において、異常判定の結果、異常と判定されたノード+メトリックの組み合わせについては、『あり』を示し、異常と判定されなかったノード+メトリックの組み合わせについては、『なし』を示している。具体的には、異常判定結果900において、「App1(101)・応答時間」、「App3(103)・リクエスト数」、「コンテナ1(111)・NWIO量」、「VM1(121)・NWIO量」、「VM2(122)・NWIO量」の各ノード+メトリックの組み合わせが、『あり』と示されており、これらのノード+メトリックの組み合わせが異常と判定されたことを示している。
一方、異常判定結果900において、「App1(101)・リクエスト数」、「コンテナ3(113)・NWIO量」、「Server1(131)・NWIO量」の各ノード+メトリックの組み合わせが、『なし』と示されており、これらのノード+メトリックの組み合わせが異常なしと判定されたことを示している。
図10は、JIT判定処理の手順の一例を示すフローチャートである。図10のフローチャートにおいて、において、JIT判定部403は、まず、説明変数選択結果700を読み込む(ステップS1001)。読み込んだ説明変数選択結果700から一つの目的変数を抽出する(ステップS1002)。そして、選択した説明変数を用いてJIT判定をおこない(ステップS1003)、その判定結果を記憶する(ステップS1004)。
つぎに、説明変数選択結果700に未処理の目的変数はあるか否かを判断する(ステップS1005)。ここで、未処理の目的変数がある場合(ステップS1005:Yes)は、説明変数選択結果700から、未処理の目的変数を一つ抽出する(ステップS1006)。そして、ステップS1003へ戻る。その後、ステップS1003〜S1006の各処理を繰り返しおこなう。
一方、ステップS1005において、未処理の目的変数がない場合(ステップS1005:No)は、記憶した判定結果に基づいて異常判定結果900を作成する(ステップS1007)。そして、作成した異常判定結果900を出力(あるいは記憶)し(ステップS1008)、一連の処理を終了する。
(異常検出変数抽出部による異常検出変数抽出処理)
図11は、異常検出変数抽出部に対する入力データ(「異常判定結果」)、出力データ(「異常検出した目的変数」)の関係の一例を示す説明図である。図11において、異常判定結果900は、図9において、JIT判定部403によって作成・出力(記憶)された異常判定結果900である。
異常検出変数抽出部404は、異常判定結果900に基づいて、異常検出した目的変数1100とその説明変数を抽出する。異常検出変数抽出部404は、具体的には、たとえば、異常判定結果900において、異常と判定され、『あり』と示された、「App1(101)・応答時間」、「App3(103)・リクエスト数」、「コンテナ1(111)・NWIO量」、「VM1(121)・NWIO量」、「VM2(122)・NWIO量」の各ノード+メトリックを抽出し、異常検出された目的変数の説明変数として特定する。
さらに、異常検出変数抽出部404は、異常判定結果900において、異常なしと判定され、『なし』と示された、「App1(101)・リクエスト数」、「コンテナ3(113)・NWIO量」、「Server1(131)・NWIO量」の各ノード+メトリックを抽出し、異常検出しなかった目的変数の説明変数として特定してもよい。そして、異常検出変数抽出部404は、特定した“異常検出された目的変数(異常検出目的変数)”および“異常検出しなかった目的変数(異常非検出目的変数)”に基づいて異常検出した目的変数1100を作成し出力する。
図11に示した異常検出した目的変数1100において、各ノード+メトリックの組み合わせに対して、異常検出した目的変数として特定したノード+メトリックの組み合わせには、「異常検出した目的変数」欄に『○』を示している。具体的には、たとえば、「App1(101)・応答時間」、「App3(103)・リクエスト数」、「コンテナ1(111)・NWIO量」、「VM1(121)・NWIO量」、「VM2(122)・NWIO量」の各ノード+メトリックの組み合わせに、『○』が示されている。また、各ノード+メトリックの組み合わせに対して、異常検出しなかった目的変数として特定したノード+メトリックの組み合わせには、「異常検出しなかった目的変数」欄に『○』を示している。具体的には、たとえば、「App1(101)・リクエスト数」、「コンテナ3(113)・NWIO量」、「Server1(131)・NWIO量」の各ノード+メトリックの組み合わせに、『○』が示されている。
図12は、異常検出変数抽出処理の手順の一例を示すフローチャートである。図12において、異常検出変数抽出部404は、まず、異常判定結果900を読み込む(ステップS1201)。読み込んだ異常判定結果900から、異常を検出した目的変数(ノード+メトリックの組み合わせ)を抽出する(ステップS1202)。そして、抽出した目的変数の説明変数(ノード+メトリックの組み合わせ)を抽出する(ステップS1203)。つぎに、抽出した変数を、異常検出した変数として作成し、出力(あるいは記憶)する(ステップS1204)。異常検出変数抽出処理としては、これで、一連の処理を終了してもよい。
また、さらに続けて、読み込んだ異常判定結果900から、異常を検出しなかった目的変数(ノード+メトリックの組み合わせ)を抽出する(ステップS1205)。そして、抽出した目的変数の説明変数(ノード+メトリックの組み合わせ)を抽出する(ステップS1206)。つぎに、抽出した変数を、異常検出しなかった変数として作成し、出力(あるいは記憶)する(ステップS1207)。これにより、異常検出変数抽出処理の一連の処理を終了するようにしてもよい。
(共通目的変数算出処理)
図13は、共通目的変数算出部に対する入力データ(「異常検出した目的変数」)、出力データ(「共通する目的変数の数」)の関係の一例を示す説明図である。図13において、異常検出した目的変数1100は、図11において、異常検出変数抽出部404によって作成・出力(記憶)された異常検出した目的変数1100である。また、図示を省略するが、異常検出した目的変数1100には、図7に示した説明変数選択結果700に関する情報が含まれていてもよい。
共通目的変数算出部405は、異常を検出した目的変数の各説明変数に共通する目的変数の数を抽出する。具体的には、たとえば、異常を検出した目的変数の説明変数(ノード+メトリックの組み合わせ)である「App1(101)・応答時間」に共通する目的変数は、図7に示した説明変数選択結果700からもわかるように、1つ(App1(101)・リクエスト数)である。また、同様に、異常を検出した目的変数の説明変数(ノード+メトリックの組み合わせ)である「App3(103)・リクエスト数」に共通する目的変数は、図7に示した説明変数選択結果700からもわかるように、1つ(「App1(101)・リクエスト数」)である。したがって、図13に示した共通する目的変数の数1300の該当欄を、それぞれ、『1』とする。
また、同様に、異常を検出した目的変数の説明変数(ノード+メトリックの組み合わせ)である「コンテナ1(111)・NWIO量」に共通する目的変数は、図7に示した説明変数選択結果700からもわかるように、2つ(「App1(101)・応答時間」、「コンテナ1(111)・メモリ使用量」)である。したがって、図13に示した共通する目的変数の数1300の該当欄を『2』とする。
また、同様に、異常を検出した目的変数の説明変数(ノード+メトリックの組み合わせ)である「VM1(121)・NWIO量」に共通する目的変数は、図7に示した説明変数選択結果700からもわかるように、3つ(「App1(101)・応答時間」、「App3(103)・リクエスト数」、「VM2(122)・NWIO量」)である。したがって、図13に示した共通する目的変数の数1300の該当欄を『3』とする。
また、同様に、異常を検出した目的変数の説明変数(ノード+メトリックの組み合わせ)である「VM2(302)・NWIO量」に共通する目的変数は、図7に示した説明変数選択結果700からもわかるように、存在しない。したがって、図13に示した共通する目的変数の数1300の該当欄を『0』とする。
共通目的変数算出部405は、異常を検出しなかった目的変数の各説明変数に共通する目的変数の数を抽出するようにしてもよい。具体的には、たとえば、異常を検出しなかった目的変数の説明変数(ノード+メトリックの組み合わせ)である「App1(101)・リクエスト数」に共通する目的変数は、図7に示した説明変数選択結果700からもわかるように、1つであり、同様に、「コンテナ3(113)・NWIO量」に共通する目的変数は2つであり、「Server1(131)・NWIO量」に共通する目的変数は2つである。したがって、図13に示した共通する目的変数の数1300の該当欄を、それぞれ、『1』、『2』、『2』とする。このようにして、共通目的変数算出部405は、共通する目的変数の数1300を作成し、出力する。
図14は、共通目的変数算出処理の手順の一例を示すフローチャートである。図14において、共通目的変数算出部405は、まず、異常検出した変数を読み込む(ステップS1401)。つぎに、異常検出しなかった変数がある場合は、当該異常検出しなかった変数を読み込む(ステップS1402)。そして、各説明変数の共通する目的変数の数を算出する(ステップS1403)。つぎに、算出した数を、共通する目的変数の数として作成する(ステップS1404)、そして、作成した共通する目的変数の数を出力(あるいは記憶)し(ステップS1405)、一連の処理を終了する。
(優先順位設定処理)
図15は、優先順位設定部に対する入力データ(「共通する目的変数の数」)、出力データ(「調査優先度」)の関係の一例を示す説明図である。図15において、共通する目的変数の数1300は、図13に示した共通目的変数算出部405によって作成・出力(記憶)された共通する目的変数の数1300である。
優先順位設定部406は、説明変数を目的変数としたとき、異常検出しており、かつ、共通する目的変数の数が大きい順に調査の優先順位を付ける。優先順位設定部406は、具体的には、たとえば、共通する目的変数の数1300に基づいて、まず、異常検出した目的変数にかかるノード+メトリックの組み合わせを抽出する。
具体的には、たとえば、共通する目的変数の数1300において、異常検出した目的変数にかかるノード+メトリックの組み合わせである、「App1(101)・応答時間」、「App3(103)・リクエスト数」、「コンテナ1(111)・NWIO量」、「VM1(121)・NWIO量」、「VM2(122)・NWIO量」の5つを抽出する。そして、各ノード+メトリックの共通する目的変数の数を比較する。この中で、一番大きな数である『3』となっている「VM1(121)・NWIO量」が優先順位第1位である。そこで、調査優先度1500の「VM1(121)・NWIO量」の該当欄を『1』とする。この『1』が優先順位第1位であることを示す。
つぎに、二番目に大きな数である『2』となっている「コンテナ1(111)・NWIO量」が優先順位第2位である。そこで、調査優先度1500の該当欄を『2』とする。同様に、三番目に大きな数である『1』となっている「App1(101)・応答時間」と、「App3(103)・リクエスト数」が、優先順位第3位である。そこで、調査優先度1500の該当欄をそれぞれ『3』とする。また同様に、共通する目的変数の数が『0』である「VM2(122)・NWIO量」を優先順位第4位として、調査優先度1500の該当欄を『4』とする。
つぎに、優先順位設定部406は、説明変数を目的変数としたとき、異常検出しなかったノード+メトリックの組み合わせを、共通する目的変数の数1300に基づいて抽出する。具体的には、たとえば、共通する目的変数の数1300において、「App1(101)・リクエスト数」、「コンテナ3(113)・NWIO量」、「Server1(131)・NWIO量」の3つを抽出する。
そして、各ノード+メトリックの組み合わせの共通する目的変数の数を比較する。この中で、一番大きな数である『2』となっている「コンテナ3(113)・NWIO量」と、「Server1(131)・NWIO量」が、異常検出しており、かつ、共通する目的変数の数が大きい順の最下位であった「VM2(122)・NWIO量」の優先順位第4位に引き続き、優先順位第5位となる。そこで、調査優先度1500の「コンテナ3(113)・NWIO量」と、「Server1(131)・NWIO量」の該当欄をそれぞれ『5』とする。この『5』が優先順位第5位であることを示す。
また同様に、共通する目的変数の数が『1』となっている「App1(101)・リクエスト数」が優先順位第6位となる。そこで、調査優先度1500の「App1(101)・リクエスト数」の該当欄を『6』とする。
このようにして、優先順位設定部406は、調査の優先順位を付けた調査優先度1500を作成し、出力する。なお、優先順位は、異常を検出しており、かつ、共通する目的変数の数が大きい順に調査の優先順位を付けてもよく(優先順位第1位〜第4位まででもよく)、また、異常を検出しなかったノード+メトリックの組み合わせまで範囲を広げて、優先順位第5位、第6位まで順位付けをしてもよい。
図16は、優先順位設定処理の手順の一例を示すフローチャートである。図16のフローチャートにおいて、優先順位設定部406は、まず、共通する目的変数の数を読み込む(ステップS1601)。つぎに、共通する目的変数の数から、異常を検出した説明変数(異常検出説明変数)を抽出する(ステップS1602)。そして、抽出した異常検出説明変数を、共通する目的変数の数の多い順に優先順位を設定する(ステップS1603)。
つぎに、共通する目的変数の数から、異常を検出しなかった説明変数(異常非検出説明変数)を抽出する(ステップS1604)。そして、抽出した異常非検出説明変数を、共通する目的変数の数の多い順に優先順位を設定する(ステップS1605)。すなわち、ステップS1603において設定した優先順位に続けて、優先順位を設定する。
その後、設定した優先順位に基づいて、調査優先度を作成する(ステップS1606)。そして、作成した調査優先度を出力(あるいは記憶)し(ステップS1607)、一連の処理を終了する。
(表示画面の一例)
図17は、表示画面の一例を示す説明図である。図17において、表示画面1700は、たとえば、図3Bに示したユーザ端末装置205のディスプレイ354に表示される表示の内容を示している。表示画面1700の表示内容は、優先順位設定部406によって作成・出力された調査優先度1500の内容に基づいて作成される。これにより、障害原因箇所順位をユーザに容易に知らしめることができる。
図17において、調査優先度1500の優先順位にしたがって、障害原因箇所順位の第1位から順番に上から並べて表示される。表示画面1700に表示される内容は、障害原因箇所順位のほか、障害原因箇所のノードのノード名と、そのノードのメトリックである稼働データ名と、さらに当該ノードに関連するノードおよびその稼働データ名である。
表示画面1700においては、調査優先度1500において、調査優先度が第1位であったノード+メトリックの組み合わせ:「VM1(121)・NWIO量」が障害原因箇所順位の第1位である。そして、「VM1(121)・NWIO量」に関連するノード・稼働データ名としては、図7に示した説明変数選択結果700からもわかるように、説明変数:「VM1(121)・NWIO量」の目的変数である「App1(101)・応答時間」、「App3(103)・リクエスト数」、「VM2(122)・NWIO量」の3つが表示される。障害原因箇所順位の第2位以下も同様である。
ユーザは、この表示画面1700を確認することで、発生した障害原因を容易に認識することができる。すなわち、ユーザは、優先順位の上から探すことによって、より効率的に障害原因箇所を発見することができる。OKボタン1701が押下されることによって、表示画面1700は消去する。
以上説明したように、本実施の形態によれば、制御部400のうち、ノード検出部401が、複数のノードから構成されるネットワークシステム100において異常が発生したノードと関連のある関連ノードを抽出し、説明変数選択部402が、抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、異常検出変数抽出部404が、選択された説明変数を用いてJIT判定部403によっておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、共通目的変数算出部405が、抽出された異常検出目的変数の説明変数に共通する目的変数の数)を算出し、優先順位設定部406が、算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する。これにより、障害原因の特定に要する時間を短縮することができ、ICTインフラストラクチャの運用を効率化することができる。
また、本実施の形態によれば、異常検出変数抽出部404が、異常検出において、異常が検出されなかった異常非検出目的変数と、当該異常非検出目的変数の説明変数を抽出し、共通目的変数算出部405が、抽出された異常非検出目的変数の説明変数に共通する目的変数の数を算出し、優先順位設定部406が、算出された目的変数の数に基づいて、障害原因箇所候補の優先順位を設定するので、詳細箇所を特定する、さらに詳細な優先順位を設定することができる。
また、本実施の形態によれば、JIT判定部403が、異常検出をジャストインタイム(JIT)判定によりおこなうので、実際に異常が発生しているかどうかをより正確に判定することができる。
また、本実施の形態によれば、JIT判定部403が、異常検出を所定のタイミングでおこなうので、異常発生時以外にも異常を把握でき、定常的にネットワークシステムの各ノードの健全な運用を担保することができる。
また、本実施の形態によれば、共通目的変数算出部405が、算出された目的変数の数に、各当該目的変数が有する係数を乗算したスコアを算出し、優先順位設定部406が、算出されたスコアに基づいて、障害原因箇所の優先順位を設定するので、より精度のよい優先順位とすることができる。
また、本実施の形態によれば、説明変数選択部402は、所定のタイミング(たとえば、ネットワークシステム100を構成するノードの起動時または当該起動時から所定時間が経過した時、あるいは、ネットワークシステム100の構成に変化があったとき)で、所定のノードと当該所定のノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを説明変数として選択し、当該選択の結果を記憶し、JIT判定部403は、ネットワークシステム100を構成するノードに異常が発生した場合に、記憶された選択の結果にかかる説明変数を用いて、異常検出をおこなうので、より迅速なレスポンスをおこなうことができる。
なお、本実施の形態で説明した障害原因特定方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。障害原因特定プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)−ROM、MO(Magneto−Optical Disk)、DVD(Digital Versatile Disk)、フラッシュメモリ、USB(Universal Serial Bus)メモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、障害原因特定プログラムは、インターネットなどのネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)
複数のノードから構成されるネットワークシステムにおいて異常が発生したノードと関連のある関連ノードを抽出し、
抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、
選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、
抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出し、
算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する、
制御部を有することを特徴とする障害原因特定システム。
(付記2)
前記制御部は、前記異常検出において、異常が検出されなかった異常非検出目的変数と、当該異常非検出目的変数の説明変数を抽出し、抽出された異常非検出目的変数の説明変数に共通する目的変数の数を算出し、
算出された目的変数の数に基づいて、障害原因箇所候補の優先順位を設定することを特徴とする付記1に記載の障害原因特定システム。
(付記3)
前記制御部は、
前記異常検出を、ジャストインタイム(Just−In−Time(JIT))判定によりおこなうことを特徴とする付記1または2に記載の障害原因特定システム。
(付記4)
前記制御部は、
前記異常検出を所定のタイミングでおこなうことを特徴とする付記1〜3のいずれか一つに記載の障害原因特定システム。
(付記5)
前記制御部は、
前記算出された目的変数の数に、各当該目的変数が有する係数を乗算したスコアを算出し、
算出されたスコアに基づいて、障害原因箇所の優先順位を設定することを特徴とする付記1〜4のいずれか一つに記載の障害原因特定システム。
(付記6)
前記制御部は、
所定のタイミングで、所定のノードと当該所定のノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを説明変数として選択し、当該選択の結果を記憶し、
前記ネットワークシステムを構成するノードに異常が発生した場合に、記憶された選択の結果にかかる説明変数を用いて、前記異常検出をおこなうことを特徴とする付記1〜5のいずれか一つに記載の障害原因特定システム。
(付記7)
前記所定のタイミングは、前記ネットワークシステムを構成するノードの起動時または当該起動時から所定時間が経過した時であることを特徴とする付記6に記載の障害原因特定システム。
(付記8)
前記所定のタイミングは、前記ネットワークシステムの構成に変化があったときであることを特徴とする付記6に記載の障害原因特定システム。
(付記9)
複数のノードから構成されるネットワークシステムにおいて異常が発生したノードと関連のある関連ノードを抽出し、
抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、
選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、
抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出し、
算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する処理を、コンピュータが実行することを特徴とする障害原因特定方法。
(付記10)
複数のノードから構成されるネットワークシステムにおいて異常が発生したノードと関連のある関連ノードを抽出し、
抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、
選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、
抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出し、
算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する処理を、コンピュータに実行させることを特徴とする障害原因特定プログラム。
100 ネットワークシステム
101〜104 アプリケーション(App1〜App4)
111〜114 コンテナ(コンテナ1〜コンテナ4)
121、122 バーチャルマシン(VM1、VM2)
131、132 サーバ(Server1、Server2)
141 スイッチ(SW)
150 障害原因特定システム
200 ネットワーク
201 管理サーバ
202 ネットワーク機器
203 データベース
204 サーバ
205 ユーザ端末装置
206 アプリケーション
400 制御部
401 ノード検出部
402 説明変数選択部
403 JIT判定部
404 異常検出変数抽出部
405 共通目的変数算出部
406 優先順位設定部
501 構成情報
502 関連ノード情報
700 説明変数選択結果
900 異常判定結果
1100 異常検出した目的変数
1300 共通する目的変数の数
1500 調査優先度
1700 表示画面

Claims (8)

  1. 複数のノードから構成されるネットワークシステムにおいて異常が発生したノードと関連のある関連ノードを抽出し、
    抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、
    選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、
    抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出し、
    算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する、
    制御部を有することを特徴とする障害原因特定システム。
  2. 前記制御部は、前記異常検出において、異常が検出されなかった異常非検出目的変数と、当該異常非検出目的変数の説明変数を抽出し、抽出された異常非検出目的変数の説明変数に共通する目的変数の数を算出し、
    算出された目的変数の数に基づいて、障害原因箇所候補の優先順位を設定することを特徴とする請求項1に記載の障害原因特定システム。
  3. 前記制御部は、
    前記異常検出を、ジャストインタイム(Just−In−Time(JIT))判定によりおこなうことを特徴とする請求項1または2に記載の障害原因特定システム。
  4. 前記制御部は、
    前記異常検出を所定のタイミングでおこなうことを特徴とする請求項1〜3のいずれか一つに記載の障害原因特定システム。
  5. 前記制御部は、
    前記算出された目的変数の数に、各当該目的変数が有する係数を乗算したスコアを算出し、
    算出されたスコアに基づいて、障害原因箇所の優先順位を設定することを特徴とする請求項1〜4のいずれか一つに記載の障害原因特定システム。
  6. 前記制御部は、
    所定のタイミングで、所定のノードと当該所定のノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを説明変数として選択し、当該選択の結果を記憶し、
    前記ネットワークシステムを構成するノードに異常が発生した場合に、記憶された選択の結果にかかる説明変数を用いて、前記異常検出をおこなうことを特徴とする請求項1〜5のいずれか一つに記載の障害原因特定システム。
  7. 複数のノードから構成されるネットワークシステムにおいて異常が発生したノードと関連のある関連ノードを抽出し、
    抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、
    選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、
    抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出し、
    算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する処理を、コンピュータが実行することを特徴とする障害原因特定方法。
  8. 複数のノードから構成されるネットワークシステムにおいて異常が発生したノードと関連のある関連ノードを抽出し、
    抽出された関連ノードと当該関連ノードの稼働データとの各組み合わせをそれぞれ目的変数とし、当該目的変数以外の組み合わせのうち、当該目的変数についての予測モデルとして使用できる組み合わせを、当該目的変数の説明変数としてそれぞれ選択し、
    選択された説明変数を用いておこなわれた異常検出において、異常が検出された異常検出目的変数と、当該異常検出目的変数の説明変数を抽出し、
    抽出された異常検出目的変数の説明変数に共通する目的変数の数を算出し、
    算出された目的変数の数に基づいて、障害原因箇所の優先順位を設定する処理を、コンピュータに実行させることを特徴とする障害原因特定プログラム。
JP2020051630A 2020-03-23 2020-03-23 障害原因特定システム、障害原因特定方法および障害原因特定プログラム Active JP7415714B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020051630A JP7415714B2 (ja) 2020-03-23 2020-03-23 障害原因特定システム、障害原因特定方法および障害原因特定プログラム
EP21153425.0A EP3885915A1 (en) 2020-03-23 2021-01-26 Failure cause identifying program, failure cause identifying apparatus, and failure cause identifying method
US17/166,513 US20210294683A1 (en) 2020-03-23 2021-02-03 Recording medium, failure cause identifying apparatus, and failure cause identifying method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020051630A JP7415714B2 (ja) 2020-03-23 2020-03-23 障害原因特定システム、障害原因特定方法および障害原因特定プログラム

Publications (2)

Publication Number Publication Date
JP2021149849A true JP2021149849A (ja) 2021-09-27
JP7415714B2 JP7415714B2 (ja) 2024-01-17

Family

ID=74285220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020051630A Active JP7415714B2 (ja) 2020-03-23 2020-03-23 障害原因特定システム、障害原因特定方法および障害原因特定プログラム

Country Status (3)

Country Link
US (1) US20210294683A1 (ja)
EP (1) EP3885915A1 (ja)
JP (1) JP7415714B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11947416B2 (en) * 2021-12-14 2024-04-02 International Business Machines Corporation Fault diagnosis in complex systems
US20240037229A1 (en) * 2022-07-28 2024-02-01 Pure Storage, Inc. Monitoring for Security Threats in a Container System
CN117238226B (zh) * 2023-11-13 2024-02-06 众显科技(深圳)有限公司 一种led显示屏故障自检方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751866B2 (en) 2006-09-28 2014-06-10 International Business Machines Corporation Autonomic fault isolation in a highly interconnected system
CN103262048B (zh) 2010-12-20 2016-01-06 日本电气株式会社 操作管理装置、操作管理方法及其程序
US9959199B2 (en) 2015-06-17 2018-05-01 Oracle International Corporation Diagnosis of test failures in software programs
US10225272B2 (en) 2016-05-31 2019-03-05 Ca, Inc. Ordered correction of application based on dependency topology
JP6867589B2 (ja) 2017-05-30 2021-04-28 富士通株式会社 影響範囲特定プログラム、影響範囲特定方法、および影響範囲特定装置
EP3726437A4 (en) 2017-12-11 2020-12-16 NEC Corporation ERROR ANALYSIS DEVICE, ERROR ANALYSIS PROCEDURE AND ERROR ANALYSIS PROGRAM
US11403160B2 (en) 2018-01-19 2022-08-02 Hitachi, Ltd. Fault predicting system and fault prediction method
TWI691852B (zh) * 2018-07-09 2020-04-21 國立中央大學 用於偵測階層式系統故障之偵錯裝置及偵錯方法、電腦可讀取之記錄媒體及電腦程式產品

Also Published As

Publication number Publication date
US20210294683A1 (en) 2021-09-23
EP3885915A1 (en) 2021-09-29
JP7415714B2 (ja) 2024-01-17

Similar Documents

Publication Publication Date Title
JP7415714B2 (ja) 障害原因特定システム、障害原因特定方法および障害原因特定プログラム
US10713108B2 (en) Computing system issue detection and resolution
JP6114818B2 (ja) 管理システム及び管理プログラム
JP5719974B2 (ja) 複数の監視対象デバイスを有する計算機システムの管理を行う管理システム
US20100318837A1 (en) Failure-Model-Driven Repair and Backup
CN104679602A (zh) 用于在存储区域网络中处置事件的方法和系统
JP6094593B2 (ja) 情報システム構築装置、情報システム構築方法および情報システム構築プログラム
JP6190468B2 (ja) 管理システム、プラン生成方法、およびプラン生成プログラム
US11227222B2 (en) System and method for prioritizing and preventing backup failures
US20220147409A1 (en) Identification and/or prediction of failures in a microservice architecture for enabling automatically-repairing solutions
JP7374756B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JPWO2016051445A1 (ja) ストレージシステムの管理システム
JP5439775B2 (ja) 障害対応プログラム、障害対応装置、及び障害対応システム
US11165665B2 (en) Apparatus and method to improve precision of identifying a range of effects of a failure in a system providing a multilayer structure of services
WO2013171865A1 (ja) 管理方法及び管理システム
US9785464B2 (en) Intellective switching between tasks
JP5352027B2 (ja) 計算機システムの管理方法及び管理装置
JP7369219B2 (ja) 運用管理装置及び方法
US11544127B2 (en) System management method, non-transitory computer-readable storage medium for storing system management program, and system management device
US20160004584A1 (en) Method and computer system to allocate actual memory area from storage pool to virtual volume
JP2019114043A (ja) ソフトウェア評価システム
US11314600B2 (en) Data placement method based on health scores
JP2019053486A (ja) 故障予兆検出装置、故障予兆検出方法、及び、故障予兆検出プログラム
JP2021157339A (ja) 情報処理方法、及び情報処理プログラム
JP6636656B2 (ja) 管理システム、管理装置、および管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231218

R150 Certificate of patent or registration of utility model

Ref document number: 7415714

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150