(57)【特許請求の範囲】
【請求項１】
システムを監視する監視装置であって、
プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、前記システムとの間の通信を制御するインターフェースとを備え、
前記プロセッサは、
前記システム内の第１の装置への応答時間が長いアクセスが存在する第１の時間帯を指定することにより、当該第１の時間帯に存在するアクセスに関する情報を取得する取得工程と、
前記取得工程によって取得された前記第１の時間帯に存在するアクセスに関する情報の中から、前記第１の時間帯に存在するアクセスに共通する特徴を選択する選択工程と、
所定期間内に存在するアクセスに関する情報の中から、前記選択工程によって選択された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報を抽出する第１の抽出工程と、
前記第１の抽出工程によって抽出された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報に基づいて、応答時間の時間的変化を示す第１のグラフを生成する第１の生成工程と、
を実行することを特徴とする監視装置。
【請求項２】
前記プロセッサは、
前記取得工程では、前記第１の時間帯に存在する応答時間が長いアクセスに関する情報を取得し、
前記選択工程では、前記応答時間が長いアクセスに関する情報の中から、前記応答時間が長いアクセスに共通する特徴を選択し、
前記第１の抽出工程では、前記所定期間内に存在するアクセスに関する情報の中から、前記選択工程によって選択された前記応答時間が長いアクセスに共通する特徴を有するアクセスに関する情報を抽出し、
前記第１の生成工程では、前記第１の抽出工程によって抽出された前記応答時間が長いアクセスに共通する特徴を有するアクセスに関する情報に基づいて、応答時間の時間的変化を示す第１のグラフを生成することを特徴とする請求項１に記載の監視装置。
【請求項３】
前記所定期間は、前記第１の装置において障害が発生していない期間を含むことを特徴とする請求項１に記載の監視装置。
【請求項４】
前記プロセッサは、
前記第１の生成工程によって生成された第１のグラフにおいて応答時間が長いアクセスが存在する第２の時間帯を指定することにより、前記第１の装置からの要求により前記システム内の第２の装置で処理されたリクエストに関する情報の中から、前記第２の時間帯に存在するリクエストに関する情報を抽出する第２の抽出工程と、
前記所定期間内に存在するリクエストに関する情報の中から、前記第２の抽出工程によって抽出された前記第２の時間帯に存在するリクエストに関する情報と同一リクエストであるリクエストに関する情報を抽出する第３の抽出工程と、
前記第３の抽出工程によって抽出されたリクエストに関する情報に基づいて、前記第２の装置での前記リクエストの処理に要する実行時間の時間的変化を示す第２のグラフをリクエスト別に生成する第２の生成工程と、
を実行することを特徴とする請求項１に記載の監視装置。
【請求項５】
前記プロセッサは、
前記第２の抽出工程では、前記第１の装置からの要求により第２の装置で処理されたリクエストに関する情報の中から、前記第２の時間帯に存在する実行時間が長いリクエストに関する情報を抽出することを特徴とする請求項４に記載の監視装置。
【請求項６】
前記所定期間は、前記第２の装置において障害が発生していない期間を含むことを特徴とする請求項４に記載の監視装置。
【請求項７】
前記プロセッサは、
前記取得工程では、応答時間がベースラインを超過した前記第１の装置へのアクセスが存在する第１の時間帯を指定することにより、当該第１の時間帯に存在するアクセスに関する情報を取得することを特徴とする請求項１に記載の監視装置。
【請求項８】
システムを監視する監視装置が実行する監視方法であって、
前記監視装置は、プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、前記システムとの間の通信を制御するインターフェースとを備え、
前記監視方法は、
前記プロセッサが、
前記システム内の第１の装置への応答時間が長いアクセスが存在する第１の時間帯を指定することにより、当該第１の時間帯に存在するアクセスに関する情報を取得する取得工程と、
前記取得工程によって取得された前記第１の時間帯に存在するアクセスに関する情報の中から、前記第１の時間帯に存在するアクセスに共通する特徴を選択する選択工程と、
所定期間内に存在するアクセスに関する情報の中から、前記選択工程によって選択された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報を抽出する第１の抽出工程と、
前記第１の抽出工程によって抽出された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報に基づいて、応答時間の時間的変化を示す第１のグラフを生成する第１の生成工程と、
を実行することを特徴とする監視方法。
【請求項９】
プロセッサが実行するプログラムを格納する前記プロセッサにより読み取り可能な非一時的な記録媒体であって、
前記プロセッサに、
システム内の第１の装置への応答時間が長いアクセスが存在する第１の時間帯を指定することにより、当該第１の時間帯に存在するアクセスに関する情報を取得する取得工程と、
前記取得工程によって取得された前記第１の時間帯に存在するアクセスに関する情報の中から、前記第１の時間帯に存在するアクセスに共通する特徴を選択する選択工程と、
所定期間内に存在するアクセスに関する情報の中から、前記選択工程によって選択された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報を抽出する第１の抽出工程と、
前記第１の抽出工程によって抽出された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報に基づいて、応答時間の時間的変化を示す第１のグラフを生成する第１の生成工程と、
を実行させる監視プログラムを記録した非一時的な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムを監視する監視装置、監視方法、および記録媒体に関する。
【背景技術】
【０００２】
特許文献１は、Ｗｅｂ３階層システムにおいて、複数サーバ間で送受信されるリクエストを、一連の処理単位でまとめたトランザクションとして識別する技術である。具体的には、特許文献１は、管理対象システムのサーバ内部のログ情報を収集し、過去のアクセス履歴を解析し、リクエスト間の呼び出し関係からパターンを見つけて、同じパターンのリクエストをグルーピングする。特許文献１を用いたサービス性能障害調査では、グルーピングしたリクエスト種別毎に、応答性能傾向やトランザクション内部の処理時間を調査し、性能障害原因を特定する。このように、特許文献１は、既に発生したサービス性能障害に対して、大量にあるユーザのアクセス履歴を用いて、性能障害原因調査を支援する。また、特許文献２のストリームデータ処理システムは、時々刻々と到着するストリームデータをリアルタイムに処理する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４６１６７９１号公報
【特許文献２】特開２００６−３３８４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、エンドユーザがサービス利用障害に気付く前に、早期に性能障害発生を検知することができず、当該性能障害の原因究明に時間がかかるため、対処が遅れるという課題がある。また、上述した従来技術では、管理対象サーバ内に、トランザクション内部処理時間を計測してログ情報として保持するしくみが必要である。しかしながら、管理対象サーバ内に当該しくみを実装する労力や時間がかかるという課題がある。また、他のアプリケーションへの影響に対する懸念や、実行時に全トランザクションに対する内部処理時間を計測するオーバーヘッド、ログ情報保持のための記憶領域の確保などの課題がある。【０００５】
本発明は、障害原因の絞り込みの効率化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
本願において開示される発明の一側面となる監視装置、監視方法、および監視プログラムは、システム内の第１の装置への応答時間が長いアクセスが存在する第１の時間帯を指定することにより、当該第１の時間帯に存在するアクセスに関する情報を取得し、取得された前記第１の時間帯に存在するアクセスに関する情報の中から、前記第１の時間帯に存在するアクセスに共通する特徴を選択し、所定期間内に存在するアクセスに関する情報の中から、選択された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報を抽出し、抽出された前記第１の時間帯に存在するアクセスに共通する特徴を有するアクセスに関する情報に基づいて、応答時間の時間的変化を示す第１のグラフを生成することを特徴とする。
【発明の効果】
【０００７】
本発明の代表的な実施の形態によれば、障害原因の絞り込みの効率化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【０００８】
【図１】本実施例にかかる障害原因特定例を示す説明図である。
【図２】図１に示した監視システムのシステム構成図である。
【図３】システムリモート監視サーバの詳細な構成を示すブロック図である。
【図４】トランザクション監視サーバの詳細な構成を示すブロック図である。
【図５】トランザクション監視サーバの処理内容例を示す説明図である。
【図６】図５に示したストリームデータ処理システムから出力される監視情報ストリームのデータ構造例を示す説明図である。
【図７】アクセス性能情報ストリームのデータ構造例を示す説明図である。
【図８】アクセス詳細情報ストリームのデータ構造例を示す説明図である。
【図９】図２に示したサービス監視サーバの詳細な構成を示すブロック図である。
【図１０】図９に示した構成情報のデータ構造例を示す説明図である。
【図１１】サービス監視サーバの処理内容例を示す説明図である。
【図１２】図１１に示したサービス性能統計ストリームのデータ構造例を示す説明図である。
【図１３】サービス性能情報テーブルの一例を示す説明図である。
【図１４】アクセス詳細情報テーブルおよび遅延アクセス詳細情報テーブルの一例を示す説明図である。
【図１５】図１１に示したシステム性能統計ストリームのデータ構造例を示す説明図である。
【図１６】システム性能情報テーブルの一例を示す説明図である。
【図１７】ＳＱＬ実行情報テーブルおよび遅延ＳＱＬ実行情報テーブルの一例を示す説明図である。
【図１８】遅延アクセス絞り込み処理部およびアクセス性能傾向表示処理部の処理の流れを示す説明図である。
【図１９】障害原因ＳＱＬ絞り込み処理部およびＳＱＬ性能傾向表示処理部の処理の流れを示す説明図である。
【図２０】問題調査画面例１を示す説明図である。
【図２１】問題調査画面例２を示す説明図である。
【図２２】問題調査画面例３を示す説明図である。
【図２３】問題調査画面例４を示す説明図である。
【図２４】監視システム１００の変形例を示す概要図である。
【発明を実施するための形態】
【０００９】
現在、インターネット上で膨大な数のサービスが存在し、様々なサービスを利用できるようになっている。サービス提供事業者は、次々と新サービスを立ち上げ、あるいは既存サービスを更改することを、短期間で行っている。また、各企業は事業のスピード向上と効率化のために、社内外向けにサービスを開発したり、サービスを利用している。こうしたサービスの提供および利用側ともに変化の激しい中、各種サービスは常に快適に使えることが求められている。そこで、本実施例では、システムを構成するサーバ負荷を監視するだけでなく、エンドユーザからみたサービス性能監視を、導入負荷が少なく、かつ精度よく監視でき、さらに監視結果から素早く問題の有無を判断し、原因究明を迅速に行い、対処策が立てられるシステムを提供する。
【００１０】
＜障害原因特定例＞
図１は、本実施例にかかる障害原因特定例を示す説明図である。本実施例にかかる障害原因特定は、Ｗｅｂ経由で利用するサービス性能障害を検知し、障害原因を調査し、原因を特定する方法である。本実施例では、ネットワークスイッチを流れるトラフィックをミラーリングすることで収集する。監視システム１００は、（１）全リクエストの応答時間を計測し、（２）Ｗｅｂページ毎に単位時間あたりの応答性能（統計値）で性能障害を検知し、（３）性能障害時間帯の遅延リクエストを選出し、（４）リクエスト性能傾向からリクエスト遅延時間帯を特定し、（５）当該時間内のＤＢアクセスの遅延原因となるＳＱＬ文を絞り込む。従来は、サービス性能障害原因特定のために、ＷｅｂＡＰサーバ内部にトレース分析するしくみが必要であった。本実施例により、ＷｅｂＡＰサーバにトレース分析機能がないシステム環境であっても、大量のリクエスト一覧から遅延リクエストを選出し、大量のＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）実行情報から遅延原因となるＳＱＬ文を絞り込むことができる。
【００１１】
＜監視システム１００のシステム構成例＞
図２は、図１に示した監視システム１００のシステム構成図である。監視システム１００は、Ｗｅｂシステム２０１と、システムリモート監視サーバ２０２と、トランザクション監視サーバ２０３と、サービス監視サーバ２０４と、イベント監視サーバ２０５と、端末２０６、２０７とが、スイッチ２０８やルータ２０９、ネットワーク２１０を介して接続されている。監視システム１００の監視対象は、サービス実行基盤であるＷｅｂシステム２０１と、エンドユーザが各端末２０６からＷｅｂブラウザ２６０を用いてネットワーク２１０経由で利用するサービスである。監視システム１００は、複数のＷｅｂシステム２０１とその上で利用可能なサービスを監視することになる。
【００１２】
Ｗｅｂシステム２０１は、ＷｅｂＡＰサーバ２１１とＤＢサーバ２１２とにより構成される。ＷｅｂＡＰサーバ２１１、ＤＢサーバ２１２は、それぞれＯＳ監視エージェント２１３、２１５とミドルウェア監視エージェント２１４、２１６とを有する。ＯＳ監視エージェント２１３、２１５は、監視対象サーバ内に常駐して監視対象サーバ内のＯＳの稼働性能を監視する。ミドルウェア監視エージェント２１４、２１６は、監視対象サーバ内に常駐してミドルウェアの稼働性能を監視する。
【００１３】
Ｗｅｂシステム２０１内のＯＳ監視エージェント２１３、２１５、ミドルウェア監視エージェント２１４、２１６、およびシステムリモート監視サーバ２０２内のＳＱＬ監視エージェント２２０は、それぞれ性能監視結果をシステム性能情報ストリームとしてサービス監視サーバ２０４に送信する。また、Ｗｅｂアクセスで利用するサービス監視では、スイッチ２０８のミラーポートからＷｅｂシステム２０１の送受信パケットがミラーリングされて、トランザクション監視サーバ２０３に送られる。
【００１４】
システムリモート監視サーバ２０２は、Ｗｅｂシステム２０１を遠隔監視するサーバであり、そのためのＳＱＬ監視エージェント２２０を有する。ＳＱＬ監視エージェント２２０は、Ｗｅｂシステム２０１内のＤＢサーバ２１２のＳＱＬ実行時間を監視し、ＤＢサーバ２１２からＳＱＬ文の実行結果を示すＳＱＬ実行情報を収集する。
【００１５】
トランザクション監視サーバ２０３は、スイッチ２０８を経由するトランザクションを監視するサーバであり、そのためのトランザクション監視エージェント２３０を有する。トランザクション監視エージェント２３０は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ)パケットを解析して、応答時間を算出する。
【００１６】
トランザクション監視サーバ２０３は、監視結果であるＨＴＴＰパケットの概要と応答時間を、サービス監視サーバ２０４に送信する。ここで、トランザクション監視サーバ２０３が複数あり、それぞれ接続先スイッチ２０８からパケットを収集して解析してもよい。また、トランザクション監視サーバ２０３に限らず、ネットワーク２１０を流れるパケットを収集して、ＨＴＴＰパケットを解析して、応答時間を算出して、ＨＴＴＰパケットの概要と応答時間を出力することとしてもよい。
【００１７】
サービス監視サーバ２０４は、Ｗｅｂシステム２０１が提供するサービスを監視するサーバであり、そのためのサービス監視マネージャ２４０を有する。サービス監視マネージャ２４０は、サーバ稼働性能値を静的または動的なベースラインと比較し、異常判定を行い、異常を通知する。また、サービス監視マネージャ２４０は、ＨＴＴＰパケットの概要と応答時間に基づいて、監視対象サービス毎に応答時間をベースラインと比較し、異常判定を行い、イベント監視サーバ２０５のイベント監視マネージャ２５０に異常を通知する。サービス監視の結果は、端末２０７のＷｅｂブラウザ２７０を用いて、リモートから確認することができる。
【００１８】
イベント監視サーバ２０５は、イベントを監視するサーバであり、そのためのイベント監視マネージャ２５０を有する。イベント監視マネージャ２５０は、サービス監視マネージャ２４０からの異常の通知を監視する。イベント監視の結果は、端末２０７のＷｅｂブラウザ２７０を用いて、リモートから確認することができる。
【００１９】
＜システムリモート監視サーバ２０２の詳細な説明＞
図３は、システムリモート監視サーバ２０２の詳細な構成を示すブロック図である。システムリモート監視サーバ２０２のＳＱＬ監視エージェント２２０の情報処理は、メモリ３０１、プロセッサ３０２、記憶装置３０３、通信インターフェース３０４からなるハードウェアにより具体的に実現可能である。
【００２０】
ＳＱＬ実行情報収集処理部３１１は、メモリ３０１に読み込んだプログラムをプロセッサ３０２が情報処理することにより実現可能である。また、記憶装置３０３には、ＳＱＬ実行情報３１２が格納される。
【００２１】
通信インターフェース３０４は、システムリモート監視サーバ２０２へ送信され、ＤＢサーバ２１２の記憶装置３０３に格納されているＳＱＬ実行情報３１２を入力して、自身の記憶装置３０３に格納する。
【００２２】
また、ＤＢサーバ２１２は、ＯＳ監視エージェント２１５およびミドルウェア監視エージェント２１６をメモリ３０１上に有する。ＤＢサーバ２１２は、ＳＱＬ文の実行結果を示すＳＱＬ実行情報３１２を記憶装置３０３に格納する。システムリモート監視サーバ２０２は、ＳＱＬ実行情報収集処理部３１１により、ＤＢサーバ２１２を監視して、ＳＱＬ実行情報３１２が出力された場合に当該ＳＱＬ実行情報３１２を収集し、記憶装置３０３に格納する。
【００２３】
＜トランザクション監視サーバ２０３の詳細な説明＞
図４は、トランザクション監視サーバ２０３の詳細な構成を示すブロック図である。トランザクション監視サーバ２０３のトランザクション監視エージェント２３０の情報処理は、メモリ３０１、プロセッサ３０２、記憶装置３０３、通信インターフェース３０４からなるハードウェアにより具体的に実現可能である。
【００２４】
トランザクション監視エージェント２３０は、ストリームデータ処理システム４００を有する。ストリームデータ処理システム４００は、トランザクション解析処理部４０１を有する。トランザクション解析処理部４０１は、メモリ３０１に読み込んだプログラムをプロセッサ３０２が情報処理することにより実現可能である。また、記憶装置３０３には、サービス定義情報４０２およびアクセス詳細情報４０３が格納される。
【００２５】
サービス定義情報４０２とは、サービスを定義した情報であり、サービスを特定するＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）、サービスに関するページの場所を特定するＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）、ページに対するアクセス（リクエストやレスポンス）を特定するアクセスを含む情報である。アクセス詳細情報４０３とは、トランザクション監視エージェント２３０の出力データの一部であり、Ｗｅｂシステム２０１に対するリクエストやレスポンスなどのアクセスの詳細な情報である。
【００２６】
通信インターフェース３０４は、スイッチ２０８から受信するＨＴＴＰパケットの情報やサービス監視サーバ２０４へ送信するＨＴＴＰパケットの情報を入力する。トランザクション監視エージェント２３０は、ＨＴＴＰパケットを解析して、応答時間を監視結果として算出する。このため、トランザクション監視サーバ２０３は、監視結果であるＨＴＴＰパケットの概要と応答時間を、サービス監視サーバ２０４に送信することになる。
【００２７】
図５は、トランザクション監視サーバ２０３の処理内容例を示す説明図である。ストリームデータ処理システム４００内部において、ストリームデータを格納する方法、受け付けられたクエリの解析、最適化および生成されたクエリ実行形式の登録方法などについては、特許文献２に開示された技術を用いればよい。
【００２８】
ＨＴＴＰパケットの入力ストリーム５００は、スイッチ２０８からストリームデータ処理システム４００に送り込まれる。入力ストリーム５００は、トランザクション解析処理部５０１で、サービス定義情報４０２を参照して、パケット取得処理５０２、パケット解析処理５０３、応答時間算出処理５０４の順に処理される。パケット解析処理５０３は、入力ストリーム５００にサービス定義情報４０２のサービス情報を付加する。
【００２９】
応答時間算出処理５０４は、流入パケットと流出パケット間の整合性をとって、応答時間を算出する。出力ストリームである監視情報ストリーム５０５は、サービス情報付きの応答時間を含むデータストリームである。データ送信処理部５０６では、アクセス性能情報ストリーム５０７を、サービス監視サーバ２０４へ送る。データ格納処理部５０８は、アクセス詳細情報ストリーム５０９を、アクセス詳細情報４０３に格納する。
【００３０】
図６は、図５に示したストリームデータ処理システム４００から出力される監視情報ストリーム５０５のデータ構造例を示す説明図である。監視情報ストリーム５０５は、トランザクション（リクエストとそのレスポンスの組み合わせ）ごとに、時刻６０１、サービスグループ名６０２、サービス情報６０３、ページ情報６０４、リクエスト情報６０５、レスポンス情報６０６、応答時間６０７を有する。時刻６０１には、監視した時刻（たとえば、リクエストパケットの受信時刻）が格納される。サービスグループ名６０２、サービス情報６０３、およびページ情報６０４には、ＨＴＴＰパケットのアクセスに対応するページ情報６０４、サービス情報６０３、サービスグループ名６０２が格納される。サービスグループ名６０２、サービス情報６０３、ページ情報６０４は、サービス定義情報４０２から取得される。
【００３１】
リクエスト情報は、リクエストパケットから取得される。リクエスト情報の内容は、送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス６０５ａ、メソッド６０５ｂ、ＵＲＬパス６０５ｃ、ＵＲＬクエリ６０５ｄである。レスポンス情報６０６は、レスポンスパケットから取得される。レスポンス情報の内容は、ＨＴＴＰステータス６０６ａ、転送データ量６０６ｂである。
【００３２】
図７は、アクセス性能情報ストリーム５０７のデータ構造例を示す説明図である。アクセス性能情報ストリーム５０７は、トランザクション（リクエストとそのレスポンスの組み合わせ）ごと、時刻６０１、サービスグループ名６０２、サービス情報６０３、ページ情報６０４、アクセス性能情報７００を含む。サービス情報６０３は、サービス名６０３ａ、ＵＲＩ６０３ｂを有する。ページ情報６０４は、ページ名６０４ａ、ＵＲＬ６０４ｂを有する。アクセス性能情報７００は、レスポンス情報６０６と応答時間６０７を有する。すなわち、監視情報ストリーム５０５からリクエスト情報を除外した情報が、アクセス性能情報ストリーム５０７となる。
【００３３】
図８は、アクセス詳細情報ストリーム５０９のデータ構造例を示す説明図である。アクセス詳細情報ストリーム５０９は、時刻６０１、サービスグループ名６０２、サービス情報６０３、ページ情報６０４、アクセス詳細情報８００を有する。アクセス詳細情報８００は、リクエスト情報６０５、レスポンス情報６０６、および応答時間６０７を有する。
【００３４】
すなわち、図５において、データ送信処理部５０６は、監視情報ストリーム５０５のうちリクエスト情報以外の情報をアクセス性能情報ストリーム５０７として出力する。また、データ格納処理部５０８は、監視情報ストリーム５０５をアクセス詳細情報ストリーム５０９として出力する。
【００３５】
＜サービス監視サーバ２０４の詳細な説明＞
図９は、図２に示したサービス監視サーバ２０４の詳細な構成を示すブロック図である。サービス監視サーバ２０４のサービス監視マネージャ２４０の情報処理は、メモリ３０１、プロセッサ３０２、記憶装置３０３、通信インターフェース３０４からなるハードウェアにより具体的に実現可能である。
【００３６】
サービス監視マネージャ２４０は、画面表示処理部９０１、性能解析処理部９０２、遅延アクセス絞り込み処理部９０３、アクセス性能傾向表示処理部９０４、障害原因ＳＱＬ絞り込み処理部９０５、およびＳＱＬ性能傾向表示処理部９０６を有する。画面表示処理部９０１、性能解析処理部９０２、遅延アクセス絞り込み処理部９０３、アクセス性能傾向表示処理部９０４、障害原因ＳＱＬ絞り込み処理部９０５、およびＳＱＬ性能傾向表示処理部９０６は、メモリ３０１に読み込んだプログラムをプロセッサ３０２が情報処理することにより実現可能である。これらの処理内容については後述する。
【００３７】
また、記憶装置３０３には、構成情報９０７、性能情報９０８、ベースライン／閾値情報９０９、イベント情報９１０、遅延アクセス詳細情報９１１、および遅延ＳＱＬ実行情報９１２が格納される。構成情報９０７とは、サービスとシステムとを結びつけた業務を集約した業務グループに関する情報である。詳細については、図１０で説明する。性能情報９０８とは、サービスの性能を示すサービス性能情報とシステムの性能を示すシステム性能情報とを含む情報である。サービス性能情報とは、サービスについての正常／異常、応答時間、スループット、エラー率などのサービスの性能に関する情報である。システム性能情報とは、システムについての正常／異常、ホスト情報、エージェント、メトリック、性能値などのシステムの性能に関する情報である。
【００３８】
ベースライン／閾値情報９０９とは、サービス監視マネージャ２４０において、サーバ稼働性能値と比較される静的または動的なしきい値である。イベント情報９１０とは、サービス監視マネージャ２４０において、ＨＴＴＰパケットの概要と応答時間に基づいて、監視対象サービス毎にベースライン／閾値情報９０９と比較される応答時間である。遅延アクセス詳細情報９１１とは、アクセス詳細情報８００のうち遅延が発生したアクセスについてのアクセス性能情報である。遅延ＳＱＬ実行情報９１２とは、ＳＱＬ実行情報のうち遅延が発生したＳＱＬ文による処理についてのＳＱＬ実行情報である。ＳＱＬ実行情報については後述する。
【００３９】
通信インターフェース３０４は、端末２０７からＷｅｂブラウザ２７０経由でやりとりする入出力情報、性能情報９０８の一部であるＷｅｂシステム２０１から受信するシステムリソース性能情報、システムリモート監視サーバ２０２から受信する遅延ＳＱＬ実行情報９１２、トランザクション監視サーバ２０３から受信するＨＴＴＰパケットの情報（ＨＴＴＰパケットの概要と応答時間）を入出力する。
【００４０】
図１０は、図９に示した構成情報９０７のデータ構造例を示す説明図である。業務グループ１００１は、業務名１００２を含む。業務名１００２は、サービスグループ名６０２とシステム名１００４とを含む。サービスグループ名６０２は、サービス情報６０３を含む。サービス情報６０３は、ページ情報６０４を含む。ページ情報６０４は、アクセス１００３を含む。システム名１００４は、ホスト情報１００５を含む。ホスト情報１００５は、エージェント名８０９を含む。エージェント名８０９は、メトリック１００７、またはＳＱＬ情報１００８を含む。構成情報９０７のうち、サービスグループ名６０２以下の部分が、サービス定義情報４０２である。
【００４１】
すなわち、アクセス１００３が特定されると、その上位のページ情報６０４、サービス情報６０３、サービスグループ名６０２、業務名１００２、業務グループ１００１が特定されるほか、当該業務名に関連付けられているシステム名以下の情報も特定される。同様に、ＳＱＬ情報またはメトリック１００７が特定されると、その上位であるエージェント名１００６、ホスト情報１００５、システム名１００４、業務名１００２、業務グループ１００１が特定されるほか、当該業務名１００２に関連付けられているサービスグループ名６０２以下の情報も特定される。
【００４２】
図１１は、サービス監視サーバ２０４の処理内容例を示す説明図である。サービス監視マネージャ２４０は、ストリームデータ処理システム４００を有する。ストリームデータ処理システム４００は、性能解析処理部９０２を有する。ストリームデータ処理システム４００内部で、ストリームデータを格納する方法、受け付けられたクエリの解析、最適化および生成されたクエリ実行形式の登録方法などについては、特許文献２に開示された技術を用いればよい。
【００４３】
ストリームデータ処理システム４００は、トランザクション監視サーバ２０３からのアクセス性能情報ストリーム５０７を受け付ける。また、ストリームデータ処理システム４００は、Ｗｅｂシステム２０１からのシステム性能情報ストリーム１１００を受け付ける。アクセス性能情報ストリーム５０７およびシステム性能情報ストリーム１１００（以下、まとめて「性能情報ストリーム」）は、性能解析処理部９０２に与えられる。
【００４４】
性能解析処理部９０２は、業務識別処理１１０１、異常判定処理１１０２、異常通知処理１１０３、ベースライン設定処理１１０４の順で実行される。業務識別処理１１０１では、業務名付きの監視情報ストリーム５０５を生成する。業務名付きの監視情報ストリーム５０５とは、性能情報ストリームに構成情報９０７のサービスとシステムからなる業務名を付加したストリームである。
【００４５】
異常判定処理１１０２では、所定時間内（例えば１分間）の業務名付きサービス性能ストリームを、サービス毎に、性能値を統計処理（たとえば、平均値、最大値、最小値、分散値を算出）する。そして、異常判定処理１１０２では、算出した統計値を、ベースラインと比較し、ベースラインを超過したかどうかを判定し、判定結果を含むサービス性能統計ストリーム１１０５ａを、性能情報９０８に格納する。
【００４６】
また、異常判定処理１１０２では、業務名付きシステム性能情報ストリームの性能値を、ベースラインと比較し、ベースラインを超過したかどうかを判定し、判定結果を含むシステム性能統計ストリーム１１０５ｂを、性能情報９０８に格納する。
【００４７】
異常通知処理１１０３では、サービス性能およびシステム性能に対して異常と判定された場合は、イベント監視サーバ２０５に異常通知する。
【００４８】
ベースライン設定処理１１０４は、所定時間内（例えば１時間）内の業務名付きサービス性能ストリームを、サービス毎に、性能値を統計処理（たとえば、平均値、最大値、最小値、分散値を算出）し、ベースライン／閾値情報９０９に格納する。また、ベースライン設定処理１１０４は、所定時間内（例えば１時間）内の業務名付きシステム性能情報ストリームを、各ホストのエージェント別の監視項目毎に、性能値を統計処理（平均値、最大値、最小値、分散値を算出）し、ベースライン／閾値情報９０９に格納する。
【００４９】
また、ベースライン設定処理１１０４は、所定時間（例えば１時間）単位で、サービス毎のスループット／分の平均値とベースライン／閾値情報９０９に格納されている過去の同一時間帯のスループット／分の値とが近い日時を検出する。そして、ベースライン設定処理１１０４は、翌時間帯の業務別ベースライン採用日時を、当該検出日の翌時間帯として、ベースライン／閾値情報９０９に格納する。
【００５０】
遅延アクセス絞り込み処理部９０３は、アクセス詳細情報４０３から、サービス性能障害発生時間帯のアクセス詳細情報を取得し、遅延アクセス詳細情報９１１として格納する。そして、遅延アクセス絞り込み処理部９０３では、取得した遅延アクセス詳細情報９１１の中から、遅延時間が所定時間以上である長時間アクセス詳細情報を抽出する。そして、遅延アクセス絞り込み処理部９０３では、抽出した長時間アクセス詳細情報のＵＲＬやクエリ内の共通する文字列を探し、ＵＲＬやクエリに共通の文字列を含むリクエストをグループ化するためのフィルタ条件を作成する。
【００５１】
アクセス性能傾向表示処理部９０４は、サービス性能障害発生前後を含む所定時間の全アクセス詳細情報から、フィルタ条件を用いて、リクエストグループに含まれる全てのアクセス情報を取得し、遅延アクセス詳細情報９１１に格納する。そして、アクセス性能傾向表示処理部９０４は、遅延アクセス詳細情報９１１内のアクセス情報の応答時間を、傾向グラフで表示する。
【００５２】
障害原因ＳＱＬ絞り込み処理部９０５は、グループ化したリクエストの応答性能傾向から、リクエスト応答遅延時間帯を特定する。そして、障害原因ＳＱＬ絞り込み処理部９０５では、特定したリクエスト応答遅延時間帯と同じ時間帯に実行するＳＱＬ実行情報を、ＳＱＬ実行情報３１２より取得し、遅延ＳＱＬ実行情報９１２に格納する。
【００５３】
ＳＱＬ性能傾向表示処理部９０６は、遅延ＳＱＬ実行情報９１２内の取得したＳＱＬ実行情報のうち、長時間ＳＱＬを抽出し、ＳＱＬＩＤ別に、応答性能傾向を表示する。ＳＱＬ性能傾向表示処理部９０６では、グループ化したリクエストの応答性能と、ＳＱＬＩＤ別の応答性能を比較し、相関関係にあるＳＱＬ文を、性能障害原因のＳＱＬ文とする。
【００５４】
図１２は、図１１に示したサービス性能統計ストリーム１１０５ａのデータ構造例を示す説明図である。サービス性能統計ストリーム１１０５ａは、ストリームデータ処理システム４００が異常判定処理１１０２の判定結果として出力するデータストリームである。ある時刻におけるある業務のあるサービスが１データとなる。なお、１データには１つ以上のトランザクションが含まれる。
【００５５】
サービス性能統計ストリーム１１０５ａは、時刻６０１、業務名１００２、サービスグループ名６０２、サービス情報６０３、ページ情報６０４、判定１２０１、１分間あたりの応答時間（統計値）１２０２、１分間あたりのスループット１２０３、１分間あたりのエラー率１２０４を含む。
【００５６】
時刻６０１、業務名１００２、サービスグループ名６０２、サービス情報６０３およびページ情報６０４については、元となるアクセス性能情報ストリーム５０７の時刻６０１、業務名１００２、サービスグループ名６０２、サービス情報６０３およびページ情報６０４が流用される。判定１２０１には、異常判定処理１１０２の判定結果（正常または異常）が格納される。１分間あたりの応答時間１２０２には、そのエントリにおける１分あたりの応答時間の統計値として、平均値、最小値、最大値、および分散が格納される。１分間あたりのスループット１２０３には、そのエントリにおける１分あたりのスループットを累積した値が格納される。１分間あたりのエラー率１２０４には、そのエントリにおける１分あたりのエラー率を累積した値が格納される。
【００５７】
図１３は、サービス性能情報テーブルの一例を示す説明図である。サービス性能情報テーブル９０８ａは、図１２に示したサービス性能統計ストリーム１１０５ａを１データごとに記録したテーブルである。すなわち、１レコードがサービス性能統計ストリーム１１０５ａの１データに相当する。
【００５８】
図１４は、アクセス詳細情報テーブルおよび遅延アクセス詳細情報テーブルの一例を示す説明図である。なお、遅延アクセス詳細情報テーブル１４０１も同一構成となるため、合わせて説明する。アクセス詳細情報テーブル１４００および遅延アクセス詳細情報テーブル１４０１には、図８に示したアクセス詳細情報ストリーム５０９が１データごとに格納される。たとえば、図１４における１つのエントリが１つのＨＴＴＰリクエストを示す。
【００５９】
図１５は、図１１に示したシステム性能統計ストリーム１１０５ｂのデータ構造例を示す説明図である。システム性能統計ストリーム１１０５ｂは、Ｗｅｂシステム２０１について、ストリームデータ処理システム４００が異常判定処理１１０２の判定結果として出力するデータストリームである。ある時刻におけるある業務のあるシステムが１データとなる。なお、１データには１つ以上のトランザクションが含まれる。
【００６０】
システム性能統計ストリーム１１０５ｂは、時刻１１０１、業務名１００２、システム名１００４、ホスト情報１００５、エージェント名１００６、メトリック１００７、性能値１５０１、判定１５０２を含む。時刻１１０１、業務名１００２、システム名１００４、ホスト情報１００５、エージェント名１００６、メトリック１００７、性能値１５０１については、元となるシステム性能情報ストリーム１１００内の情報が流用される。なお、判定１５０２には、異常判定処理１１０２の判定結果（正常または異常）が格納される。
【００６１】
図１６は、システム性能情報テーブルの一例を示す説明図である。システム性能情報テーブル９０８ｂは、図１５に示したシステム性能統計ストリーム１１０５ｂを１データごとに記録したテーブルである。すなわち、１レコードがシステム性能統計ストリーム１１０５ｂの１データに相当する。
【００６２】
図１７は、ＳＱＬ実行情報テーブルおよび遅延ＳＱＬ実行情報テーブルの一例を示す説明図である。なお、遅延ＳＱＬ実行情報テーブル１７０１も同一構成となるため、合わせて説明する。ＳＱＬ実行情報テーブル１７００には、システム性能情報ストリーム１１００が１データごとに格納される。ＳＱＬ実行情報テーブル１７００および遅延ＳＱＬ実行情報テーブル１７０１には、時刻６０１、業務名１００２、システム名１００４、ホスト情報１００５（ホスト名１００５ａ，ＩＰアドレス１００５ｂ）、エージェント名１００６、ＳＱＬ情報１００８、実行時間１７０２が格納される。ＳＱＬ情報１００８には、ＳＱＬ＿ＩＤ１００８ａ、ハッシュ値１００８ｂ、ＳＱＬテキスト１００８ｃが格納される。
【００６３】
＜遅延アクセス絞り込み処理部９０３およびアクセス性能傾向表示処理部９０４の詳細な説明＞
図１８は、遅延アクセス絞り込み処理部９０３およびアクセス性能傾向表示処理部９０４の処理の流れを示す説明図である。まず、遅延アクセス絞り込み処理部９０３から説明する。遅延アクセス絞り込み処理部９０３は、遅延アクセス収集処理１８０１と、アクセスのグルーピング処理１８０２とを実行する。
【００６４】
遅延アクセス収集処理１８０１では、遅延アクセス絞り込み処理部９０３は、アクセス詳細情報４０３から、サービス性能障害発生のサービス名（ＵＲＩ）、ページ情報（ＵＲＬ）、および遅延時間帯の指定に基づいて、遅延アクセス詳細情報９１１を取得する（ステップＳ１８１１）。
【００６５】
具体的には、たとえば、遅延アクセス絞り込み処理部９０３は、ユーザからの入力操作により、サービス名（ＵＲＩ）、ページ情報（ＵＲＬ）、および遅延時間帯が指定されると、指定されたサービス名（ＵＲＩ）、ページ情報（ＵＲＬ）、および遅延時間帯を満たすアクセス詳細情報（遅延アクセス詳細情報９１１）をアクセス詳細情報４０３から取得する。取得した遅延アクセス詳細情報９１１の一覧は画面表示される。なお、ページ情報（ＵＲＬ）、および遅延時間帯のうち、少なくとも遅延時間帯が指定されていればよい。
【００６６】
つぎに、遅延アクセス絞り込み処理部９０３は、遅延アクセス詳細情報９１１の中から、応答時間の長い上位数ヶの遅延アクセス詳細情報９１１を抽出する（ステップＳ１８１２）。具体的には、たとえば、遅延アクセス絞り込み処理部９０３は、応答時間の長い上位数ヶの遅延アクセス詳細情報９１１を、一覧表示においてユーザが入力装置により指定することで抽出する。
【００６７】
つぎに、アクセスのグルーピング処理１８０２では、遅延アクセス絞り込み処理部９０３は、アクセス詳細情報４０３から、正常時間帯を含む所定期間におけるサービス性能障害が発生したページのアクセス詳細情報を収集する（ステップＳ１８２１）。
【００６８】
正常時間帯を含む所定期間とは、障害発生中である期間のみではない期間であり、少なくとも正常状態を含む期間である。具体的には、たとえば、正常時間帯を含む所定期間とは、直前に発生した障害イベントの時刻から過去ｎ時間、直前に発生した障害イベントとその前に発生した障害イベントとの間の期間である。所定期間は、ユーザ操作により指定される。したがって、遅延アクセス絞り込み処理部９０３は、たとえば、ユーザ操作により指定された所定期間内のアクセス詳細情報を、アクセス詳細情報４０３から収集する。
【００６９】
つぎに、アクセスのグルーピング処理１８０２では、遅延アクセス絞り込み処理部９０３は、ステップＳ１８１２で抽出した応答時間の長い上位数ヶの遅延アクセス詳細情報９１１に対して、リクエスト共通パターンを検索する（ステップＳ１８２２）。リクエスト共通パターンとは、遅延アクセス詳細情報９１１において、サービス名、ページ情報、ＵＲＬパス、ＵＲＬクエリの中の共通の文字列である。
【００７０】
たとえば、ステップＳ１８１２で抽出した応答時間の長い上位数ヶの遅延アクセス詳細情報９１１において、サービス名として「サービス１」が複数存在すれば、「サービス１」がリクエスト共通パターンに含まれる。同様に、ＵＲＬクエリとして「ａｌｌ」が複数存在すれば、「サービス１」がリクエスト共通パターンに含まれる。リクエスト共通パターンの検索は、自動実行でもよく、ユーザ操作による指定でもよい。
【００７１】
つぎに、アクセスのグルーピング処理１８０２では、遅延アクセス絞り込み処理部９０３は、リクエストグループを指定するためのフィルタ条件を設定する（ステップＳ１８２３）。具体的には、たとえば、遅延アクセス絞り込み処理部９０３は、ステップＳ１８２２で検索されたリクエスト共通パターンの組み合わせにより、フィルタ条件を設定する。たとえば、遅延アクセス絞り込み処理部９０３は、リクエスト共通パターンの論理和、論理積、否定、またはこれらの組み合わせにより、フィルタ条件を設定する。設定されたフィルタ条件を満足する遅延アクセス詳細情報がリクエストグループとなる。
【００７２】
つぎに、アクセスのグルーピング処理１８０２では、遅延アクセス絞り込み処理部９０３は、ステップＳ１８２１で収集された所定期間におけるサービス性能障害が発生したページのアクセス詳細情報の中から、リクエストグループに含まれるリクエストを抽出する（ステップＳ１８２４）。
【００７３】
具体的には、たとえば、遅延アクセス絞り込み処理部９０３は、フィルタ条件を満足するアクセス詳細情報を、ステップＳ１８２１で収集された所定期間におけるサービス性能障害が発生したページのアクセス詳細情報の中から抽出する。抽出されたアクセス詳細情報が、リクエストグループに含まれるＨＴＴＰリクエストを示す。抽出されたアクセス詳細情報は、遅延アクセス詳細情報９１１に再度格納される。
【００７４】
つぎに、アクセス性能傾向表示処理部９０４は、リクエストグループの各リクエストについてアクセス応答性能傾向を表示する（ステップＳ１８３１）。具体的には、たとえば、アクセス性能傾向表示処理部９０４は、遅延アクセス詳細情報９１１より、リクエストグループに含まれるアクセス詳細情報を取り出して、リクエストグループのアクセス応答性能の傾向グラフを表示する。具体的には、たとえば、アクセス性能傾向表示処理部９０４は、リクエストグループに含まれるアクセス詳細情報を、応答時間およびＨＴＴＰリクエストによるアクセス数の経時的変化を示すグラフを生成することにより集約する。集約した情報をアクセス統計と称す。アクセス性能傾向表示処理部９０４は、アクセス統計を画面に表示する。
【００７５】
＜障害原因ＳＱＬ絞り込み処理部９０５およびＳＱＬ性能傾向表示処理部９０６の詳細な説明＞
図１９は、障害原因ＳＱＬ絞り込み処理部９０５およびＳＱＬ性能傾向表示処理部９０６の処理の流れを示す説明図である。まず、障害原因ＳＱＬ絞り込み処理部９０５から説明する。障害原因ＳＱＬ絞り込み処理部９０５は、遅延ＳＱＬ収集処理１９０１と遅延ＳＱＬ特定処理１９０２とを実行する。
【００７６】
遅延ＳＱＬ収集処理１９０１では、障害原因ＳＱＬ絞り込み処理部９０５は、遅延アクセスが属するサービスに関連するシステム内ＤＢインスタンスを特定する（ステップＳ１９１１）。具体的には、たとえば、障害原因ＳＱＬ絞り込み処理部９０５は、遅延アクセス絞り込み処理部９０３で絞り込まれたＨＴＴＰリクエストを受け付けたサービスを提供する業務を構成情報から特定し、当該業務を実行するサーバ内のＳＱＬ監視エージェントを、上記システム内ＤＢインスタンスとして特定する。
【００７７】
つぎに、障害原因ＳＱＬ絞り込み処理部９０５は、遅延アクセス実行時間を指定して、ステップＳ１３１１で特定したＤＢインスタンスのＳＱＬ実行情報を収集する（ステップＳ１９１２）。遅延アクセス実行時間とは、アクセス性能傾向表示処理部９０４において表示されたアクセス統計において、応答時間が所定以上（例えば、ベースライン以上）となる時間帯である。遅延アクセス実行時間は、障害原因ＳＱＬ絞り込み処理部９０５が自動的に設定する場合には応答時間がベースライン以上となる時間帯となり、ユーザ操作により指定される場合には、アクセス統計において指定した時間帯となる。収集したＤＢインスタンスのＳＱＬ実行情報は、遅延ＳＱＬ実行情報９１２に格納される。
【００７８】
そして、障害原因ＳＱＬ絞り込み処理部９０５は、遅延ＳＱＬ実行情報９１２に格納されたＳＱＬ実行情報の中から、実行時間の長い上位数ヶを抽出する（ステップＳ１９１３）。具体的には、たとえば、障害原因ＳＱＬ絞り込み処理部９０５は、実行時間の長い上位数ヶのＳＱＬ実行情報を、一覧表示においてユーザが入力装置により指定することで抽出する。
【００７９】
つぎに、障害原因ＳＱＬ絞り込み処理部９０５は、ステップＳ１９１３で抽出したＳＱＬ実行情報の数が所定数以下であるか否かを判断する（ステップＳ１９１４）。所定数以下でない場合（ステップＳ１９１４：Ｎｏ）、エラーとなり（ステップＳ１９１５）、アプリケーションプログラムの再調査が必要となる。一方、所定数以下である場合（ステップＳ１９１４：Ｙｅｓ）、遅延ＳＱＬ特定処理１９０２に移行する。
【００８０】
遅延ＳＱＬ特定処理１９０２では、障害原因ＳＱＬ絞り込み処理部９０５は、正常時間帯を含む所定期間のＳＱＬ実行情報を収集する（ステップＳ１９２１）。正常時間帯を含む所定期間については、図１８のステップＳ１８２１と同一である。
【００８１】
つぎに、障害原因ＳＱＬ絞り込み処理部９０５は、ステップＳ１９２１で収集した所定期間のＳＱＬ実行情報から、ステップＳ１９１３で抽出したＳＱＬ実行情報と同一ＳＱＬ＿ＩＤのＳＱＬ実行情報を抽出する（ステップＳ１９２２）。
【００８２】
このあと、ＳＱＬ性能傾向表示処理部９０６は、ステップＳ１９２２で抽出したＳＱＬ＿ＩＤ別の実行性能傾向を生成して画面表示する（ステップＳ１９３１）。具体的には、たとえば、ＳＱＬ性能傾向表示処理部９０６は、同一ＳＱＬ＿ＩＤのＳＱＬ実行情報について実行時間の平均値を算出し、実行時間の経時的変化を示すグラフを作成する。そして、当該平均値やグラフを含むＳＱＬ＿ＩＤ別の実行性能傾向を画面表示する。
【００８３】
＜問題調査画面例＞
図２０〜図２３は、問題調査画面例を示す説明図である。問題調査画面２０００は、サービス監視サーバ２０４にインストールされたサービス監視マネージャ２４０の画面表示処理部９０１、アクセス性能傾向表示処理部９０４、ＳＱＬ性能傾向表示処理部９０６によって実行され、端末２０７のＷｅｂブラウザ２７０上で表示される監視画面である。
【００８４】
図２０に示す問題調査画面２０００は、サービスと関連システム性能をベースライン監視した結果、ベースライン超過を検知し、性能障害の遅延時間帯のＨＴＴＰリクエスト一覧を表示した際の画面例である。
【００８５】
問題調査画面２０００の使い方は、まず、サービス一覧表示ペイン２００１で、サービスグループとサービスを指定し、表示期間２００２で、過去１時間を選択すると、トポロジー表示２００３で業務内サービスとシステムの性能監視結果のイベント発生状況がわかる。
【００８６】
グラフ表示２００４は、任意の選択した性能情報の傾向グラフを表示する。グラフ表示２００４のサービス応答時間の傾向グラフ上で、性能障害発生の遅延時間帯２００５を特定し、ＨＴＴＰリクエスト一覧表示を指定すると、アクセス一覧２００６に、サービス性能障害発生の遅延時間帯２００５のアクセス詳細情報が一覧表示される。
【００８７】
たとえば、図１８のステップＳ１８１１で、遅延アクセス絞り込み処理部９０３は、トポロジー表示から、サービス性能障害発生のサービス名（ＵＲＩ）およびページ情報（ＵＲＬ）の指定を受け付け、グラフ表示２００４からサービス性能障害発生の遅延時間帯２００５の指定を受け付ける。これにより、指定された条件を満たす遅延アクセス詳細情報９１１がアクセス一覧２００６として得られる。
【００８８】
図２１に示す問題調査画面２０００は、アクセス一覧２００６から、フィルタ条件指定画面２１０２で、遅延リクエストグループを設定し、遅延リクエストグループに属するアクセス一覧２００６を表示し、アクセス一覧２００６からアクセス統計２１０５を表示した際の画面例である。
【００８９】
遅延アクセス絞り込み処理部９０３は、アクセス一覧２００６において長時間アクセス詳細情報を表示し、図１８のステップＳ１８２２に示したように、アクセス詳細情報のＵＲＬパスおよびＵＲＬクエリに、共通の文字列がないかどうかを検索する。
【００９０】
そして、フィルタ条件２１０１をクリックすると、フィルタ条件指定画面２１０２が表示される。図１８のステップＳ１８２３に示したように、フィルタ条件指定画面２１０２で、条件２１０３と条件式２１０４を指定すると、図１８のステップＳ１８２４に示したように、アクセス一覧２００６で、リクエストグループでフィルタリングしたアクセス一覧２００６が表示される。
【００９１】
アクセス一覧２００６のタブの横のアクセス統計２１０５のタブをクリックすると、図１８のステップＳ１２３１に示したように、アクセス一覧２００６に対する性能傾向グラフを含むアクセス統計２１０５が表示される。アクセス統計２１０５では、応答時間、アクセス数の傾向グラフが表示される。応答時間のグラフは、アクセス一覧２００６における各レコードで示されるアクセスの開始時刻〜終了時刻における応答時間をプロットしたグラフとなる。アクセス数のグラフは、アクセス一覧２００６における各レコードで示されるアクセスの開始時刻〜終了時刻におけるアクセスの数をプロットしたグラフとなる。
【００９２】
図２２に示す問題調査画面２０００は、アクセス統計２１０５で、リクエストグループのアクセス詳細情報と同じ時間帯に実行していたＳＱＬ文の一覧を表示する画面例である。たとえば、図２１のアクセス統計２１０５で得られた遅延アクセスに該当するサービスは、「サービス１」である。したがって、障害原因ＳＱＬ絞り込み処理部９０５は、図１９のステップＳ１９１１で示したように、「サービス１」が属する「サービスグループ１」に関連する「業務グループ」に属する「サーバ２」内の「ＳＱＬ監視エージェント」を、ＤＢインスタンスとして特定する。
【００９３】
障害原因ＳＱＬ絞り込み処理部９０５は、アクセス統計２１０５で、図１９のステップＳ１９１２に示したように、リクエストグループ別傾向グラフ表示より、サービス性能と同じ傾向のリクエストグループの選択２２０１をおこなう。そして、障害原因ＳＱＬ絞り込み処理部９０５は、当該時間帯に実行していたＳＱＬ一覧２２０２を表示する。障害原因ＳＱＬ絞り込み処理部９０５は、ＳＱＬ一覧２２０２で、実行時間の長い順にソーティング２２０３をして、フィルタ条件２２０４によりＳＱＬ＿ＩＤでフィルタリングする。
【００９４】
図２３に示す問題調査画面２０００は、ＳＱＬ一覧２２０２からフィルタ条件２２０４（図２２）で指定した、特定のＳＱＬ＿ＩＤに対するＳＱＬ統計２３０１を表示する画面例である。障害原因ＳＱＬ絞り込み処理部９０５は、ＳＱＬ＿ＩＤでフィルタしたＳＱＬ一覧情報を、ＳＱＬ＿ＩＤ別に、実行時間の傾向グラフで表示すると、ＳＱＬ統計２３０２となる。
【００９５】
＜変形例＞
図２４は、監視システム２４００の変形例を示す概要図である。監視システム２４００は、Ｗｅｂ経由で利用するサービス性能障害を検知し、障害原因を調査し、原因を特定するための方法である。変形例では、トレース分析機能がなくても、大量のリクエスト一覧から遅延リクエストを選出し、ＪａｖａＢｅａｎで実行されるメソッド毎の実行時間の統計値で遅い処理を絞り込む、あるいは外部サービスＳａａＳ利用で、サービス応答時間の遅いサービスを絞り込む。
【００９６】
実現方法としては、監視システム２４００は、全リクエストの応答時間計測処理２４０１を実行し、上記実施例と同様の方法で、遅延リクエストを特定し、遅延リクエスト実行時間と同一時間帯の、ＪａｖａＢｅａｎのメソッド毎の処理時間計測処理２４０２で、遅い処理を特定する。あるいは、全リクエストの応答時間計測処理２４０１を実行し、実施例で同様の方法で、遅延リクエストを特定し、遅延リクエスト実行時間と同一時間帯の、ＳａａＳ(Ｓｏｆｔｗａｒｅ  ａｓ  ａｓ  Ｓｅｒｖｉｃｅ）利用の外部サービスの応答時間の計測処理２４０３で、遅いサービスを特定する。
【００９７】
変形例では、監視システム２４００は、多数のエンドユーザでアクセス遅延が発生する前の、障害発生早期段階で、性能障害を検知し、トランザクション内部処理時間計測結果を使わずに、障害原因を調査し、原因特定をする。始めに、早期に性能障害を検知するための方法を示す。
【００９８】
まず、監視システム２４００は、実ユーザのアクセス応答時間を、Ｗｅｂページ毎に分類する。次に、サービス監視サーバ２０４は、Ｗｅｂページ毎に分類したアクセス応答時間に対して、監視結果をリアルタイムに統計処理し、単位時間あたりの平均応答時間、最大および最小応答時間を算出する。応答時間の統計値は、過去の性能監視結果に基づいて作成したベースラインを超過した場合に、エラーイベントを発行する。
【００９９】
以上のように、Ｗｅｂページ毎に、アクセス応答性能監視をすることで、当該Ｗｅｂページ処理に関連するリクエストをグルーピングし、Ｗｅｂページ別に性能障害かどうかを判定する。
【０１００】
次に、障害原因を調査し、原因を特定するための方法を示す。まず、監視システム２４００は、性能障害発生時間帯の、当該Ｗｅｂページアクセスに関連するアクセス履歴を取得し、取得済みアクセス履歴の中から、長時間アクセスを抽出する。監視システム２４００は、抽出した長時間アクセス履歴の、ＵＲＬやクエリに着目して、共通する文字列を探し、ＵＲＬやクエリに共通の文字列を含むリクエストをグループ化するための、フィルタ条件を作成する。
【０１０１】
監視システム２４００は、サービス性能障害発生前後を含む所定時間の全アクセス履歴から、フィルタ条件を用いて、リクエストグループに含まれる全てのアクセス情報を取得し、アクセス情報の応答時間を、傾向グラフで表示する。監視システム２４００は、グループ化したリクエストの応答性能傾向から、リクエスト応答遅延時間帯を特定し、特定したリクエスト応答遅延時間帯と同じ時間帯に実行するＳＱＬ実行情報を取得する。
【０１０２】
監視システム２４００は、取得したＳＱＬ実行情報のうち、長時間ＳＱＬを抽出し、ＳＱＬ＿ＩＤ別に、応答性能傾向を表示する。グループ化したリクエストの応答性能と、ＳＱＬ＿ＩＤ別の応答性能を比較し、相関関係にあるものを、性能障害原因のＳＱＬ文とする。ＷｅｂＡＰサーバ２１１の処理のＳＱＬ実行時間との突き合わせで、遅延リクエストの原因ＳＱＬ文を特定する方法の他に、ＪａｖａＢｅａｎｓ利用の場合はＪａｖａＢｅａｎ処理時間、外部サービスＳａａＳ利用の場合はサービス処理時間などと突き合わせで、遅延リクエストの原因の処理を特定することもある。
【０１０３】
以上に説明したように、各実施例によると、多数のエンドユーザがサービス性能障害になる前に異常に気付いた後、管理対象サーバ内部に、トランザクション処理時間計測機能がなくても、効率的に原因究明ができる。したがって、早期対処が可能になり、エンドユーザに高性能、高品質のサービスを提供できるようになる。
【０１０４】
以上、実施例を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【図１】
0006002849.tif 000002
【図２】
0006002849.tif 000003
【図３】
0006002849.tif 000004
【図４】
0006002849.tif 000005
【図５】
0006002849.tif 000006
【図６】
0006002849.tif 000007
【図７】
0006002849.tif 000008
【図８】
0006002849.tif 000009
【図９】
0006002849.tif 000010
【図１０】
0006002849.tif 000011
【図１１】
0006002849.tif 000012
【図１２】
0006002849.tif 000013
【図１３】
0006002849.tif 000014
【図１４】
0006002849.tif 000015
【図１５】
0006002849.tif 000016
【図１６】
0006002849.tif 000017
【図１７】
0006002849.tif 000018
【図１８】
0006002849.tif 000019
【図１９】
0006002849.tif 000020
【図２０】
0006002849.tif 000021
【図２１】
0006002849.tif 000022
【図２２】
0006002849.tif 000023
【図２３】
0006002849.tif 000024
【図２４】
0006002849.tif 000025