(57)【要約】【課題】リクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することを課題とする。【解決手段】このトラブル要因検出装置は、ユーザからのリクエストが複数のサーバ間で処理される一連の処理を一つの処理単位（トランザクション）として、複数のサーバ間でやり取りされるデータパケットを管理対象システムから取得して分析する。パケット分析後、パケット分析により抽出した処理の性能情報およびリターンコード情報をパケット情報記憶部から読み出して異常判定を行う。処理の性能情報およびリターンコード情報の異常判定およびカウントを終えると、異常発生率の算出を行う。異常発生率の算出後、リソースごとに算出した異常発生率に基づいて、管理対象システムにおいて発生するトラブル要因の候補をアクセス回数／異常判定回数テーブルから抽出して出力する。【選択図】        図１
2008158889.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出する方法をコンピュータに実行させるトラブル要因検出プログラムであって、
前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定手順と、
前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定手順により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数手順と、
前記計数手順により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出手順と、
前記異常発生率算出手順により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出手順と、
をコンピュータに実行させることを特徴とするトラブル要因検出プログラム。
【請求項２】
前記一連の処理の処理内容分類ごとに前記データの異常判定条件を記憶部に記憶する異常判定条件記憶手順をさらにコンピュータに実行させ、
前記異常判定手順は、前記異常判定条件記憶手順により記憶部に記憶されている前記異常判定条件に基づいて前記データの異常を判定することを特徴とする請求項１に記載のトラブル要因検出プログラム。
【請求項３】
処理待機中のリクエストに関する一連の処理の処理内容分類に基づいて、当該処理待機中のリクエストが前記異常発生率算出手順により算出された前記異常発生率の高いリソースにアクセスするものである場合には、トラブルの発生を事前に報知する報知手順をさらにコンピュータに実行させることを特徴とする請求項１に記載のトラブル要因検出プログラム。
【請求項４】
ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出するトラブル要因検出装置であって、
前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定手段と、
前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定手段により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数手段と、
前記計数手段により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出手段と、
前記異常発生率算出手段により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出手段と、
を備えたことを特徴とするトラブル要因検出装置。
【請求項５】
ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出するトラブル要因検出方法であって、
前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定工程と、
前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定工程により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数工程と、
前記計数工程により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出工程と、
前記異常発生率算出工程により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出工程と、
を含んだことを特徴とするトラブル要因検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出するトラブル要因検出プログラム、トラブル要因検出方法およびトラブル要因検出装置に関する。
【背景技術】
【０００２】
従来より、ＷＥＢサービスシステムにおいて、リクエストに対する処理遅延などのトラブルの要因を検出する技術が存在する。例えば、特許文献１では、ＷＥＢサービスを提供するサーバごとに収集した統計情報（レスポンス時間やＣＰＵ使用率など）に基づいて、トラブルの要因を検出する技術が開示されている。
【０００３】
【特許文献１】特開２００１−１４１８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記した従来の技術は、複数サーバ間に跨る処理におけるトラブルの要因を検出することができないという問題点があった。
【０００５】
すなわち、上記した従来の技術は、サーバごとに収集したレスポンス時間に基づいてトラブルの要因を検出していたため、複数サーバ間に跨る処理においてレスポンス時間の遅延が検出された場合に、レスポンス時間の遅延を発生させたサーバを特定することができず、トラブルの要因を検出することができないという問題点があった。
【０００６】
そこで、本発明は、上述した従来技術の課題を解決するためになされたものであり、リクエストの処理が複数のサーバ間で連結される場合であっても、異常の発生元を特定してトラブルの要因となり得る候補を抽出することができ、リクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することが可能なトラブル要因検出プログラム、トラブル要因検出方法およびトラブル要因検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出する方法をコンピュータに実行させるトラブル要因検出プログラムであって、前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定手順と、前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定手順により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数手順と、前記計数手順により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出手順と、前記異常発生率算出手順により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出手順と、をコンピュータに実行させることを特徴とする。
【０００８】
また、請求項２に係る発明は、上記の発明において、前記一連の処理の処理内容分類ごとに前記データの異常判定条件を記憶部に記憶する異常判定条件記憶手順をさらにコンピュータに実行させ、前記異常判定手順は、前記異常判定条件記憶手順により記憶部に記憶されている前記異常判定条件に基づいて前記データの異常を判定することを特徴とする。
【０００９】
また、請求項３に係る発明は、上記の発明において、処理待機中のリクエストに関する一連の処理の処理内容分類に基づいて、当該処理待機中のリクエストが前記異常発生率算出手順により算出された前記異常発生率の高いリソースにアクセスするものである場合には、トラブルの発生を事前に報知する報知手順をさらにコンピュータに実行させることを特徴とする。
【００１０】
また、請求項４に係る発明は、ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出するトラブル要因検出装置であって、前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定手段と、前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定手段により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数手段と、前記計数手段により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出手段と、前記異常発生率算出手段により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出手段と、を備えたことを特徴とする。
【００１１】
また、請求項５に係る発明は、ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出するトラブル要因検出方法であって、前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定工程と、前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定工程により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数工程と、前記計数工程により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出工程と、前記異常発生率算出工程により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出工程と、を含んだことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ユーザからのリクエストが複数のサーバ間で処理される一連の処理を一つの単位（トランザクション）として取得したデータ（例えば、データパケット）の異常を判定して、一連の処理においてアクセスされたリソース（例えば、アクセスされたサーバやデータベースのテーブル名、アプリケーション上のオブジェクト名など）ごとに、リソースに対するアクセス回数とデータの異常判定回数とを計数し、アクセス回数および異常判定回数に基づいてリソースごとに異常発生率を算出するとともに、算出された異常発生率に応じてトラブルの要因となる候補を抽出するので、リクエストの処理が複数のサーバ間で連結される場合であっても、例えば、どのサーバで異常が発生しているのかなど、異常の発生元を特定してトラブルの要因となり得る候補を抽出することができ、リクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することが可能である。
【００１３】
また、本発明によれば、リクエストが処理される一連の処理の処理内容分類（一連の処理のシーケンスから判断される処理内容分類）ごとに、一連の処理を一つの単位（トランザクション）として取得されたデータの異常判定条件を記憶しておき、この異常判定条件に基づいて取得したデータの異常を判定するので、個別的で詳細な異常判定が可能である。
【００１４】
また、本発明によれば、処理待機中のリクエストに関する一連の処理の処理内容分類に基づいて、当該処理待機中のリクエストが異常発生率の高いリソースにアクセスするものである場合にはトラブルの発生を事前に報知するので、例えば、トラブルの発生に対して事前に対処することが可能である。
【発明を実施するための最良の形態】
【００１５】
以下に添付図面を参照して、本発明に係るトラブル要因検出プログラム、トラブル要因検出方法およびトラブル要因検出装置を詳細に説明する。なお、以下では、本発明に係るトラブル要因検出装置を実施例１として説明した後に、本発明に含まれる他の実施例を説明する。
【実施例１】
【００１６】
［トラブル要因検出装置の概要および特徴（実施例１）］
最初に、図１を用いて、実施例１に係るトラブル要因検出装置の概要および特徴を説明する。図１は、実施例１に係るトラブル要因検出装置の概要および特徴を説明するための図である。
【００１７】
実施例１に係るトラブル要因検出装置は、ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することを概要とするが、リクエストの処理が複数のサーバ間で連結される場合であっても、異常の発生元を特定してトラブルの要因となり得る候補を抽出することができ、リクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することが可能である点に主たる特徴がある。
【００１８】
この主たる特徴について具体的に説明すると、図１に示すように、このトラブル要因検出装置は、複数のサーバ（例えば、データベースやアプリケーションサーバなど）で構成される管理対象システムとネットワークを介して通信可能に接続される。
【００１９】
そして、このトラブル要因検出装置は、ユーザからのリクエストが複数のサーバ間で処理される一連の処理を一つの処理単位（トランザクション）として、複数のサーバ間でやり取りされるデータパケットを管理対象システムから取得する。ここで、取得したデータパケットは、処理の性能情報（レスポンス時間）やリターンコード情報、リクエストを処理する一連の処理の流れ（処理シーケンス）に基づいて付与された処理内容分類情報などを含んで構成される。
【００２０】
続いて、このトラブル要因検出装置は、取得したデータパケットについてパケット分析を行う（図１の（１）参照）。具体的に説明すると、取得したデータパケットを分析して、データパケットから処理の性能情報、リターンコード情報、およびリソース情報（リクエストを処理する一連の処理においてアクセスされたサーバやデータベースのテーブル名、アプリケーション上のオブジェクト名などの情報）を抽出する。そして、パケット分析により抽出した各情報を対応付けてパケット情報記憶部に記憶させておく。
【００２１】
パケット分析後、このトラブル要因検出装置は、パケット分析により抽出した処理の性能情報およびリターンコード情報をパケット情報記憶部から読み出して異常判定を行う（図１の（２）参照）。具体的に説明すると、このトラブル要因検出装置は、処理の性能情報およびリターンコード情報について異常判定を行うための異常判定条件を規定した異常判定用テーブルを処理内容分類ごとに予め備える。そして、この異常判定用テーブルから、データパケットの処理内容分類情報に対応する異常判定条件を読み出し、パケット情報記憶部から読み出した処理の性能情報およびリターンコード情報と突き合わせて、処理の性能情報およびリターンコード情報に異常があるか否か判定する。
【００２２】
判定の結果、異常があると判定した場合には、このトラブル要因検出装置は、リソースに対するアクセス回数および異常判定回数をそれぞれ計数し、パケット分析により抽出されたリソース情報に対応付けて、アクセス回数／異常判定回数テーブルに各計数分だけカウンタをアップする。一方、判定の結果、異常がないと判定した場合には、リソース情報に対応付けて、リソースに対するアクセス回数のみをカウントして、アクセス回数／異常判定回数テーブルに計数分だけカウンタをアップする。
【００２３】
処理の性能情報およびリターンコード情報の異常判定およびカウントを終えると、このトラブル要因検出装置は異常発生率の算出を行う（図１の（３）参照）。具体的に説明すると、アクセス回数／異常判定回数テーブルに記憶されている異常判定回数が所定の閾値を超えているリソースがあるか否か判定して、異常判定回数が所定の閾値を超えているリソースがある場合には、アクセス回数／異常判定回数テーブルからアクセス回数および異常判定回数を読み出して、例えば、アクセス回数と異常判定回数との比を異常発生率として算出する。一方、異常判定回数が所定の閾値を超えているリソースがない場合には、次のデータパケットを取得するまで待機する。
【００２４】
異常発生率の算出後、このトラブル要因検出装置は、リソースごとに算出した異常発生率に基づいて、管理対象システムにおいて発生するトラブル要因の候補をアクセス回数／異常判定回数テーブルから抽出して出力する（図１の（４）参照）。例えば、異常発生率として算出したアクセス回数と異常判定回数との比が最も“１”に近いリソース情報をトラブル要因の候補として抽出し、所定の出力部（例えば、ディスプレイやモニタ）から出力表示する。あるいは、異常発生率として算出したアクセス回数／異常判定回数の比が“１”に近い順にリソース情報を抽出して列挙して出力表示する。
【００２５】
なお、このトラブル要因検出装置は、データパケットを取得するたびに上述してきた処理を繰り返し実行する。
【００２６】
このようなことから、実施例１に係るトラブル要因検出装置は、リクエストの処理が複数のサーバ間で連結される場合であっても、例えば、どのサーバで異常が発生しているのかなど、異常の発生元を特定してトラブルの要因となり得る候補を抽出することができ、リクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することが可能である。
【００２７】
［トラブル要因検出装置の構成（実施例１）］
次に、図２を用いて、実施例１に係るトラブル要因検出装置の構成を説明する。図２は、実施例１に係るトラブル要因検出装置の構成を示すブロック図である。
【００２８】
図２に示すように、実施例１に係るトラブル要因検出装置２０は、ネットワーク１を介して、複数のサーバ１０から構成される管理対象システムと通信可能に接続される。また、このトラブル要因検出装置２０は、通信制御Ｉ／Ｆ部２１と、入力部２２と、出力部２３と、記憶部２４と、制御部２５とから構成される。
【００２９】
このうち、通信制御Ｉ／Ｆ部２１は、管理システムから取得する各種情報に関する通信を制御し、例えば、ユーザからのリクエストが複数のサーバ１０間で処理される一連の処理を一つの処理単位（トランザクション）として、管理対象システムから取得するデータパケットに関する通信を制御する。なお、図３に例示するように、管理システムから取得するデータパケットは、処理の性能情報（レスポンス時間）やリターンコード情報、リクエストを処理する一連の処理の流れ（処理シーケンス）に基づいて付与された処理内容分類情報（例えば、“ＦＯＯ”や“ＢＡＲ”など）などを含んで構成される。
【００３０】
また、入力部２２は、各種の情報の入力を受付ける入力受付部であり、キーボードやマウス、マイクなどを備えて構成される。また、出力部２３は、各種の情報を出力する出力部であり、モニタ（若しくはディスプレイ、タッチパネル）やスピーカを備えて構成され、例えば、後述するトラブル要因候補抽出部により抽出されたトラブル要因候補に関する情報などを表示出力する。
【００３１】
記憶部２４は、制御部２５による各種処理に必要なデータおよびプログラムを記憶する記憶部であり、特に本発明に密接に関連するものとしては、パケット情報記憶部２４ａと、異常判定用テーブル２４ｂと、アクセス回数／異常判定回数テーブル２４ｃとを備える。
【００３２】
このうち、パケット情報記憶部２４ａは、後述するパケット分析部２５ａによりデータパケットから抽出された各種の情報を記憶する記憶部であり、パケットから抽出された処理の性能情報やリターンコード情報、リクエストを処理する一連の処理の流れに基づいて付与された処理内容分類情報などを対応付けて記憶して構成される。
【００３３】
異常判定用テーブル２４ｂは、後述する異常判定部２５ｂによる処理に用いられる異常判定条件に関する情報を記憶する記憶部であり、具体的には、図４に例示するように、処理の性能情報（レスポンス時間）およびリターンコード情報について異常判定を行うための異常判定条件（閾値）を処理内容分類ごとに記憶して構成される。
【００３４】
アクセス回数／異常判定回数テーブル２４ｃは、後述する異常判定部２５ｂによる処理に用いられる各種の情報を記憶する記憶部であり、具体的には、図５に例示するように、後述するパケット分析部２５ａによりデータパケットから抽出されたリソース情報（リクエストを処理する一連の処理においてアクセスされたサーバやデータベースのテーブル名、アプリケーション上のオブジェクト名などの情報）に対応づけて、リソースに対するアクセス回数および異常判定回数のカウント数を記憶して構成される。
【００３５】
制御部２５は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、パケット分析部２５ａと、異常判定部２５ｂと、トラブル要因候補抽出部２５ｃとを備える。
【００３６】
このうち、パケット分析部２５ａは、管理対象システムからトランザクションで取得したデータパケットを分析する処理部である。具体的に説明すると、図６に例示するように、取得したデータパケットからリソース情報（リクエストを処理する一連の処理においてアクセスされたサーバやデータベースのテーブル名、アプリケーション上のオブジェクト名などの情報）を抽出するとともに、図７に例示するように、処理の性能情報（レスポンス時間）およびリターンコード情報を抽出する。そして、抽出した各情報を対応付けてパケット情報記憶部２４ａに格納する。
【００３７】
なお、パケット分析部２５ａは、取得したデータパケット（図３参照）のプロトコルがＨＴＴＰやＩＩＯＰである場合には、例えば、データパケットの内容に該当する情報（“Ｐｏｓｔ  ｆｏｏ／ｂａｒ／ｆｏｏｓｅｒｖｌｅｔ”やＣＬＡＳＳ／ＯＢＪＮＡＭＥ）をリソース情報として抽出し、取得したデータパケットのプロトコルがＳＱＬである場合には、例えば、データパケットの内容に含まれる“ＦＲＯＭ”直後のテーブル名（“ＢＡＲＴＢＬ”や“ＦＯＯＴＢＬ”）を抽出する。
【００３８】
異常判定部２５ｂは、パケット分析部２５ａによりデータパケットから抽出された情報をパケット情報記憶部２４ａから読み出して、リソースごとに異常判定を行う処理部である。具体的に説明すると、異常判定用テーブル２４ｂから、データパケットの処理内容分類情報に対応する異常判定条件を読み出し、パケット情報記憶部２４ａから読み出した処理の性能情報（レスポンス時間）およびリターンコード情報と突き合わせて、処理の性能情報およびリターンコード情報に異常があるか否かリソースごとに判定する。
【００３９】
判定の結果、異常があると判定した場合には、異常判定部２５ｂは、リソースに対するアクセス回数および異常判定回数を計数し、パケット分析部２５ａにより抽出されたリソース情報に対応付けて、アクセス回数／異常判定回数テーブル２４ｃにおいて各計数分だけカウンタをアップする。一方、判定の結果、異常がないと判定した場合には、リソース情報に対応付けて、リソースに対するアクセス回数のみを計数して、アクセス回数／異常判定回数テーブル２４ｃにおいて計数分だけカウンタをアップして、次のデータパケットが取得されるまで待機する。
【００４０】
続いて、異常判定部２５ｂは、処理の性能情報およびリターンコード情報の異常判定およびカウントを終えると、異常発生率の算出を行う。具体的に説明すると、アクセス回数／異常判定回数テーブル２４ｃに記憶されている異常判定回数が所定の閾値を超えているリソースがあるか否か判定して、異常判定回数が所定の閾値を超えているリソースがある場合には、アクセス回数／異常判定回数テーブル２４ｃからアクセス回数および異常判定回数を読み出して、図８に例示するように、アクセス回数と異常判定回数との比を異常発生率として算出する。一方、異常判定回数が所定の閾値を超えているリソースがない場合には、次のデータパケットが取得されるまで待機する。
【００４１】
トラブル要因候補抽出部２５ｃは、リソースごとに算出した異常発生率（図８参照）に基づいて、管理対象システムにおいて発生するトラブル要因の候補をアクセス回数／異常判定回数テーブル２４ｃから抽出する処理部である。具体的に説明すると、図９に例示するように、異常判定部２５ｂにより異常発生率として算出されたアクセス回数／異常判定回数の比が最も“１”に近いリソース情報をトラブル要因の候補として抽出し、出力部２３（例えば、ディスプレイやモニタ）から出力表示する。あるいは、図１０に例示するように、異常発生率として算出したアクセス回数と異常判定回数との比が“１”に近い順にリソース情報を抽出して列挙して出力表示する。
【００４２】
なお、トラブル要因検出装置２０は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した各機能を搭載することによって実現することができ、データパケットを取得するたびに上述してきた処理を繰り返し実行する。
【００４３】
［トラブル要因検出装置の処理（実施例１）］
続いて、図１１を用いて、実施例１に係るトラブル要因検出装置の処理を説明する。図１１は、実施例１に係るトラブル要因検出装置の処理の流れを示すフローチャートである。
【００４４】
同図に示すように、管理対象システムからトランザクションでデータパケットを取得すると（ステップＳ１１０１肯定）、パケット分析部２５ａは、取得したデータパケットを分析する（ステップＳ１１０２）。具体的に説明すると、図６に例示するように、取得したデータパケットからリソース情報（リクエストを処理する一連の処理においてアクセスされたサーバやデータベースのテーブル名、アプリケーション上のオブジェクト名などの情報）を抽出するとともに、図７に例示するように、処理の性能情報（レスポンス時間）およびリターンコード情報を抽出する。そして、抽出した各情報を対応付けてパケット情報記憶部２４ａに格納する。
【００４５】
なお、パケット分析部２５ａは、取得したデータパケット（図３参照）のプロトコルがＨＴＴＰやＩＩＯＰである場合には、例えば、データパケットの内容に該当する情報（“Ｐｏｓｔ  ｆｏｏ／ｂａｒ／ｆｏｏｓｅｒｖｌｅｔ”やＣＬＡＳＳ／ＯＢＪＮＡＭＥ）をリソース情報として抽出し、取得したデータパケットのプロトコルがＳＱＬである場合には、例えば、データパケットの内容に含まれる“ＦＲＯＭ”直後のテーブル名（“ＢＡＲＴＢＬ”や“ＦＯＯＴＢＬ”）を抽出する。
【００４６】
次に、異常判定部２５ｂは、パケット分析部２５ａによりデータパケットから抽出された情報をパケット情報記憶部２４ａから読み出して、リソースごとに異常判定を行う（ステップＳ１１０３）。具体的に説明すると、異常判定用テーブル２４ｂから、データパケットの処理内容分類情報に対応する異常判定条件を読み出し、パケット情報記憶部２４ａから読み出した処理の性能情報（レスポンス時間）およびリターンコード情報と突き合わせて、処理の性能情報およびリターンコード情報に異常があるか否かリソースごとに判定する。
【００４７】
判定の結果、異常があると判定した場合には（ステップＳ１１０３肯定）、異常判定部２５ｂは、リソースに対するアクセス回数および異常判定回数を計数し、パケット分析部２５ａにより抽出されたリソース情報に対応付けて、アクセス回数／異常判定回数テーブル２４ｃにおいて各計数分だけカウンタをアップする（ステップＳ１１０４）。一方、判定の結果、異常がないと判定した場合には（ステップＳ１１０３否定）、リソース情報に対応付けて、リソースに対するアクセス回数のみを計数して、アクセス回数／異常判定回数テーブル２４ｃにおいて計数分だけカウンタをアップして（ステップＳ１１０５）、次のデータパケットが取得されるまで待機する。
【００４８】
続いて、異常判定部２５ｂは、アクセス回数／異常判定回数テーブル２４ｃに記憶されている異常判定回数が所定の閾値を超えているリソースがあるか否か判定する（ステップＳ１１０６）。判定の結果、異常判定回数が所定の閾値を超えているリソースがある場合には（ステップＳ１１０６肯定）、アクセス回数／異常判定回数テーブル２４ｃからアクセス回数および異常判定回数を読み出して、図８に例示するように、アクセス回数と異常判定回数との比を異常発生率として算出する（ステップＳ１１０７）。一方、異常判定回数が所定の閾値を超えているリソースがない場合には（ステップＳ１１０６否定）、次のデータパケットが取得されるまで待機する。
【００４９】
そして、トラブル要因候補抽出部２５ｃは、リソースごとに算出した異常発生率（図８参照）に基づいて、管理対象システムにおいて発生するトラブル要因の候補をアクセス回数／異常判定回数テーブル２４ｃから抽出して出力する（ステップＳ１１０８）。具体的に説明すると、図９に例示するように、異常判定部２５ｂにより異常発生率として算出されたアクセス回数／異常判定回数の比が最も“１”に近いリソース情報をトラブル要因の候補として抽出し、出力部２３（例えば、ディスプレイやモニタ）から出力表示する。あるいは、図１０に例示するように、異常発生率として算出したアクセス回数と異常判定回数との比が“１”に近い順にリソース情報を抽出して列挙して出力表示する。
【００５０】
［実施例１による効果］
上述してきたように、実施例１によれば、ユーザからのリクエストが複数のサーバ間で処理される一連の処理を一つの単位（トランザクション）として取得したデータパケットの異常を判定して、一連の処理においてアクセスされたリソース（例えば、アクセスされたサーバやデータベースのテーブル名、アプリケーション上のオブジェクト名など）ごとに、リソースに対するアクセス回数とデータの異常判定回数とを計数し、アクセス回数および異常判定回数に基づいてリソースごとに異常発生率を算出するとともに、算出された異常発生率に応じてトラブルの要因となる候補を抽出するので、リクエストの処理が複数のサーバ間で連結される場合であっても、例えば、どのサーバで異常が発生しているのかなど、異常の発生元を特定してトラブルの要因となり得る候補を抽出することができ、リクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することが可能である。
【００５１】
また、実施例１によれば、リクエストが処理される一連の処理の処理内容分類（一連の処理のシーケンスから判断される処理内容分類）ごとに、一連の処理を一つの単位（トランザクション）として取得されたデータパケットの異常判定条件を記憶しておき、この異常判定条件に基づいて取得したデータパケットの異常を判定するので、個別的で詳細な異常判定が可能である。
【００５２】
なお、上記の実施例１では、データパケットを受信するたびに、リソースごとに異常判定を行うとともに異常発生率の算出を行い、トラブル要因候補を出力する場合を説明したが、本発明はこれに限定されるものではなく、例えば、データパケットを受信するたびに異常判定までを行い、定期的に管理者からの指示を受け付けて、リソースごとに異常発生率を算出して、トラブル要因候補を出力するようにしてもよい。
【００５３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００５４】
（１）トラブルの事前報知
実施例１において、処理待機中のリクエストに関する一連の処理の処理内容分類に基づいて、処理待機中のリクエストが異常発生率の高いリソースにアクセスするものである場合には、トラブルの発生を事前に報知するようにしてもよい。このようなことから、例えば、トラブルの発生に対して事前に対処することが可能である。
【００５５】
（２）装置構成等
また、図２に示したトラブル要因検出装置２０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、トラブル要因検出装置２０の分散・統合の具体的形態は図示のものに限られず、例えば、異常判定部２５ｂの処理機能を異常判定処理機能と異常発生率算出処理機能に分散するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、トラブル要因検出装置２０にて行なわれる各処理機能（パケット分析機能、異常判定機能およびトラブル要因候補抽出機能、図１１参照）は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５６】
（３）トラブル要因検出プログラム
ところで、上記の実施例１で説明したトラブル要因検出装置に係る各種の処理（例えば、図１１参照）は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、図１２を用いて、上記の実施例１で説明したトラブル要因検出装置と同様の機能を有するトラブル要因検出プログラムを実行するコンピュータの一例を説明する。図１２は、トラブル要因検出プログラムを実行するコンピュータを示す図である。
【００５７】
図１２に示すように、トラブル要因検出装置としてコンピュータ３０は、通信制御Ｉ／Ｆ部３１、入力部３２、出力部３３、ＨＤＤ３４、ＲＡＭ３５、ＲＯＭ３６およびＣＰＵ３７をバス４０で接続して構成される。なお、通信制御Ｉ／Ｆ部３１、入力部３２および出力部３３は、例えば、図２に示したトラブル要因検出装置２０の通信制御Ｉ／Ｆ部２１、入力部２２および出力部２３にそれぞれ対応する。
【００５８】
そして、ＲＯＭ３６には、上記の実施例に示したトラブル要因検出装置と同様の機能を発揮するトラブル要因検出プログラム、つまり、図１２に示すように、パケット分析プログラム３６ａ、異常判定プログラム３６ｂおよびトラブル要因候補抽出プログラム３６ｃがあらかじめ記憶されている。なお、これらのプログラム３６ａ、３６ｂおよび３６ｃについては、例えば、図２に示したトラブル要因検出装置２０の各構成要素と同様、適宜統合または分散してもよい。なお、ＲＯＭ３６は、不揮発性の「ＲＡＭ」でもよい。
【００５９】
そして、ＣＰＵ３７が、これらのプログラム３６ａ、３６ｂおよび３６ｃをＲＯＭ３６から読み出して実行することで、図１２に示すように、各プログラム３６ａ、３６ｂおよび３６ｃは、パケット分析プロセス３７ａ、異常判定プロセス３７ｂおよびトラブル要因候補抽出プロセス３７ｃとして機能するようになる。なお、各プロセス３７ａ、３７ｂおよび３７ｃは、例えば、図２に示したトラブル要因検出装置２０のパケット分析部２５ａ、異常判定部２５ｂおよびトラブル要因候補抽出部２５ｃにそれぞれ対応する。
【００６０】
また、ＨＤＤ３４には、図１２に示すように、パケット情報テーブル３４ａ、異常判定用テーブル３４ｂおよびアクセス回数／異常判定回数テーブル３４ｃがそれぞれ設けられる。これらのパケット情報テーブル３４ａ、異常判定用テーブル３４ｂおよびアクセス回数／異常判定回数テーブル３４ｃは、例えば、図２に示したパケット情報記憶部２４ａ、異常判定用テーブル２４ｂおよびアクセス回数／異常判定回数テーブル２４ｃにそれぞれ対応する。そして、ＣＰＵ３７は、パケット情報テーブル３４ａ、異常判定用テーブル３４ｂおよびアクセス回数／異常判定回数テーブル３４ｃから、パケット情報データ３５ａ、異常判定用データ３５ｂおよびアクセス回数／異常判定回数データ３５ｃをそれぞれ読み出してＲＡＭ３５に格納し、ＲＡＭ３５に格納されたパケット情報データ３５ａ、異常判定用データ３５ｂおよびアクセス回数／異常判定回数データ３５ｃに基づいて処理を実行する。
【００６１】
なお、上記した各プログラム３６ａ、３６ｂおよび３６ｃについては、必ずしも最初からＲＯＭ３６に記憶させておく必要はなく、例えば、コンピュータ３０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ３０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ３０がこれらから各プログラムを読み出して実行するようにしてもよい。
【００６２】
（付記１）ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出するトラブル要因検出装置であって、
前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定手段と、
前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定手段により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数手段と、
前記計数手段により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出手段と、
前記異常発生率算出手段により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出手段と、
を備えたことを特徴とするトラブル要因検出装置。
【００６３】
（付記２）前記一連の処理の処理内容分類ごとに前記データの異常判定条件を記憶する異常判定条件記憶手段をさらに備え、
前記異常判定手段は、前記異常判定条件記憶手段により記憶されている前記異常判定条件に基づいて前記データの異常を判定することを特徴とする付記１に記載のトラブル要因検出装置。
【００６４】
（付記３）処理待機中のリクエストに関する一連の処理の処理内容分類に基づいて、当該処理待機中のリクエストが前記異常発生率算出手段により算出された前記異常発生率の高いリソースにアクセスするものである場合には、トラブルの発生を事前に報知する報知手段をさらに備えたことを特徴とする付記１に記載のトラブル要因検出装置。
【００６５】
（付記４）ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出するトラブル要因検出方法であって、
前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定工程と、
前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定工程により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数工程と、
前記計数工程により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出工程と、
前記異常発生率算出工程により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出工程と、
を含んだことを特徴とするトラブル要因検出方法。
【００６６】
（付記５）前記一連の処理の処理内容分類ごとに前記データの異常判定条件を記憶部に記憶する異常判定条件記憶工程をさらに含み、
前記異常判定工程は、前記異常判定条件記憶工程により記憶部に記憶されている前記異常判定条件に基づいて前記データの異常を判定することを特徴とする付記４に記載のトラブル要因検出方法。
【００６７】
（付記６）処理待機中のリクエストに関する一連の処理の処理内容分類に基づいて、当該処理待機中のリクエストが前記異常発生率算出工程により算出された前記異常発生率の高いリソースにアクセスするものである場合には、トラブルの発生を事前に報知する報知工程をさらに含んだことを特徴とする付記４に記載のトラブル要因検出方法。
【００６８】
（付記７）ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出する方法をコンピュータに実行させるトラブル要因検出プログラムであって、
前記リクエストが複数のサーバ間で処理される一連の処理を一つの単位として、複数のサーバ間でやり取りされるデータを取得し、当該データの異常を判定する異常判定手順と、
前記一連の処理においてアクセスされたリソースごとに、当該リソースに対するアクセス回数と、前記異常判定手順により前記データの異常が判定された異常判定回数とをそれぞれ計数する計数手順と、
前記計数手順により計数された前記アクセス回数および前記異常判定回数に基づいて、当該リソースごとに異常発生率を算出する異常発生率算出手順と、
前記異常発生率算出手順により算出された前記異常発生率に応じて、前記トラブルの要因となる候補を抽出するトラブル要因候補抽出手順と、
をコンピュータに実行させることを特徴とするトラブル要因検出プログラム。
【００６９】
（付記８）前記一連の処理の処理内容分類ごとに前記データの異常判定条件を記憶部に記憶する異常判定条件記憶手順をさらにコンピュータに実行させ、
前記異常判定手順は、前記異常判定条件記憶手順により記憶部に記憶されている前記異常判定条件に基づいて前記データの異常を判定することを特徴とする付記７に記載のトラブル要因検出プログラム。
【００７０】
（付記９）処理待機中のリクエストに関する一連の処理の処理内容分類に基づいて、当該処理待機中のリクエストが前記異常発生率算出手順により算出された前記異常発生率の高いリソースにアクセスするものである場合には、トラブルの発生を事前に報知する報知手順をさらにコンピュータに実行させることを特徴とする付記７に記載のトラブル要因検出プログラム。
【産業上の利用可能性】
【００７１】
以上のように、本発明に係るトラブル要因検出プログラム、トラブル要因検出方法およびトラブル要因検出装置は、ユーザからのリクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出する場合に有用であり、特に、リクエストの処理が複数のサーバ間で連結される場合であっても、異常の発生元を特定してトラブルの要因となり得る候補を抽出することができ、リクエストが複数のサーバ間で処理されるシステムにおいて発生するトラブルの要因を検出することに適する。
【図面の簡単な説明】
【００７２】
【図１】実施例１に係るトラブル要因検出装置の概要および特徴を説明するための図である。
【図２】実施例１に係るトラブル要因検出装置の構成を示すブロック図である。
【図３】管理対象システムから取得されるデータの概要を示す図である。
【図４】異常判定用テーブルの構成例を示す図である。
【図５】アクセス回数／異常判定回数テーブルの構成例を示す図である。
【図６】リソース情報の抽出例を示す図である。
【図７】性能情報やリターンコード情報の抽出例を示す図である。
【図８】異常発生率の算出例を示す図である。
【図９】トラブル要因候補の出力例を示す図である。
【図１０】トラブル要因候補の出力例を示す図である。
【図１１】実施例１に係るトラブル要因検出装置の処理の流れを示すフローチャートである。
【図１２】トラブル要因検出プログラムを実行するコンピュータを示す図である。
【符号の説明】
【００７３】
１  ネットワーク
１０  サーバ
２０  トラブル要因検出装置
２１  通信制御Ｉ／Ｆ部
２２  入力部
２３  出力部
２４  記憶部
２４ａ  パケット情報記憶部
２４ｂ  異常判定用テーブル
２４ｃ  アクセス回数／異常判定回数テーブル
２５  制御部
２５ａ  パケット分析部
２５ｂ  異常判定部
２５ｃ  トラブル要因候補抽出部
３０  コンピュータ
３１  通信制御Ｉ／Ｆ部
３２  入力部
３３  出力部
３４  ＨＤＤ（Hard Disk Drive）
３５  ＲＡＭ（Random Access Memory）
３６  ＲＯＭ（Read Only Memory）
３７  ＣＰＵ（Central Processing Unit）
【図１】
2008158889.tif 000003
【図２】
2008158889.tif 000004
【図３】
2008158889.tif 000005
【図４】
2008158889.tif 000006
【図５】
2008158889.tif 000007
【図６】
2008158889.tif 000008
【図７】
2008158889.tif 000009
【図８】
2008158889.tif 000010
【図９】
2008158889.tif 000011
【図１０】
2008158889.tif 000012
【図１１】
2008158889.tif 000013
【図１２】
2008158889.tif 000014