JP2015230714A - 異常検知方法、異常検知プログラムおよび異常検知装置 - Google Patents

異常検知方法、異常検知プログラムおよび異常検知装置 Download PDF

Info

Publication number
JP2015230714A
JP2015230714A JP2014118173A JP2014118173A JP2015230714A JP 2015230714 A JP2015230714 A JP 2015230714A JP 2014118173 A JP2014118173 A JP 2014118173A JP 2014118173 A JP2014118173 A JP 2014118173A JP 2015230714 A JP2015230714 A JP 2015230714A
Authority
JP
Japan
Prior art keywords
value
detection value
period
detection
time
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
JP2014118173A
Other languages
English (en)
Other versions
JP6349983B2 (ja
Inventor
多湖 真一郎
Shinichiro Tako
真一郎 多湖
稲越 宏弥
Hiroya Inakoshi
宏弥 稲越
松浦 正卓
Masataku Matsuura
正卓 松浦
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 JP2014118173A priority Critical patent/JP6349983B2/ja
Publication of JP2015230714A publication Critical patent/JP2015230714A/ja
Application granted granted Critical
Publication of JP6349983B2 publication Critical patent/JP6349983B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】異常の発生を早期に検出できる異常検知方法、異常検知プログラムおよび異常検知装置を提供する。【解決手段】取得部40は、監視対象の状態を示す検出値を取得する。判定部41は、取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも大きいかを判定する。出力部42は、検出値が前記特定期間での検出値の最小値よりも大きいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する。【選択図】図2

Description

本発明は、異常検知方法、異常検知プログラムおよび異常検知装置に関する。
従来から検出値の変化から異常の発生の検知が行われている。例えば、サーバなど用いたシステムでは、サーバのCPU(Central Processing Unit)の利用率を監視し、CPUの利用率が一定以上となった場合に異常が発生したと検知する。
特開2008−9610号公報 特開2008−186472号公報 特開2001−142708号公報 特開2010−250807号公報
しかしながら、従来の技術は、異常の発生の検知が遅くなる場合がある。例えば、CPUの利用率が一定以上となった場合に異常が発生したと検知する場合、異常の発生の直前、あるいは、異常が発生した事後でないと、異常の発生を検知できない。
このような課題は、CPUの利用率から異常の発生を検知する場合に限らず、例えば、検出値の変化から異常の発生を検出する場合、全般に発生するものである。
本発明は、一側面では、異常の発生を早期に検出できる異常検知方法、異常検知プログラムおよび異常検知装置を提供することを目的とする。
1つの態様では、異常検知方法は、コンピュータが、監視対象の状態を示す検出値を取得する処理を実行する。異常検知方法は、コンピュータが、取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも大きいかを判定する処理を実行する。異常検知方法は、コンピュータが、検出値が特定期間での検出値の最小値よりも大きいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する処理を実行する。
本発明の一側面によれば、異常の発生を早期に検出できる。
図1は、異常の検知を行うシステム構成の一例を説明する図である。 図2は、異常検知装置の機能的な構成の一例を示す図である。 図3は、第1待機セットのデータ構成の一例を示す図である。 図4は、第1アクティブセットのデータ構成の一例を示す図である。 図5は、第2待機セットのデータ構成の一例を示す図である。 図6は、第2アクティブセットのデータ構成の一例を示す図である。 図7Aは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Bは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Cは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Dは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Eは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Fは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Gは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Hは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Iは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Jは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Kは、メモリリークの発生を検知する際の流れの一例を示す図である。 図7Lは、メモリリークの発生を検知する際の流れの一例を示す図である。 図8は、メモリリークが発生している場合のメモリ使用率の変化の一例を示す図である。 図9は、メモリリークが発生している場合のメモリ使用率の変化の他の一例を示す図である。 図10は、異常検知処理の手順の一例を示すフローチャートである。 図11は、異常検知装置の機能的な構成の一例を示す図である。 図12は、第3待機セットのデータ構成の一例を示す図である。 図13は、第3アクティブセットのデータ構成の一例を示す図である。 図14Aは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Bは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Cは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Dは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Eは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Fは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Gは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Hは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Iは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Jは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Kは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Lは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図14Mは、CPUの異常の発生を検知する際の流れの一例を示す図である。 図15は、CPUの利用率の変化の一例を示す図である。 図16は、CPUの利用率の変化の他の一例を示す図である。 図17は、異常検知処理の手順の一例を示すフローチャートである。 図18は、異常検知プログラムを実行するコンピュータを示す図である。
以下に、本発明にかかる異常検知方法、異常検知プログラムおよび異常検知装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
最初に、実施例1に係る異常検知装置を用いて異常の検知を行うシステムの一例を説明する。図1は、異常の検知を行うシステム構成の一例を説明する図である。図1に示すように、システム10は、サーバ装置11と、異常検知装置12と有する。サーバ装置11と異常検知装置12は、ネットワーク13を介して通信可能に接続され、各種の情報を交換することが可能とされている。かかるネットワーク13の一態様としては、有線または無線を問わず、携帯電話などの移動体通信、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
サーバ装置11は、所定のシステムが動作する装置である。例えば、サーバ装置11は、企業やデータセンタに配置され、基幹システムの提供や所定のサービスを提供するサーバコンピュータである。図1の例では、サーバ装置11を1つとした場合を例示したが、これに限定されず、サーバ装置11は任意の数とすることができる。例えば、システム10は、複数のサーバ装置11によりクラウドサービスを提供するクラウドシステムであってもよい。
異常検知装置12は、サーバ装置11の異常の発生を検知する装置である。異常検知装置12は、例えば、パーソナルコンピュータやサーバコンピュータなどのコンピュータなどである。異常検知装置12は、1台のコンピュータとして実装してもよく、また、複数台のコンピュータによる実装してもよい。また、異常検知装置12は、システム10を管理する管理端末やサーバ装置11が兼ねてもよい。なお、本実施例では、異常検知装置12を1台のコンピュータとして設けた場合を例として説明する。
[異常検知装置の構成]
次に、実施例1に係る異常検知装置12の構成について説明する。図2は、異常検知装置の機能的な構成の一例を示す図である。図2に示すように、異常検知装置12は、通信I/F(インタフェース)部20と、記憶部21と、制御部22とを有する。
通信I/F部20は、他の装置との間で通信制御を行うインタフェースである。通信I/F部20としては、LANカードなどのネットワークインタフェースカードを採用できる。
通信I/F部20は、ネットワーク13を介して他の装置と各種情報を送受信する。例えば、通信I/F部20は、サーバ装置11と各種情報を送受信が可能とされており、サーバ装置11からサーバ装置11の状態を示す各種情報を受信する。
記憶部21は、各種のデータを記憶する記憶デバイスである。例えば、記憶部21は、ハードディスク、SSD(Solid State Drive)、光ディスクなどの記憶装置である。なお、記憶部21は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)などのデータを書き換え可能な半導体メモリであってもよい。
記憶部21は、制御部22で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部21は、後述する異常検知処理を実行するプログラムを含む各種のプログラムを記憶する。さらに、記憶部21は、制御部22で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部21は、第1待機セット30と、第1アクティブセット31と、第2待機セット32と、第2アクティブセット33とを記憶する。
第1アクティブセット31および第2アクティブセット33は、異常の検知の対象となる期間のデータを保持するためのデータ領域である。例えば、本実施例では、後述する所定の第1期間での検出値の最小値を求める。また、本実施例では、第1期間の最小値よりも大きいとの判定結果が所定の第2期間の間連続して得られたかを判定する。この第1期間は、検出値の取得時から所定時間間隔をあけており、例えば、5分〜30分の期間とする。この第1期間は、検出値の取得時を含む期間であってもよい。また、第2期間は、検出値の取得時を含む期間としており、例えば、0分〜30分の期間とする。第1アクティブセット31には、第1期間の検出値などのデータを記憶させる。また、第2アクティブセット33には、第1期間の最小値よりも大きいとの判定結果が第2期間の間連続したかを判定するためのデータを記憶させる。
第1待機セット30および第2待機セット32は、異常の検知の対象となる期間の前のデータを保持するためのデータ領域である。
図3は、第1待機セットのデータ構成の一例を示す図である。図3に示すように、第1待機セット30は、「時刻」、「検出値」の各項目を有する。時刻の項目は、検出値が取得された時刻情報を記憶する領域である。検出値の項目は、取得された検出値を記憶する領域である。第1待機セット30には、検出値が取得される毎に、取得された検出値が時刻情報と共に格納される。
図4は、第1アクティブセットのデータ構成の一例を示す図である。図4に示すように、第1アクティブセット31は、上述の第1待機セット30と同様の構成とされており、「時刻」、「検出値」の各項目を有する。第1アクティブセット31には、第1待機セット30に格納された検出値のうち、時刻が第1期間内となった検出値が時刻情報と共に格納される。
図5は、第2待機セットのデータ構成の一例を示す図である。図5に示すように、第2待機セット32は、「時刻」、「検出値」、「フラグ」の各項目を有する。時刻の項目は、検出値が取得された時刻情報を記憶する領域である。検出値の項目は、取得された検出値を記憶する領域である。フラグの項目は、第1期間のデータの状態を判定した結果を示したフラグを記憶する領域である。第2待機セット32には、検出値が取得される毎に、取得された検出値が時刻情報、フラグと共に格納される。
図6は、第2アクティブセットのデータ構成の一例を示す図である。図6に示すように、第2アクティブセット33は、上述の第2待機セット32と同様の構成とされており、「時刻」、「検出値」、「フラグ」の各項目を有する。第2アクティブセット33には、第2待機セット32に格納された検出値のうち、時刻が第2期間内となった検出値が時刻情報、フラグと共に格納される。
第1待機セット30、第1アクティブセット31、第2待機セット32および第2アクティブセット33のデータの具体例については、後述する。
図2に戻り、制御部22は、異常検知装置12を制御するデバイスである。制御部22としては、CPU、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部22は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部22は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部22は、取得部40と、判定部41と、出力部42とを有する。
取得部40は、各種の取得を行う。例えば、取得部40は、監視対象の状態を示す検出値を取得する。この検出値は、サーバ装置11が周期的に検出を行って異常検知装置12へ送信してもよい。また、検出値は、取得部40が周期的にサーバ装置11に対して送信を要求し、サーバ装置11が要求に応じて検出を行って異常検知装置12へ送信してもよい。本実施例では、監視対象をサーバ装置11とし、監視対象の状態を示す検出値として、サーバ装置11のメモリの使用率を取得する。
取得部40は、取得された検出値を時刻情報と共に第1待機セット30に格納する。また、取得部40は、第1待機セット30に格納された検出値のうち、第1期間内となった検出値を第1アクティブセット31に移動させる。また、判定部41は、第1アクティブセット31に格納された検出値のうち、第1期間外となった検出値を第1アクティブセット31から削除する。
判定部41は、各種の判定を行う。例えば、判定部41は、取得部40により取得した検出値ごとに、当該検出値が、取得時よりも前である第1期間での検出値の最小値よりも大きいかを判定する。例えば、判定部41は、取得部40により検出値が取得される毎に、第1アクティブセット31に記憶された検出値内での検出値の最小値を特定する。この第1アクティブセット31に記憶された検出値の最小値は、第1期間での検出値の最小値である。判定部41は、検出値が取得される毎に、取得された検出値を、第1期間の検出値の最小値と比較して、取得された検出値が第1期間の検出値の最小値よりも大きいかを判定する。この判定は、検出値が第1期間の検出値の最小値よりも、しきい値以上大きいかを判定するようにしてもよい。本実施例では、判定部41は、検出値が、第1期間での検出値の最小値と、所定のしきい値を加算した値よりも大きいかを判定する。しきい値は、検出値に大局的に異常な上昇傾向があるかを判定する値であり、ゼロ以上の値に設定する。
判定部41は、取得された検出値を、判定結果および時刻情報と共に第2待機セット32に格納する。また、判定部41は、判定結果として、最新の検出値が第1期間での検出値の最小値よりも大きいか否かを示すフラグを第2待機セット32に格納する。
出力部42は、各種の出力を行う。例えば、出力部42は、第2期間における判定の結果に基づいて、異常が発生したか否かの検知を行う。そして、出力部42は、異常が発生したことが検知された場合、アラートを出力する。例えば、出力部42は、検出値が第1期間での検出値の最小値よりも大きいとの判定の結果が第2期間の間連続して得られた場合、異常が発生しているものとして、アラートを出力する。例えば、出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。また、出力部42は、第2アクティブセット33に格納された検出値のうち、第2期間外となった検出値を第2アクティブセット33から削除する。そして、出力部42は、第2アクティブセット33に記憶された検出値が全て直近の第1期間の最小値よりも大きいと判定されたものである場合、アラートを出力する。
ここで、具体例を用いて説明する。本実施例では、監視対象をサーバ装置11とし、検出値としてサーバ装置11のメモリの使用率を取得し、異常として、サーバ装置11のメモリリークの発生を検知する場合を例に説明する。また、本実施例では、第1期間を2分〜4分前の期間とし、第2期間を0分〜6分前の期間とする。また、本実施例では、検出値が第1期間の最小値よりしきい値「5」以上大きい状態が第2期間連続した場合にメモリリークが発生したと検知する場合を例に説明する。図7A〜図7Lは、メモリリークの発生を検知する際の流れの一例を示す図である。図7A〜図7Lには、サーバ装置11で1分毎に検出されるメモリの使用率と、第1待機セット30、第1アクティブセット31、第2待機セット32および第2アクティブセット33に格納されるデータの変化の一例が示されている。なお、図7A〜図7Lの例では、時刻の経過を把握しやくするため、時刻を図7Aの時点を基準(00:00)として示している。また、図7A〜図7Lの例では、入力として、各時刻で取得されるメモリ使用率が示されている。
図7Aに示すように、取得部40は、時刻「00:00」にサーバ装置11のメモリ使用率「11」が取得されると、時刻「00:00」およびメモリ使用率「11」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、第1アクティブセット31にはデータの格納は行わない。第1アクティブセット31にデータが格納されていないため、第1アクティブセット31に格納されたメモリ使用率の最小値は、未定である。取得されたメモリ使用率「11」は、第1アクティブセット31に格納されたメモリ使用率の最小値と、しきい値「5」とを加算した値より大きくはない。このため、判定部41は、フラグ「0」として、時刻「00:00」、メモリ使用率「11」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Aの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:00」、メモリ使用率「11」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Bに示すように、取得部40は、時刻「00:01」にサーバ装置11のメモリ使用率「83」が取得されると、時刻「00:01」およびメモリ使用率「83」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、第1アクティブセット31にはデータの格納は行わない。第1アクティブセット31にデータが格納されていないため、第1アクティブセット31に格納されたメモリ使用率の最小値は、未定である。取得されたメモリ使用率「83」は、第1アクティブセット31に格納されたメモリ使用率の最小値と、しきい値「5」とを加算した値より大きくはない。このため、判定部41は、フラグ「0」として、時刻「00:01」、メモリ使用率「83」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Bの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:01」、メモリ使用率「83」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Cに示すように、取得部40は、時刻「00:02」にサーバ装置11のメモリ使用率「14」が取得されると、時刻「00:02」およびメモリ使用率「14」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:00」、検出値「11」を第1アクティブセット31に格納する。取得されたメモリ使用率「14」は、第1アクティブセット31に格納されたメモリ使用率の最小値「11」と、しきい値「5」とを加算した値より大きくはない。このため、判定部41は、フラグ「0」として、時刻「00:02」、メモリ使用率「14」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Cの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:02」、メモリ使用率「14」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Dに示すように、取得部40は、時刻「00:03」にサーバ装置11のメモリ使用率「77」が取得されると、時刻「00:03」およびメモリ使用率「77」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:01」、検出値「83」を第1アクティブセット31に格納する。取得されたメモリ使用率「77」は、第1アクティブセット31に格納されたメモリ使用率の最小値「11」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:03」、メモリ使用率「77」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Dの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:03」、メモリ使用率「77」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Eに示すように、取得部40は、時刻「00:04」にサーバ装置11のメモリ使用率「15」が取得されると、時刻「00:04」およびメモリ使用率「15」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:02」、検出値「14」を第1アクティブセット31に格納する。取得されたメモリ使用率「15」は、第1アクティブセット31に格納されたメモリ使用率の最小値「11」と、しきい値「5」とを加算した値より大きくはない。このため、判定部41は、フラグ「0」として、時刻「00:04」、メモリ使用率「15」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Eの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:04」、メモリ使用率「15」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Fに示すように、取得部40は、時刻「00:05」にサーバ装置11のメモリ使用率「53」が取得されると、時刻「00:05」およびメモリ使用率「53」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:03」、検出値「77」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:00」のデータが第1期間外となったため、第1アクティブセット31から削除する。取得されたメモリ使用率「53」は、第1アクティブセット31に格納されたメモリ使用率の最小値「14」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:05」、メモリ使用率「53」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Fの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:05」、メモリ使用率「53」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Gに示すように、取得部40は、時刻「00:06」にサーバ装置11のメモリ使用率「42」が取得されると、時刻「00:06」およびメモリ使用率「42」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:04」、検出値「15」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:01」のデータが第1期間外となったため、第1アクティブセット31から削除する。取得されたメモリ使用率「42」は、第1アクティブセット31に格納されたメモリ使用率の最小値「14」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:06」、メモリ使用率「42」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Gの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:06」、メモリ使用率「42」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Hに示すように、取得部40は、時刻「00:07」にサーバ装置11のメモリ使用率「70」が取得されると、時刻「00:07」およびメモリ使用率「70」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:05」、検出値「53」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:02」のデータが第1期間外となったため、第1アクティブセット31から削除する。取得されたメモリ使用率「70」は、第1アクティブセット31に格納されたメモリ使用率の最小値「15」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:07」、メモリ使用率「70」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Hの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:07」、メモリ使用率「70」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Iに示すように、取得部40は、時刻「00:08」にサーバ装置11のメモリ使用率「21」が取得されると、時刻「00:08」およびメモリ使用率「21」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:06」、検出値「42」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:03」のデータが第1期間外となったため、第1アクティブセット31から削除する。取得されたメモリ使用率「21」は、第1アクティブセット31に格納されたメモリ使用率の最小値「15」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:08」、メモリ使用率「21」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Iの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:08」、メモリ使用率「21」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Jに示すように、取得部40は、時刻「00:09」にサーバ装置11のメモリ使用率「83」が取得されると、時刻「00:09」およびメモリ使用率「83」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:07」、検出値「70」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:04」のデータが第1期間外となったため、第1アクティブセット31から削除する。取得されたメモリ使用率「83」は、第1アクティブセット31に格納されたメモリ使用率の最小値「42」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:09」、メモリ使用率「83」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Jの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:09」、メモリ使用率「83」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Kに示すように、取得部40は、時刻「00:10」にサーバ装置11のメモリ使用率「47」が取得されると、時刻「00:10」およびメモリ使用率「47」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:08」、検出値「21」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:05」のデータが第1期間外となったため、第1アクティブセット31から削除する。取得されたメモリ使用率「47」は、第1アクティブセット31に格納されたメモリ使用率の最小値「21」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:10」、メモリ使用率「47」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Kの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:10」、メモリ使用率「47」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
次に、図7Lに示すように、取得部40は、時刻「00:11」にサーバ装置11のメモリ使用率「93」が取得されると、時刻「00:11」およびメモリ使用率「93」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:09」、検出値「83」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:06」のデータが第1期間外となったため、第1アクティブセット31から削除する。取得されたメモリ使用率「93」は、第1アクティブセット31に格納されたメモリ使用率の最小値「21」と、しきい値「5」とを加算した値より大きい。このため、判定部41は、フラグ「1」として、時刻「00:11」、メモリ使用率「93」を第2待機セット32に格納する。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図7Lの例では、第2期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:11」、メモリ使用率「93」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
ここで、図7Lに示す第2アクティブセット33に格納された第2の期間の各データは、全てフラグが1となっている。この図7Lに示す状態は、取得された検出値が第1期間での検出値の最小値よりも大きいとの判定の結果が第2期間の間連続して得られた状態である。出力部42は、第2アクティブセット33に記憶された各データのフラグが全て「1」である場合、アラートを出力する。
例えば、サーバ装置11では、メモリリークが発生している場合、処理に応じてメモリ使用率が変化するが、メモリの記憶領域を全て解放できないため、メモリ使用率の最小値が徐々に増加する。
図8は、メモリリークが発生している場合のメモリ使用率の変化の一例を示す図である。図8に示すように、メモリ使用率は、増加と減少を繰り返すが大局的には増加する。このような場合、例えば、メモリ使用率が一定のしきい値以上をとなった場合に異常が発生したと検知すると、異常の発生の検知が遅くなる場合がある。
一方、メモリリークが発生している場合、メモリの記憶領域を全て解放できないため、メモリ使用率は、増加と減少を繰り返すものの、大局的には増加する。そこで、異常検知装置12は、周期的にサーバ装置11のメモリ使用率を取得する。そして、異常検知装置12は、取得された検出値が、取得時よりも前の第1期間での検出値の最小値よりも大きいとの判定の結果が第2期間の間連続して得られた場合、メモリリークが発生していると検知して、アラートを出力する。図9は、メモリリークが発生している場合のメモリ使用率の変化の他の一例を示す図である。図9の例では、取得されたメモリ使用率が、当該メモリ使用率の取得時よりも前の第1期間の最小値より増加している部分にフラグ「1」を表示させている。このように、フラグ「1」の期間が第2期間連続した場合、アラートを出力することにより、異常の発生を早期に検知できる。
[処理の流れ]
本実施例に係る異常検知装置12が異常を検知する異常検知処理の流れについて説明する。図10は、異常検知処理の手順の一例を示すフローチャートである。この異常検知処理は、所定のタイミング、例えば、サーバ装置11から検出値を取得したタイミングで実行される。
図10に示すように、取得部40は、サーバ装置11から検出値を取得すると、取得された検出値を時刻情報と共に第1待機セット30に格納する(S10)。取得部40は、第1待機セット30に格納された検出値のうち、第1期間内となった検出値を第1アクティブセット31に追加する(S11)。取得部40は、第1待機セット30に格納された検出値のうち、第1期間内となったデータを第1待機セット30から削除する(S12)。
判定部41は、第1アクティブセット31に記憶された検出値内での検出値の最小値を特定する(S13)。判定部41は、取得された検出値が、最小値としきい値を加算した値もより大きいかを判定する(S14)。検出値が加算した値よりも大きい場合(S14肯定)、フラグに「1(ON)」をセットする(S15)。一方、検出値が加算した値もより大きくはない場合(S14否定)、フラグに「0(OFF)」をセットする(S16)。
判定部41は、取得された検出値、時刻情報、フラグを第2待機セット32に格納する(S17)。出力部42は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる(S18)。また、出力部42は、第2アクティブセット33に格納された検出値のうち、第2期間外となった検出値を第2アクティブセット33から削除する(S19)。そして、出力部42は、第2アクティブセット33に記憶された検出値のフラグが全て「1」となっているか判定する(S20)。フラグが全て「1」となっている場合(S20肯定)、出力部42は、アラートを出力し(S21)、処理を終了する。一方、フラグが全て「1」となっていない場合(S20否定)、処理を終了する。
[効果]
上述してきたように、本実施例に係る異常検知装置12は、監視対象の状態を示す検出値を取得する。異常検知装置12は、取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間(第1期間)での検出値の最小値よりも大きいかを判定する。異常検知装置12は、検出値が特定期間での検出値の最小値よりも大きいとの判定結果が所定時間(第2期間)以上にわたり連続して得られた場合、アラートを出力する。これにより、異常検知装置12は、異常の発生を早期に検出できる。
また、本実施例に係る異常検知装置12は、検出値をメモリの使用率とする。これにより、異常検知装置12は、メモリリークの発生を早期に検出できる。
ここで、実施例1に係る異常検知装置12は、検出値が、取得時よりも前である特定期間での検出値の最小値よりも大きいかを判定する場合について説明したが、これに限定されない。例えば、実施例1に係る異常検知装置12は、取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最大値よりも小さいかを判定する。そして、実施例1に係る異常検知装置12は、検出値が特定期間での検出値の最大値よりも小さいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力してもよい。この場合、本実施例に係る異常検知装置12は、検出値の最大値が減少する傾向がある異常を早期に検出できる。このように、第1期間での検出値の最大値の変化から異常を検知可能な検出値としては、例えば、メモリの空き率などが挙げられる。例えば、メモリリークが発生するとメモリの空き率が減少する傾向がある。このため、メモリの空き率が減少する傾向を検出することにより、メモリリークの発生を検知できる。
次に、実施例2について説明する。実施例2にかかるシステム10の構成は、図1に示した実施例1の構成と同様であるため、説明を省略する。
[異常検知装置の構成]
実施例2に係る異常検知装置の機能的な構成を説明する。図11は、異常検知装置の機能的な構成の一例を示す図である。なお、図2に示した実施例1に係る異常検知装置12と同一部分については同一の符号を付し、主に異なる部分について説明する。図11に示すように、異常検知装置12の記憶部23は、第3待機セット34と、第3アクティブセット35とをさらに記憶する。
第3アクティブセット35は、異常の検知の対象となる期間のデータを保持するためのデータ領域である。例えば、本実施例では、第2期間において、取得された検出値が第1期間での最大値よりも大きいとの判定の結果が少なくとも1回得られるかを判定する。そして、本実施例では、第2期間において、取得された検出値が第1期間での最大値よりも大きいとの判定の結果が少なくとも1回得られる期間が所定の第3期間連続して得られた場合、アラートを出力する。この第1期間は、検出値の取得時から所定時間間隔をあけており、例えば、5分〜30分の期間とする。また、第2期間は、検出値の取得時を含む期間としており、例えば、0分〜30分の期間とする。また、第3期間は、検出値の取得時を含む期間としており、例えば、0分〜30分の期間とする。第3アクティブセット35には、第2期間において、取得された検出値が第1期間での最大値よりも大きいとの判定の結果が少なくとも1回得られる期間が第3期間連続したかを判定するためのデータを記憶させる。
第3待機セット34は、異常の検知の対象となる期間の前のデータを保持するためのデータ領域である。
図12は、第3待機セットのデータ構成の一例を示す図である。図12に示すように、第3待機セット34は、「時刻」、「検出値」、「フラグ」、「連続フラグ」の各項目を有する。時刻の項目は、検出値が取得された時刻情報を記憶する領域である。検出値の項目は、取得された検出値を記憶する領域である。フラグの項目は、第1期間のデータの状態を判定した結果を示したフラグを記憶する領域である。連続フラグの項目は、第2期間のデータの状態を判定した結果を示したフラグを記憶する領域である。第3待機セット34には、検出値が取得される毎に、取得された検出値が時刻情報、フラグ、連続フラグと共に格納される。
図13は、第3アクティブセットのデータ構成の一例を示す図である。図13に示すように、第3アクティブセット35は、上述の第3待機セット34と同様の構成とされており、「時刻」、「検出値」、「フラグ」、「連続フラグ」の各項目を有する。第3アクティブセット35には、第3待機セット34に格納された検出値のうち、時刻が第3期間内となった検出値が時刻情報、フラグ、連続フラグと共に格納される。
また、図11に示すように、異常検知装置12の制御部22は、第1判定部43と、第2判定部44を有する。
第1判定部43は、取得された検出値に対して、各種の判定を行う。例えば、第1判定部43は、実施例1の判定部41と同様に、取得部40により取得した検出値ごとに、当該検出値が、取得時よりも前である第1期間での検出値の最大値よりも大きいかを判定する。例えば、判定部41は、取得部40により検出値が取得される毎に、第1アクティブセット31に記憶された検出値内での検出値の最大値を特定する。この第1アクティブセット31に記憶された検出値の最大値は、第1期間での検出値の最大値である。判定部41は、検出値が取得される毎に、取得された検出値を第1期間の検出値の最大値と比較して、取得された検出値が第1期間の検出値の最大値よりも大きいかを判定する。
第1判定部43は、取得された検出値を時刻情報と共に第2待機セット32に格納する。また、第1判定部43は、判定結果として、最新の検出値が第1期間での検出値の最大値よりも大きいか否かを示すフラグを第2待機セット32に格納する。
第2判定部44は、第1判定部43の判定の結果を用いて、各種の判定を行う。例えば、第2判定部44は、第2期間において、取得された検出値が第1期間での最大値よりも大きいとの判定の結果が少なくとも1回得られるかを判定する。例えば、第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。また、第2判定部44は、第2アクティブセット33に格納された検出値のうち、第2期間外となった検出値を第2アクティブセット33から削除する。そして、第2判定部44は、取得部40により検出値が取得される毎に、第2アクティブセット33に記憶された検出値の何れかでフラグが1のものがあるか判定する。
第2判定部44は、取得された検出値、時刻情報、フラグを第3待機セット34に格納する。また、第2判定部44は、第2アクティブセット33に記憶された検出値の何れかでフラグが1のものがあるか否かを示す連続フラグを第3待機セット34に格納する。
出力部42は、第3期間における判定の結果に基づいて、異常が発生したか否かの検知を行う。そして、出力部42は、異常が発生したことが検知された場合、アラートを出力する。例えば、出力部42は、第2期間において、検出値が第1期間での最大値よりも大きいとの判定の結果が少なくとも1回得られるとの判定の結果が第3期間の間連続して得られた場合、異常が発生しているものとして、アラートを出力する。例えば、出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。また、出力部42は、第3アクティブセット35に格納された検出値のうち、第3期間外となった検出値を第3アクティブセット35から削除する。そして、出力部42は、取得部40により検出値が取得される毎に、第3アクティブセット35に記憶された検出値が全て、検出値が第1期間での最大値よりも大きいとの判定の結果が少なくとも1回得られると判定されたものである場合、アラートを出力する。
ここで、具体例を用いて説明する。本実施例では、監視対象をサーバ装置11とし、検出値としてサーバ装置11のCPUの利用率を取得し、異常として、サーバ装置11の異常の発生を検知する場合を例に説明する。また、本実施例では、第1期間を2分〜4分前の期間とし、第2期間を0分〜3分前の期間とし、第3期間を0分〜6分前の期間とする。また、本実施例では、検出値が第1期間の最大値よりしきい値「5」以上大きい状態が第2期間連続した場合にCPUの異常が発生したと検知する場合を例に説明する。図14A〜図14Mは、CPUの異常の発生を検知する際の流れの一例を示す図である。図14A〜図14Mには、サーバ装置11で1分毎に検出されるCPUの利用率の一例が示されている。また、図14A〜図14Mには、第1待機セット30、第1アクティブセット31、第2待機セット32、第2アクティブセット33、第3待機セット34および第3アクティブセット35に格納されるデータの変化の一例が示されている。なお、図14A〜図14Mの例でも、時刻の経過を把握しやくするため、時刻を図14Aの時点を基準(00:00)として示している。また、図14A〜図14Mの例では、入力として、各時刻で取得されるCPUの利用率が示されている。
図14Aに示すように、取得部40は、時刻「00:00」にサーバ装置11のCPUの利用率「80」が取得されると、時刻「00:00」およびCPUの利用率「80」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、第1アクティブセット31にはデータの格納は行わない。第1アクティブセット31にデータが格納されていないため、第1アクティブセット31に格納されたCPUの利用率の最大値は、未定である。取得されたCPUの利用率「80」は、第1アクティブセット31に格納されたCPUの利用率の最大値と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:00」、CPUの利用率「80」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Aの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:00」、CPUの利用率「80」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、何れのフラグも「0」である。このため、第2判定部44は、連続フラグ「0」として、時刻「00:00」、CPUの利用率「80」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Aの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:00」、CPUの利用率「80」、フラグ「0」、連続フラグ「0」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Bに示すように、取得部40は、時刻「00:01」にサーバ装置11のCPUの利用率「83」が取得されると、時刻「00:01」およびCPUの利用率「83」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、第1アクティブセット31にはデータの格納は行わない。第1アクティブセット31にデータが格納されていないため、第1アクティブセット31に格納されたCPUの利用率の最大値は、未定である。取得されたCPUの利用率「83」は、第1アクティブセット31に格納されたCPUの利用率の最大値と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:01」、CPUの利用率「83」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Bの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:01」、CPUの利用率「83」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、何れのフラグも「0」である。このため、第2判定部44は、連続フラグ「0」として、時刻「00:01」、CPUの利用率「83」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Bの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:01」、CPUの利用率「83」、フラグ「0」、連続フラグ「0」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Cに示すように、取得部40は、時刻「00:02」にサーバ装置11のCPUの利用率「14」が取得されると、時刻「00:02」およびCPUの利用率「14」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:00」、検出値「80」を第1アクティブセット31に格納する。CPUの利用率「14」は、第1アクティブセット31に格納されたCPUの利用率の最大値「80」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:02」、CPUの利用率「14」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Cの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:02」、CPUの利用率「14」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、何れのフラグも「0」である。このため、第2判定部44は、連続フラグ「0」として、時刻「00:02」、CPUの利用率「14」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Cの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:02」、CPUの利用率「14」、フラグ「0」、連続フラグ「0」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Dに示すように、取得部40は、時刻「00:03」にサーバ装置11のCPUの利用率「38」が取得されると、時刻「00:03」およびCPUの利用率「38」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:01」、検出値「83」を第1アクティブセット31に格納する。CPUの利用率「38」は、第1アクティブセット31に格納されたCPUの利用率の最大値「83」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:03」、CPUの利用率「38」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Dの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:03」、CPUの利用率「38」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、何れのフラグも「0」である。このため、第2判定部44は、連続フラグ「0」として、時刻「00:03」、CPUの利用率「38」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Dの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:03」、CPUの利用率「38」、フラグ「0」、連続フラグ「0」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Eに示すように、取得部40は、時刻「00:04」にサーバ装置11のCPUの利用率「15」が取得されると、時刻「00:04」およびCPUの利用率「15」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:02」、検出値「14」を第1アクティブセット31に格納する。CPUの利用率「15」は、第1アクティブセット31に格納されたCPUの利用率の最大値「83」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:04」、CPUの利用率「15」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Eの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:04」、CPUの利用率「15」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、何れのフラグも「0」である。このため、第2判定部44は、連続フラグ「0」として、時刻「00:04」、CPUの利用率「15」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Eの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:04」、CPUの利用率「15」、フラグ「0」、連続フラグ「0」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Fに示すように、取得部40は、時刻「00:05」にサーバ装置11のCPUの利用率「53」が取得されると、時刻「00:05」およびCPUの利用率「53」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:03」、検出値「38」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:00」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「53」は、第1アクティブセット31に格納されたCPUの利用率の最大値「83」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:05」、CPUの利用率「53」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Fの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:05」、CPUの利用率「53」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、何れのフラグも「0」である。このため、第2判定部44は、連続フラグ「0」として、時刻「00:05」、CPUの利用率「53」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Fの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:05」、CPUの利用率「53」、フラグ「0」、連続フラグ「0」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Gに示すように、取得部40は、時刻「00:06」にサーバ装置11のCPUの利用率「45」が取得されると、時刻「00:06」およびCPUの利用率「45」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:04」、検出値「15」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:01」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「45」は、第1アクティブセット31に格納されたCPUの利用率の最大値「38」と、しきい値「5」とを加算した値より大きい。このため、第1判定部43は、フラグ「1」として、時刻「00:06」、CPUの利用率「45」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Gの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:06」、CPUの利用率「45」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、フラグ「1」を含む。このため、第2判定部44は、連続フラグ「1」として、時刻「00:06」、CPUの利用率「45」、フラグ「1」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Gの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:06」、CPUの利用率「45」、フラグ「1」、連続フラグ「1」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Hに示すように、取得部40は、時刻「00:07」にサーバ装置11のCPUの利用率「23」が取得されると、時刻「00:07」およびCPUの利用率「23」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:05」、検出値「53」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:02」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「23」は、第1アクティブセット31に格納されたCPUの利用率の最大値「53」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:07」、CPUの利用率「23」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Hの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:07」、CPUの利用率「23」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、フラグ「1」を含む。このため、第2判定部44は、連続フラグ「1」として、時刻「00:07」、CPUの利用率「23」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Hの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:07」、CPUの利用率「23」、フラグ「0」、連続フラグ「1」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Iに示すように、取得部40は、時刻「00:08」にサーバ装置11のCPUの利用率「38」が取得されると、時刻「00:08」およびCPUの利用率「38」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:06」、検出値「45」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:03」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「38」は、第1アクティブセット31に格納されたCPUの利用率の最大値「53」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:08」、CPUの利用率「38」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Iの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:08」、CPUの利用率「38」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、フラグ「1」を含む。このため、第2判定部44は、連続フラグ「1」として、時刻「00:08」、CPUの利用率「38」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Iの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:08」、CPUの利用率「38」、フラグ「0」、連続フラグ「1」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Jに示すように、取得部40は、時刻「00:09」にサーバ装置11のCPUの利用率「18」が取得されると、時刻「00:09」およびCPUの利用率「18」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:07」、検出値「23」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:04」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「18」は、第1アクティブセット31に格納されたCPUの利用率の最大値「53」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:09」、CPUの利用率「18」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Jの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:09」、CPUの利用率「18」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、フラグ「1」を含む。このため、第2判定部44は、連続フラグ「1」として、時刻「00:09」、CPUの利用率「18」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Jの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:09」、CPUの利用率「18」、フラグ「0」、連続フラグ「1」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Kに示すように、取得部40は、時刻「00:10」にサーバ装置11のCPUの利用率「85」が取得されると、時刻「00:10」およびCPUの利用率「85」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:08」、検出値「38」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:05」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「85」は、第1アクティブセット31に格納されたCPUの利用率の最大値「45」と、しきい値「5」とを加算した値より大きい。このため、第1判定部43は、フラグ「1」として、CPUの利用率「85」および時刻「00:10」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Kの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:10」、CPUの利用率「85」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、フラグ「1」を含む。このため、第2判定部44は、連続フラグ「1」として、時刻「00:10」、CPUの利用率「85」、フラグ「1」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Jの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:10」、CPUの利用率「85」、フラグ「1」、連続フラグ「1」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Lに示すように、取得部40は、時刻「00:11」にサーバ装置11のCPUの利用率「41」が取得されると、時刻「00:11」およびCPUの利用率「41」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:09」、検出値「18」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:06」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「41」は、第1アクティブセット31に格納されたCPUの利用率の最大値「38」と、しきい値「5」とを加算した値より大きくはない。このため、第1判定部43は、フラグ「0」として、時刻「00:11」、CPUの利用率「41」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Lの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:11」、CPUの利用率「41」、フラグ「0」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、フラグ「1」を含む。このため、第2判定部44は、連続フラグ「1」として、時刻「00:11」、CPUの利用率「41」、フラグ「0」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Lの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:11」、CPUの利用率「41」、フラグ「0」、連続フラグ「1」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
次に、図14Mに示すように、取得部40は、時刻「00:12」にサーバ装置11のCPUの利用率「96」が取得されると、時刻「00:12」およびCPUの利用率「96」を第1待機セット30に格納する。第1期間は、2分〜4分前の期間である。このため、取得部40は、時刻「00:10」、検出値「85」を第1アクティブセット31に格納する。また、取得部40は、時刻「00:07」のデータが第1期間外となったため、第1アクティブセット31から削除する。CPUの利用率「96」は、第1アクティブセット31に格納されたCPUの利用率の最大値「85」と、しきい値「5」とを加算した値より大きい。このため、第1判定部43は、フラグ「1」として、時刻「00:12」、CPUの利用率「96」を第2待機セット32に格納する。
第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる。図14Mの例では、第2期間内が0分〜3分前の期間であるため、移動の結果、時刻「00:12」、CPUの利用率「96」、フラグ「1」が第2アクティブセット33に格納され、第2待機セット32が空となっている。
第2アクティブセット33のデータは、フラグ「1」を含む。このため、第2判定部44は、連続フラグ「1」として、時刻「00:12」、CPUの利用率「96」、フラグ「1」を第3待機セット34に格納する。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる。図14Mの例では、第3期間内が0分〜6分前の期間であるため、移動の結果、時刻「00:12」、CPUの利用率「96」、フラグ「1」、連続フラグ「1」が第3アクティブセット35に格納され、第3待機セット34が空となっている。
ここで、図14Mに示す第3アクティブセット35に格納された第3の期間の各データは、全て連続フラグが1となっている。この図14Mに示す状態は、取得された検出値が第1期間での最大値よりも大きいとの判定の結果が少なくとも1回得られる期間が第3期間連続した状態である。出力部42は、第3アクティブセット35に記憶された各データの連続フラグが全て「1」である場合、アラートを出力する。
例えば、サーバ装置11では、プロセスを起動するとCPUの利用率が上がり、停止するとCPUの利用率が下がるため、CPUの利用率が瞬間的に大きく増加し、すぐに元に戻る性質を持つ。
図15は、CPUの利用率の変化の一例を示す図である。図15に示すように、CPUの利用率は、瞬間的に大きく増加し、すぐに元に戻る性質を持つ。例えば、システム10が、サーバ装置11のCPUの利用率が一定以上に上がらないことを保証するシステムである場合、CPUの利用率が一定のしきい値以上をとなった場合に異常が発生したと検知すると、異常の発生の検知が遅くなる場合がある。例えば、CPUの利用率が一定のしきい値以上となったことの検知が、直前あるいは事後のタイミングとなってしまう。
そこで、異常検知装置12は、周期的にサーバ装置11のCPUの利用率を取得する。異常検知装置12は、取得したCPUの利用率が、取得時よりも前の第1期間でのCPUの利用率の最大値よりも大きいかを判定する。そして、異常検知装置12は、第2期間において、検出値が第1期間でのCPUの利用率の最大値よりも大きいとの判定の結果が少なくとも1回得られる状態が第3期間の間連続して得られた場合、アラートを出力する。図16は、CPUの利用率の変化の他の一例を示す図である。図16の例では、CPUの利用率が、CPUの利用率の取得時よりも前の第1期間の最大値より増加している部分にフラグ「1」を表示させている。また、図16の例では、CPUの利用率が、第1期間でのCPUの利用率の最大値よりも大きいとの判定の結果が少なくとも1回得られる部分に連続フラグ「1」を表示させている。このように、連続フラグ「1」の期間が第3期間連続した場合、アラートを出力することにより、CPUの利用率のように増加、減少の激しい、パルス的なデータの最大値の増加傾向を検知できるため、異常の発生を早期に検知できる。また、本実施例では、第1期間を検出値の取得時から所定時間間隔をあけており、取得時から所定時間を含まない前の期間としている。このように第1期間を取得時から間隔をあけた期間とすることで、直近の検出値の影響を抑制して大局的に増加しているかを検出できる。
[処理の流れ]
次に、実施例2に係る異常検知処理の手順を説明する。図17は、異常検知処理の手順の一例を示すフローチャートである。この異常検知処理は、図10に示した実施例1に係る異常検知処理と同様に、所定のタイミング、例えば、サーバ装置11から検出値を取得したタイミングで実行される。なお、図10に示した実施例1に係る異常検知処理と同一部分については同一の符号を付して説明する。
図17に示すように、取得部40は、サーバ装置11から検出値を取得すると、取得された検出値を時刻情報と共に第1待機セット30に格納する(S10)。取得部40は、第1待機セット30に格納された検出値のうち、第1期間内となった検出値を第1アクティブセット31に追加する(S11)。取得部40は、第1待機セット30に格納された検出値のうち、第1期間内となったデータを第1待機セット30から削除する(S12)。
第1判定部43は、第1アクティブセット31に記憶された検出値内での検出値の最大値を特定する(S13)。第1判定部43は、取得された検出値が、最大値としきい値を加算した値よりも大きいかを判定する(S14)。検出値が加算した値よりも大きい場合(S14肯定)、フラグに「1(ON)」をセットする(S15)。一方、検出値が加算した値もより大きくはない場合(S14否定)、フラグに「0(OFF)」をセットする(S16)。
第1判定部43は、取得された検出値、時刻情報、フラグを第2待機セット32に格納する(S17)。第2判定部44は、第2待機セット32に格納された検出値のうち、第2期間内となった検出値を第2アクティブセット33に移動させる(S18)。また、第2判定部44は、第2アクティブセット33に格納された検出値のうち、第2期間外となった検出値を第2アクティブセット33から削除する(S19)。そして、第2判定部44は、第2アクティブセット33に記憶された検出値の何れかのフラグが「1」となっているか判定する(S30)。何れかのフラグが「1」となっている場合(S30肯定)、連続フラグに「1(ON)」をセットする(S31)。一方、何れかのフラグも「1」となっていない場合(S30否定)、連続フラグに「0(OFF)」をセットする(S32)。
第2判定部44は、取得された検出値、時刻情報、フラグ、連続フラグを第3待機セット34に格納する(S33)。出力部42は、第3待機セット34に格納された検出値のうち、第3期間内となった検出値を第3アクティブセット35に移動させる(S34)。また、出力部42は、第3アクティブセット35に格納された検出値のうち、第3期間外となった検出値を第3アクティブセット35から削除する(S35)。そして、出力部42は、第3アクティブセット35に記憶された検出値の連続フラグが全て「1」となっているか判定する(S36)。連続フラグが全て「1」となっている場合(S36肯定)、出力部42は、アラートを出力し(S37)、処理を終了する。一方、連続フラグが全て「1」となっていない場合(S36否定)、処理を終了する。
[効果]
上述してきたように、本実施例に係る異常検知装置12は、監視対象の状態を示す検出値を取得する。異常検知装置12は、取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間(第1期間)での検出値の最大値よりも大きいかを判定する。異常検知装置12は、検出値が特定期間での最大値よりも大きいとの判定結果が第1の所定時間(第2期間)以内に少なくとも1回得られるかを判定する。異常検知装置12は、検出値が特定期間での最大値よりも大きいとの判定結果が第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間(第3期間)以上にわたり連続して得られた場合、アラートを出力する。これにより、異常検知装置12は、検出値の変動が激しい場合でも、検出値の最大値が増加する傾向がある異常を早期に検出できる。
また、本実施例に係る異常検知装置12は、最大値より大きい判定に閾値を用いており、また、第1期間を取得時から所定時間を含まない前の期間としている。第1期間として直近期間を含む場合には、最大値として直前の検出値が選ばれることがあり、大局的には増加傾向があっても、直前の検出値との差が小さいために、検出値と最大値との差が閾値を超えなくなることがある。一方、本実施例に係る異常検知装置12は、第1期間を取得時から所定時間を含まない前の期間としたことにより、第1期間の最大値として直近の値が選択されなくなるため、大局的な増加傾向を捉えることができる。
また、本実施例に係る異常検知装置12は、検出値をCPUの利用率とする。これにより、異常検知装置12は、CPUの利用率に上昇傾向が発生する異常を早期に検出できる。
ここで、実施例2に係る異常検知装置12は、検出値が特定期間での最大値よりも大きいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定する場合について、説明したが、これに限定されない。例えば、実施例1に係る異常検知装置12は、取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも小さいかを判定する。異常検知装置12は、検出値が特定期間での最小値よりも小さいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定する。そして、異常検知装置12は、検出値が特定期間での最小値よりも小さいとの判定結果が前記第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間以上にわたり連続して得られた場合、アラートを出力してもよい。この場合、本実施例に係る異常検知装置12は、検出値の変動が激しい場合でも、検出値の最小値が減少する傾向がある異常を早期に検出できる。このように、第1期間での検出値の最小値の変化から異常を検知可能な検出値としては、例えば、複数のサーバで負荷分散する際のアクセス数や処理数などが挙げられる。例えば、複数のサーバで負荷を均等に分散させる場合、アクセス数や処理数は、ほぼ均等なるが、各サーバのアクセス数や処理数を比較することにより、サーバの異常や負荷分散処理の異常の発生を検知できる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、上記の実施例1では、第1期間での検出値の最小値よりも大きいとの判定の結果が第2期間の間連続して得られた場合、アラートを出力する場合について説明したが、開示の装置はこれに限定されない。例えば、第2期間の間に、第1期間での検出値の最小値よりも大きいとの判定の結果が所定の割合以上得られた場合、アラートを出力してもよい。また、例えば、第2期間の間に、第1期間での検出値の最小値よりも小さいとの判定の結果が所定の割合以上得られた場合、アラートを出力してもよい。
また、上記の実施例2では、検出値が第2期間の最大値よりも大きいとの判定の結果が少なくとも1回得られるとの判定結果が、第3期間連続して得られた、アラートを出力する場合について説明したが、開示の装置はこれに限定されない。例えば、検出値が第2期間の最大値よりも大きいとの判定の結果が少なくとも1回得られるとの判定結果が、第3期間の間に所定の割合以上得られた場合、アラートを出力してもよい。また、例えば、検出値が第2期間の最小値よりも小さいとの判定の結果が少なくとも1回得られるとの判定結果が、第3期間の間に所定の割合以上得られた場合、アラートを出力してもよい。
また、上記の実施例では、他の装置の異常の発生を検出する場合について説明したが、開示の装置はこれに限定されない。例えば、自装置の状態を示す検出値を検出することにより取得し、検出値から自装置の異常の発生を検出してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部40、判定部41、出力部42、第1判定部43および第2判定部44の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[異常検知プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図18は、異常検知プログラムを実行するコンピュータを示す図である。
図18に示すように、コンピュータ300は、CPU(Central Processing Unit)310、HDD(Hard Disk Drive)320、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス400を介して接続される。
HDD320には上記の取得部40、判定部41、出力部42、第1判定部43および第2判定部44と同様の機能を発揮する異常検知プログラム320aが予め記憶される。なお、異常検知プログラム320aについては、適宜分離しても良い。
また、HDD320は、各種情報を記憶する。例えば、HDD320は、OSや生産計画に用いる各種データを記憶する。
そして、CPU310が、異常検知プログラム320aをHDD320から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、異常検知プログラム320aは、取得部40、判定部41、出力部42、第1判定部43および第2判定部44と同様の動作を実行する。
なお、上記した異常検知プログラム320aについては、必ずしも最初からHDD320に記憶させることを要しない。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
10 システム
12 異常検知装置
21 記憶部
22 制御部
30 第1待機セット
31 第1アクティブセット
32 第2待機セット
33 第2アクティブセット
34 第3待機セット
35 第3アクティブセット
40 取得部
41 判定部
42 出力部
43 第1判定部
44 第2判定部

Claims (14)

  1. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも大きいかを判定し、
    前記検出値が前記特定期間での検出値の最小値よりも大きいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する
    ことを特徴とする異常検知方法。
  2. 前記検出値は、メモリの使用率である
    ことを特徴とする請求項1に記載の異常検知方法。
  3. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最大値よりも小さいかを判定し、
    前記検出値が前記特定期間での検出値の最大値よりも小さいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する
    ことを特徴とする異常検知方法。
  4. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最大値よりも大きいかを判定し、
    前記検出値が前記特定期間での最大値よりも大きいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定し、
    前記検出値が前記特定期間での最大値よりも大きいとの判定結果が前記第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間以上にわたり連続して得られた場合、アラートを出力する
    処理をコンピュータが実行することを特徴とする異常検知方法。
  5. 前記検出値は、CPU(Central Processing Unit)の利用率である
    ことを特徴とする請求項4に記載の異常検知方法。
  6. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも小さいかを判定し、
    前記検出値が前記特定期間での最小値よりも小さいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定し、
    前記検出値が前記特定期間での最小値よりも小さいとの判定結果が前記第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間以上にわたり連続して得られた場合、アラートを出力する
    処理をコンピュータが実行することを特徴とする異常検知方法。
  7. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも大きいかを判定し、
    前記検出値が前記特定期間での検出値の最小値よりも大きいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する
    処理をコンピュータに実行させることを特徴とする異常検知プログラム。
  8. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最大値よりも小さいかを判定し、
    前記検出値が前記特定期間での検出値の最大値よりも小さいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する
    処理をコンピュータに実行させることを特徴とする異常検知プログラム。
  9. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最大値よりも大きいかを判定し、
    前記検出値が前記特定期間での最大値よりも大きいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定し、
    前記検出値が前記特定期間での最大値よりも大きいとの判定結果が前記第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間以上にわたり連続して得られた場合、アラートを出力する
    処理をコンピュータに実行させることを特徴とする異常検知プログラム。
  10. 監視対象の状態を示す検出値を取得し、
    取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも小さいかを判定し、
    前記検出値が前記特定期間での最小値よりも小さいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定し、
    前記検出値が前記特定期間での最小値よりも小さいとの判定結果が前記第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間以上にわたり連続して得られた場合、アラートを出力する
    処理をコンピュータに実行させることを特徴とする異常検知プログラム。
  11. 監視対象の状態を示す検出値を取得する取得部と、
    前記取得部により取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも大きいかを判定する判定部と、
    前記判定部により前記検出値が前記特定期間での検出値の最小値よりも大きいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する出力部と
    を有することを特徴とする異常検知装置。
  12. 監視対象の状態を示す検出値を取得する取得部と、
    前記取得部により取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最大値よりも小さいかを判定する判定部と、
    前記判定部により前記検出値が前記特定期間での検出値の最大値よりも小さいとの判定結果が所定時間以上にわたり連続して得られた場合、アラートを出力する出力部と
    を有することを特徴とする異常検知装置。
  13. 監視対象の状態を示す検出値を取得する取得部と、
    前記取得部により取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最大値よりも大きいかを判定する第1判定部と、
    前記第1判定部により前記検出値が前記特定期間での最大値よりも大きいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定する第2判定部と、
    前記第2判定部により前記検出値が前記特定期間での最大値よりも大きいとの判定結果が前記第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間以上にわたり連続して得られた場合、アラートを出力する出力部と
    を有することを特徴とする異常検知装置。
  14. 監視対象の状態を示す検出値を取得する取得部と、
    前記取得部により取得した検出値ごとに、当該検出値が、取得時よりも前である特定期間での検出値の最小値よりも小さいかを判定する第1判定部と、
    前記第1判定部により前記検出値が前記特定期間での最小値よりも小さいとの判定結果が第1の所定時間以内に少なくとも1回得られるかを判定する第2判定部と、
    前記第2判定部により前記検出値が前記特定期間での最小値よりも小さいとの判定結果が前記第1の所定時間以内に少なくとも1回得られるとの判定結果が、第2の所定時間以上にわたり連続して得られた場合、アラートを出力する出力部と
    を有することを特徴とする異常検知装置。
JP2014118173A 2014-06-06 2014-06-06 異常検知方法、異常検知プログラムおよび異常検知装置 Active JP6349983B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014118173A JP6349983B2 (ja) 2014-06-06 2014-06-06 異常検知方法、異常検知プログラムおよび異常検知装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014118173A JP6349983B2 (ja) 2014-06-06 2014-06-06 異常検知方法、異常検知プログラムおよび異常検知装置

Publications (2)

Publication Number Publication Date
JP2015230714A true JP2015230714A (ja) 2015-12-21
JP6349983B2 JP6349983B2 (ja) 2018-07-04

Family

ID=54887419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014118173A Active JP6349983B2 (ja) 2014-06-06 2014-06-06 異常検知方法、異常検知プログラムおよび異常検知装置

Country Status (1)

Country Link
JP (1) JP6349983B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10588948B2 (en) 2008-06-26 2020-03-17 Curemark, Llc Methods and compositions for the treatment of symptoms of Williams Syndrome

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331368A (ja) * 2000-05-19 2001-11-30 Oki Electric Ind Co Ltd メモリ解放漏れ判定方法
JP2008003945A (ja) * 2006-06-23 2008-01-10 Toshiba Corp 監視制御システムとそのコンピュータ管理方法およびプログラム
JP2011076389A (ja) * 2009-09-30 2011-04-14 Fujitsu Frontech Ltd 情報管理プログラム、情報管理方法、及び、情報管理装置
JP2013054402A (ja) * 2011-08-31 2013-03-21 Fujitsu Fip Corp 運用監視装置、運用監視プログラム及び記録媒体
WO2013171807A1 (en) * 2012-05-18 2013-11-21 Hitachi, Ltd. Management system and management method
JP2014002798A (ja) * 2013-10-09 2014-01-09 Hitachi Ltd 計算機システム及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331368A (ja) * 2000-05-19 2001-11-30 Oki Electric Ind Co Ltd メモリ解放漏れ判定方法
JP2008003945A (ja) * 2006-06-23 2008-01-10 Toshiba Corp 監視制御システムとそのコンピュータ管理方法およびプログラム
JP2011076389A (ja) * 2009-09-30 2011-04-14 Fujitsu Frontech Ltd 情報管理プログラム、情報管理方法、及び、情報管理装置
JP2013054402A (ja) * 2011-08-31 2013-03-21 Fujitsu Fip Corp 運用監視装置、運用監視プログラム及び記録媒体
WO2013171807A1 (en) * 2012-05-18 2013-11-21 Hitachi, Ltd. Management system and management method
JP2014002798A (ja) * 2013-10-09 2014-01-09 Hitachi Ltd 計算機システム及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10588948B2 (en) 2008-06-26 2020-03-17 Curemark, Llc Methods and compositions for the treatment of symptoms of Williams Syndrome

Also Published As

Publication number Publication date
JP6349983B2 (ja) 2018-07-04

Similar Documents

Publication Publication Date Title
US9954887B2 (en) Targeted attack discovery
US8949658B1 (en) Load balancer host selection and fault detection
US10545817B2 (en) Detecting computer system anomaly events based on modified Z-scores generated for a window of performance metrics
US10362135B2 (en) Monitoring highly distributed computer systems
CN104426696A (zh) 一种故障处理的方法及装置
US20160328307A1 (en) Resource monitoring system and method thereof
US11163630B2 (en) Using real-time analytics to manage application features
US20180300199A1 (en) System and method for maintaining the health of a machine
JP6626039B2 (ja) ブラックリスト設定装置、ブラックリスト設定方法およびブラックリスト設定プログラム
JP6349983B2 (ja) 異常検知方法、異常検知プログラムおよび異常検知装置
JP6294145B2 (ja) 監視方法、監視装置および監視制御プログラム
JP7059859B2 (ja) 制御方法、制御装置および制御プログラム
US10084887B2 (en) Device and method for controlling remote procedure call
US10157116B2 (en) Window deviation analyzer
US11811803B2 (en) Method of threat detection
US10430582B2 (en) Management apparatus and management method
US11366651B2 (en) Framework for hardware-specific analytic plugins
JP5121347B2 (ja) ネットワークアプリケーションの利用制限システム、利用制限方法、及びプログラム。
US10958509B2 (en) Providing a new server alarm configuration based on the correlation of server alarms for varying metrics of monitored servers
US11314573B2 (en) Detection of event storms
US20180341772A1 (en) Non-transitory computer-readable storage medium, monitoring method, and information processing apparatus
JP6497278B2 (ja) ログ管理プログラム、ログ管理方法およびログ管理装置
US20240020172A1 (en) Preventing jitter in high performance computing systems
JP6507858B2 (ja) ネットワーク装置、リソース監視方法およびプログラム
CN115348197A (zh) 一种网络资产的探测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180323

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: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180521

R150 Certificate of patent or registration of utility model

Ref document number: 6349983

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150