JP5468837B2 - 異常検出方法、装置、及びプログラム - Google Patents

異常検出方法、装置、及びプログラム Download PDF

Info

Publication number
JP5468837B2
JP5468837B2 JP2009177978A JP2009177978A JP5468837B2 JP 5468837 B2 JP5468837 B2 JP 5468837B2 JP 2009177978 A JP2009177978 A JP 2009177978A JP 2009177978 A JP2009177978 A JP 2009177978A JP 5468837 B2 JP5468837 B2 JP 5468837B2
Authority
JP
Japan
Prior art keywords
status
procedure
work name
abnormality detection
abnormality
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.)
Active
Application number
JP2009177978A
Other languages
English (en)
Other versions
JP2011034208A (ja
Inventor
弘充 中川
靖英 森
友洋 中村
克朗 菊地
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009177978A priority Critical patent/JP5468837B2/ja
Priority to US12/709,832 priority patent/US8352790B2/en
Publication of JP2011034208A publication Critical patent/JP2011034208A/ja
Application granted granted Critical
Publication of JP5468837B2 publication Critical patent/JP5468837B2/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/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/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/0709Error 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 a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server 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/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/0748Error 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 a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、監視対象装置の過去と現在の稼働情報に基づき、異常検出を行う異常検出技術に関するものである。
近年、業務システムのWebアプリ化や、インターネットビジネスの普及などを受け、Webシステムが扱うビジネス規模が拡大している。そこで、Webシステムの高信頼化が必須となっている。しかし、Webシステムで起きる異常は多種多様であり、原因もソフトウェアのバグによるものやオペレータの操作ミスによるものなど多岐に渡るため、完全に防ぐことは難しい。よって、異常は起きるものとして、異常が起きた際にすぐ対策を行えるよう、様々な異常検出技術が開発されている。特にマルチベンダ化・ブラックボックス化が進んだ近年のWebシステムにおいては、異常に関するデータを得にくい場合があるため、比較的データを得やすい、過去の正常な稼働情報を基にモデルデータを作成し、現在の稼働情報がモデルデータと乖離しているか否かによって、異常検出を行う技術が提案されている。
なお、本発明における異常とは、ハードウェアの停止や誤動作、中央処理部(Central Processing Unit:CPU)やネットワークの過負荷、メモリ領域の不足などにより、サービス水準合意(Service Level Agreement:SLA)を満たさなくなる可能性のある状態をさす。また、本発明におけるモデルデータとは、過去の正常な稼働情報を平均するなどの方法によって求められた、典型的な正常な稼働情報をさす。
従来技術として、計算機システムの過去の負荷情報に基づいて、計算機システムの負荷の時間的な推移を捉えた負荷モデルデータを作成し、現在と対応する時刻の負荷モデルデータを用いて閾値を決め、現在の負荷がその閾値を超えたか否かによって異常検出を図る技術(例えば特許文献1)や、計算機システムの過去の稼働データから周期的な変化パターンを求め、現在の稼働データの変化パターンが、求めた過去のどの変化パターンともマッチングしない場合を異常と判断することで、異常検出を図る技術(例えば特許文献2)などがある。
特開2001-142746号公報 特開2008-191839号公報
特許文献1に記載の従来技術では、現在と対応する時刻のモデルデータを判定に用いる為、その時刻に普段起きない、正常なイベントに起因した負荷の変動が発生している際に誤検出をしてしまう恐れがある。また、特許文献2に記載の従来技術では、過去の周期性に現在も従っているかによって判定を行うため、その周期で普段起きない、正常なイベントに起因した稼働データの変動が発生している際に誤検出が起きてしまう恐れがある。対策として、誤検出した変化パターンは、以降例外として検出しないようにするが、システムの構成や環境の変化などによって、例外とした変化パターンが異常に該当するようになった場合には、検出漏れが起きてしまうという恐れがある。
例えば、業務システムのサーバアクセス数を監視する場合、同じ平日の午前中でも、アップデートを行っている場合とそうでない場合、社内行事がある場合とそうでない場合では想定されるアクセス数が異なるため、それぞれの状況に適したモデルデータを用いて判定を行わなくてはならない。以上のように、時間や周期性のみに基づいてモデルデータを作成すると、判定に適したモデルデータを作成できない場合があるという課題があった。
特許文献1に記載の従来技術では、異常検出時に管理者へ異常負荷を検出した旨が通知される。特許文献2に記載の従来技術では、過去に起きたことがある異常の検出時には、その異常に関する情報を管理者へ通知するが、過去に起きたことがない異常の場合には、異常検出した旨のみが通知される。従って、特に課題1で述べたような誤検出時には、管理者は実際には異常が起きていないことを判断しなくてはならない。そのために、管理者は別途監視対象装置のログを開いてエラーメッセージを探したり、プログラムによってネットワークの死活を確認するなどの方法によって、システムが正常に稼働しているか詳細に解析する必要がある。正常であることの確認は異常であることの確認よりも難しく、確かに正常に稼働しているため、恐らく判定に用いたモデルデータが適切でなかったことによる誤検出であろうと判断するころには、多大な時間がかかってしまっている。以上のように、異常検出した旨のみを通知すると、現在の判定に用いているモデルデータが適切であるか判断が出来ず、判定結果の妥当性判断に時間がかかるという課題があった。
そこで本発明では、より現在の状態を表すのに適したモデルデータを作成して判定を行うことで、再現率や適合率といった異常検出精度を向上させること、更には、判定の根拠を管理者へ伝えることで、判定結果の妥当性判断にかかる時間を短縮させることが可能な異常検出方法、装置、及びプログラムを提供することを目的とする。
上記の目的を達成するため、本発明においては、処理部と記憶部を備えた装置を用い、監視対象システムの異常検出を行う異常検出方法であって、処理部は、監視対象システムからアクセスログとプロセス稼働ログを取得する手順と、取得したアクセスログを時間毎に分類し、時間毎の稼働情報として記録する手順と、取得したプロセス稼働ログから、記録した稼働情報のプロセス状態を分析する手順と、分析して抽出したプロセス状態から作業名を求める作業名付与手順と、求めた作業名を稼働情報に関連付けし、稼働状況として記録する手順を実行することを特徴とする異常検出方法を提供する。
また、上記の目的を達成するため、処理部と記憶部とを備え、監視対象システムの異常検出を行う異常検出装置であって、処理部は、監視対象システムからアクセスログとプロセス稼働ログを取得するログ収集制御部と、取得した前記アクセスログを時間毎に分類し、時間毎の稼働状況として記録する稼働情報分析部と、
記録した稼働状況のプロセス状態をプロセス稼働ログから抽出し、抽出したプロセス状態から作業名を求め、稼働状況に関連付けて記録するプロセス状態分析・作業名付与部と、記録した稼働状況について現在の稼働状況と過去の稼働状況の乖離度を算出して異常判定する異常判定部とを備えることを特徴とする異常検出装置、更にはその処理部用の異常検出プログラムを提供する。
本発明の好適な実施態様においては、上記の目的を達成するため、時間による周期性の他に、プロセスの状態に基づいて、稼働情報を分類することで、より現在の状態を表すのに適したモデルデータを作成することを可能とする。具体的には、監視対象の計算機システムから一定時間間隔で収集した、アクセスログにより求まるアクセス頻度などの稼働情報を、まず曜日および時間帯などの時間軸によって分類する。これにより、判定したい稼働情報の、曜日や時間帯による周期性を考慮したモデルの作成を行うことが出来る。次に、曜日および時間帯などの時間軸によって分類した稼働情報を、さらにプロセス状態によって分類する。
なお、本明細書において、プロセス状態とは、どの様な組合せのプロセスが、どのようなリソースの使用状況で、どのタイミングで動いていたかなどの、プロセスの稼働に関する情報を意味する。このプロセス状態を用いることにより、判定したい稼働情報の曜日や時間帯などの時間軸による周期性を考慮した上で、さらにプロセスの稼働状態も考慮したモデルの作成を行うことができる。また、このようにして曜日および時間帯などの周期性を考慮した時間毎の分類とプロセス状態による分類を行った稼働情報を、本明細書では稼働状況と呼ぶこととする。
本明細書における異常検出は、過去の稼働状況から、曜日、時間帯などの時間毎、及びプロセス状態の条件が共通のエントリを抽出して、稼働情報の値をエントリ全体で平均することで求まるモデルデータと、現在の稼働情報の値との統計的乖離度を算出して、ある水準以上に乖離がある場合に異常と判定する方法で行う。エントリを抽出する際のルールは、監視対象の計算機システムが現在稼働している環境である、曜日や時間などの条件に応じて何を抽出するかルールを作成しておき、これに従う。
このように、曜日、時間帯、プロセス状態で分類した稼働情報から、モデルデータを作成して異常検出を行うことで、課題1の判定に適したモデルデータを作成できない場合があるという課題を解決する。
さらに、本発明の好適な態様においては、判定に用いたデータを全て可視化することで、異常判定の根拠を管理者に示す。また、判定に用いるモデルデータとして、より適切な可能性があるモデルデータもレコメンドすることで、現在の判定に用いているモデルデータが適切でない可能性を示唆する。さらに、現在の判定に用いているモデルデータが適切でなく、レコメンドしたモデルデータの方が現在の判定に適している場合には、エントリの抽出条件にモデルデータの条件を追記可能とし、次回の判定から使用することを可能とする。
具体的には、管理者へ示すモニタリング画面には、モデルデータのグラフ、現在の稼働状況のグラフ、モデルデータと現在の稼働状況の乖離度を示す。
この際、モデルデータのグラフおよび現在の稼働状況のグラフには、プロセス状態と、作業名を付与しておく。作業名とは、プロセス状態から推測される、グラフの傾向が出る要因となった作業の名前で、監視対象の計算機システムの稼働状態を総称したものである。作業名の付与は管理者の可読性を向上させるためのものであるため、プロセス名から求まるアプリケーション名としてもよいし、システム管理ツールなどによって関連づけられた、管理者が管理のために用いる名前を用いてもよい。
さらに、過去の稼働状況から、現在の稼働状況とプロセス状態が類似したエントリを抽出し、稼働情報の値を平均することで、現在と類似した稼働状況のモデルデータを作成する。前記類似した稼働状況のモデルデータは、現在の判定に用いるのにより適切な可能性があるモデルデータとしてレコメンドする。レコメンドしたモデルデータを管理者が選択すると、モニタリング画面にはレコメンドしたモデルデータと現在の稼働情報から算出される乖離度が表示されるようにしておく。レコメンドしたモデルデータの方が現在の判定に適している場合には、エントリを抽出する際のルールにレコメンドしたモデルデータを作成するためのルールを追記可能とし、次回の判定の際に表示する。異常判定はルールに記述してあり同時に作成されたモデルデータ全てが乖離している場合に下してもよいし、いずれかが乖離している場合に下してもよい。
このように、どの様なグラフを想定して、現在のグラフがどの程度乖離しているから異常と判定しているのか、想定している状態と現在の状態は似ているのか、などを可視化することで、課題2の現在の判定に用いているモデルデータが適切であるか判断が出来ず、判定結果の妥当性判断に時間がかかるという課題を解決する。
本発明によれば、従来誤検出が起きる恐れがあった、時間や周期性に従わないイベントが起きている場合のうち、プロセスに特徴が現れるイベントを考慮した判定を行うことが可能となり、再現率や適合率といった異常検出精度が向上する。また、従来管理者が判断を行うのに時間がかかっていた、誤検出が起きた場合にも、判定の根拠を詳細に知ることが可能となり、判定結果の妥当性判断にかかる時間を短縮させる。
第一の実施例の計算機システムの構成の一例を示すブロック図である。 第一の実施例の異常検出装置の構成機能の一例を示すブロック図である。 第一の実施例の分析対象データとなるアクセスログの構成の一例を表した図である。 第一の実施例の分析対象データとなるプロセス稼働ログの構成の一例を表した図である。 第一の実施例の分析結果の総アクセス数テーブルの構成の一例を表した図である。 第一の実施例の分析結果のURL別アクセス数テーブルの構成の一例を表した図である。 第一の実施例の分析結果のプロセス状態テーブルの構成の一例を表した図である。 第一の実施例の分析結果の作業名テーブルの構成の一例を表した図である。 第一の実施例の異常検出装置のログ収集制御部の処理の一例を表すフローチャートを示す図である。 第一の実施例の異常検出装置の稼働情報分析部の処理の一例を表すフローチャートを示す図である。 第一の実施例の異常検出装置のプロセス状態分析部の処理の一例を表すフローチャートを示す図である。 第一の実施例の異常検出装置の作業名付与部の処理の一例を表すフローチャートを示す図である。 第一の実施例の異常判定に使用するテーブルとなるエントリ抽出ルールの構成の一例を表した図である。 第一の実施例の異常検出装置の異常判定部の処理の一例を表すフローチャートを示す図である。 第一の実施例の異常検出装置の類似稼働状況抽出部の処理の一例を示すフローチャートを示す図である。 第一の実施例の異常検出装置のモニタリング画面の構成の一例を示す図である。 第一の実施例の異常検出装置のモニタリング画面のダイアログの構成の一例を示す図である。 第二の実施例の異常検出装置の構成機能の一例を示すブロック図である。 第二の実施例の異常検出装置の選択反映部の処理の一例を表すフローチャートを示す図である。 第二の実施例の異常検出装置のユーザ選択結果反映画面の構成の一例を示す図である。 第二の実施例の異常検出装置のモニタリング画面の構成の一例を示す図である。
以下、本発明の実施形態について図1から図14を順に参照して説明する。なお、以下の説明において、処理部が実行するプログラムの各要素を、「部」、「機能」、「手順」等と呼ぶ場合がある点に留意されたい。例えば、稼働情報分析プログラムを、「稼働情報分析部」、「稼働情報分析機能」、「稼働情報分析手順」等である。
第1の実施例は、アクセスログとプロセス稼働ログを用いて、モデルデータを作成し、Webサーバの異常検出を行い、異常判定結果とその根拠を画面に表示する構成の実施例である。
図1は、本実施例における計算機システムの全体構成を示すブロック図である。
本実施例では、Webサービスを提供するWebサーバ装置203、Webサーバ装置203が提供するサービスを利用する一つ以上のクライアントパーソナルコンピュータ(Personal Computer:PC)100、Webサーバ装置203の異常検出を行う異常検出装置120、および前記計算機システムを相互に接続するネットワーク136を含む。
クライアントPC100は、それぞれが内部バスで接続された、処理部であるCPU(Central Processing Unit)102、記憶部であるメモリ101、インターフェイス(I/F)103、更にはディスプレイ104、入力装置105が接続されるコンピュータである。CPU102は、メモリ101に記憶されるプログラムを実行する。メモリ101は、CPU102によって実行されるプログラムや必要となるデータを一時的に記憶する。プログラムは具体的には、オペレーティングシステム(OS)やWebブラウザなどである。インターフェイス103は、ディスプレイ104、入力装置105やネットワーク136などの外部機器とのデータ入出力を行う。ディスプレイ104はCPU102によって計算された情報を表示する。入力装置105はキーボードやマウスなどクライアントPC100の利用者からの入力を受け付ける。本図には記載していないが、更に記憶部として外部記憶装置などを含んでも良い。
Webサーバ装置203は、クライアントPC100に情報を公開したり、業務システムを提供したりするためのサーバである。Webサーバ装置203は、クライアントPC100と同様に処理部であるCPU112、記憶部であるメモリ111、インターフェイス113、外部記憶装置114などから構成される。記憶部である外部記憶装置114には公開するWebページが格納されている。WebページはHTML(Hyper Text Markup Language)言語など、クライアントPC100で動作するWebクライアントプログラムが解釈可能な言語で記述されている。また、Webページを特定するための識別子としてURL(Uniform Resource Locator)が関連付けられている。Webサーバ装置203上で動作するWebサーバプログラムは、上述のWebクライアントプログラムからURLを含むHTTP(Hyper Text Transfer Protocol)リクエストを受信する。
Webサーバプログラムは、URLに関連付いているWebページを外部記憶装置114から取得し、WebクライアントプログラムにHTTPレスポンスとして送信する。Webページの送受信は、HTTPなどの通信プロトコルを用いて、ネットワーク136を介して実行される。Webサーバプログラムは、外部記憶装置114に格納された静的なWebページの提供以外に、Webアプリケーションサーバ、CGI(Common Gateway Interface)システムやデータベースシステムなどを用いて動的にWebページを生成して提供する場合もある。
異常検出装置120は、本実施例の計算機システムの異常検出装置であり、クライアントPC100と同様に、CPU122、メモリ121、インターフェイス123、外部記憶装置124、ディスプレイ125、入力装置126などから構成される。なお、上述の説明から明らかなように、異常検出装置120はクライアントPC100同様、通常のコンピュータ構成を有しており、その内部動作は上述したクライアントPC100と同様である。異常検出装置120で動作するプログラムの詳細については、図2から図14を参照して説明する。
ネットワーク136は、上述の計算機システムを相互に接続する。ネットワーク136は、企業内のLAN(Local Area Network)や、LAN間を接続するWAN(Wide Area Network)、ISP(Internet Service Provider)が提供するネットワークである。
本実施例では、異常検出装置120は、Webサーバ装置203の異常監視を実施する。
図2は、図1に示した動作環境全体のうち本実施例の特徴に関する、異常検出装置120で動作するプログラムの構成機能要素を示すブロック図である。
Webサーバ装置203はOS204と、OS204上で動作するプログラムであるWebサーバ110から構成され、これらのプログラムは、メモリ111等の記憶部に記憶され、上述したCPU112で実行されることによりその構成機能を実現する。Webサーバ110やOS204はハードウェアやソフトウェアの実行状態や、実行した処理や発生したエラーなどのイベント履歴などをログとして生成する。このログは、外部記憶装置114あるいはネットワークに接続されたストレージ装置などに適宜書き込むことで記録される。本実施例では、Webサーバ110が生成するログのうち、WebクライアントプログラムからURLを含むHTTPリクエストを受信したことを記録したアクセスログ201と、OS204が生成するログのうち、CPU112が実行したプログラムのインスタンスであるプロセスの状態を記録したプロセス稼働ログ202を用いて異常の検出を行う。アクセスログとプロセス稼働ログの構成については後述する。
まず、図2を参照して、本実施例の異常検出の大まかな流れについて説明する。異常検出装置120は、Webサーバ装置203の外部記憶装置114に格納されているアクセスログ201とプロセス稼働ログ202をネットワーク136経由で取得し、分析することで、Webサーバ装置203の異常判定を行う。異常判定の結果は、U/I(User Interface)制御表示部260を通して、異常検出装置120の表示部であるディスプレイ125へ出力される。つまり、異常検出は(1)ログの取得、(2)ログの分析、(3)異常の判定、(4)判定結果の表示という4つの流れから成る。
より具体的には、(1)ログの取得はログ収集制御部210から構成される。ログ収集制御部210は、監視対象装置であるWebサーバ装置203のアクセスログ201とプロセス稼働ログ202を取得し、稼働情報分析部220、プロセス状態分析部230へ送信する。前述のアクセスログ201、プロセス稼働ログ202の収集は、FTP(File Transport Protocol)などのファイル転送プロトコル、CIFS(Common Internet File System)、NFS(Network File System)などのファイル共有機能を利用して実現する。監視対象装置上で異常検出装置専用のファイル転送プログラムを常駐させて取得しても良い。また、ログ収集制御部210は稼働情報分析部220と作業名付与部240によって、外部記憶装置124の稼働状況管理テーブル280が更新された時点で、異常判定部250と類似稼働状況抽出部270の呼出を行う。
(2)ログの分析は、稼働情報分析部220、プロセス状態分析部230、作業名付与部240から構成される。なお、このプロセス状態分析部230と作業名付与部240とを纏めてプロセス状態分析・作業名付与部と呼ぶ場合がある。
稼働情報分析部220はアクセスログの情報を、アクセス数などの稼働情報に変換するための機能部である。稼働情報分析部220はログ収集制御部210からアクセスログ201を受信し、URL別のアクセス数などの稼働情報を抽出する。抽出した稼働情報は、異常判定に用いるため、外部記憶装置124の稼働状況管理テーブル280に記録する。稼働状況管理テーブル280については後述する。
プロセス状態分析部230はプロセス稼働ログの情報を、プロセス状態に変換するための機能部である。プロセス状態とは、どの様な組合せのプロセスが、どのようなリソースの使用状況で、どのタイミングで動いていたかなどの、プロセスの稼働に関する情報である。抽出したプロセス状態の情報は、異常判定に用いるため、外部記憶装置214の稼働状況管理テーブル280に記録する。
作業名付与部240は、後述するモニタリング画面において管理者の可読性を向上させるために作業名を付与するための機能部である。作業名とはプロセス状態から推測される、稼働情報の値の傾向が出る要因となった作業の名前で、Webサーバ装置203の稼働状態を総称したものである。作業名は、プロセス状態分析部230から受信した、プロセス状態を基に、プロセス名から求まるアプリケーション名としてもよいし、システム管理ツールなどによって関連づけられた、管理者が管理のために用いる名前を用いてもよい。
このように、本実施例ではアクセスログ201の他にプロセス稼働ログ202を用いて分析を行うことで、より精度の高いモデルデータの作成を狙うものである。
稼働状況管理テーブル280はアクセスログ201とプロセス稼働ログ202を分析した結果のテーブルであり、単位時間あたりの総アクセス数やURL別アクセス数などの稼働情報、単位時間に動いていた特長的なプロセスの名前、プロセスが使用していたCPUやメモリなどのリソース量、プロセスを基に名づけられる作業名などの情報を含む。稼働状況管理テーブル280の詳細な構成については後述する。
(3)異常の判定は異常判定部250と類似稼働状況抽出部270で行う。
異常判定部250は、ログ収集制御部210に呼び出され、外部記憶装置124に格納された稼働状況管理テーブル280と選択ルールであるエントリ抽出ルール290を基に異常の判定を行う。異常検出は、過去の稼働状況から曜日、時間帯、プロセス状態の条件が共通のエントリを抽出して、稼働情報の値をエントリ全体で平均することで求まるモデルデータと、現在の稼働状況との統計的乖離度を算出して、ある水準以上に乖離がある場合に異常と判定する方法で行う。エントリを抽出する際の条件は、エントリ抽出ルール290に従う。また、異常判定時には、モデルデータと現在の稼働状況から、プロセスの稼働状態がどの程度似ているかを表す類似度を算出する。乖離度および類似度の算出のアルゴリズムについては後述する。乖離度、類似度およびそれらの算出に用いたデータは、表示部であるディスプレイ125へ表示するために用いる。
類似稼働状況抽出部270は、ログ収集制御部210によって呼び出され、外部記憶装置124に格納された稼働状況管理テーブル280とエントリ抽出ルール290を基に、プロセスの稼働状態が現在の稼働状況と類似したモデルデータを用いて異常判定部250と同様の処理を行う。乖離度、類似度およびそれらの算出に用いたデータは、現在の判定に用いるのにより適切な可能性があるモデルデータとしてディスプレイ125へレコメンド表示するために用いる。
(4)判定結果の表示はU/I制御表示部260から構成される。
U/I制御表示部260は異常判定の結果と判定の根拠、レコメンドするモデルデータを表示し、管理者からの入力を受け付けるための機能部である。
U/I制御表示部260は、異常判定部250から受信した、乖離度、類似度およびそれらの算出に用いたデータを基に、モデルデータのグラフ、現在の稼働状況のグラフ、モデルデータと現在の稼働状況の乖離度を表示する。この際各々のグラフには、プロセス状態や作業名などの情報を付与しておく。モニタリング画面の詳細については後述する。
さらにU/I制御表示部260は類似稼働状況抽出部270から受信した乖離度、類似度およびそれらの算出に用いたデータを基に、レコメンドするモデルデータのグラフを表示する。この際、レコメンドするモデルデータのグラフには、プロセス状態や作業名などの情報を付与しておく。さらに、U/I制御表示部260は入出力装置126からの入力を受け付け、例えばレコメンドしたモデルデータを管理者が選択すると、モニタリング画面には対応した乖離度を表示する。
以下、本実施例の異常検出装置120の各機能部の詳細と各外部記憶装置に格納されているデータ構造の詳細について述べる。
図3はWebサーバ110が生成するアクセスログ201の構成の一例を表した図である。Webサーバ110は、クライアントPC100からアクセス先URLを含むHTTP要求を受け付けると、必要な処理を実施し、クライアントPC100に応答を送信すると共に、外部記憶装置114に、要求を処理した日付、時刻、要求されたURLなどをアクセスログとして記録する。
本実施例におけるアクセスログ201は日付301、時刻302、要求URL303を含む。アクセスログにその他の情報が含まれている場合は、フィルタリングを行って、日付301、時刻302、要求URLの情報のみを取得する。アクセスログ201はWebサーバ110のアクセス状況を解析するために用いる。解析したアクセス状況は、Webサーバ110の異常検出を行うための乖離度を算出するために用いる。
図4はOS204が生成するプロセス稼働ログ202の構成の一例を表した図である。OS204は、CPU102がメモリ101に記憶されるプログラムを実行すると共に、外部記憶装置114に、プログラムを実行するためのインスタンスであるプロセスの名称、CPU使用率などをプロセス稼働ログとして記録する。このプロセス稼働ログはバイナリ形式の場合もあれば、CSV(Comma Separated Values)形式の場合もある。
本実施例におけるプロセス稼働ログ202は日付401、時刻402、プロセス名403、CPU使用率404を含む。プロセス稼働ログは例えばプログラム言語のPerformanceCounterクラスによっても生成できる。プロセス稼働ログにその他の情報が含まれている場合は、フィルタリングを行って、日付401、時刻402、プロセス名403、CPU使用率404の情報のみを取得する。CPU使用率とは、単位時間中にプロセス名403が示すプロセスが、プログラムを実行するためにCPU112を占拠している時間の割合を表すものである。プロセス稼働ログ202はWebサーバ装置203のプロセス稼働状態を解析するために用いる。解析したプロセス稼働状態は、Webサーバ装置203の異常検出を行うための乖離度を算出する際のエントリの抽出や、モニタリング画面へ異常判定結果の詳細を示すために用いる。
図5A、図5B、図5C、図5Dは外部記憶装置124に格納されている、稼働状況管理テーブル280の構成を表した図である。管理状況テーブルには大きく分けて、4つの情報が含まれる。単位時間あたりの総アクセス数、単位時間あたりのURL別アクセス数、単位時間あたりのプロセス状態、作業名の4つがそれにあたり、各々は図5A、図5B、図5C、図5Dの形式で記録される。
図5Aは総アクセス数テーブル500の構成を表す図である。総アクセス数テーブル500は、単位時間あたりにWebサーバ110へクライアントPC100から何回リクエストがあったかを管理するためのテーブルである。総アクセス数は異常判定部250が乖離度の計算を行うために用いたり、U/I制御表示部260がモニタリング画面の表示を行うために用いる。総アクセス数テーブルはレコードを識別するための稼働ID501、日付502、時間503、総アクセス数504を含む。
図5BはURL別アクセス数テーブル510の構成を表す図である。URL別アクセス数テーブル510は、単位時間あたりにWebサーバ110へクライアントPC100からどのURLへ何回リクエストがあったかURL別アクセス数を管理するためのテーブルである。URL別アクセス数は異常判定部250が乖離度の計算を行うために用いる。URL別アクセス数テーブル510はレコードを識別するための稼働ID511、要求URL512、アクセス数513を含む。
図5Cはプロセス状態テーブル520の構成を表す図である。プロセス状態テーブル520は、単位間あたりに、どの様な組合せのプロセスが、どのようなリソースの使用状況で、どのタイミングで動いていたかなどの、プロセスの稼働に関する情報を管理するテーブルである。プロセス状態は異常判定部250がモデルデータの作成を行う際に、稼働状況管理テーブル280からエントリを抽出するための条件に用いたり、U/I制御表示部260がモニタリング画面の表示を行うために用いる。プロセス状態テーブル520はレコードを識別するための稼働ID521、単位時間に動いていた特徴プロセス名522、特徴プロセスの平均CPU使用率523、プロセスプロパティ524を含む。本実施例におけるプロセスプロパティ524とは、単位時間内における、プロセスの起動タイミングや終了タイミングである。プロセスプロパティ524は、プロセスの親プロセス、プロセスの稼働時間、プロセスの使用している通信ポート、プロセスの占有している計算機リソース量など、プロセスの特徴を現す情報を用いる。このようにして、プロセスの組合せに加え、各プロセスのプロパティによって識別を行うことで、例えばシステムがCDRの書き込みを行う場合であれば、データ作成準備中なのか書き込み中なのかセッションクローズ中なのかなどの段階によって挙動が異なるが、これらを分けて考えることが出来る。
図5Dは作業名テーブル530の構成を表す図である。作業名テーブル530は、プロセス名と作業名の紐付けをするテーブルであり、後述するモニタリング画面において管理者の可読性を向上させるためのテーブルである。作業名とはプロセス状態から推測される、稼働情報の値の傾向が出る要因となった作業の名前で、Webサーバ装置203の稼働状態を総称したものである。作業名は、プロセス状態分析部230から受信した、プロセス状態を基に、プロセス名から求まるアプリケーション名としてもよいし、システム管理ツールなどによって関連づけられた、管理者が管理のために用いる名前を用いてもよい。作業名テーブル530は、プロセス名531、作業名532を含む。
図6はログ収集制御部210の処理を表すフローチャートである。
ログ収集制御部210は1時間間隔で駆動し、Webサーバの更新分のログを取得した後、異常検出装置の複数の機能部を呼び出す。この処理は、例えばOSのタイマー機能やプログラムのタイマー機能を用いることで、ループして行われる。駆動間隔を1時間とすることは、稼働状況が1時間ごとにまとまりのある状況であるとみなすことに相当する。本実施例においては1時間とするが、この間隔は30分や2時間など任意の時間でよい。
最初にステップS600では、外部記憶装置114からアクセスログ201を取得し、直近一時間分のファイルデータをスカラー変数accessLogへ格納する。以降スカラー変数とは、数値や文字列を格納するための変数の意として用いる。次にステップS601では、外部記憶装置114からプロセス稼働ログ202を取得し、直近一時間分のファイルデータをスカラー変数processLogへ格納する。前記アクセスログ201、プロセス稼働ログ202の収集は、FTP(File Transport Protocol)などのファイル転送プロトコル、CIFS(Common Internet File System)、NFS(Network File System)などのファイル共有機能を利用して実現する。監視対象装置上で異常検出装置専用のファイル転送プログラムを常駐させて取得しても良い。取得するアクセスログ201とプロセス稼働ログの長さは、前回駆動した時刻からの更新分のみでよいため、直近一時間分のファイルデータを各スカラー変数へ格納する。この処理は、例えばプログラム言語のファイルポイント機能を利用することで実現できる。ファイルポイント機能とは、前回どこまでファイルを読み込んだかという位置を特定する機能である。次にステップS602では、accessLogを引数として稼働情報分析部220を呼出す。次にステップS603では、processLogを引数としてプロセス状態分析部230を呼出す。ステップS602、S603による機能部の呼び出しは、どちらが先に行われてもよい。次にステップS604では、異常判定部250を呼出す。次にステップS605では、類似稼働状況抽出部270を呼出す。ステップS604、S605による機能部の呼び出しは、どちらが先に行われてもよい。以上のステップによりログの取得処理が実現される。
図7は稼働情報分析部220の処理を表すフローチャートである。
稼働情報分析部220はアクセスログ201の情報を、総アクセス数やURL別アクセス数などの稼働情報に変換するための機能部である。稼働情報分析部220はログ収集制御部210によって呼び出され、稼働状況管理テーブル280へ稼働情報を記録する。
最初にステップS700では、URL文字列をキーとする連想配列urlCount_hを初期化する。次にステップS701では、accessLogから1レコード取得し、日付301、カラム、時刻302カラム、要求URL303カラムの値を、それぞれスカラー変数date、time、urlへ格納する。accessLogとは図6で述べた直近一時間分のアクセスログ201であり、構成はアクセスログ201と同様である。次にステップS702では、urlをキーとしたurlCount_hの値をカウントアップする。これにより、URL別のアクセス数を積算することができる。次にステップS703では、accessLogに次のレコードがあるかないかを判別する。次の行がある場合はステップS701に戻り、アクセス数の加算を続ける。次の行がない場合は、ステップS704に進む。次にステップS704では、timeをhh:mm:ssと表したときのhh値をst、hh値に1を加算した値をendとした時間”st-end”を生成し、スカラー変数timeSlotへ格納する。これにより、時間帯を求めることができる。次にステップS705では、urlCount_hの全要素の値を加算して総アクセス数を求めスカラー変数totalCount_hへ格納する。次にステップS706では、dateとtimeSlotを連結したユニークな値を生成しスカラー変数idへ格納する。この処理は例えばdateとtimeSlotを引数とする一次関数を用意して実現できる。次にステップS707では、稼働状況管理テーブル500へ、稼働ID501=id、日付502=date、時間503=timeSlot、総アクセス数504=totalCount_hのレコードを追加する。次にステップS708では、urlCount_hから1要素読み込み、キーURLをkey、値をスカラー変数valueへ格納する。次にステップS709では、稼働状況管理テーブル510へ、稼働ID511=id、要求URL512=key、アクセス数513=valueのレコードを追加する。次にステップS710では、urlCount_hに次の要素があるか判別を行い、次の要素がある場合はステップS708に戻り、テーブルの追加を続ける。次の行がない場合は処理を終了する。以上のステップにより、アクセスログ201から、稼働情報を抽出する処理を実現できる。
図8はプロセス状態分析部230の処理を表すフローチャートである。
プロセス状態分析部230はプロセス稼働ログ202の情報を、プロセス状態の情報に変換するための機能部である。プロセス状態分析部230はログ収集制御部210によって呼び出され、稼働状況管理テーブル280へ稼働情報を記録する。プロセス状態とは、どの様な組合せのプロセスが、どのようなリソースの使用状況で、どのタイミングで動いていたかなどの、プロセスの稼働に関する情報である。
最初にステップS800では、プロセス名文字列をキーとする連想配列totalCpuRatio_hとstartTime_hを初期化する。次にステップS801では、processLogから1レコード取得し、日時401カラム、時刻402カラム、プロセス名403カラム、CPU使用率404カラムの値を、それぞれスカラー変数date、time、procName、cpuRatioへ格納する。processLogとは図6で述べた直近一時間分のプロセス稼働ログ202であり、構成はプロセス稼働ログ202と同様である。次にステップS802では、procNameをキーとしたtotalCpuRatio_hの値があるか判断する。値がある場合はステップS803に進み、ない場合はステップ804へ進む。ステップS803では、procNameをキーとするstartTime_hの値にtimeを格納し、その後ステップ804へ進む。これにより、各プロセスが最初に起動した時刻を記録しておくことができ、プロセスプロパティの生成ができる。プロセスプロパティとは、プロセスの特徴を示す情報であり、本実施例では、プロセスの起動時刻を用いる。プロセスプロパティは後述するモニタリング画面において管理者の可読性を向上させるための情報であるため、プロセスの親プロセス、プロセスの稼働時間、プロセスの使用している通信ポート、プロセスの占有している計算機リソース量など、プロセスの特徴を現す情報であればよい。
次にステップS804では、procNameをキーとしたtotalCpuRatio_hの値へcpuRatioを加算する。これにより、プロセス別にCPU利用率を積算することができる。次にステップS805では、processLogに次のレコードがあるか判断する。次のレコードがある場合はステップS801に戻り、CPU使用率の積算を続ける。次のレコードがない場合はステップS806へ進む。次にステップS806では、totalCpuRatio_hの値が大きい上位3つのキーを抽出し配列procName_aへ格納する。これにより、単位時間内における特徴プロセスを抽出できる。積算したCPU使用率ではなく、平均CPU使用率を用いて比較を行って実現してもよい。この処理は、稼働情報分析部220の値の傾向が出る要因となったと推測される作業に関連する、プロセスの抽出を図るものである。
次にステップS807では、procName_aの各要素をキーとしたtotalCpuRatio_hの値を単位時間で割り、プロセス別の平均CPU使用率を求めて配列aveCpuRatio_aに格納する。この単位時間とは、ログ収集分析部210が駆動する間隔をプロセス稼働ログが生成される間隔の単位へ変換したもののことであり、本実施例においては3600である。これにより、特徴プロセスごとの平均CPU使用率を求めることができる。次にステップS808では、dateとtimeSlotを連結したユニークな値を生成しスカラー変数idへ格納する。この処理は、図7のステップS706の処理と同様である。次にステップS809では、procName_aの各要素について、稼働状況管理テーブル520へ稼働ID521=id、特徴プロセス名522=procName_a、平均CPU使用率523=aveCpuRatio_a、プロセスプロパティ524=startTime_h+“起動”のレコードを追加する。
次にステップS810では、procName_aを引数として作業名付与部を呼出す。
以上のステップにより、プロセス稼働ログ202から、プロセス状態を抽出する処理を実現できる。
図9は作業名付与部240の処理を示すフローチャートである。
作業名付与部240は後述するモニタリング画面において管理者の可読性を向上させるために作業名を付与するための機能部である。作業名とはプロセス状態から推測される、稼働情報の値の傾向が出る要因となった作業の名前で、Webサーバ装置203の稼働状態を総称したものである。作業名は、プロセス状態分析部230から受信した、プロセス状態を基に、プロセス名から求まるアプリケーション名としてもよいし、システム管理ツールなどによって関連づけられた、管理者が管理のために用いる名前を用いてもよい。作業名付与部240はプロセス状態分析部230によって呼び出され、稼働状況管理テーブル280へ作業名を記録する。
最初にステップS900ではprocName_aの各要素について、プロセス名をOS204に問合せてアプリケーション名を取得し、スカラー変数tasknameへ格納する。procName_aとはプロセス状態分析部230によって生成された、特徴プロセス名である。作業名をシステム管理ツールなどによって関連づけられた、管理者が管理のために用いる名前とする場合は、問合せ先をOSの代わりにシステム管理ツールとすることで実現できる。次にステップS901では、procName_aの各要素について、稼働ID=id、プロセス名531=procName_a、作業名=tasknameを値にもつレコードを稼働状況管理テーブル530へ追加する。以上のステップにより、特徴プロセス名から、作業名を抽出する処理を実現できる。
図10は外部記憶装置124に格納されている、エントリ抽出ルール290の構成を表す図である。エントリ抽出ルール290は、後述する異常判定部250が外部記憶装置124に格納されている稼働状況管理テーブル280から、Webサーバ装置203が稼働している環境である、曜日や時間などの条件に応じてエントリを抽出するための選択ルールを管理する選択ルールテーブルである。エントリ抽出ルール290は、曜日条件1001、時間条件1002、特徴プロセス1003を含む。曜日条件1001、時間条件102は、Webサーバ装置203が稼働している環境である、曜日や時間などの条件を表す。特徴プロセス1003は、前記条件に応じた、エントリを抽出するための条件を表す。つまり、曜日条件1001と時間条件1002に記載の環境で異常検出を行う場合は、対応する特徴プロセス1003を持つエントリを稼働状況管理テーブル280の中から抽出することを意味する。このテーブルは全て管理者が作成する。本実施例では記載していないが、曜日条件1001と時間帯条件1002に記載の環境において、過去に最も多かった特徴プロセスの組合せをプロセス状態分析部230が記録してもよい。
図11は異常判定部250の処理を示すフローチャートである。異常判定部250は、ログ収集制御部210に呼び出され、外部記憶装置124に格納された稼働状況管理テーブル280とエントリ抽出ルール290を基に異常の判定を行う。異常検出は、過去の稼働状況から曜日、時間帯、プロセス状態の条件が共通のエントリを抽出して、稼働情報の値をエントリ全体で平均することで求まるモデルデータと、現在の稼働状況との統計的乖離度を算出して、ある水準以上に乖離がある場合に異常と判定する方法で行う。エントリを抽出する際の条件は、選択ルールテーブルのエントリ抽出ルール290に従う。
最初にステップS1100では、稼働状況管理テーブル500から日付502カラムと時間503カラムの値が最新のレコードを抽出する。次にステップS1101では、稼働ID501カラムの値によって稼働状況管理テーブル500、510、520の結合ビューtestTableを作成する。次にステップS1102では、testTableの日付502カラム、時間503カラム、総アクセス数504カラムの値をそれぞれスカラー変数testDate、testTimeSlot、testTotalCountへ格納する。次にステップS1103では、testTableの要求URL512カラムの値をキーに連想配列testUrlCountへアクセス数513カラムの値を格納する。次にステップS1104では、testTableの特徴プロセス名522カラムの値をキーに連想配列testCpuRatioへ平均CPU使用率523カラムの値を格納する。
ステップS1100からS1104の処理は働状況管理テーブル280からテストデータを取得することに相当する。テストデータとは異常か否か判定したいデータのことである。結合の処理は、結合はRDBのjoin機能を使って実現できる。次にステップS1105では、testDateの値を曜日に変換し、スカラー変数dowへ格納する。
次にステップS1106では、エントリ抽出ルール290から、曜日条件1001=dow、時間条件1002=testTimeSlotのレコードを抽出して、特徴プロセス1003カラムの値をスカラー変数modelProcへ格納する。次にステップS1107では、日付502の値を曜日に変換したものがdowと一致かつ、時間503=testTimeSlotかつ特徴プロセス名522カラムの値がmodelProcを全て含むレコードを抽出する。次にステップS1108では、ステップS1106、S1107によって抽出されたレコードがないかを判断する。レコードがない場合はステップS1116に進み、レコードがある場合はステップS1109へ進む。
次にステップS1109では、稼働ID501カラムの値によって稼働状況管理テーブル500、510、520の結合ビューmodelTableを作成する。次にステップS1110では、modelTableの総アクセス数504カラムの平均値をスカラー変数modelTotalCountへ格納する。次にステップS1111では、modelTableの要求URL512カラムの値をキーに連想配列modelUrlCount_hへアクセス数513カラムの平均値を格納する。
次にステップS1112では、modelTableの特徴プロセス名522カラムの値をキーに連想配列modelCpuRatioへ平均CPU使用率523カラムの平均値を格納する。ステップS1109からS1112の処理は働状況管理テーブル280からモデルデータを生成することに相当する。モデルデータとは、テストデータの異常判定を行うために、正常な状態として用いるデータのことを指す。次にステップS1113では、testTotalCount、testUrlCount、modelTotalCount、modelUrlCount_hの値を用いて乖離度を求めスカラー変数modDivへ格納する。ここでいう乖離度とは、カイ二乗値などの統計量である。カイ二乗値については後述する。
次にステップS1114では、testCpuRatio、modelCpuRatioの値を用いて類似度を求めスカラー変数modSimへ格納する。ここでいう類似度とは、ベクトルのなす各などの値である。ベクトルのなす各については後述する。次にステップS1115では、modDivが5%水準の閾値を超えているかを判断する。超えている場合はステップS1116へ進み、超えていない場合は処理を終了する。ステップS1116では、警告フラグのスカラー変数modelAlertにtrueを、スカラー変数modelTimeslotにtestTimeSlotを格納する。警告フラグとは、後述するモニタリング画面が警告のメッセージを表示するか判断するためのフラグである。
ここで、カイ二乗値によって異常検出を行うアルゴリズムについて述べる。
まずカイ二乗分布について説明する。異常値算出のため、統計的検定で用いられるカイ二乗分布を用いる。カイ二乗分布はデータ数に応じた自由度nを持つ。
異常判定の際には、カイ二乗分布の上側確率の値がある値αとなるカイ二乗値すなわち、
∫χ2dχ2 = α …………… (1)
となるχ2値と比較することで判定を行う。
次に多項分布とχ二乗分布について説明する。今、k個の互いに排反な事象Aiがあり、P(Ai)=Pi(i=1,2,…,k)とし、A1∪A2∪…∪Ak=Ωは全事象とする。n回の独立試行で、事象Aiに入る度数を確率変数Xiであらわす(i=1,2,…,k)。
このとき十分nが大きければ、
χ2 = Σ( Xi - n*Pi )2 / n*Pi …………… (2)
は、自由度k-1のカイ二乗分布で近似できる。ただし、n*Pi ≧ 5とする。ここで、n*Piは事象Aiが起こる期待度数である。
次に本実施例への適用について説明する。上記(1)のカイ二乗分布を、以下の手順で異常判定に用いる。今、モデルデータの総アクセス数をN、URL別アクセス数をNi(i=1~k)とし、テストデータの総アクセス数をn、URL別HIT数をni(i=1~k)とする。モデルデータからPi={N1/N,…Nk/N}と推定する。
一方、テストデータのi番目の期待値はn*Ni/N、観測値はniとなるため、
χ2 = Σ(ni - n*Ni/N) / n*(Ni/N) …………… (3)
となる。
この値を自由度k−1のカイ二乗分布として、上側確率がある値αとなるカイ二乗値を算出できる。つまり、この値を閾値として、カイ二乗値が閾値を超える場合を異常として判定することは、モデルデータの値を理想としたとき、テストデータの値がα/100%以下で観測される値である場合に異常とみなす(α%水準で乖離がある場合を異常とみなす)ことに相当する。
本実施例では、URLごとのアクセス数と総アクセス数を用いてカイ二乗検定によって乖離度を算出したが、稼働状況を示すスカラーやベクトルを比較し、上側確率を定義できる検定方法であれば何を用いてもよい。例えば、G検定により判断してもよいし、ベイズの仮説検定や多項検定やフィッシャーの正確確率検定により判断してもよいし、シェフェ法やテューキー法による分散分析により判断してもよい。
また、ここでベクトルのなす各によって類似度を求めるアルゴリズムについて述べる。今、モデルデータで稼働しているプロセスをa1~ak、平均CPU使用率をAi(i=1~k)とし、テストデータで稼働しているプロセスをa1~ak、平均CPU使用率をBi(i=1~k)とする。
モデルデータベクトルA=(A1,A2,…,Ak)テストデータベクトルB=(B1,B2,…,Bk)として、ベクトルの類似度を(4)によって求める。
<A,B>/||A||||B|| …………… (4)
<A,B>はベクトルAとベクトルBの内積、||A||はベクトルAのノルムである。
ベクトルAとBが最も類似している場合はこの値は1、ベクトルAとBが最も類似していない場合はこの値は0となる。このベクトル類似度を求めることで、プロセスの組合せが同じで、プロセスごとのCPU使用率の比が同じものを類似度が高いとして評価することができる。以上のステップにより、稼働状況管理テーブル280から、乖離度と類似度を抽出する処理を実現できる。
図12は類似稼働状況抽出部270の処理を示すフローチャートである。
類似稼働状況抽出部270は、ログ収集制御部210に呼び出され、外部記憶装置124に格納された稼働状況管理テーブル280とエントリ抽出ルール290を基に、プロセスの稼働状態が現在の稼働状況と類似したモデルデータを用いて異常判定部250と同様の処理を行う。
以下ステップを説明するが、処理は異常判定部と同様で、エントリ抽出ルール290ではなく、テストデータの特徴プロセスをキーに稼働状況管理テーブル280からエントリを抽出する部分が異なる。
最初にステップS1200では、S1100とS1101に記載のステップを実行する。この処理は稼働状況管理テーブル280からテストデータを取得することに相当する。次にステップS1201では、エントリ抽出ルール290から特徴プロセス1003カラムの値がtestCpuRatioの全プロセス名を含むレコードを1つ抽出して、曜日条件1001カラム、時間条件1002カラムの値それぞれスカラー変数dow、recTimeSlotへ格納する。
次にステップS1202では、日付502の値を曜日に変換したものがdowと一致かつ、時間503=recTimeSlotかつの特徴プロセス名522カラムの値がtestCpuRatioを全て含むレコードを抽出する。次にステップS1203では、ステップS1201、S1202によって抽出されたレコードがないか判断する。レコードがない場合はステップS1204へ進み、ある場合はステップS1205へ進む。ステップS1204では、警告フラグのスカラー変数recAlertにtrueを、スカラー変数recTimeSlotにtestTimeSlotを格納し、処理を終了する。
ステップS1205では、稼働ID501カラムの値によって稼働状況管理テーブル500、510、520の結合ビューrecommendtableを作成する。次にステップS1206では、recTableの総アクセス数504カラムの平均値をスカラー変数recTotalCountへ格納する。次にステップS1207では、recTableの要求URL512カラムの値をキーに連想配列recUrlCountへアクセス数513カラムの平均値を格納する。
次にステップS1208では、recTableの特徴プロセス名522カラムの値をキーに連想配列recCpuRatioへ平均CPU使用率523カラムの平均値を格納する。
次にステップS1209では、testTotalCount、testUrlCount、recTotalCount、recrulcoutの値を用いて乖離度を求めスカラー変数recDivへ格納する。次にステップS1210では、testCpuRatio、recCpuRatioの値を用いて類似度を求めスカラー変数recSimへ格納する。
次にステップS1211では、recDivが5%水準の閾値を超えているかを判断する。超えている場合はステップS1212へ進み、超えていない場合はステップS1213へ進む。ステップS1212では、警告フラグのスカラー変数recAlertにtrueを、スカラー変数recTimeSlotにtestTimeSlotを格納し、ステップS1213へ進む。
次にステップS1213では、dow、recTimeSlot、 recTotalCount、 recUrlCount、 recCpuRatio、 recSim、 recAlert、 recTimeSlotを値に持つ構造体の配列に追加する。この処理は、レコメンドするモデルデータの候補を保存しておくための処理である。
次にステップS1214では、エントリ抽出ルール290に特徴プロセス1003カラムの値がtestCpuRatioの全プロセス名を含むレコードが他にあるかを判断する。他にある場合はステップS1201へ戻り、モデルデータ候補の抽出を続ける。他にない場合はステップS1215へ進む。次にステップS1215では、構造体の配列からrecSimの値が大きい上位2つを抽出する。この2つはレコメンドするモデルデータとして用いる。
ここで、レコメンドの概念についても説明を行う。本実施例の異常検出装置では、エントリ抽出ルール290によって生成されたモデルデータを用いて判定を行う。このルールは一般に曜日や時間帯によって周期的に行われる業務などのイベントによって固定的に決められるものである。しかし、業務などのイベントには周期的でない突発的なイベントもあり、突発的なイベントが起きている際には判定に用いる稼働状況が適切でない場合があり得る。そこで稼働しているプロセスの類似性からモデルデータを作成して、今の判定に用いるモデルデータとしてレコメンドを行うものである。
図13は異常検出装置のモニタリング画面1300の構成を表す図である。U/I制御表示部260が生成する画面であり、モデルデータのグラフ、現在の稼働状況のグラフ、モデルデータと現在の稼働状況の乖離度を表示する。この際、モデルデータのグラフ、乖離度および現在の稼働状況のグラフには、プロセス状態と、作業名などの情報を付与しておく。さらに類似稼働状況抽出部から受信したモデルデータとモデルデータの作成に用いたデータを基に、レコメンドするモデルデータのグラフを表示する。この際、レコメンドするモデルデータのグラフには、プロセス状態と作業名などの情報を付与しておく。このような画面にしておくことで、管理者に異常判定の根拠を示すことを図る。異常判定の根拠を示すことで、管理者は判断を行うことが出来るようになる。例えば、突発的なウィルスパターンアップデートがあると、システムに負荷がかかるためスループットが低下し、アクセス数が減少する。このような場合、普段とは乖離した状態であるため異常として検出されるが、現在の稼働状況に付与されたプロセス状態が示されていることで、ウィルスパターンアップデートを行っていることがわかる。さらに、レコメンドするモデルデータに付与されたプロセス状況が示されていることで、アクセス数の傾向はウィルスパターンアップデートによる影響であるということがわかり、異常ではないと判断が出来るようになる。
表示部に表示されるモニタリング画面1300は、閉じるボタン1301、メッセージ表示部1302、現在状況表示部1303、稼働状況表示部1304、乖離度表示部1305、類似稼働状況表示部1306、から構成される。閉じるボタン1301はモニタリング画面1300を閉じるためのボタンである。メッセージ表示部1302はメッセージの出力であり、異常検出の際などに管理者へ通知を行うものである。modelAlert、recAlertなどの変数にtrueが格納されているかによって表示するか判断され生成される。管理者への通知は、音によるものでも良いし、色によるものでも良い。現在状況表示部1303は現在の状況を表示するもので、現在状況詳細表示部1311、現在状況グラフ表示部1312から構成される。これらはtestTimeSlot、testTotalCount、testCpuRatioの値を用いて生成される。
稼働状況表示部1304は稼働の状況を表示するもので、稼働状況詳細表示部1313、類似度表示部1314、稼働状況グラフ1315、乖離度算出ボタン1316から構成される。これらはtestTimeSlot、modelTotalCount、modelCpuRatio、modSimの値を用いて生成される。乖離度算出ボタン1316により、乖離度表示部1305の表示を対応する値に切り替える。
乖離度表示部1305は現在状況と稼働状況の乖離度を表示するもので、比較対象詳細表示部1317、乖離度グラフ表示部1318から構成される。これらはtestTimeSlot、modelCpuRatio、modDivとrecTimeSlot、recCpuRatio、recDivを切り替えて用いて生成される。
類似稼働状況表示部1306は現在状況と類似した稼働状況を表示するもので、類似稼働状況詳細表示部1313、類似稼働状況類似度表示部1314、類似稼働状況グラフ表示部1315、乖離度算出ボタン1316から構成される。これらはrecTimeSlot、recTotalCount、recCpuRatio、recSimの値を用いて生成される。
図14は異常検出装置のモニタリング画面1300のダイアログ1400の構成を表す図である。ダイアログ1400はモニタリング画面1300に表示されている各々のグラフのプロセス状態に関する情報を表示する画面である。
作業名1401、平均CPU使用率1402、プロセスプロパティ1403、OKボタン1404から構成される。この画面は稼働状況管理テーブル520と530を用いることで生成できる。OKボタン1404はダイアログ1400を閉じるためのボタンである。ダイアログ1400は各グラフの持つプロセスのプロパティを表示するもので、モニタリング画面1300の各詳細をマウスでクリックすることで表示されるダイアログである。マウスのカーソルを合わせることで表示されるポップアップであってもよいし、ダイアログ1400の情報は各詳細表示部の中に表示しても良い。
以上が第1の実施例の処理の一例である。本実施例ではアクセスログを用いたが、Webサーバの稼働の状態によって変化する、値が算出できるものであれば、何を用いてもよい。また、監視対象もそれに伴い、Webサーバに限らず、何らかの計算機システムであればよい。このようにして異常判定結果と判定根拠の表示を行うことにより、従来、管理者が判断を行うことが困難だった、誤検出をした場合にも、判断にかかる時間を短縮させる。
第2の実施例は、異常検出装置120がWebサーバ装置203の異常を検出した後、反映ボタンが押されたため、誤検出を起こさないようエントリ抽出ルールを更新する構成の実施例である。
図15は本実施例における、異常検出装置120で動作するプログラムの構成機能要素を示すブロック図である。選択反映部1500以外の構成は、前記第1の実施例と同様である。選択反映部1500は反映ボタンの選択があった場合に、エントリ抽出ルール290の更新を行う機能部である。
図16は選択反映部の処理の一例を示すフローチャートである。最初にステップS1601では、エントリ抽出ルールにレコメンドした稼働状況を作成した条件を入れる編集画面1700を表示する。編集画面については後述する。次にステップS1602では、エントリ抽出ルールの更新を行う。以上のステップによりエントリ抽出ルール290の更新を実現する。
図17はエントリ抽出ルール編集画面1700の構成の一例を表した図である。エントリ抽出ルール編集画面1700はメッセージ部1701、Yesボタン1702、NOボタン1703、閉じるボタン1704、曜日条件1705、時間帯条件1706、作業名ID1707、曜日条件1711、時間帯条件1712、作業名ID1713から構成される。メッセージ部1701は常に“選択をルールに反映しますか?”文字列を表示する部分である。曜日条件1705、時間帯条件1706、作業名ID1707はエントリ抽出ルール編集画面1700を表示した際の現在稼働状況から生成される。曜日条件1711、時間帯条件1712、作業名ID1713はエントリ抽出ルール290と稼働状況管理テーブル530から生成される。Yesボタン1702の入力を受付けた際は、エントリ抽出ルールへ、現在の稼働状況を加える。Noボタン1703の入力を受付けた場合は何もせずエントリ抽出ルール編集画面1700を閉じる。これにより、管理者がエントリ抽出ルールに誤りがあると判断した場合は、次回から現在の状況を用いて判定が行えるよう、容易に変更を行うことができる。
図18はモニタリング画面の構成の一例を表す図である。反映ボタン1800と稼働状況1304以外の構成は、前記第1の実施例と同様である。反映ボタン1800は、エントリ抽出ルール編集画面1700を表示するためのボタンである。稼働状況1304は複数の候補から構成される。これは、エントリ抽出ルール290の更新が行われたことにより、複数の稼働状況によって判定が行われるためである。異常判定は全ての稼働状況が異常と判定した場合に下してもよいし、いずれかの稼働状況が異常と判定した場合に下してもよい。
以上が第2の実施例の処理の一例である。このようにして異常の表示と選択の反映を行うことにより、判定に用いる稼働状況の選択ルールをより適切なものにすることができ、再現率や適合率といった異常検出の精度を向上させることができる。
なお、本発明は、前述した2つの実施例に限定されるものではなく、本発明から類推される範囲で多種多様な変形例に対して実施可能なものである。
本発明は、監視対象装置の過去と現在の稼働情報に基づき、異常検出を行う技術として有用である。
100…クライアントPC
120…異常検出装置
201…アクセスログ
202…プロセス稼働ログ
203…Webサーバ装置
210…ログ収集制御部
220…稼働情報分析部
230…プロセス状態分析部
240…作業名付与部
250…異常判定部
260…U/I制御表示部
270…類似稼働状況抽出部
280…稼働状況管理テーブル
290…エントリ抽出ルール
1300…モニタリング画面
1400…ダイアログ
1700…エントリ抽出ルール編集画面。

Claims (10)

  1. 処理部と記憶部を備えた装置を用い、監視対象システムの異常検出を行う異常検出方法であって、
    前記処理部は、
    前記監視対象システムからアクセスログとプロセス稼働ログを取得する手順と、
    取得した前記アクセスログを時間毎に分類し、時間毎の稼働情報として記録する手順と、
    取得した前記プロセス稼働ログから、記録した前記稼働情報のプロセス状態を抽出する手順と、
    抽出した前記プロセス状態から作業名を求める作業名付与手順と、
    求めた前記作業名を前記稼働情報に関連付けして稼働状況として記録する手順と、
    現在の稼働状況と過去の稼働状況を基に異常を検出する手順を実行し、
    前記異常を検出する手順では、記録した前記稼働状況について、現在の稼働状況と過去の稼働状況の乖離度を算出する手順を実行し、
    前記処理部は、
    前記過去の稼働状況を、関連付いている前記作業名で分類する手順と、
    分類した前記過去の稼働状況から、選択ルールに従って前記乖離度の算出に用いる過去の稼働状況を選択する手順と、
    前記現在の稼働状況に関連付いている前記作業名と、分類した一つ以上の前記過去の稼働状況に関連付いている前記作業名から類似度を算出する手順とを更に実行する
    ことを特徴とする異常検出方法。
  2. 請求項1記載の異常検出方法であって、
    前記装置は表示部を更に備え、
    前記処理部は、
    前記現在の稼働状況と、前記過去の稼働状況と、前記稼働状況に関連付いている前記作業名と、算出した前記乖離度を前記表示部に表示する手順を更に実行する
    ことを特徴とする異常検出方法。
  3. 請求項記載の異常検出方法であって、
    前記作業名付与手順は、
    前記プロセス状態のプロセスの起動と終了のタイミングに基づいて前記作業名を求める
    ことを特徴とする異常検出方法。
  4. 請求項記載の異常検出方法であって、
    前記表示する手順は、算出した前記類似度の高い一つ以上の前記稼働状況を表示する、
    ことを特徴とする異常検出方法。
  5. 処理部と記憶部とを備え、監視対象システムの異常検出を行う異常検出装置であって、
    前記処理部は、
    前記監視対象システムからアクセスログとプロセス稼働ログを取得するログ収集制御部と、
    取得した前記アクセスログを時間毎に分類し、時間毎の稼働状況として記録する稼働情報分析部と、
    記録した前記稼働状況のプロセス状態を前記プロセス稼働ログから抽出し、抽出した前記プロセス状態から作業名を求め、前記稼働状況に関連付けて記録するプロセス状態分析・作業名付与部と、
    記録した前記稼働状況について、現在の稼働状況と過去の稼働状況の乖離度を算出する乖離度算出部と、を備え、
    前記記憶部は、
    前記乖離度算出部の乖離度算出に用いる、前記過去の稼働状況を選択する選択ルールテーブルを備え、
    前記稼働情報分析部は、
    前記過去の稼働状況を、関連付いている前記作業名で分類し、
    分類した前記過去の稼働状況から、前記選択ルールテーブルに従って前記乖離度の算出に用いる過去の稼働状況を選択し、
    前記現在の稼働状況に関連付いている前記作業名と、分類した一つ以上の前記過去の稼働状況に関連付いている前記作業名から類似度を算出する、
    ことを特徴とする異常検出装置
  6. 請求項5記載の異常検出装置であって、
    前記処理部は、
    前記現在の稼働状況と、前記過去の稼働状況と、前記稼働状況に関連付いている前記作業名と、算出した前記乖離度を出力表示するユーザインターフェイス制御部を更に備える、
    ことを特徴とする異常検出装置
  7. 請求項6記載の異常検出装置であって、
    表示部を更に備え、
    前記ユーザインターフェイス制御部は、算出された前記類似度の高い一つ以上の前記稼働状況を前記表示部に表示する、
    ことを特徴とする異常検出装置。
  8. 監視対象システムの異常検出を行う、処理部と記憶部とを備えた装置の異常検出プログラムであって、
    前記処理部に、
    前記監視対象システムからアクセスログとプロセス稼働ログを取得する手順と、
    取得した前記アクセスログを時間毎に分類し、時間毎の稼働情報として記録する手順と、
    取得した前記プロセス稼働ログから、記録した前記稼働情報のプロセス状態を抽出する手順と、
    抽出した前記プロセス状態から作業名を求める作業名付与手順と、
    求めた前記作業名を前記稼働情報に関連付けして稼働状況として記録する手順と、現在の稼働状況と過去の稼働状況を基に異常を検出する手順を実行させ、
    前記異常を検出する手順では、
    記録した前記稼働状況について、現在の稼働状況と過去の稼働状況の乖離度を算出する手順を実行させ、
    前記処理部に、
    前記過去の稼働状況を、関連付いている前記作業名で分類する手順と、
    分類した前記稼働状況から、選択ルールに従って前記乖離度の算出に用いる前記過去の稼働状況を選択する手順と、
    前記現在の稼働状況に関連付いている前記作業名と、分類した一つ以上の前記過去の稼働状況に関連付いている前記作業名から類似度を算出する手順とを更に実行させ、
    前記類似度を算出する手順において、算出した前記類似度の高い一つ以上の前記稼働状況を表示させる、
    ことを特徴とする異常検出プログラム
  9. 請求項8記載の異常検出プログラムであって、
    前記処理部に、
    前記現在の稼働状況と、前記過去の稼働状況と、前記稼働状況に関連付いている前記作業名と、算出した前記乖離度を出力させる手順を更に実行させる、
    ことを特徴とする異常検出プログラム
  10. 請求項8記載の異常検出プログラムであって、
    前記作業名付与手順は、
    前記プロセス状態のプロセスの起動と終了のタイミングに基づいて前記作業名を求める、
    ことを特徴とする異常検出プログラム
JP2009177978A 2009-07-30 2009-07-30 異常検出方法、装置、及びプログラム Active JP5468837B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009177978A JP5468837B2 (ja) 2009-07-30 2009-07-30 異常検出方法、装置、及びプログラム
US12/709,832 US8352790B2 (en) 2009-07-30 2010-02-22 Abnormality detection method, device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009177978A JP5468837B2 (ja) 2009-07-30 2009-07-30 異常検出方法、装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2011034208A JP2011034208A (ja) 2011-02-17
JP5468837B2 true JP5468837B2 (ja) 2014-04-09

Family

ID=43528112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009177978A Active JP5468837B2 (ja) 2009-07-30 2009-07-30 異常検出方法、装置、及びプログラム

Country Status (2)

Country Link
US (1) US8352790B2 (ja)
JP (1) JP5468837B2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5277667B2 (ja) * 2008-03-07 2013-08-28 日本電気株式会社 障害分析システム、障害分析方法、障害分析サーバおよび障害分析プログラム
US8701162B1 (en) * 2010-11-02 2014-04-15 Lockheed Martin Corporation Method and system for detecting and countering malware in a computer
KR20120066116A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 웹 서비스 정보 처리 방법과 이를 이용한 웹 서비스 조합 방법 및 장치
JP5716472B2 (ja) * 2011-03-18 2015-05-13 株式会社リコー 障害予測サーバ、障害予測システム、障害予測方法及び障害予測プログラム
US8751858B2 (en) 2011-05-20 2014-06-10 International Business Machines Corporation System, method, and computer program product for physical drive failure identification, prevention, and minimization of firmware revisions
JP5760732B2 (ja) * 2011-06-15 2015-08-12 富士通株式会社 業務分析装置、業務分析プログラム、及び業務分析方法
CN104246713B (zh) 2012-03-30 2017-05-10 日本电信电话株式会社 利用者体感品质推测装置、品质劣化主要原因判定装置、类似操作抽出装置及其方法
JP2014010666A (ja) 2012-06-29 2014-01-20 Fujitsu Ltd 情報出力装置、方法及びプログラム
JP5914669B2 (ja) * 2012-08-31 2016-05-11 株式会社日立製作所 サービス性能監視方法
US10394946B2 (en) 2012-09-07 2019-08-27 Splunk Inc. Refining extraction rules based on selected text within events
US8682906B1 (en) 2013-01-23 2014-03-25 Splunk Inc. Real time display of data field values based on manual editing of regular expressions
US8751963B1 (en) 2013-01-23 2014-06-10 Splunk Inc. Real time indication of previously extracted data fields for regular expressions
US9594814B2 (en) 2012-09-07 2017-03-14 Splunk Inc. Advanced field extractor with modification of an extracted field
US8751499B1 (en) 2013-01-22 2014-06-10 Splunk Inc. Variable representative sampling under resource constraints
US9753909B2 (en) 2012-09-07 2017-09-05 Splunk, Inc. Advanced field extractor with multiple positive examples
US20140208217A1 (en) 2013-01-22 2014-07-24 Splunk Inc. Interface for managing splittable timestamps across event records
US9152929B2 (en) 2013-01-23 2015-10-06 Splunk Inc. Real time display of statistics and values for selected regular expressions
WO2014208139A1 (ja) * 2013-06-28 2014-12-31 日本電気株式会社 異常検出装置、制御方法、及びプログラム
US9354956B2 (en) * 2014-07-09 2016-05-31 International Business Machines Corporation Resource-utilization monitor with self-adjusting sample size
US9715418B2 (en) 2014-12-02 2017-07-25 International Business Machines Corporation Performance problem detection in arrays of similar hardware
CN105740135B (zh) * 2014-12-08 2018-06-26 中国移动通信集团山西有限公司 一种代码审计方法和装置
JP6235517B2 (ja) * 2015-03-27 2017-11-22 ファナック株式会社 状況に応じたプログラムの提示機能を備えた数値制御装置
US9760426B2 (en) 2015-05-28 2017-09-12 Microsoft Technology Licensing, Llc Detecting anomalous accounts using event logs
JP2016224871A (ja) * 2015-06-03 2016-12-28 富士通株式会社 異常検出プログラム、異常検出装置及び異常検出方法
US10140287B2 (en) * 2015-09-09 2018-11-27 International Business Machines Corporation Scalable and accurate mining of control flow from execution logs across distributed systems
TWI615730B (zh) * 2015-11-20 2018-02-21 財團法人資訊工業策進會 以應用層日誌分析為基礎的資安管理系統及其方法
US20170357897A1 (en) * 2016-06-10 2017-12-14 Nightingale Analytics, Inc. Streaming data decision-making using distributions with noise reduction
WO2018122889A1 (ja) 2016-12-27 2018-07-05 日本電気株式会社 異常検出方法、システムおよびプログラム
US10353801B2 (en) * 2017-02-28 2019-07-16 International Business Machines Corporation Abnormal timing breakpoints
JP6897233B2 (ja) * 2017-03-30 2021-06-30 富士通株式会社 診断プログラム、診断方法及び診断装置
WO2019071626A1 (zh) * 2017-10-09 2019-04-18 华为技术有限公司 一种刷新显示异常处理的方法及终端
JP7005278B2 (ja) * 2017-10-27 2022-01-21 株式会社エヌ・ティ・ティ・データ 異常ログ検出装置、異常ログの検出方法およびプログラム
JP7062923B2 (ja) 2017-11-21 2022-05-09 富士通株式会社 可視化方法、可視化装置及び可視化プログラム
KR20190059055A (ko) * 2017-11-22 2019-05-30 한화정밀기계 주식회사 데이터 시각화 시스템, 방법 및 컴퓨터 판독 가능한 기록매체
JP6944386B2 (ja) * 2018-01-16 2021-10-06 株式会社日立製作所 故障診断支援装置
WO2019172718A1 (en) * 2018-03-09 2019-09-12 Samsung Electronics Co., Ltd. Electronic device and on-device method for enhancing user experience in electronic device
CN108491720B (zh) * 2018-03-20 2023-07-14 腾讯科技(深圳)有限公司 一种应用识别方法、系统以及相关设备
CN110389874B (zh) * 2018-04-20 2021-01-19 比亚迪股份有限公司 日志文件异常检测方法和装置
KR20210035875A (ko) * 2018-08-27 2021-04-01 에프. 호프만-라 로슈 아게 배양 장치 성능을 검증하는 방법
US10824497B2 (en) * 2018-08-29 2020-11-03 Oracle International Corporation Enhanced identification of computer performance anomalies based on computer performance logs
JP7038629B2 (ja) * 2018-08-31 2022-03-18 三菱電機ビルテクノサービス株式会社 機器状態監視装置及びプログラム
CN110928741B (zh) * 2018-09-20 2021-09-24 西门子(中国)有限公司 系统状态监视方法、装置和存储介质
US11863574B2 (en) * 2018-10-11 2024-01-02 Nippon Telegraph And Telephone Corporation Information processing apparatus, anomaly analysis method and program
CN110611684A (zh) * 2019-09-27 2019-12-24 国网电力科学研究院有限公司 一种周期性Web访问行为的检测方法、系统及存储介质
CN110941537A (zh) * 2019-12-02 2020-03-31 成都安恒信息技术有限公司 一种基于行为状态的进程检测方法及检测装置
US11238129B2 (en) 2019-12-11 2022-02-01 International Business Machines Corporation Root cause analysis using Granger causality
JP2021135704A (ja) * 2020-02-26 2021-09-13 富士フイルムビジネスイノベーション株式会社 顧客管理装置及びプログラム
CN111563647A (zh) * 2020-03-26 2020-08-21 国网福建省电力有限公司信息通信分公司 基于关联规则和dea的电力信息系统检测方法及系统
CN111666491B (zh) * 2020-04-28 2024-05-03 平安科技(深圳)有限公司 异常数据查询方法、装置、计算机设备及存储介质
JP7276550B2 (ja) * 2020-08-25 2023-05-18 日本電気株式会社 異常検出方法、システムおよびプログラム
JP7103392B2 (ja) * 2020-08-25 2022-07-20 日本電気株式会社 異常検出方法、システムおよびプログラム
US11237951B1 (en) * 2020-09-21 2022-02-01 International Business Machines Corporation Generating test data for application performance
JP7011696B1 (ja) * 2020-10-08 2022-01-27 レノボ・シンガポール・プライベート・リミテッド 電子機器、制御方法、及び学習済みモデル
US20230032678A1 (en) * 2021-07-29 2023-02-02 Micro Focus Llc Abnormality detection in log entry collection

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0721063A (ja) * 1993-06-30 1995-01-24 Mitsubishi Electric Corp 計算機システム監視装置
JPH09293004A (ja) * 1996-04-26 1997-11-11 Hitachi Ltd 稼働評価システム
US5974572A (en) * 1996-10-15 1999-10-26 Mercury Interactive Corporation Software system and methods for generating a load test using a server access log
US6052694A (en) * 1998-03-18 2000-04-18 Electronic Data Systems Corporation Method and apparatus for logging database performance characteristics
JP2001142746A (ja) * 1999-11-11 2001-05-25 Nec Software Chubu Ltd 計算機システムの負荷監視装置
US7523190B1 (en) * 1999-12-23 2009-04-21 Bickerstaff Cynthia L Real-time performance assessment of large area network user experience
US6789046B1 (en) * 2000-12-05 2004-09-07 Microsoft Corporation Performance logging solution
US7120832B2 (en) * 2001-09-27 2006-10-10 Hewlett-Packard Development Company, L.P. Storage device performance monitor
JP2003122508A (ja) * 2001-10-15 2003-04-25 Hitachi Ltd ボリューム管理方法及び装置
KR100497128B1 (ko) * 2001-12-08 2005-06-29 한국전자통신연구원 차량 성능의 진단 시스템 및 그 방법
JP2005182647A (ja) * 2003-12-22 2005-07-07 Nec Corp 機器の異常検知装置
US7627671B1 (en) * 2004-05-22 2009-12-01 ClearApp, Inc. Monitoring and performance management of component-based applications
JP4756675B2 (ja) * 2004-07-08 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム
JP4720213B2 (ja) * 2005-02-28 2011-07-13 富士通株式会社 解析支援プログラム、装置及び方法
US20060200726A1 (en) * 2005-03-03 2006-09-07 Seagate Technology Llc Failure trend detection and correction in a data storage array
US7853585B2 (en) * 2005-03-17 2010-12-14 International Business Machines Corporation Monitoring performance of a data processing system
US7873321B2 (en) * 2005-03-29 2011-01-18 Qualcomm Incorporated Apparatus and methods for determining network access performance of a wireless device
US7395187B2 (en) * 2006-02-06 2008-07-01 International Business Machines Corporation System and method for recording behavior history for abnormality detection
JP2007058872A (ja) * 2006-10-10 2007-03-08 Konami Digital Entertainment:Kk サーバ装置、サービス方法、ならびに、プログラム
JP4892367B2 (ja) 2007-02-02 2012-03-07 株式会社日立システムズ 異常兆候検出システム
US7689624B2 (en) * 2007-03-01 2010-03-30 Microsoft Corporation Graph-based search leveraging sentiment analysis of user comments
JP4507260B2 (ja) * 2007-06-25 2010-07-21 株式会社日立情報システムズ 品質障害における発生傾向把握および原因切り分けシステム、ならびにその方法
JP2009140358A (ja) * 2007-12-07 2009-06-25 Toshiba Corp 性能演算装置および性能演算処理プログラム

Also Published As

Publication number Publication date
US20110029817A1 (en) 2011-02-03
JP2011034208A (ja) 2011-02-17
US8352790B2 (en) 2013-01-08

Similar Documents

Publication Publication Date Title
JP5468837B2 (ja) 異常検出方法、装置、及びプログラム
US11632383B2 (en) Predictive model selection for anomaly detection
US11405301B1 (en) Service analyzer interface with composite machine scores
US11636397B1 (en) Graphical user interface for concurrent forecasting of multiple time series
US11822640B1 (en) User credentials verification for search
US11755938B2 (en) Graphical user interface indicating anomalous events
US11100113B2 (en) Object score adjustment based on analyzing machine data
US11409645B1 (en) Intermittent failure metrics in technological processes
US20170220672A1 (en) Enhancing time series prediction
WO2014109112A1 (ja) 情報処理システム監視装置、監視方法、及び監視プログラム
US11372956B2 (en) Multiple input neural networks for detecting fraud
US11477263B2 (en) Identifying un-deployed features of an application
JP2019536185A (ja) コンピュータおよびネットワーク活動を監視および分析するためのシステムおよび方法
EP2560099A1 (en) Efficiently collecting transaction-separated metrics in a distributed environment
US10567557B2 (en) Automatically adjusting timestamps from remote systems based on time zone differences
US11949702B1 (en) Analysis and mitigation of network security risks
JP5466622B2 (ja) 運用監視装置、運用監視方法、および運用監視プログラム
US11663109B1 (en) Automated seasonal frequency identification
US11762869B1 (en) Generating journey flow visualization with node placement based on shortest distance to journey start
JP4816169B2 (ja) グローバルプロセス生成方法、装置、システム、およびプログラム
US20230099325A1 (en) Incident management system for enterprise operations and a method to operate the same
CN115904904A (zh) 基于埋点的web应用异常处理方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131018

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140130

R150 Certificate of patent or registration of utility model

Ref document number: 5468837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150