(57)【要約】【課題】異常や故障につながるリスクを評価する監視装置、監視方法、及びコンピュータプログラムを提供する。【解決手段】監視装置１０は、監視対象システム１のシステム状態情報を収集するデータ収集部１１と、データ収集部１１によって収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態が学習された機械学習部１３と、データ収集部１１によって収集された現在のシステム状態情報と、機械学習部１３によって事前に学習された正常時の状態とに基づいて、監視対象システム１のリスクを評価するリスク評価部１５とを備える。【選択図】図１
2019211919.tif 000002
【特許請求の範囲】
【請求項１】
監視対象システムのシステム状態情報を収集するデータ収集部と、
前記データ収集部によって収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態が学習された機械学習部と、
前記データ収集部によって収集された現在のシステム状態情報と、前記機械学習部によって事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価部と
を備えることを特徴とする監視装置。
【請求項２】
前記機械学習部は、前記システム状態情報から異常を表現づける特徴量を抽出することを特徴とする請求項１に記載の監視装置。
【請求項３】
前記リスク評価部は、前記監視対象システムの環境条件をセンサで取得することでリスクを複合的に評価することを特徴とする請求項１又は２に記載の監視装置。
【請求項４】
前記リスク評価部は、特定の一時点の情報だけでなく過去の時系列情報を加えて評価することでサイレント故障の発生を予測することを特徴とする請求項１からの３のいずれか１項に記載の監視装置。
【請求項５】
前記リスク評価部は、複数の条件を複数の学習モデルで異常評価することで原因を追跡することを特徴とする請求項１からの４のいずれか１項に記載の監視装置。
【請求項６】
コンピュータが、
監視対象システムのシステム状態情報を収集するデータ収集ステップと、
前記データ収集ステップで収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態を学習する機械学習ステップと、
前記データ収集ステップで収集された現在のシステム状態情報と、前記機械学習ステップで事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価ステップと
を実行することを特徴とする監視方法。
【請求項７】
請求項１から５のいずれか１項に記載した監視装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視装置、監視方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、システムの故障等を監視する監視センタにおける監視対象のシステムの異常検知や故障予測は、しきい値とその判断ルール（事前の静的な設定）により行われてきた。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「サーバー監視とは｜具体的な監視方法や種類を解説」、平成30年5月29日検索、インターネット〈URL：https://boxil.jp/mag/a2622/〉
【非特許文献２】「サーバー監視ツール20選｜機能・特徴を徹底比較」、平成30年5月29日検索、インターネット〈URL：https://boxil.jp/mag/a2573/〉
【非特許文献３】「正しいシステム運用のための監視要件定義」、平成30年5月29日検索、インターネット〈URL：https://thinkit.co.jp/story/2014/05/19/4996〉
【非特許文献４】「第1回  サーバ監視にSNMPを使う理由」、平成30年5月29日検索、インターネット〈URL：http://www.itmedia.co.jp/enterprise/articles/0705/07/news005.html〉
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、その監視対象としきい値、異常検知や故障予測の判断ルールは、過去事例と経験に基づき設計した後、運用段階で調整することがあり、専門家の見地が必要となっている。また、監視装置から発生する装置アラームは誤検知や発生原因不明のものがあり、専門家の判断なしに異常を判断することができない。さらに、サイレント故障については装置アラームやログ等に情報が残らないこともあるため、異常検知や原因追跡することができない。近年のシステムは、仮想化等により実装技術が多様化することで構成が複雑になってきているため、上記のような状況は増加しており、有スキル者の人的対応も不可能となってきている。
【０００５】
本発明は、異常や故障につながるリスクを評価する監視装置、監視方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、第１の態様に係る発明は、監視装置であって、監視対象システムのシステム状態情報を収集するデータ収集部と、前記データ収集部によって収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態が学習された機械学習部と、前記データ収集部によって収集された現在のシステム状態情報と、前記機械学習部によって事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価部とを備えることを要旨とする。
【０００７】
第２の態様に係る発明は、第１の態様に係る発明において、前記機械学習部が、前記システム状態情報から異常を表現づける特徴量を抽出することを要旨とする。
【０００８】
第３の態様に係る発明は、第１又は第２の態様に係る発明において、前記リスク評価部が、前記監視対象システムの環境条件をセンサで取得することでリスクを複合的に評価することを要旨とする。
【０００９】
第４の態様に係る発明は、第１から第３のいずれか１つの態様に係る発明において、前記リスク評価部が、特定の一時点の情報だけでなく過去の時系列情報を加えて評価することでサイレント故障の発生を予測することを要旨とする。
【００１０】
第５の態様に係る発明は、第１から第４のいずれか１つの態様に係る発明において、前記リスク評価部が、複数の条件を複数の学習モデルで異常評価することで原因を追跡することを要旨とする。
【００１１】
第６の態様に係る発明は、監視方法であって、コンピュータが、監視対象システムのシステム状態情報を収集するデータ収集ステップと、前記データ収集ステップで収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態を学習する機械学習ステップと、前記データ収集ステップで収集された現在のシステム状態情報と、前記機械学習ステップで事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価ステップとを実行することを要旨とする。
【００１２】
第７の態様に係る発明は、第１から第５のいずれか１つの態様に係る監視装置としてコンピュータを機能させるためのコンピュータプログラムであることを要旨とする。
【発明の効果】
【００１３】
本発明によれば、異常や故障につながるリスクを評価する監視装置、監視方法、及びコンピュータプログラムを提供することが可能である。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態における監視装置の適用例を示すシステム構成図である。
【図２】従来技術における監視装置を適用した場合のシーケンス図である。
【図３】本発明の実施の形態における監視装置を適用した場合のシーケンス図である。
【図４】本発明の実施の形態における監視装置の動作を示すフローチャートである。
【図５】本発明の実施の形態におけるデータ収集部の動作を示すフローチャートである。
【図６】本発明の実施の形態における機械学習部の動作を示すフローチャートである。
【図７】本発明の実施の形態におけるリスク評価部の動作を示すフローチャートである。
【図８】本発明の実施の形態における記憶部に記憶されるデータベース構成図である。
【図９】従来技術と本発明とを比較するための図である。
【図１０】処理１を詳細に説明するための図である。
【図１１】特徴量による分類例１を示す図である。
【図１２】特徴量による分類例２を示す図である。
【図１３】特徴量による分類例３を示す図である。
【図１４】特徴量による分類例３を示す図である。
【図１５】処理４を詳細に説明するための図である。
【図１６】処理４を詳細に説明するための図である。
【発明を実施するための形態】
【００１５】
以下、図面を用いて本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００１６】
＜概要＞
本発明の実施の形態は、数〜数十台のサーバで構成されるシステムの故障等を監視するセンタで収集管理されるシステムのリソース使用量やネットワークトラフィック、環境パラメータなどのシステム稼働情報から異常や故障につながるリスクを評価するものである。ここでいう“リスクの評価”には、異常検知や故障予測の意味も含まれる。技術分野は、システム停止などの事故を防ぐことを目的としたシステム監視技術に属する。なお、数〜数十台のサーバで構成されるシステムとしては、例えば、利用者が終日利用するリアルタイム処理が必要なＷｅｂサービスや基幹業務を提供するシステムが該当する。
【００１７】
＜用語＞
次に、本発明の実施の形態における用語について説明する。
【００１８】
システム状態情報とは、監視対象システムの状態情報である。具体的には、監視対象システムから取得した故障予兆を判断するステータス情報で、リソース情報（ＣＰＵ使用率、メモリ使用量、ヒープメモリ使用量）、デバイス使用量（ＩＯアクセス、ネットワーク接続数、トラフィック量）、及びセンサ情報（システムを設置しているラック内の温度・湿度・振動）からの時系列の測定値のことである。
【００１９】
特徴量とは、システム状態の特徴量である。具体的には、システム状態情報から故障予兆を判断するために抽出・変換したステータス情報のことである。
【００２０】
学習パラメータとは、機械学習における学習パラメータである。具体的には、機械学習（ＡＩ）により最適化された内部の重み係数のこと（機械学習で構成するニューラルネットワークにおける入力信号に対する重要度）である。
【００２１】
モデルとは、機械学習の構成モデルである。具体的には、システム状態情報から抽出した時系列な特徴量から異常判断するために故障原因毎に作成した機械学習の構成のことである。
【００２２】
＜システム構成＞
図１は、本発明の実施の形態における監視装置１０の適用例を示すシステム構成図である。この図に示すように、監視対象システム１に通信網を介して監視装置１０が接続され、監視装置１０に通信網を介して表示等装置２が接続されている。監視装置１０は、監視対象システム１の過去のリソース状態と環境情報からリスク評価に必要な情報を抽出し、事前に機械学習により学習パラメータを生成する。また、システム状態と学習パラメータを利用して、現時点でのリスクを評価し、異常として検出し、その検出結果を表示等装置２に通知する。
【００２３】
これにより、従来専門家の見地が必要であった、しきい値と判断ルールの生成が不要となる。また、しきい値や判断ルールの更新が追加の機械学習により可能となる。さらに、環境条件を元に評価する場合、単一状態でなく過去状態も含めた複数の環境条件を元に評価することができるようになり、検知精度が向上する。加えて、故障のアセスメント（予測結果）から事前に処置することが可能となり、システム稼働率の向上に貢献できる効果もある。
【００２４】
具体的には、監視装置１０は、機械学習によるサーバシステムの異常検知／故障予知方法を実現するコンピュータであって、データ収集部１１と、機械学習部１３と、リスク評価部１５と、記憶部１２と、通知部１６とを備える。もちろん、表示部や操作部など、一般的なコンピュータが備える様々な処理部を備えてもよい。また、各処理部は別々の装置として構成されていてもよい。
【００２５】
データ収集部１１は、システム状態情報を収集する処理部である。具体的には、データ収集部１１は、監視対象システム１のＯＳとセンサから取得できるＣＰＵ使用率・メモリ使用率等のシステム状態情報をネットワーク経由で取得し、時系列情報としてデータベースにて管理する。
【００２６】
機械学習部１３は、機械学習を行う処理部である。具体的には、機械学習部１３は、ＣＰＵ使用率・メモリ使用率等のシステム状態情報の種類及び集計期間毎にＮ種類の学習パラメータＷｎを求め、Ｎ種類の学習パラメータＷｎをデータベースにて管理する。機械学習における学習パラメータＷｎの計算には、既存技術を利用することができる。
【００２７】
リスク評価部１５は、リスクを評価する処理部である。具体的には、リスク評価部１５は、現在のＣＰＵ使用率・メモリ使用率等のシステム状態情報を利用してＮ種類のモデルからリスク発生確率Ｐｎを求め、系全体の発生確率ＰをＰｎの期待値としてリスクを判定する。
【００２８】
記憶部１２は、システム状態情報や学習パラメータなどの各種情報を記憶する記憶装置である。記憶装置は、物理的に１つの装置であってもよいし、２つ以上の装置であってもよい。
【００２９】
通知部１６は、各種情報を表示等装置２に通知する処理部である。
【００３０】
以上のような構成によれば、事前の機械学習により学習パラメータ（現行技術にあたるしきい値と判断ルール）を生成することができる。また、事前学習された学習パラメータと現在のシステム状態から正常性の評価を行い、異常であるかどうかを判断することができる。さらに、監視対象システム１から収集したシステム状態情報から特徴を抽出し、時系列の情報として管理することができる。
【００３１】
＜従来技術のシーケンス＞
図２は、従来技術における監視装置１０を適用した場合のシーケンス図である。従来技術における監視装置１０についても、本発明の実施の形態における監視装置１０と同じ符号１０を用いるが、両者の機能が異なることは言うまでもない。
【００３２】
運用前、監視装置１０側でしきい値・判断ルールの設計・設定を行う（ステップＳ１）。
【００３３】
運用中、監視対象システム１は、システム状態情報を監視装置１０に送信する（ステップＳ２）。このシステム状態情報はリソース情報である。監視装置１０は、監視対象システム１から受信したリソース情報としきい値による異常の判断を行い、判断結果を表示等装置２に送信する（ステップＳ３）。表示等装置２は、監視装置１０から受信した判断結果に基づいてアラーム等を通知する（ステップＳ４）。
【００３４】
＜本発明の実施の形態のシーケンス＞
図３は、本発明の実施の形態における監視装置１０を適用した場合のシーケンス図である。
【００３５】
運用前及び運用中、監視対象システム１は、システム状態情報を監視装置１０に送信する（ステップＳ１１）。このシステム状態情報にはリソース情報だけでなく環境情報も含まれる。これにより、データ収集部１１は、監視対象システム１からリソース情報・環境情報を受信する。また、機械学習部１３は、データ収集部１１によって受信されたリソース情報・環境情報から特徴抽出を行い、学習パラメータを生成（パラメータ学習）する（ステップＳ１２）。
【００３６】
運用中も、監視対象システム１は、システム状態情報を監視装置１０に送信する（ステップＳ１３）。これにより、データ収集部１１は、監視対象システム１からリソース情報・環境情報を受信する。また、リスク評価部１５は、データ収集部１１によって受信されたリソース情報・環境情報から特徴抽出を行い、特徴量に基づいてリスクの評価を行い、リスクの評価結果を表示等装置２に送信する（ステップＳ１４）。表示等装置２は、監視装置１０から受信したリスクの評価結果に基づいてアラーム等を通知する（ステップＳ１５）。
【００３７】
＜監視装置の動作＞
図４は、本発明の実施の形態における監視装置１０の動作を示すフローチャートである。ここでは、監視装置１０の全体動作を説明することとし、各処理部の動作については後述する。
【００３８】
まず、データ収集部１１は、監視対象システム１のシステム状態情報を収集し、システム状態情報を記憶部１２に記憶する（ステップＳ２１）。次いで、機械学習部１３は、データ収集部１１によって収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態を学習し、学習パラメータを記憶部１２に記憶する（ステップＳ２２）。次いで、リスク評価部１５は、データ収集部１１によって収集された現在のシステム状態情報と、機械学習部１３によって事前に学習された正常時の状態とに基づいて、監視対象システム１のリスクを評価する（ステップＳ２３）。最後に、通知部１６は、リスク評価部１５によって評価されたリスクを表示等装置２に通知する（ステップＳ２４）。
【００３９】
＜データ収集部の動作＞
図５は、本発明の実施の形態におけるデータ収集部１１の動作を示すフローチャートである。既に説明したように、データ収集部１１は、監視対象システム１のＯＳとセンサから取得できるＣＰＵ使用率・メモリ使用率等のシステム状態情報をネットワーク経由で取得し、時系列情報としてデータベースにて管理する。
【００４０】
まず、監視対象システム１は、ＯＳ、アプリケーション、センサなどを備えている。温度・湿度・振動のセンサを付けたネットワーク接続されたオンボードマイコンを備えてもよい。これにより、リソース情報（ＣＰＵ使用率、メモリ使用量、ヒープ使用量）、デバイス情報（ＩＯアクセス、ネットワーク接続数、トラフィック）、センサ情報（温度、音）などのシステム状態情報をＯＳやセンサデバイスからネットワーク等を経由して例えば５分間隔で送信する。
【００４１】
データ収集部１１は、現在のシステム状態情報を取得すると、時系列情報としてデータベース（記憶部１２）に記憶する（ステップＳ３１→Ｓ３２→Ｓ３３）。例えば、システム状態情報をｘ、システム状態情報ｘに対する測定値をｘｎとした場合、ｘ１，ｘ２，…，ｘｎを記憶・管理することで、システムの時系列状態の情報を記憶することができる。
【００４２】
＜機械学習部の動作＞
図６は、本発明の実施の形態における機械学習部１３の動作を示すフローチャートである。既に説明したように、機械学習部１３は、ＣＰＵ使用率・メモリ使用率等のシステム状態情報の種類及び集計期間毎にＮ種類の学習パラメータＷｎを求め、Ｎ種類の学習パラメータＷｎをデータベースにて管理する。
【００４３】
まず、機械学習部１３は、時系列状態の情報を取得し（ステップＳ４１）、特徴抽出１，２，…，Ｎを行う（ステップＳ４２‐１，Ｓ４２‐２，…，Ｓ４２‐Ｎ）。例えば、ＣＰＵ利用率（システムからのシステム状態情報＝リソース情報、デバイス情報、センサ情報）を取得した場合、ＣＰＵ利用率の１ヶ月の時間推移の統計量と変化量を算出する。このとき、取得したシステム状態から時系列データとして計算する。特徴量の抽出期間は、バッチ処理等の定期的に特異な動作となる期間を含めてモデル１，２，…，Ｎに追加する。統計量としては、平均、変化量、中央値、標準偏差などを用いることができる。
【００４４】
次いで、機械学習部１３は、特徴結合１，２，…，Ｎを行う（ステップＳ４３‐１，Ｓ４３‐２，…，Ｓ４３‐Ｎ）。例えば、統計量と変化量を１つのデータとして結合・圧縮（正規化）する。特徴情報を結合した結果を記憶する場合、Ｔ＝［（平均値，中間値，標準偏差）、（周波数分析）］で表現される学習用の情報を記憶してもよい。
【００４５】
次いで、機械学習部１３は、状態の機械学習１，２，…，Ｎを行う（ステップＳ４４‐１，Ｓ４４‐２，…，Ｓ４４‐Ｎ）。例えば、以下の（１）（２）のように機械学習を行い、機械学習後の学習パラメータＷｎを記憶し、リスク評価部１５で利用する。
（１）学習情報ｎをもとに機械学習（計算）し、重み（＝学習パラメータ）Ｗｎを算出する。学習結果はリスク値（＝リスク発生確率）として出力するように処理する。
（２）算出した重みＷｎと学習情報ｎのｍ個目の特徴量Ｔｍ（学習用データ）からリスク評価部１５と同様にリスク値Ｐｎを計算し、最も大きい値をモデルｎのリスクしきい値Ｒｎとして算出する。
【００４６】
Ｒｎ＝ｍａｘ（Ｐｎ（Ｗｎ・Ｔｍ））
最後に、機械学習部１３は、状態の機械学習ｎで算出したリクスしきい値Ｒｎから、リスク評価部１５でのリスク判定のためのリスクしきい値Ｒを算出する（ステップＳ４５）。
【００４７】
Ｒ＝（ｖ１・Ｒ１＋ｖ２・Ｒ２＋…＋ｖｎ・Ｒｎ）／Ｎ
算出したリスクしきい値Ｒはリスク評価部１５で利用する。ｖｎは各モデルに対するリスク発生の影響度になり、監視対象システム１の過去の故障履歴と発生要因から求める。
【００４８】
ｖｎ＝Σ（モデルｎ起因の故障件数）／Σ（故障件数）
（影響度が均一の場合は、ｖ１＝ｖ２＝…＝ｖｎ＝１とする。）
【００４９】
＜リスク評価部の動作＞
図７は、本発明の実施の形態におけるリスク評価部１５の動作を示すフローチャートである。既に説明したように、リスク評価部１５は、現在のＣＰＵ使用率・メモリ使用率等のシステム状態情報を利用してＮ種類のモデルからリスク発生確率Ｐｎを求め、系全体の発生確率ＰをＰｎの期待値としてリスクを判定する。
【００５０】
まず、リスク評価部１５は、システム状態情報を取得し（ステップＳ５１）、特徴抽出１，２，…，Ｎを行い（ステップＳ５２‐１，Ｓ５２‐２，…，Ｓ５２‐Ｎ）、特徴結合１，２，…，Ｎを行う（ステップＳ５３‐１，Ｓ５３‐２，…，Ｓ５３‐Ｎ）。この特徴抽出と特徴結合は、機械学習部１３と同様であるため、ここでは詳しい説明を省略する。
【００５１】
次いで、リスク評価部１５は、リスク１，２，…，Ｎを予測する（ステップＳ５４‐１，Ｓ５４‐２，…，Ｓ５４‐Ｎ）。例えば、特徴量Ｔとモデルｎの機械学習部１３で求めた重みＷからリスクを評価した結果（０〜１の値）をリスク値Ｐｎとする。なお、記憶部１２には、事前に機械学習部１３で計算した学習パラメータＷ（ｉ，ｊ）が記憶されている。
【００５２】
Ｐｎ＝Ｐ（Ｗ・Ｔ）
次いで、リスク評価部１５は、リスク発生確率を計算する（ステップＳ５５）。例えば、モデル１〜Ｎのリスク値Ｐｎからリスク発生確率Ｐを計算する。Ｐを系全体のリスク発生確率（モデル１〜Ｎからの発生確率の重み付期待値）として求める。
【００５３】
Ｐ＝（ｖ１・Ｐ１＋ｖ２・Ｐ２＋…＋ｖｎ・Ｐｎ）／Ｎ
次いで、リスク評価部１５は、リスクを判断する（ステップＳ５６）。例えば、リスク発生確率ＰがＲより大きい場合、ｍａｘ（Ｐ１，Ｐ２，…，Ｐｎ）であるモデルｎを要因としてリスク発生あり（ＹＥＳ）と判断する。Ｒは、機械学習部１３で求めたリスクしきい値である。
【００５４】
最後に、リスク評価部１５は、リスク発生なし（ＮＯ）と判断した場合、正常通知を出すための処理を行う（ステップＳ５７）。一方、リスク発生あり（ＹＥＳ）と判断した場合、異常通知を出すための処理を行う（ステップＳ５８）。
【００５５】
＜データベース構成＞
図８は、本発明の実施の形態における記憶部１２に記憶されるデータベース構成図である。図８（ａ）はシステム状態情報を示し、図８（ｂ）は特徴情報（学習データ）を示し、図８（ｃ）は学習パラメータを示している。
【００５６】
図８（ａ）に示すように、システム状態情報として、「時刻」と「システム状態情報ＩＤ」と「システム状態情報値」とを対応付けてもよい。また、「システム状態情報ＩＤ」と「システム状態情報名称」とを対応付けてもよい。「時刻」は、“ＹＹＹＹ／ＭＭ／ＤＤ  ＨＨ：ＭＭ：ＳＳ”等の時刻である。「システム状態情報ＩＤ」は、システム状態情報を識別するためのＩＤ等の数値である。「システム状態情報値」は、監視対象システム１から取得した情報（数値）である。「システム状態情報名称」は、リソース等名称であって、リソース情報（ＣＰＵ使用率、メモリ使用量、ヒープメモリ使用量）、デバイス使用量（ＩＯアクセス、ネットワーク接続数、トラフィック量）、センサ情報（温度・湿度・振動）の情報区分である。
【００５７】
図８（ｂ）に示すように、特徴情報（学習データ）として、「時刻」と「特徴ＩＤ」と「システム状態情報ＩＤ」と「特徴量（１，２，…Ｎ）」とを対応付けてもよい。また、「特徴ＩＤ」と「特徴量名称」とを対応付けてもよい。「特徴ＩＤ」は、特徴情報を識別するためのＩＤ等の数値である。「特徴量（１，２，…Ｎ）」は、システム状態情報を分析した結果（１，２，…Ｎ）の数値である。「特徴量名称」は、統計量（平均値、中央値、標準偏差）、時系列解析（ＦＦＴ）の特徴抽出方法を示す名称である。
【００５８】
図８（ｃ）に示すように、学習パラメータとして、「学習パラメータ（モデルＩＤ）」と「学習パラメータ値（１，１）…（Ｌ，Ｍ）」とを対応付けてもよい。「学習パラメータ（モデルＩＤ）」は、学習パラメータを識別するためのＩＤ等の数値である。「学習パラメータ値（１，１）…（Ｌ，Ｍ）」は、学習パラメータ値（数値）である。
【００５９】
＜効果＞
以上のように、本発明の実施の形態における監視装置１０は、過去正常時の時系列状態情報から機械学習により特徴量区分毎に学習パラメータを生成する。現在のシステム状態をネットワーク等で随時取得した後、生成した学習パラメータにより評価することで異常やリスク検知の検知結果を通知する。これにより、以下のような効果がある。
・しきい値と判断ルールの設計のための経験・専門的見地の負担を軽減する。
・監視対象の判断ルールを機械学習により自動化する。
・サイレント故障の発生を予測する。
・リスクの要因（予測結果）の原因を特定する。
・運用に伴うしきい値等の変更を可能とする。
・アラームの誤検知発生を抑制する。
・観測が難しい故障発生時のデータを不要とする。
【００６０】
＜従来技術との比較＞
以下、従来技術と比較しながら、本発明を更に詳しく説明する。
【００６１】
図９は、従来技術と本発明とを比較するための図である。図９に示すように、従来技術においては、システムの故障等を監視するセンタにおけるシステムの異常検知やリスクの予測は、しきい値とその判断ルールにより行う（左図）。例えば、１）アラーム通知のルールとしきい値を事前に設定し、２）ルールとしきい値により現在の状態を判断する。この例では、ＡとＢの時点でしきい値を超えた時間が連続３０秒以上になったのでアラームログを作成している。
【００６２】
しかし、その監視対象としきい値、異常の判断ルールは、過去事例と経験に基づき設計した後、運用段階で調整することがあり、専門家の見地が必要となっている。また、監視装置１０による発生アラームは誤検知や発生原因不明のものがあり、専門家の判断なしに異常を判断することができない。さらに、サイレント故障についてはアラームやログ等に情報が残らないこともあるため、検知や原因追跡することができない。
【００６３】
そこで、本発明では、異常や故障につながるリスクを機械学習により評価（検知・予測）する（右図）。例えば、１）正常時の状態をＡＩにより事前に学習し、２）現在の状態をＡＩでリスク評価（正常時からの違いを検出）する。
【００６４】
＜本発明の特徴＞
本発明は、機械学習を活用するための方式として、処理１〜４を採用している。以下、事例を示しながら具体的に説明する。
【００６５】
処理１：異常検知のため監視対象の状態情報から異常を表現づける特徴量を抽出する。
【００６６】
処理２：システムの環境条件をセンサで取得し、リスクを複合的に評価する。
【００６７】
処理３：特定の一時点の情報だけでなく過去の時系列情報を加えてリスクを評価する。
【００６８】
処理４：複数の条件を複数の学習モデルで異常評価することで要因の追跡を可能とする。
【００６９】
＜処理１：特徴量＞
図１０は、処理１を詳細に説明するための図である。本発明では、メモリやＣＰＵの使用率等のシステム状態情報から故障等のリスクを特徴づける変化量・平均値等の特徴量を利用する。図中の（１）の波形は、ＣＰＵ使用率等のシステム状態情報（正常時）を示している。このシステム状態情報から変化量（周波数分析）を抽出した場合を（２−１）に示し、平均値・標準偏差・中央値を抽出した場合を（２−２）に示している。このような特徴量を利用すれば、従来のメモリやＣＰＵの使用率等のしきい値では判断ができないサイレント故障などの事象を捉え易くなる（具体例は後述する）。この特徴をＡＩで比較することで正常時との差（異常かどうか）を判断することができる。
【００７０】
＜事例１＞
図１１は、特徴量による分類例１を示す図である。ここでは、ヒープメモリ使用量が増加し、メモリ不足が発生している場合（サイレント故障）を例示している。
【００７１】
図中の（１）の波形は、メモリ使用率の時間変化を示している。しきい値（８０％）は超えていないため、サイレント故障が発生している。このようなメモリ使用率の時間変化において、変化量を抽出した場合を（２−１）に示し、平均値・標準偏差を抽出した場合を（２−２）に示している。（２−１）に示すように、使用率の変化が通常（正常時）と異なる箇所がある。また、（２−２）に示すように、平均値・標準偏差とも大きな変化は見られない（平均は同じ、標準偏差は多少大）。
【００７２】
＜事例２＞
図１２は、特徴量による分類例２を示す図である。ここでは、ＣＰＵ負荷が徐々に上昇している場合（サイレント故障）を例示している。この事例はメモリリークの類似事象である。
【００７３】
図中の（１）の波形は、ＣＰＵ使用率の時間変化を示している。しきい値（８０％）は超えていないため、サイレント故障が発生している。このようなＣＰＵ使用率の時間変化において、変化量を抽出した場合を（２−１）に示し、平均値・標準偏差を抽出した場合を（２−２）に示している。（２−１）に示すように、変化量については大きな変化は見られない。また、（２−２）に示すように、平均値・標準偏差とも大きく異なる。
【００７４】
＜事例３＞
図１３は、特徴量による分類例３を示す図（１／２）である。ここでは、バッチ処理等の定期的なＣＰＵ負荷上昇を例示している（一定時間間隔の負荷上昇）。
【００７５】
図中の（１）の波形は、ＣＰＵ使用率の時間変化を示している。しきい値（８０％）を超えると（一時的にＣＰＵの使用率が上昇すると）、従来はアラームが発生する。このようなＣＰＵ使用率の時間変化において、変化量を抽出した場合を（２−１）に示し、平均値・標準偏差を抽出した場合を（２−２）に示している。（２−１）に示すように、変化量については大きな変化は見られない。また、（２−２）に示すように、平均値・標準偏差とも大きく異なる。
【００７６】
図中の（１）の波形のように２つの特徴を持つ場合、本来は正常であるにもかかわらず、異常として判断される可能性がある。そこで、本発明では、以下に説明するように、特徴区間を分割することで正常として学習するようにしている。
【００７７】
図１４は、特徴量による分類例３を示す図（２／２）である。図１４に示すように、バッチ処理等の定期的なＣＰＵ負荷上昇（一定時間間隔の負荷上昇）の場合、特徴区間を分割することで正常として学習することができる。
【００７８】
図中の（１）の波形は、ＣＰＵ使用率の時間変化を示している。この例では、横軸（時間軸）が０〜２５０の区間を特徴区間１とし、２５０〜５００の区間を特徴区間２としている。このようなＣＰＵ使用率の時間変化において、変化量を抽出した場合を（２−１）に示し、平均値・標準偏差を抽出した場合を（２−２）に示している。（２−１）に示すように、変化量については、特徴区間１では変化は見られず、特徴区間２では大きな変化は見られない。また、（２−２）に示すように、特徴区間１では平均値・標準偏差とも変化は見られず、特徴区間２では平均値が上昇（＝使用率が全体的に上昇）している。
【００７９】
＜処理２：環境条件＞
監視対象システム１の環境条件をセンサで取得し、リスクを複合的に評価する。環境条件としては、例えば、動作温度・湿度・振動・消費電力等を挙げることができる。これにより、ソフト的な情報だけでなく物理的な情報を含めて複数の条件を機械学習で評価することで誤検知を抑制することが可能となる。温度上昇が故障に大きく影響する等の知見があるため、物理的な情報を含めることは非常に効果的である。
【００８０】
＜処理３：時系列特徴量（正常時との差異を検出）＞
時間変化のあるシステム情報量を特徴量の時系列変化として捉えるため、時系列の特徴量を機械学習の入力として利用する。時系列特徴量には、変化量と統計量（平均値、標準偏差、中央値）の２つを利用する。特徴量を［数１］とし、システム状態情報を［数２］とした場合、変化量は［数３］で表すことができ、統計量は［数４］で表すことができる。
【００８１】
【数１】
2019211919.tif 000003
【００８２】
【数２】
2019211919.tif 000004
【００８３】
【数３】
2019211919.tif 000005
【００８４】
【数４】
2019211919.tif 000006
＜処理４：各条件を各ＡＩで評価し、要因の追跡を可能とする＞
図１５は、処理４を詳細に説明するための図である。正常時のシステム固有の特徴量遷移を機械学習で学習し、正常時からの差で異常を判断する。具体的には、現在（時系列）の特徴が正常時の傾向と同じであるかを判定する（Ａｕｔｏｅｎｃｏｄｅｒによる入力値と出力値の距離計算）。この判定の結果、現在の特徴と正常時の傾向とに差が発生した場合は、各モデルの判定結果で最も乖離のあるリソースを故障の要因と判定する。これにより、各条件を各ＡＩで評価し、要因の追跡を可能とする。
【００８５】
ここでは、１２個の組み合わせで故障リスクを判定する場合を例示している。この１２個のモデルのうち、例えば、ＣＰＵ使用率の変化率でリスク発生確率が最も高くなっている場合は、ＣＰＵの振れ幅に異常があると判定することができる。
【００８６】
図１６は、各モデルのリスク発生確率を説明するための図である。この図に示すように、特徴空間の正常時分布をＡｕｔｏｅｎｃｏｄｅｒでモデル化し、異常の判断を入力値と出力値の距離（誤差）で判定する。各条件ｎでの正常時との推定差（＝リスク発生確率Ｐｎ）は、次式で表すことができる。
【００８７】
【数５】
2019211919.tif 000007
＜まとめ＞
以上説明したように、本発明の実施の形態における監視装置１０は、監視対象システム１のシステム状態情報を収集するデータ収集部１１と、データ収集部１１によって収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態が学習された機械学習部１３と、データ収集部１１によって収集された現在のシステム状態情報と、機械学習部１３によって事前に学習された正常時の状態とに基づいて、監視対象システム１のリスクを評価するリスク評価部１５とを備える。これにより、監視対象の状態から異常・リスクを機械学習により判断・検知するしくみを作ることができるため、異常や故障につながるリスクを評価することが可能となる。
【００８８】
具体的には、機械学習部１３は、異常検知のため、システム状態情報から異常を表現づける特徴量を抽出してもよい。情報の時間的推移が異常検知に有効であるため、時系列データに対する変化の標準偏差と変化量を特徴として利用する。機械学習におけるデータの次元数削減、不要な情報を評価対象から除く観点から、特徴量への抽出が有効である。
【００８９】
また、リスク評価部１５は、監視対象システム１の環境条件（動作温度・湿度・振動・消費電力等）をセンサで取得する（状態情報に物理情報を加味する）ことでリスクを複合的に評価してもよい。これにより、ソフト的な情報だけでなく物理的な情報を含めて複数の条件を機械学習で評価することで誤検知を抑制することが可能となる。温度上昇が故障に大きく影響する等の知見があるため、物理的な情報を含めることは非常に効果的である。
【００９０】
また、リスク評価部１５は、特定の一時点の情報（静止点の情報）だけでなく過去の時系列情報を加えて評価することでサイレント故障の発生を予測（正常時の挙動と異なる点を検知）してもよい。従来技術では特定の一時点の情報で評価するため、特異点が誤検知につながっている。従来技術では検知できなかったサイレント故障を検知することが可能となる。
【００９１】
また、リスク評価部１５は、複数の条件を複数の学習モデル（複数の機械学習）で異常評価することで原因を追跡してもよい。システム固有の定期処置等の特異点を学習モデルにすることで誤検知を抑制できる。これにより、機械学習の弱点である、結果までの過程が解析できない部分を解決することが可能となる。
【００９２】
なお、機械学習では一般に教師データ（故障発生時のデータ等）を必要とするが、正常状態を利用することで観測が難しい故障発生時のデータを不要とする。故障時のデータは取得が難しく、機械学習のためのデータ収集ができない課題を解決することが可能となる。
【００９３】
また、本発明は、このような監視装置１０として実現することができるだけでなく、このような監視装置１０が備える特徴的な処理部をステップとする監視方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのはいうまでもない。
【符号の説明】
【００９４】
１…監視対象システム
２…表示等装置
１０…監視装置
１１…データ収集部
１２…記憶部
１３…機械学習部
１５…リスク評価部
１６…通知部
【図１】
2019211919.tif 000008
【図２】
2019211919.tif 000009
【図３】
2019211919.tif 000010
【図４】
2019211919.tif 000011
【図５】
2019211919.tif 000012
【図６】
2019211919.tif 000013
【図７】
2019211919.tif 000014
【図８】
2019211919.tif 000015
【図９】
2019211919.tif 000016
【図１０】
2019211919.tif 000017
【図１１】
2019211919.tif 000018
【図１２】
2019211919.tif 000019
【図１３】
2019211919.tif 000020
【図１４】
2019211919.tif 000021
【図１５】
2019211919.tif 000022
【図１６】
2019211919.tif 000023
【手続補正書】
【提出日】令和1年7月10日(2019.7.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
監視対象システムのシステム状態情報を収集するデータ収集部と、
前記データ収集部によって収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態が学習された機械学習部と、
前記データ収集部によって収集された現在のシステム状態情報と、前記機械学習部によって事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価部と
を備え、
前記機械学習部は、前記システム状態情報から異常を表現づける特徴量を抽出し、
前記リスク評価部は、特定の一時点の情報だけでなく過去の時系列情報を加え、その時系列特徴量として前記時系列情報の変化量と統計量の２つを利用してリスクを評価することで、メモリまたはＣＰＵの使用率のしきい値では判断ができないサイレント故障の発生を予測することを特徴とする監視装置。
【請求項２】
前記リスク評価部は、前記監視対象システムの環境条件をセンサで取得することでリスクを複合的に評価することを特徴とする請求項１に記載の監視装置。
【請求項３】
前記リスク評価部は、複数の条件を複数の学習モデルで異常評価することで原因を追跡することを特徴とする請求項１または２に記載の監視装置。
【請求項４】
コンピュータが、
監視対象システムのシステム状態情報を収集するデータ収集ステップと、
前記データ収集ステップで収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態を学習する機械学習ステップと、
前記データ収集ステップで収集された現在のシステム状態情報と、前記機械学習ステップで事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価ステップと
を実行し、
前記機械学習ステップでは、前記システム状態情報から異常を表現づける特徴量を抽出し、
前記リスク評価ステップでは、特定の一時点の情報だけでなく過去の時系列情報を加え、その時系列特徴量として前記時系列情報の変化量と統計量の２つを利用してリスクを評価することで、メモリまたはＣＰＵの使用率のしきい値では判断ができないサイレント故障の発生を予測することを特徴とする監視方法。
【請求項５】
請求項１から３のいずれか１項に記載した監視装置としてコンピュータを機能させるためのコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上記目的を達成するため、第１の態様に係る発明は、監視装置であって、監視対象システムのシステム状態情報を収集するデータ収集部と、前記データ収集部によって収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態が学習された機械学習部と、前記データ収集部によって収集された現在のシステム状態情報と、前記機械学習部によって事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価部とを備え、前記機械学習部は、前記システム状態情報から異常を表現づける特徴量を抽出し、前記リスク評価部は、特定の一時点の情報だけでなく過去の時系列情報を加え、その時系列特徴量として前記時系列情報の変化量と統計量の２つを利用してリスクを評価することで、メモリまたはＣＰＵの使用率のしきい値では判断ができないサイレント故障の発生を予測することを要旨とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
第２の態様に係る発明は、第１の態様に係る発明において、前記リスク評価部が、前記監視対象システムの環境条件をセンサで取得することでリスクを複合的に評価することを要旨とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
第３の態様に係る発明は、第１または第２の態様に係る発明において、前記リスク評価部が、複数の条件を複数の学習モデルで異常評価することで原因を追跡することを要旨とする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
第４の態様に係る発明は、監視方法であって、コンピュータが、監視対象システムのシステム状態情報を収集するデータ収集ステップと、前記データ収集ステップで収集されたシステム状態情報に基づいて、事前に機械学習により正常時の状態を学習する機械学習ステップと、前記データ収集ステップで収集された現在のシステム状態情報と、前記機械学習ステップで事前に学習された正常時の状態とに基づいて、前記監視対象システムのリスクを評価するリスク評価ステップとを実行し、前記機械学習ステップでは、前記システム状態情報から異常を表現づける特徴量を抽出し、前記リスク評価ステップでは、特定の一時点の情報だけでなく過去の時系列情報を加え、その時系列特徴量として前記時系列情報の変化量と統計量の２つを利用してリスクを評価することで、メモリまたはＣＰＵの使用率のしきい値では判断ができないサイレント故障の発生を予測することを要旨とする。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
第５の態様に係る発明は、第１から第３のいずれか１つの態様に係る監視装置としてコンピュータを機能させるためのコンピュータプログラムであることを要旨とする。