(57)【要約】      （修正有）【課題】ジョブの異常を精度よく検出する異常検出システム、異常検出方法、及び異常検出プログラムを提供する。【解決手段】異常検出装置１００は、複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、第１ジョブが開始された時刻からの経過時刻に伴う、第１ジョブのリソース使用量の変化の特性を学習する。異常検出装置は、監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、第２ジョブが開始された時刻からの経過時刻に伴う、第２ジョブのリソース使用量の変化の特性を算出する。異常検出装置は、第１ジョブのリソース使用量の変化の特性と、第２ジョブのリソース使用量の変化の特性とを基にして、第２ジョブの異常を検出する。【選択図】図６
2020154604.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量の変化の特性を学習する学習部と、
監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量の変化の特性を算出し、前記第１ジョブのリソース使用量の変化の特性と、前記第２ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する検出部と
を有することを特徴とする異常検出システム。
【請求項２】
コンピュータが実行する異常検出方法であって、
複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量の変化の特性を学習し、
監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量の変化の特性を算出し、
前記第１ジョブのリソース使用量の変化の特性と、前記第２ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する
処理を実行させることを特徴とする異常検出方法。
【請求項３】
コンピュータに
複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量の変化の特性についての学習結果を記憶した記憶部を参照して、
監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量の変化の特性を算出し、
前記第１ジョブのリソース使用量の変化の特性と、前記第２ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する
処理を実行させることを特徴とする異常検出プログラム。
【請求項４】
前記学習結果は、前記複数の第１ジョブについて、リソース使用量の変化の特性をそれぞれ算出し、前記第１ジョブのリソース使用量の変化の特性をクラスタリングし、クラスタ毎の変化の特性を平均化することで、クラスタ毎に、前記第１ジョブのリソース使用量の変化の特性を学習した結果であることを特徴とする請求項３に記載の異常検出プログラム。
【請求項５】
前記検出する処理は、前記第２ジョブのリソース使用量の変化の特性と、クラスタ毎の前記第１ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する際に用いる第１ジョブのリソース使用量の変化の特性を選択することを特徴とする請求項４に記載の異常検出プログラム。
【請求項６】
前記学習結果は、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量を累積した第１累積値を、前記第１ジョブのリソース使用量の変化の特性として学習した結果であり、前記算出する処理は、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量を累積した第２累積値を、前記第２ジョブのリソース使用量の変化の特性として算出することを特徴とする請求項３、４または５に記載の異常検出プログラム。
【請求項７】
前記検出する処理は、前記第１累積値が、前記第２累積値よりも大きいか否かを基にして、前記第２ジョブに発生した異常の種別を検出することを特徴とする請求項６に記載の異常検出プログラム。
【請求項８】
前記第１ジョブの終了時刻における第１累積値に対する、前記第２ジョブの経過時刻に伴う第２累積値の割合を算出し、算出した割合に応じた色を表示装置に表示させる処理を更に実行することを特徴とする請求項６または７に記載の異常検出プログラム。
【請求項９】
前記第１ジョブが開始された時刻を基準とした所定の時間幅に含まれる各時刻のリソース使用量を比較し、リソース使用量が最大となる時刻を、前記第１ジョブが開始された時刻とする処理を更に実行することを特徴とする請求項３〜８のいずれか一つに記載の異常検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出システム等に関する。
【背景技術】
【０００２】
流通、小売業では、ＩＴ（Information  Technology）システムを導入し、日次、月次で売上げ等に関する集計処理を実行し、当日または当月の収益の計算を実施したり、明日または来月以降の需要を予測したりして、商品の供給を制御している。
【０００３】
ここで、ＩＴシステムの不調により、集計処理を実施できない場合や、集計処理の終了予定時刻が大幅に遅れる場合には、翌日の営業において商品の供給等を上手く制御できず、売上げに影響を与える場合がある。このような不測の事態を早期に検出することができれば、ＩＴシステムの不調を取り除いたり、売上げへの影響を緩和するための回避手段を講じたりすることができる。
【０００４】
同様に、企業の基幹システムの人事給与等に関するＩＴシステムでは、退勤情報、出張情報、立替精算等の集計処理を日次で実施している。かかる集計処理がＩＴシステムの不調により、翌日の業務開始に間に合わないことが起こると、人事給与に関する手続が滞る場合がある。
【０００５】
たとえば、ＩＴシステムで実行される集計処理等の「ジョブ」が順調に処理されているか否かを監視する各種の従来技術として、閾値を用いた外れ値検知（１）、ＭＴ法を用いた外れ値検知（２）、One  Class  SVM、コルモゴロフスミルノフ検定等がある。
【０００６】
外れ値検知（１）は、測定データと閾値とを比較することで、異常を検出する技術である。外れ値検知（２）は、データの値が正規分布であると仮定し、測定データが平均値からずれた場合に、異常を検出する技術である。One  Class  SVMは、機械学習したモデルを用いて、測定データが異常であるか否かを判定する技術である。コルモゴロフスミルノフ検定は、基準データと測定データとの２つの分布が一致するか否かを判定する技術である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−４８２５３号公報
【特許文献２】国際公開第２０１４／１８４９３４号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術では、ジョブの異常を精度よく検出することができないという問題がある。
【０００９】
外れ値検知（１）では、閾値そのものの妥当性判断が難しく、冗長性を持たせて大きな値をとれば精度が低下し、厳しい値をとれば過剰検知となる。
【００１０】
外れ値検知（２）では、測定データの値が正規分布でない場合、何らかの前処理を行って正規分布に変数変換して、異常を検出することになる。ここで、測定データの値に偏りがある場合には、補正することが難しく、誤検知となる場合が多い。
【００１１】
One  Class  SVMでは、機械学習を行うためには、膨大な学習データを用いるため、学習データが不足する場合、ジョブの異常を精度よく検出することができない。
【００１２】
コルモゴロフスミルノフ検定では、２つの分布が一致するか否かを判定するものであり、単に２つの分布が相違するからといって、ジョブに異常が発生したとは言えない場合があり、ジョブの異常を精度よく検出することができない。
【００１３】
１つの側面では、本発明は、ジョブの異常を精度よく検出することができる異常検出システム、異常検出方法および異常検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の案では、異常検出システムは、学習部と、検出部とを有する。学習部は、複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量の変化の特性を学習する。検出部は、監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、第２ジョブが開始された時刻からの経過時刻に伴う、第２ジョブのリソース使用量の変化の特性を算出し、第１ジョブのリソース使用量の変化の特性と、第２ジョブのリソース使用量の変化の特性とを基にして、第２ジョブの異常を検出する。
【発明の効果】
【００１５】
ジョブの異常を精度よく検出することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、学習処理の一例を説明するための図である。
【図２】図２は、異常検出処理を説明するための図（１）である。
【図３】図３は、異常検出処理を説明するための図（２）である。
【図４】図４は、本実施例に係る異常検出システムの一例を示す図である。
【図５】図５は、本実施例に係るＩＴサーバの構成を示す機能ブロック図である。
【図６】図６は、本実施例に係る異常検出装置の構成を示す機能ブロック図である。
【図７】図７は、分離テーブルのデータ構造の一例を示す図である。
【図８】図８は、モデルテーブルのデータ構造の一例を示す図である。
【図９】図９は、クラスタリング処理の一例を説明するための図である。
【図１０】図１０は、ジョブデータの時刻とＣＰＵ使用率との関係を示す図である。
【図１１】図１１は、開始時刻から終了時刻までのジョブのＣＰＵ使用量を示す図である。
【図１２】図１２は、開始時刻から経過時刻ｔまでのジョブのＣＰＵ使用量を示す図である。
【図１３】図１３は、開始時刻から終了時刻ｔまでの経過時刻に伴う累積値の変化を示す図である。
【図１４】図１４は、開始時刻から経過時刻ｔまでの経過時刻に伴う累積値の変化を示す図である。
【図１５】図１５は、ジョブモデル選択処理の一例を説明するための図である。
【図１６】図１６は、検出処理を説明するための図（１）である。
【図１７】図１７は、検出処理を説明するための図（２）である。
【図１８】図１８は、検出処理を説明するための図（３）である。
【図１９】図１９は、表示処理部が生成する表示画面の一例を示す図（１）である。
【図２０】図２０は、表示処理部が生成する表示画面の一例を示す図（２）である。
【図２１】図２１は、表示処理部が生成する表示画面の一例を示す図（３）である。
【図２２】図２２は、本実施例に係る学習処理の処理手順を示すフローチャートである。
【図２３】図２３は、本実施例に係る検出処理の処理手順を示すフローチャートである。
【図２４】図２４は、その他の表示画面の一例を説明するための図である。
【図２５】図２５は、本実施例に係る異常検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する異常検出システム、異常検出方法および異常検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１８】
本実施例に係る異常検出装置は、学習処理と、異常検出処理とを実行する。まず、異常検出装置が実行する学習処理について説明する。図１は、学習処理の一例を説明するための図である。異常検出装置は、正常時のＩＴシステム等から測定データ１０を取得する。測定データ１０は、時刻と、ＣＰＵ（Central  Processing  Unit）使用率との関係を示す情報である。異常検出装置は、測定データ１０を円滑化することで、円滑化データ１１を生成する（ステップＳ１０）。
【００１９】
異常状態検出装置は、ジョブ認識を実行して、円滑化データ１１を、複数のジョブデータに分離する。たとえば、異常状態検出装置は、時刻を基にして、円滑化データ１１を、複数の夜間ジョブデータ１１ａ、および、複数の昼間ジョブデータ１１ｂに分離する（ステップＳ１１）。
【００２０】
異常検出装置は、各夜間ジョブデータ１１ａについて、経過時刻と、ＣＰＵ使用率の累積値との関係を示す累積曲線１２ａをそれぞれ算出する。また、異常検出装置は、各昼間ジョブデータ１１ｂについて、経過時刻と、ＣＰＵ使用率の累積値との関係を示す累積曲線１２ｂをそれぞれ算出する（ステップＳ１２）。
【００２１】
異常検出装置は、各累積曲線１２ａを平均化することで、累積曲線１３ａを生成する。累積曲線１３ａは、夜間ジョブの学習モデルに対応する。異常検出装置は、各累積曲線１２ｂを平均化することで、累積曲線１３ｂを生成する。累積曲線１３ｂは、昼間ジョブの学習モデルに対応する（ステップＳ１３）。
【００２２】
続いて、異常検出装置が実行する異常検出処理について説明する。図２および図３は、異常検出処理を説明するための図である。図２について説明する。ここでは一例として、夜間ジョブの学習モデル（累積曲線１３ａ）を基にして、夜間に測定された測定データの異常を検出する場合について説明する。図２のグラフの横軸は時刻に対応し、縦軸はＣＰＵ使用率の累積値に対応する。異常検出装置は、累積曲線１３ａを基にして、許容範囲１４ａを設定する。
【００２３】
図３の説明に移行する。異常検出装置は、経過時刻に伴って、異常検出対象となる測定データの累積曲線１５ａを生成し、許容範囲１４ａと比較する。図３のグラフの横軸は時刻に対応し、縦軸はＣＰＵ使用率の累積値に対応する。図３に示す例では、時刻ＴＭとなった場合、累積曲線１５ａが、許容範囲１４ａを逸脱する。このため、異常検出装置は、時刻ＴＭにおいて、異常検出対象となる測定データの異常を検出する。
【００２４】
図１〜図３で説明したように、異常検出装置は、正常時の測定データ１０に基づいて、学習モデルを学習しておく。異常検出装置は、異常検出対象となる測定データに基づいて、経過時刻に伴うＣＰＵ使用率の累積値を算出し、累積値が学習モデルの許容範囲を逸脱した場合に、異常が発生したと判定する。これによって、ジョブの異常を精度よく検出することができる。
【００２５】
次に、本実施例に係る異常検出システムの一例について説明する。図４は、本実施例に係る異常検出システムの一例を示す図である。図４に示すように、この異常検出システムは、ＩＴサーバ６０と、異常検出装置１００とを有する。ＩＴサーバ６０および異常検出装置１００は、ネットワーク５０を介して相互に接続される。
【００２６】
ＩＴサーバ６０は、クライアント端末（図示略）から各種のデータを受信して、各種のＩＴサービスを実行する装置である。たとえば、ＩＴサーバ６０は、ＰＯＳ（Point  Of  Sales）端末から、販売された商品の情報を受信し、日次、月次での売上げ等に関する集計処理を実行する。また、ＩＴサーバ６０は、時刻とＣＰＵ使用率との関係を示す測定データを生成し、測定データを、異常検出装置１００に送信する。
【００２７】
異常検出装置１００は、ＩＴサーバ６０から受信する測定データを基にして異常検出を行う装置である。たとえば、異常検出装置は、ＩＴサーバ６０から受信する正常時の測定データを基にして、学習モデルを学習しておく。異常検出装置１００は、異常検出対象となる測定データに基づいて、経過時刻に伴うＣＰＵ使用率の累積値を算出し、累積値が学習モデルの許容範囲を逸脱した場合に、異常が発生したと判定する。なお、経過時刻に伴うＣＰＵ使用率の累積値は、「リソース使用量の変化の特性」の一例である。
【００２８】
次に、図４に示したＩＴサーバ６０の構成の一例について説明する。図５は、本実施例に係るＩＴサーバの構成を示す機能ブロック図である。図５に示すように、このＩＴサーバ６０は、通信部６１と、入力部６２と、表示部６３と、記憶部６４と、制御部６５とを有する。
【００２９】
通信部６１は、クライアント端末および異常検出装置１００との間でデータ通信を実行する処理部である。通信部６１は、通信装置に対応する。後述する制御部６５は、通信部６１を介して、クライアント端末および異常検出装置１００とデータをやり取りする。
【００３０】
入力部６２は、ＩＴサーバ６０に各種の情報を入力するための入力装置である。たとえば、入力部６２は、キーボードやマウス、タッチパネル等に対応する。
【００３１】
表示部６３は、制御部６５から出力される情報を表示する表示装置である。たとえば、表示部６３は、液晶ディスプレイやタッチパネル等に対応する。
【００３２】
記憶部６４は、測定データ１０と、処理対象データ６４ａとを有する。記憶部６４は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００３３】
測定データ１０は、図１で説明したように、時刻と、ＣＰＵ使用率とを対応付けた情報である。
【００３４】
処理対象データ６４ａは、クライアント端末等から受信する処理対象のデータである。たとえば、処理対象データ６４ａは、販売された商品の情報が含まれる。
【００３５】
制御部６５は、サービス提供部６５ａと、生成部６５ｂと、送信部６５ｃとを有する。制御部６５は、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部６５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００３６】
サービス提供部６５ａは、クライアント端末等からアクセスを受け付け、各種のサービスを実行する処理部である。たとえば、サービス提供部６５ａは、クライアント端末から、処理対象データ６４ａを受信し、記憶部６４に格納する。また、サービス提供部６５ａは、処理対象データ６４ａに対して集計処理等を実行する。サービス提供部６５ａは、集計処理の結果を、クライアント端末等に通知する。
【００３７】
生成部６５ｂは、制御部（ＣＰＵ）６５の使用率を監視し、測定データ１０を生成する処理部である。生成部６５ｂは、生成した測定データ１０を記憶部６４に格納する。
【００３８】
送信部６５ｃは、測定データ１０を、異常検出装置１００に送信する処理部である。たとえば、送信部６５ｃは、後述する異常検出装置１００が異常検出を行うための学習モデルを生成するフェーズにおいて、正常時に測定された測定データ１０を、異常検出装置１００に送信する。
【００３９】
一方、送信部６５ｃは、異常検出装置１００が、ＩＴサーバ６０の異常検出を行うフェーズにおいて、検出部１５０ｄによって生成される測定データ１０を、リアルタイムで、異常検出装置１００に送信する。以下の説明において、異常検出を行うフェーズにおいて、送信部６５ｃが送信する測定データを、「検出対象データ」と表記する。
【００４０】
次に、図４に示した異常検出装置１００の構成の一例について説明する。図６は、本実施例に係る異常検出装置の機能ブロック図である。図６に示すように、この異常検出装置１００は、通信部１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有する。
【００４１】
通信部１１０は、ＩＴサーバ６０等との間でデータ通信を実行する処理部である。通信部１１０は、通信装置に対応する。後述する制御部１５０は、通信部１１０を介して、ＩＴサーバ６０とデータをやり取りする。
【００４２】
入力部１２０は、異常検出装置１００に各種の情報を入力するための入力装置である。入力部１２０は、キーボードやマウス、タッチパネル等に対応する。
【００４３】
表示部１３０は、制御部１５０から出力される各種の情報を表示する表示装置である。表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。
【００４４】
記憶部１４０は、測定データ１０と、円滑化データ１１と、分離テーブル１４０ａと、モデルテーブル１４０ｂと、検出対象データ１４０ｃと、円滑化データ１４０ｄを有する。記憶部１４０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。
【００４５】
測定データ１０は、ＩＴサーバ６０から受信する正常時の測定データである。測定データ１０は、図１で説明したように、時刻と、ＣＰＵ使用率とを対応付けた情報である。
【００４６】
円滑化データ１１は、図１で説明したように、測定データ１０に対して円滑化処理を行うことで得られる情報である。
【００４７】
分離テーブル１４０ａは、複数の夜間ジョブデータと、複数の昼間ジョブデータとを格納するテーブルである。図１で説明したように、円滑化データ１１は、複数の夜間ジョブデータ１１ａ、および、複数の昼間ジョブデータ１１ｂに分離される。
【００４８】
図７は、分離テーブルのデータ構造の一例を示す図である。図７に示すように、分離テーブル１４０ａは、ジョブ種別と、時刻と、ジョブデータとを対応付ける。ジョブ種別は、ジョブデータの種別（夜間ジョブまたは昼間ジョブ）を示すものである。時刻は、該当ジョブデータの時刻を示すものである。ジョブデータは、時刻とＣＰＵ使用率とを対応付けるデータ（円滑化データ）である。たとえば、１行目のレコードには、時刻Ｔｎ１〜Ｔｎ２の円滑化データが、ジョブ種別「夜間ジョブ」のジョブデータとして格納されている。５行目のレコードには、時刻Ｔｄ１〜Ｔｄ２の円滑化データが、ジョブ種別「昼間ジョブ」のジョブデータとして格納されている。
【００４９】
以下の説明では、円滑化データ１１に含まれる複数のジョブデータのうち、ジョブ種別「夜間ジョブ」に属するジョブデータを、「夜間ジョブデータ」と表記する。ジョブ種別「昼間ジョブ」に属するジョブデータを、「昼間ジョブデータ」と表記する。なお、夜間ジョブデータと、昼間ジョブデータとを特に区別しない場合には、単に、ジョブデータと表記する。
【００５０】
モデルテーブル１４０ｂは、図１で説明した処理により学習された学習モデルを格納するテーブルである。図８は、モデルテーブルのデータ構造の一例を示す図である。図８に示すように、このモデルテーブル１４０ｂは、モデル種別と、モデルデータとを対応付ける。モデル種別は、モデルデータの種別（夜間モデルまたは昼間モデル）を示すものである。モデルデータは、学習モデルのデータであり、たとえば、サンプル順にＣＰＵ使用率を並べたベクトルとなる。
【００５１】
以下の説明では、学習モデルのうち、モデル種別「夜間モデル」に属するモデルデータを、「夜間モデルデータ」と表記する。モデル種別「昼間モデル」に属するモデルデータを、「昼間モデルデータ」と表記する。
【００５２】
検出対象データ１４０ｃは、異常検出対象となる測定データである。円滑化データ１４０ｄは、検出対象データ１４０ｃに対して円滑化処理を行うことで得られる情報である。
【００５３】
図６の説明に戻る。制御部１５０は、取得部１５０ａと、円滑化部１５０ｂと、学習部１５０ｃと、検出部１５０ｄと、表示処理部１５０ｅとを有する。制御部１５０は、ＣＰＵやＭＰＵなどによって実現できる。また、制御部１５０は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによっても実現できる。
【００５４】
取得部１５０ａは、学習モデルを生成するフェーズにおいて、ＩＴサーバ６０から測定データ１０を取得した場合、取得した測定データ１０を、記憶部１４０に格納する。取得部１５０ａは、異常を検出するフェーズにおいて、ＩＴサーバ６０から測定データ１０を受信した場合、測定データ１０を、検出対象データ１４０ｃとして、記憶部１４０に格納する。
【００５５】
円滑化部１５０ｂは、測定データ１０に対して円滑化処理を実行することで、円滑化データ１１を生成する処理部である。また、円滑化部１５０ｂは、検出対象データ１４０ｃに対して円滑化処理を実行することで、円滑化データ１４０ｄを生成する。たとえば、円滑化部１５０ｂは、ＦＦＴ（Fast  Fourier  Transform）フィルタを用いて、測定データ１０（検出対象データ１４０ｃ）のノイズを除去することで、円滑化処理を実行する。または、円滑化部１５０ｂは、移動平均等を実行して、円滑化処理を実行してもよい。
【００５６】
学習部１５０ｃは、円滑化データ１１を基にして、正常時における経過時刻に伴う、ＣＰＵ使用率の変化の特性を学習する処理部である。たとえば、学習部１５０ｃは、クラスタリング処理と、学習処理とを順に実行する。
【００５７】
学習部１５０ｃが実行するクラスタリング処理の一例について説明する。図９は、クラスタリング処理の一例を説明するための図である。たとえば、学習部１５０ｃは、夜間時間帯と、昼間時間帯とを基にして、円滑化データ１１を、複数の夜間ジョブデータ、複数の昼間ジョブデータにクラスタリングする。
【００５８】
学習部１５０ｃは、予め設定された夜間時間帯に対応する円滑化データのうち、ＣＰＵ使用率が、所定の閾値Ｔｈ１異常となるジョブデータを、夜間ジョブデータとして特定する。図９に示す例では、学習部１５０ｃは、時刻「Ｔｎ１〜Ｔｎ２，Ｔｎ３〜Ｔｎ４，Ｔｎ５〜Ｔｎ６，Ｔｎ７〜Ｔｎ８」の各ジョブデータを、夜間ジョブデータとして特定し、分離テーブル１４０ａに登録する。
【００５９】
学習部１５０ｃは、予め設定された昼間時間帯に対応する円滑化データのうち、ＣＰＵ使用率が、所定の閾値Ｔｈ１異常となるジョブデータを、昼間ジョブデータとして特定する。図９に示す例では、学習部１５０ｃは、時刻「Ｔｄ１〜Ｔｄ２，Ｔｄ３〜Ｔｄ４，Ｔｄ５〜Ｔｄ６，Ｔｄ７〜Ｔｄ８」の各ジョブデータ１１ｂを、昼間ジョブデータとして特定し、分離テーブル１４０ａに登録する。
【００６０】
続いて、学習部１５０ｃが実行する学習処理の一例について説明する。本実施例では、ＣＰＵ使用率に関するリソース使用量を例に説明する。ＣＰＵ使用率は、過去１秒間にＣＰＵが使用されていた割合を示す。
【００６１】
図１０は、ジョブデータの時刻とＣＰＵ使用率との関係を示す図である。図１０において、横軸は時刻に対応し、縦軸はＣＰＵ使用率を示す。ある時刻ｔにおけるＣＰＵ使用率を「ｆｃｐｕ（ｔ）」と表記する。図１０に示す例では、ジョブデータ２０のＣＰＵ使用率が始めに閾値Ｔｈ１以上となった時刻ＴＡを、ジョブの開始時刻とする。時刻ＴＡ以降において、ジョブデータ２０のＣＰＵ使用率が閾値Ｔｈ１未満となった時刻ＴＢを、ジョブの終了時刻とする。以下の説明では、ジョブデータ２０に対応するジョブを「ジョブ２０Ａ」と表記する。
【００６２】
学習部１５０ｃは、開始時刻から終了時刻までのジョブ２０ＡのＣＰＵ使用量を、式（１）によって算出する。式（１）において、「ＴＡ」は、ジョブの開始時刻を示し、「ＴＢ」は、ジョブの終了時刻を示す。「Ψ」は、時刻ＴＡ〜ＴＢにおいて、ジョブ２０Ａ以外の処理を実行する際に使用されたＣＰＵ使用量を示す。
【００６３】
【数１】
2020154604.tif 000003
【００６４】
図１１は、開始時刻から終了時刻までのジョブのＣＰＵ使用量を示す図である。たとえば、ジョブ２０Ａの時刻ＴＡ〜ＴＢのＣＰＵ使用量は、閾値Ｔｈ１の直線と、ジョブデータ２０の曲線とに囲まれる面積２１ａとなる。なお、時刻ＴＡ〜時刻ＴＢの「Ψ」の値は、面積２１ｂに対応するものとなる。式（１）によって算出されるＣＰＵ使用量は、開始時刻から、終了時刻までのＣＰＵ使用率の累積値となる。
【００６５】
学習部１５０ｃは、開始時刻から経過時刻ｔまでのジョブ２０ＡのＣＰＵ使用量を、式（２）によって算出する。ただし「ＴＡ＜ｔ＜ＴＡ」とする。
【００６６】
【数２】
2020154604.tif 000004
【００６７】
図１２は、開始時刻から経過時刻ｔまでのジョブのＣＰＵ使用量を示す図である。たとえば、ジョブ２０Ａの時刻ＴＡ〜ＴＡ＋ｔのＣＰＵ使用量は、閾値Ｔｈ１の直線と、時刻ＴＡ＋ｔの垂線と、ジョブデータ２０の曲線とに囲まれる面積２２ａとなる。なお、時刻ＴＡ〜時刻ＴＡ＋ｔまでの「Ψ」の値は、面積２２ｂに対応するものとなる。式（２）によって算出されるＣＰＵ使用量は、開始時刻から経過時刻ｔまでのＣＰＵ使用率の累積値となる。
【００６８】
学習部１５０ｃは、分離テーブル１４０ａに格納された各ジョブデータに関して、式（１）を基にして、開始時刻から終了時刻までの経過時刻に伴う累積値（ＣＰＵ使用量）を算出する。
【００６９】
図１３は、開始時刻から終了時刻までの経過時刻に伴う累積値の変化を示す図である。図１３の横軸は時刻に対応し、縦軸は累積値（ＣＰＵ使用量）に対応する。図１３に示すように、開示時刻から終了時刻までの経過時刻に伴う累積値の変化は、累積曲線２５ａによって示される。
【００７０】
図１４は、開始時刻から経過時刻ｔまでの経過時刻に伴う累積値の変化を示す図である。図１４の横軸は時刻に対応し、縦軸は累積値（ＣＰＵ使用量）に対応する。図１４に示すように、開示時刻から終了時刻までの経過時刻に伴う累積値の変化は、累積曲線２５ｂによって示される。
【００７１】
ここで、学習部１５０ｃは、開示時刻から終了時刻までの累積値（ＣＰＵ使用量）を算出する場合に、式（３）に基づいて、累積値を百分率に変換してもよい。
【００７２】
【数３】
2020154604.tif 000005
【００７３】
学習部１５０ｃは、分離テーブル１４０ａに格納された各夜間ジョブデータに対して、開始時刻から終了時刻までの経過時刻に伴う累積値の変化（累積曲線）をそれぞれ算出する。学習部１５０ｃは、各夜間ジョブデータの各累積曲線を平均した累積曲線を算出する。学習部１５０ｃは、各夜間ジョブデータの各累積曲線を平均した累積曲線を、夜間学習モデルとして、モデルテーブル１４０ｂに格納する。夜間学習モデルは、サンプリング順に、累積曲線の値を配列したベクトルとなり、たとえば、式（４）のように示される。式（４）のｒｎは、サンプリング番号ｎの、累積曲線の値（累積値）を示す。
【００７４】
【数４】
2020154604.tif 000006
【００７５】
学習部１５０ｃは、分離テーブル１４０ａに格納された各昼間ジョブデータに対して、開始時刻から終了時刻までの経過時刻に伴う累積値の変化（累積曲線）をそれぞれ算出する。学習部１５０ｃは、各昼間ジョブデータの各累積曲線を平均した累積曲線を算出する。学習部１５０ｃは、各昼間ジョブデータの各累積曲線を平均した累積曲線を、昼間学習モデルとして、モデルテーブル１４０ｂに格納する。昼間学習モデルは、サンプリング順に、累積曲線の値を配列したベクトルとなり、たとえば、式（５）のように示される。式（５）のｒｎは、サンプリング番号ｎの、累積曲線の値（累積値）を示す。
【００７６】
【数５】
2020154604.tif 000007
【００７７】
図６の説明に戻る。検出部１５０ｄは、検出対象データ１４０ｃ（円滑化データ１４０ｄ）と、モデルテーブル１４０ｂとを基にして、検出対象データ１４０ｃの異常を検出する処理部である。たとえば、検出部１５０ｄは、ジョブモデル選択処理と、検出処理とを順に実行する。なお、取得部１５０ａは、検出対象データ１４０ｃを、ＩＴサーバ６０からリアルタイムに順次受信し、円滑化部１５０ｂは、検出対象データ１４０ｃを順次円滑化することで、円滑化データ１４０ｄを生成、更新する。
【００７８】
検出部１５０ｄが実行するジョブモデル選択処理の一例について説明する。検出部１５０ｄは、円滑化データ１４０ｄおよび式（２）を基にして、開始時刻から経過時刻ｔまでの累積曲線を生成する。検出部１５０ｄは、サンプリング順（時刻順）に、累積曲線の値（累積値）を配列したベクトルを生成する。検出部１５０ｄが、円滑化データ１４０ｄから生成したベクトルを「対象ベクトル」と表記する。
【００７９】
図１５は、ジョブモデル選択処理の一例を説明するための図である。検出部１５０ｄは、対象ベクトルと、夜間モデルデータ（ベクトル）との距離を算出する。たとえば、対象ベクトルと、夜間モデルデータとの距離を、第１距離と表記する。また、検出部１５０ｄは、対象ベクトルと、昼間モデルデータ（ベクトル）との距離を算出する。たとえば、対象ベクトルと、昼間モデルデータとの距離を、第２距離と表記する。
【００８０】
検出部１５０ｄは、第１距離が第２距離よりも小さい場合には、夜間モデルデータを選択する。一方、検出部１５０ｄは、第２距離が第１距離よりも小さい場合には、昼間モデルデータを選択する。なお、検出部１５０ｄは、第１距離および第２距離の両方が、所定の距離よりも大きい場合、対象ベクトルの元となる測定データ１０が異常であると判定してもよい。
【００８１】
なお、検出対象データ１４０ｃは、リアルタイムにＩＴサーバ６０により測定される情報であるため、経過時刻にしたがって、対象ベクトルの要素は順次増加していく。たとえば、検出部１５０ｄは、開始時刻のサンプルから、所定数のサンプルまでの対象ベクトルと、夜間モデルデータ、昼間モデルデータとの比較を行い、第１距離、第２距離を算出するものとする。
【００８２】
検出部１５０ｄが実行する検出処理の一例について説明する。検出部１５０ｄは、上記のジョブモデル選択処理によって選択した学習モデル（夜間モデルデータまたは昼間モデルデータ）と、対象ベクトルとを基にして、異常を検出する処理部である。たとえば、検出部１５０ｄは、選択した学習モデル（累積曲線）に対して許容範囲を設定し、かかる学習モデルと、対象ベクトルとを時刻の経過と共に順次比較する。検出部１５０ｄは、対象ベクトルの値が、学習モデルの許容範囲から逸脱した場合に、異常が発生したと判定する。また、検出部１５０ｄは、逸脱の特徴に応じて、異常の種別を更に判定してもよい。
【００８３】
図１６〜図１８は、検出処理を説明するための図である。図１６について説明する。図１６のグラフの横軸は時刻に対応し、縦軸は百分率に変換した累積値に対応する。累積曲線２６は、ジョブモデル選択処理により選択された学習モデルの累積曲線である。累積曲線２６ａは、対象ベクトルの累積曲線である。たとえば、検出部１５０ｄは、時刻ｔαとなった時点で、累積曲線２６の許容範囲を逸脱したため、時刻ｔαにおいて、異常を検出する。
【００８４】
また、図１６において、累積曲線２６ａは、過負荷の方向（累積値の正方向）に許容範囲を逸脱している。この場合、検出部１５０ｄは、ＣＰＵの異常ループ等が発生していると判定する。検出部１５０ｄは、異常が発生した旨と、異常の種別「ＣＰＵの異常ループ等が発生」を、表示部１３０に出力して表示させる。
【００８５】
図１７について説明する。図１７のグラフの横軸および縦軸に関する説明は、図１６と同様である。累積曲線２６は、ジョブモデル選択処理により選択された学習モデルの累積曲線である。累積曲線２６ｂは、対象ベクトルの累積曲線である。たとえば、検出部１５０ｄは、時刻ｔβとなった時点で、累積曲線２６の許容範囲を逸脱したため、時刻ｔβにおいて、異常を検出する。
【００８６】
また、図１７において、累積曲線２６ｂは、低負荷の方向（累積値の負方向）に許容範囲を逸脱している。この場合、検出部１５０ｄは、ＣＰＵの異常ループ発生以外の要因によって、ＣＰＵが異常な低負荷となっていると判定する。たとえば、Ｉ／Ｏ（Input/Output）ボルトネック等が発生していると判定する。検出部１５０ｄは、異常が発生した旨と、異常の種別「Ｉ／Ｏボルトネックの発生」を、表示部１３０に出力して表示させる。
【００８７】
図１８について説明する。図１８のグラフの横軸および縦軸に関する説明は、図１６と同様である。累積曲線２６は、ジョブモデル選択処理により選択された学習モデルの累積曲線である。累積曲線２６ｃは、対象ベクトルの累積曲線である。図１８に示すように、学習モデルの終了時刻ＴＢを超えても、処理が終了せず、累積値が１００％を超えて増加している。この場合には、検出部１５０ｄは、ジョブの量が通常よりも多く実行されたと判定する。検出部１５０ｄは、終了時刻ＴＢを経過した時点で、「ジョブの量が通常よりも多く実行された」旨を、表示部１３０に出力して表示させる。
【００８８】
図６の説明に戻る。表示処理部１５０ｅは、現在のＩＴサーバのＣＰＵ使用量（累積値）の進捗率を示す画面情報を生成し、生成した画面情報を、表示部１３０に出力して表示させる処理部である。たとえば、表示処理部１５０ｅは、検出部１５０ｄから、対象ベクトルと、ジョブモデル選択処理により選択された学習モデルとを取得し、学習モデルの終了時刻の累積値に対する、現在時刻の対象ベクトルの累積値の割合を進捗率として算出する。
【００８９】
図１９〜図２１は、表示処理部が生成する表示画面の一例を示す図である。図１９の表示画面３５ａには、検出対象データ３０のグラフが表示されている。グラフの横軸は時刻に対応し、縦軸はＣＰＵ使用率に対応する。表示処理部１５０ｅは、経過時刻に伴って、検出対象データ３０を順に表示画面３５ａに表示する。また、表示処理部１５０ｅは、進捗率に応じた色を表示させる。たとえば、表示処理部１５０ｅは、開始時刻ＴＡから時刻Ｔ１において、進捗率が「５０％未満」の場合には、領域３０ａを第１の色で表示する。表示処理部１５０ｅは。時刻Ｔ１から時刻Ｔ２において、進捗率が「８０％未満」の場合には、領域３０ｂを第２の色で表示する。表示処理部１５０ｅは、時刻Ｔ２から時刻ＴＢにおいて、進捗率が「８０％以上、１００％未満」の場合には、領域３０ｃを第３の色で表示する。図１９に示す検出対象データ３０に対応するジョブは、時刻ＴＢにおいて、正常に終了していることは分かる。
【００９０】
図２０について説明する。図２０の表示画面３５ｂには、検出対象データ３１のグラフが表示されている。グラフの横軸は時刻に対応し、縦軸はＣＰＵ使用率に対応する。表示処理部１５０ｅは、経過時刻に伴って、検出対象データ３１を順に表示画面３５ｂに表示する。また、表示処理部１５０ｅは、進捗率に応じた色を表示させる。たとえば、表示処理部１５０ｅは、開始時刻ＴＡから時刻Ｔ１において、進捗率が「５０％未満」の場合には、領域３１ａを第１の色で表示する。表示処理部１５０ｅは。時刻Ｔ１から時刻Ｔ２において、進捗率が「８０％未満」の場合には、領域３１ｂを第２の色で表示する。表示処理部１５０ｅは、時刻Ｔ２から時刻Ｔ３において、進捗率が「８０％以上、１００％未満」の場合には、領域３１ｃを第３の色で表示する。表示処理部１５０ｅは、時刻Ｔ３以降において、進捗率が「１００％以上」の場合には、領域３１ｄを第４の色で表示する。図２０に示す検出対象データ３０に対応するジョブは、時刻ＴＢにおいて、終了しておらず、ＣＰＵ使用率が連続して高い状態にあることが分かる。
【００９１】
図２１について説明する。図２１の表示画面３５ｃには、検出対象データ３２のグラフが表示されている。グラフの横軸は時刻に対応し、縦軸はＣＰＵ使用率に対応する。表示処理部１５０ｅは、経過時刻に伴って、検出対象データ３２を順に表示画面３５ｃに表示する。また、表示処理部１５０ｅは、進捗率に応じた色を表示させる。たとえば、表示処理部１５０ｅは、開始時刻ＴＡから時刻Ｔ１において、進捗率が「５０％未満」の場合には、領域３２ａを第１の色で表示する。表示処理部１５０ｅは、時刻Ｔ１以降において、進捗率が「８０％未満」の場合には、領域３２ｂを第２の色で表示する。図２１に示す例では、学習モデルの終了時刻ＴＢを終了しても、検出対象データ３２のＣＰＵ使用率の累積値が、１００％に到達していないことが分かる。
【００９２】
次に、本実施例に係る異常検出装置１００の処理手順の一例について説明する。図２２は、本実施例に係る学習処理の処理手順を示すフローチャートである。図２２に示すように、異常検出装置１００の取得部１５０ａは、ＩＴサーバ６０から、測定データ１０を取得する（ステップＳ１０１）。異常検出装置１００の円滑化部１５０ｂは、測定データ１０を円滑化して、円滑化データ１１を生成する（ステップＳ１０２）。
【００９３】
異常検出装置１００の学習部１５０ｃは、円滑化データ１１を複数の夜間ジョブデータおよび複数の昼間ジョブデータにクラスタリングし、分離テーブル１４０ａに格納する（ステップＳ１０３）。学習部１５０ｃは、各ジョブデータについて、経過時刻に伴う累積値を算出する（ステップＳ１０４）。
【００９４】
学習部１５０ｃは、複数の夜間ジョブデータを平均した夜間モデルデータを生成し、モデルテーブル１４０ｂに格納する（ステップＳ１０５）。学習部１５０ｃは、複数の昼間ジョブデータを平均した昼間モデルデータを生成し、モデルテーブル１４０ｂに格納する（ステップＳ１０６）。
【００９５】
図２３は、本実施例に係る検出処理の処理手順を示すフローチャートである。図２３に示すように、異常検出装置１００の取得部１５０ａは、検出対象データの取得を開始する（ステップＳ２０１）。異常検出装置１００の円滑化部１５０ｂは、検出対象データ１４０ｃを順次円滑化して、円滑化データ１４０ｄを更新する（ステップＳ２０２）。
【００９６】
異常検出装置１００の検出部１５０ｄは、円滑化データの対象ベクトルと、夜間モデルデータ、昼間モデルデータとの距離を基にして、学習モデルを選択する（ステップＳ２０３）。検出部１５０ｄは、対象ベクトルの累積曲線を順次更新する（ステップＳ２０４）。
【００９７】
検出部１５０ｄは、対象ベクトルの累積値が学習モデルの許容範囲を逸脱したか否かを判定する（ステップＳ２０５）。検出部１５０ｄは、対象ベクトルの累積値が学習モデルの許容範囲を逸脱した場合には（ステップＳ２０６，Ｙｅｓ）、異常の種別および異常を検出した旨を表示部１３０に出力する（ステップＳ２０７）。
【００９８】
一方、検出部１５０ｄは、対象ベクトルの累積値が学習モデルの許容範囲を逸脱していない場合には（ステップＳ２０６，Ｎｏ）、検出対象データ１４０ｃが終了したか否かを判定する（ステップＳ２０８）。検出部１５０ｄは、検出対象データ１４０ｃが終了した場合には（ステップＳ２０８，Ｙｅｓ）、処理を終了する。
【００９９】
一方、検出部１５０ｄは、検出対象データ１４０ｃが終了していない場合には（ステップＳ２０８，Ｎｏ）、対象ベクトルの累積曲線を更新する処理を継続し（ステップＳ２０９）、ステップＳ２０５に移行する。
【０１００】
次に、本実施例に係る異常検出装置１００の効果について説明する。異常検出装置１００は、複数のジョブデータの各時刻におけるリソース使用量の情報を基にして、正常なジョブのリソース使用量の変化の特性を学習する。そして、異常検出装置１００は、検出対象データに基づくリソース使用量の変化の特性と、学習したリソース使用量の変化の特性とを基にして、検出対象データに対応するジョブの異常を検出する。これによって、ＩＴサーバ６０に発生した異常を精度よく検出することができる。
【０１０１】
本実施例ではリソース使用量の一例として、ＣＰＵ使用率の累積値を用いて説明したがこれに限定されるものではない。たとえば、異常検出装置１００は、ＣＰＵ使用率の代わりに、記憶装置のビジー率、クライアントからＩＴサーバ６０に対する単位時間当たりのアクセス割合、Java（登録商標）によるＶＭ（Virtual  Machine）のメモリ使用率等を用いてもよい。また、異常検出装置は、ＣＰＵ使用率の累積値、アクセス割合、メモリ使用率を同時に用いて、異常検出をおこなってもよい。
【０１０２】
また、異常検出装置１００によれば、集計処理等に発生した異常を早期かつ客観的な基準をもって警告することができ、常時監視者がいる場合の監視負荷を軽減させることができる。また、異常検出装置１００が、異常を検出した旨をＩＴサーバ６０に通知することで、常時監視者がいない場合でも、自動的に、ＩＴサーバ６０の運用者に、早期かつ客観的な基準を持った異常警告を通報することができる。
【０１０３】
異常検出装置１００は、検出対象データ１４０ｃ（円滑化データ１４０ｄ）に含まれる複数のジョブデータをクラスタリングし、クラスタ毎のジョブデータを用いて、クラスタ毎の学習モデルを生成する。これによって、時間帯毎に異なるジョブデータの変化の特性に対応して、異常状態を検出することができる。
【０１０４】
異常検出装置１００は、対象ベクトルの累積曲線と、学習モデルの累積曲線とを比較し、対象ベクトルの累積曲線が、学習モデルの累積曲線よりも大きいか否かを基にして、ジョブに発生した異常の種別を検出する。これによって、ＩＴサーバ６０の管理者が大まかな異常の種別をはじめから認識することができ、ＩＴサーバ６０の異常の原因を特定する作業の負荷を軽減することができる。
【０１０５】
異常検出装置１００は、学習モデルの終了時刻における累積値に対する、対象ベクトルの経過時刻に伴う累積値の割合（進捗率）を算出し、算出した割合に応じた色を表示画面に表示させる。これによって、ジョブの進捗を視覚的に認識することができ、ＩＴサーバ６０の異常を早期に確認することができる。
【０１０６】
ところで、学習部１５０ｃが、円滑化データ１１から、各ジョブデータの開始時刻を特定する場合に、次のような処理を行って、各ジョブデータの開始時刻を特定してもよい。たとえば、学習部１５０ｃは、円滑化データ１１と、閾値Ｔｈ１とを比較して、円滑化データ１１のＣＰＵ使用率の値が、はじめに閾値Ｔｈ１を超えた時刻を、基準時刻として特定する。学習部１５０ｃは、基準時刻を基準とする所定の時間幅に含まれる各時刻のＣＰＵ使用率を比較し、ＣＰＵ使用率が最大となる時刻を、ジョブデータの開始時刻とする。学習部１５０ｃは、一つのジョブデータが終了し、ＣＰＵ使用率が再度閾値Ｔｈ１を上回った時刻を、基準時刻と設定し、上記処理を繰り返し実行することで、各ジョブデータの開始時刻を特定する。学習部１５０ｃが、上記処理を実行することで、各ジョブデータの開始時間を精度よく特定できる。
【０１０７】
また、本実施例では一例として、図１９〜図２１に示したように、表示処理部１５０ｅが、時刻と、ＣＰＵ使用率の関係を示す表示画面を生成する場合について説明したがこれに限定されるものでは無く、図２４に示すような表示画面を生成して、表示部１３０に表示させてもよい。
【０１０８】
図２４は、その他の表示画面の一例を説明するための図である。図２４の表示画面に示すグラフの横軸は時刻に対応する。左側の縦軸は、ＣＰＵ使用率に対応する。右側の縦軸は、ＣＰＵ使用率の異常度に対応する。ＣＰＵ使用率の異常度は、学習モデルの累積曲線と現時点の累積曲線の差分の絶対値を数値０から１に正規化して計算され、１に近いほど異常の程度が高い。たとえば、表示処理部１５０ｅは、ＣＰＵ使用率の曲線３６ｂと、学習モデルの蓄積されていない曲線３６ａと、異常度の曲線３６ｃとをあわせて表示してもよい。
【０１０９】
なお、本実施例では一例として、異常検出装置１００が、測定データ１０をＩＴサーバ６０からリアルタイムに受信して、処理を行う場合について説明したがこれに限定されるものではない。異常検出装置１００は、ＩＴサーバ６０から送信される測定データ１０を記憶部１４０に保存しておき、定期的に、保存していた測定データ１０に対して、異常を検出する処理を実行してもよい。これによって、重大な異常検知ではなく、潜在的な異常の傾向が出ていないかという稼動診断を行うことができる。
【０１１０】
次に、本実施例に示した異常検出装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図２５は、本実施例に係る異常検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１１１】
図２５に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る読み取り装置３０４と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置３０５とを有する。コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７とを有する。そして、各装置３０１〜３０７は、バス３０８に接続される。
【０１１２】
ハードディスク装置３０７は、取得プログラム３０７ａ、円滑化プログラム３０７ｂ、学習プログラム３０７ｃ、検出プログラム３０７ｄ、表示制御プログラム３０７ｅを有する。ＣＰＵ３０１は、取得プログラム３０７ａ、円滑化プログラム３０７ｂ、学習プログラム３０７ｃ、検出プログラム３０７ｄ、表示制御プログラム３０７ｅを読み出してＲＡＭ３０６に展開する。
【０１１３】
取得プログラム３０７ａは、取得プロセス３０６ａとして機能する。円滑化プログラム３０７ｂは、円滑化プロセス３０６ｂとして機能する。学習プログラム３０７ｃは、学習プロセス３０６ｃとして機能する。検出プログラム３０７ｄは、検出プロセス３０６ｄとして機能する。表示処理プログラム３０７ｅは、表示処理プロセス３０６ｅとして機能する。
【０１１４】
取得プロセス３０６ａの処理は、取得部１５０ａの処理に対応する。円滑化プロセス３０６ｂの処理は、円滑化部１５０ｂの処理に対応する。学習プロセス３０６ｃの処理は、学習部１５０ｃの処理に対応する。検出プロセス３０６ｄの処理は、検出部１５０ｄの処理に対応する。表示処理プロセス３０６ｅの処理は、表示処理部１５０ｅの処理に対応する。
【０１１５】
なお、各プログラム３０７ａ〜３０７ｅついては、必ずしも最初からハードディスク装置３０７に記憶させておかなくてもよい。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０７ａ〜３０７ｅを読み出して実行するようにしてもよい。
【０１１６】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１７】
（付記１）複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量の変化の特性を学習する学習部と、
監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量の変化の特性を算出し、前記第１ジョブのリソース使用量の変化の特性と、前記第２ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する検出部（１５０ｄ）と
を有することを特徴とする異常検出システム。
【０１１８】
（付記２）前記学習部は、前記複数の第１ジョブについて、リソース使用量の変化の特性をそれぞれ算出し、前記第１ジョブのリソース使用量の変化の特性をクラスタリングし、クラスタ毎の変化の特性を平均化することで、クラスタ毎に、前記第１ジョブのリソース使用量の変化の特性を学習することを特徴とする付記１に記載の異常検出システム。
【０１１９】
（付記３）前記検出部は、前記第２ジョブのリソース使用量の変化の特性と、クラスタ毎の前記第１ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する際に用いる第１ジョブのリソース使用量の変化の特性を選択することを特徴とする付記２に記載の異常検出システム。
【０１２０】
（付記４）前記学習部は、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量を累積した第１累積値を、前記第１ジョブのリソース使用量の変化の特性として学習し、前記検出部は、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量を累積した第２累積値を、前記第２ジョブのリソース使用量の変化の特性として算出することを特徴とする付記１、２または３に記載の異常検出システム。
【０１２１】
（付記５）前記検出部は、前記第１累積値が、前記第２累積値よりも大きいか否かを基にして、前記第２ジョブに発生した異常の種別を検出することを特徴とする付記４に記載の異常検出システム。
【０１２２】
（付記６）前記第１ジョブの終了時刻における第１累積値に対する、前記第２ジョブの経過時刻に伴う第２累積値の割合を算出し、算出した割合に応じた色を表示装置に表示させる表示処理部を更に有することを特徴とする付記４または５に記載の異常検出システム。
【０１２３】
（付記７）前記学習部は、前記第１ジョブが開始された時刻を基準とした所定の時間幅に含まれる各時刻のリソース使用量を比較し、リソース使用量が最大となる時刻を、前記第１ジョブが開始された時刻とする処理を更に実行することを特徴とする付記１〜６のいずれか一つに記載の異常検出システム。
【０１２４】
（付記８）コンピュータが実行する異常検出方法であって、
複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量の変化の特性を学習し、
監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量の変化の特性を算出し、
前記第１ジョブのリソース使用量の変化の特性と、前記第２ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する
処理を実行させることを特徴とする異常検出方法。
【０１２５】
（付記９）前記学習する処理は、前記複数の第１ジョブについて、リソース使用量の変化の特性をそれぞれ算出し、前記第１ジョブのリソース使用量の変化の特性をクラスタリングし、クラスタ毎の変化の特性を平均化することで、クラスタ毎に、前記第１ジョブのリソース使用量の変化の特性を学習することを特徴とする付記８に記載の異常検出方法。
【０１２６】
（付記１０）前記検出する処理は、前記第２ジョブのリソース使用量の変化の特性と、クラスタ毎の前記第１ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する際に用いる第１ジョブのリソース使用量の変化の特性を選択することを特徴とする付記９に記載の異常検出方法。
【０１２７】
（付記１１）前記学習する処理は、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量を累積した第１累積値を、前記第１ジョブのリソース使用量の変化の特性として学習し、前記算出する処理は、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量を累積した第２累積値を、前記第２ジョブのリソース使用量の変化の特性として算出することを特徴とする付記８、９または１０に記載の異常検出方法。
【０１２８】
（付記１２）前記検出する処理は、前記第１累積値が、前記第２累積値よりも大きいか否かを基にして、前記第２ジョブに発生した異常の種別を検出することを特徴とする付記１１に記載の異常検出方法。
【０１２９】
（付記１３）前記第１ジョブの終了時刻における第１累積値に対する、前記第２ジョブの経過時刻に伴う第２累積値の割合を算出し、算出した割合に応じた色を表示装置に表示させる処理を更に実行することを特徴とする付記１１または１２に記載の異常検出方法。
【０１３０】
（付記１４）前記第１ジョブが開始された時刻を基準とした所定の時間幅に含まれる各時刻のリソース使用量を比較し、リソース使用量が最大となる時刻を、前記第１ジョブが開始された時刻とする処理を更に実行することを特徴とする付記８〜１３のいずれか一つに記載の異常検出方法。
【０１３１】
（付記１５）コンピュータに
複数の第１ジョブの各時刻におけるリソース使用量の情報を基にして、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量の変化の特性についての学習結果を記憶した記憶部を参照して、
監視対象となる第２ジョブの各時刻におけるリソース使用量の情報を基にして、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量の変化の特性を算出し、
前記第１ジョブのリソース使用量の変化の特性と、前記第２ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する
処理を実行させることを特徴とする異常検出プログラム。
【０１３２】
（付記１６）前記学習結果は、前記複数の第１ジョブについて、リソース使用量の変化の特性をそれぞれ算出し、前記第１ジョブのリソース使用量の変化の特性をクラスタリングし、クラスタ毎の変化の特性を平均化することで、クラスタ毎に、前記第１ジョブのリソース使用量の変化の特性を学習した結果であることを特徴とする付記１５に記載の異常検出プログラム。
【０１３３】
（付記１７）前記検出する処理は、前記第２ジョブのリソース使用量の変化の特性と、クラスタ毎の前記第１ジョブのリソース使用量の変化の特性とを基にして、前記第２ジョブの異常を検出する際に用いる第１ジョブのリソース使用量の変化の特性を選択することを特徴とする付記１６に記載の異常検出プログラム。
【０１３４】
（付記１８）前記学習結果は、前記第１ジョブが開始された時刻からの経過時刻に伴う、前記第１ジョブのリソース使用量を累積した第１累積値を、前記第１ジョブのリソース使用量の変化の特性として学習した結果であり、前記算出する処理は、前記第２ジョブが開始された時刻からの経過時刻に伴う、前記第２ジョブのリソース使用量を累積した第２累積値を、前記第２ジョブのリソース使用量の変化の特性として算出することを特徴とする付記１５、１６または１７に記載の異常検出プログラム。
【０１３５】
（付記１９）前記検出する処理は、前記第１累積値が、前記第２累積値よりも大きいか否かを基にして、前記第２ジョブに発生した異常の種別を検出することを特徴とする付記１８に記載の異常検出プログラム。
【０１３６】
（付記２０）前記第１ジョブの終了時刻における第１累積値に対する、前記第２ジョブの経過時刻に伴う第２累積値の割合を算出し、算出した割合に応じた色を表示装置に表示させる処理を更に実行することを特徴とする付記１８または１９に記載の異常検出プログラム。
【０１３７】
（付記２１）前記第１ジョブが開始された時刻を基準とした所定の時間幅に含まれる各時刻のリソース使用量を比較し、リソース使用量が最大となる時刻を、前記第１ジョブが開始された時刻とする処理を更に実行することを特徴とする付記１５〜２０のいずれか一つに記載の異常検出プログラム。
【符号の説明】
【０１３８】
１０    測定データ
１１    円滑化データ
５０    ネットワーク
６０    ＩＴサーバ
６１，１１０    通信部
６２，１２０    入力部
６３，１３０    表示部
６４，１４０    記憶部
６５，１５０    制御部
６５ａ  サービス提供部
６５ｂ  生成部
６５ｃ  送信部
１００    異常検出装置
１５０ａ  取得部
１５０ｂ  円滑化部
１５０ｃ  学習部
１５０ｄ  検出部
１５０ｅ  表示処理部
【図１】
2020154604.tif 000008
【図２】
2020154604.tif 000009
【図３】
2020154604.tif 000010
【図４】
2020154604.tif 000011
【図５】
2020154604.tif 000012
【図６】
2020154604.tif 000013
【図７】
2020154604.tif 000014
【図８】
2020154604.tif 000015
【図９】
2020154604.tif 000016
【図１０】
2020154604.tif 000017
【図１１】
2020154604.tif 000018
【図１２】
2020154604.tif 000019
【図１３】
2020154604.tif 000020
【図１４】
2020154604.tif 000021
【図１５】
2020154604.tif 000022
【図１６】
2020154604.tif 000023
【図１７】
2020154604.tif 000024
【図１８】
2020154604.tif 000025
【図１９】
2020154604.tif 000026
【図２０】
2020154604.tif 000027
【図２１】
2020154604.tif 000028
【図２２】
2020154604.tif 000029
【図２３】
2020154604.tif 000030
【図２４】
2020154604.tif 000031
【図２５】
2020154604.tif 000032