(57)【特許請求の範囲】
【請求項１】
サーバにおけるエラーの発生を検知するエラー検知手段と、
前記エラーが発生した際のログへの出力内容と、発生したエラーの原因となり得る関連エラーを対応付ける関連エラーリスト、および前記エラーが発生した際のログへの出力内容と、発生したエラーに関係する可能性のある前記サーバ以外の関連ソフトウェアを対応付ける関連ソフトウェアリスト、を記憶する記憶部と、
前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連エラーが発生していないか否かを解析し、前記関連エラーが発生していればその関連エラーが前記エラーの原因であることをユーザに通知するエラー解析手段と、
前記関連エラーが発生していない場合に、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連ソフトウェアに異常が発生していないか否かを解析し、異常が発生していればその関連ソフトウェアが前記エラーの原因であることをユーザに通知する関連ソフトウェア調査手段と、を備える障害解析装置。
【請求項２】
前記関連ソフトウェア調査手段は、
前記関連ソフトウェアに業務アプリケーションが含まれるか否かを判断し、前記業務アプリケーションが含まれる場合には、スタックトレースを解析し、前記スタックトレースに前記サーバで利用しているパッケージ以外のパッケージ名が含まれている場合には、その業務アプリケーションが前記エラーの原因であることをユーザに通知する業務アプリケーション調査手段、を備える請求項１に記載の障害解析装置。
【請求項３】
前記業務アプリケーション調査手段は、
前記関連ソフトウェアに業務アプリケーションが含まれていない場合には、その関連ソフトウェアのログおよび状態を解析し、解析の結果その関連ソフトウェアに異常がある場合には、その関連ソフトウェアが前記エラーの原因であることをユーザに通知する、請求項２に記載の障害解析装置。
【請求項４】
前記関連エラーおよび前記関連ソフトウェアが前記エラーの原因ではない場合に、
サーバマシンが出力するログを解析し、前記エラーの発生時間帯に異常が発生している場合、または前記サーバマシンの負荷状況を調査して、高負荷であると判断された場合に、前記サーバマシンの状態が前記エラーの原因であることをユーザに通知するサーバ環境調査手段を備える、請求項１から３のいずれかに記載の障害解析装置。
【請求項５】
ユーザが入力した異常停止解析の命令を受信した場合に、
サーバマシンの異常停止が発生した原因を解析し、解析結果を通知する異常停止解析手段を備える、請求項１から４のいずれかに記載の障害解析装置。
【請求項６】
前記サーバはＷｅｂアプリケーションサーバである、請求項１から５のいずれかに記載の障害解析装置。
【請求項７】
前記異常停止解析手段は、
前記サーバのログを解析し、起動完了後にエラーが発生している場合には前記エラー解析手段においてエラー解析を実行し、
起動完了後にエラーが発生していない場合には、Ｊａｖａ(登録商標)ＶＭのクラッシュログが出力されているか否かを判断し、出力されている場合には前記クラッシュログの解析を行い、
前記クラッシュログが出力されていない場合には、サーバマシンの状態を調査する、請求項５に記載の障害解析装置。
【請求項８】
サーバにおけるエラーの発生を検知し、
前記エラーが発生した際のログへの出力内容と、発生したエラーの原因となり得る関連エラーを対応付ける関連エラーリストを取得し、
前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連エラーが発生していないか否かを解析し、前記関連エラーが発生していればその関連エラーが前記エラーの原因であることをユーザに通知し、
前記エラーが発生した際のログへの出力内容と、発生したエラーに関係する可能性のある前記サーバ以外の関連ソフトウェアを対応付ける関連ソフトウェアリストを取得し、
前記関連エラーが発生していない場合に、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連ソフトウェアに異常が発生していないか否かを解析し、異常が発生していればその関連ソフトウェアが前記エラーの原因であることをユーザに通知する、障害解析方法。
【請求項９】
コンピュータを、
サーバにおけるエラーの発生を検知するエラー検知手段と、
前記エラーが発生した際のログへの出力内容と、発生したエラーの原因となり得る関連エラーを対応付ける関連エラーリスト、および前記エラーが発生した際のログへの出力内容と、発生したエラーに関係する可能性のある前記サーバ以外の関連ソフトウェアを対応付ける関連ソフトウェアリスト、を記憶する記憶部と、
前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連エラーが発生していないか否かを解析し、前記関連エラーが発生していればその関連エラーが前記エラーの原因であることをユーザに通知するエラー解析手段と、
前記関連エラーが発生していない場合に、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連ソフトウェアに異常が発生していないか否かを解析し、異常が発生していればその関連ソフトウェアが前記エラーの原因であることをユーザに通知する関連ソフトウェア調査手段と、して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害解析装置、障害解析方法、及びプログラムに関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションサーバは、Ｗｅｂアプリケーションサーバ上で業務処理を実装したアプリケーション（以後、業務アプリケーションと記載。）を動作させる機能や、業務アプリケーションとデータベースサーバやＷｅｂサーバなどとの通信の橋渡しを行う機能を持つソフトウェアである。このため、Ｗｅｂアプリケーションサーバでは、業務アプリケーションのエラーや、業務アプリケーションと関連ソフトウェアとの通信エラーが、Ｗｅｂアプリケーションサーバのエラーとして出力されてしまうという特徴を持つ。
【０００３】
しかし、従来の障害解析手法は、エラーを出力したソフトウェアに障害の原因があることを前提としている。つまり、Ｗｅｂアプリケーションサーバのように、関連ソフトウェアのエラーであってもＷｅｂアプリケーションサーバのエラーとして出力されるような場合は想定していない。
【０００４】
このため、Ｗｅｂアプリケーションサーバを利用したシステムに、従来の障害解析手法を用いると、業務アプリケーションやその他のソフトウェアでエラーがあった場合でも、Ｗｅｂアプリケーションサーバに障害の原因があると判断してしまい、正しい原因箇所を特定できないという問題がある。また、Ｗｅｂアプリケーションサーバを利用したシステムは複数のソフトウェアが関連するため、ユーザがログを見ても、簡単には原因箇所を特定できないという問題もある。
【０００５】
例えば、特許文献１に記載の方法では、ログ情報に「障害Ｎｏ」を付与し、ログ情報に含まれる障害解析に有用な「エラーＮｏ」、「エラーメッセージ」、「マシン名」を障害情報として上記の「障害Ｎｏ」と対応付けて登録し、さらに、障害解析結果を上記「障害Ｎｏ」と対応付けて登録することにより、あるログ情報に対する障害対応を行いたい場合等に、そのログ情報の障害解析結果を容易に参照することができるようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３１３０８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載された方法では、障害情報を収集して解析を行うものの、収集対象がエラーを出力したソフトウェアのログおよび環境情報であり、関連ソフトウェアの情報までは収集できていない。このため、関連ソフトウェアに原因があった場合には原因箇所の判断ができない。
【０００８】
そこで、本発明の目的は、サーバ以外の関連ソフトウェアに原因がある障害についても、正しく原因箇所を特定することが可能な障害解析装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明に係る障害解析装置は、サーバにおけるエラーの発生を検知するエラー検知手段と、前記エラーが発生した際のログへの出力内容と、発生したエラーの原因となり得る関連エラーを対応付ける関連エラーリスト、および前記エラーが発生した際のログへの出力内容と、発生したエラーに関係する可能性のある前記サーバ以外の関連ソフトウェアを対応付ける関連ソフトウェアリスト、を記憶する記憶部と、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連エラーが発生していないか否かを解析し、前記関連エラーが発生していればその関連エラーが前記エラーの原因であることをユーザに通知するエラー解析手段と、前記関連エラーが発生していない場合に、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連ソフトウェアに異常が発生していないか否かを解析し、異常が発生していればその関連ソフトウェアが前記エラーの原因であることをユーザに通知する関連ソフトウェア調査手段と、を備えるものである。
【発明の効果】
【００１０】
本発明によれば、サーバ以外の関連ソフトウェアに原因がある障害についても、正しく原因箇所を特定することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態による、障害解析装置の構成を示すブロック図。
【図２】本発明の実施の形態による、関連エラーリストの例を示す図。
【図３】本発明の実施の形態による、関連ソフトウェアリストの例を示す図。
【図４】本発明の実施の形態による、利用パッケージ名リストの例を示す図。
【図５】本発明の実施の形態による、パターン１のエラーメッセージの例を示す図。
【図６】本発明の実施の形態による、パターン２のエラーメッセージの例を示す図。
【図７】本発明の実施の形態による、パターン３のエラーメッセージの例を示す図。
【図８】本発明の実施の形態による、パターン４のエラーメッセージの例を示す図。
【図９】本発明の実施の形態による、障害解析装置の動作のフローチャート。
【図１０】本発明の実施の形態による、障害解析装置の動作のフローチャート。
【図１１】本発明の実施の形態による、障害解析装置の動作のフローチャート。
【図１２】本発明の実施の形態による、障害解析装置の動作のフローチャート。
【発明を実施するための形態】
【００１２】
次に、本発明を実施するための形態について、図面を参照して詳細に説明する。
図１は、本発明の実施の形態による障害解析装置１０１の構成を示すブロック図である。図に示すように、障害解析装置１０１は、エラー検知手段１０２、エラー解析手段１０３、関連エラーリスト１０４、関連ソフトウェアリスト１０５、関連ソフトウェア調査手段１０６、サーバ環境調査手段１１１、異常停止解析手段１１４、ユーザ通知手段１１７、およびデータ更新手段１１８を備えている。
【００１３】
また、関連ソフトウェア調査手段１０６は、関連ソフトウェア状態確認手段１０７と、業務アプリケーション調査手段１０８を備えている。さらに、業務アプリケーション調査手段１０８は、スタックトレース解析手段１０９と、利用パッケージ名リスト１１０を備えている。
【００１４】
また、サーバ環境調査手段１１１は、ログ調査手段１１２と、負荷状況調査手段１１３を備えている。また、異常停止解析手段１１４は、Ｗｅｂアプリケーションサーバログ解析手段１１５と、Ｊａｖａ（登録商標）ＶＭ調査手段１１６を備えている。
【００１５】
障害解析装置１０１は、ＣＰＵ、ＲＯＭやＲＡＭ等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。なお、障害解析装置１０１は、単一のコンピュータにより構成されるものであっても、通信回線を介して互いに接続された複数のコンピュータにより構成されるものであってもよい。
【００１６】
障害解析装置１０１は、通信回線を介してＷｅｂアプリケーションサーバと接続されており、Ｗｅｂアプリケーションサーバからのエラーログを受信する。
【００１７】
エラー検知手段１０２、エラー解析手段１０３、関連ソフトウェア調査手段１０６、関連ソフトウェア状態確認手段１０７、業務アプリケーション調査手段１０８、スタックトレース解析手段１０９、サーバ環境調査手段１１１、ログ調査手段１１２、負荷状況調査手段１１３、異常停止解析手段１１４、Ｗｅｂアプリケーションサーバログ解析手段１１５、Ｊａｖａ（登録商標）ＶＭ調査手段１１６、ユーザ通知手段１１７、およびデータ更新手段１１８は、ＣＰＵがＲＯＭ等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。関連エラーリスト１０４、関連ソフトウェアリスト１０５、および利用パッケージ名リスト１１０は、外部記憶装置により実装される。
【００１８】
エラー検知手段１０２は、Ｗｅｂアプリケーションサーバからのエラーログの通知を受信し、エラー解析手段１０３にエラーの解析を命令する。
【００１９】
エラー解析手段１０３は、関連エラーリスト１０４を参照して、受信したエラーの発生原因と考えられるエラーを取得し、Ｗｅｂアプリケーションサーバの起動開始後からエラー発生までの間に取得したエラーが発生していないか否かの解析を行う。原因と考えられるエラーが発生していれば、このエラーを原因としてユーザに通知する。また、関連ソフトウェアリスト１０５を参照し、当該エラーに関連ソフトウェアがあれば、関連ソフトウェア調査手段１０６を実行する。
【００２０】
関連エラーリスト１０４は、エラーが発生した際のエラーログへの出力内容と、そのエラーの原因となり得るエラーを対応付けたリストであり、図２に示すように、エラー内容を特定するエラーＩＤに対応付けて、各々のエラーの原因となり得るエラーのＩＤ（関連エラーＩＤ）を保持している。
【００２１】
関連ソフトウェアリスト１０５は、エラーが発生した際のエラーログへの出力内容と、そのエラーに関連する可能性があるＷｅｂアプリケーションサーバ以外のソフトウェアのリストであり、図３に示すように、エラーＩＤに対応付けて各々のエラーに関連する可能性があるソフトウェアの情報を保持している。
【００２２】
関連ソフトウェア調査手段１０６は、関連ソフトウェア状態確認手段１０７において、エラーログおよび関連ソフトウェアの状態を解析し、エラー発生の時間帯に関連ソフトウェアに問題がなかったか否かを判断する。もし、問題があった場合は、関連ソフトウェアがエラー発生の原因である旨をユーザに通知する。
【００２３】
業務アプリケーション調査手段１０８は、スタックトレースに含まれているパッケージ名に未知のパッケージ名が含まれているかどうかを判定する。未知のパッケージが含まれている場合、業務アプリケーションが障害の原因である旨をユーザに通知する。
【００２４】
利用パッケージ名リスト１１０は、図４に示すように、Ｗｅｂアプリケーションサーバ、およびＷｅｂアプリケーションサーバが動作するために必要なソフトウェアのパッケージ名のリストである。
【００２５】
サーバ環境調査手段１１１は、ログ調査手段１１２と負荷状況調査手段１１３を含み、Ｗｅｂサーバマシンの状態を調査する。ログ調査手段１１２は、イベントログやシスログといった、サーバマシンが出力するログファイルを解析し、エラー発生時間帯にエラーや警告が出力されていないかを調査する。負荷状況調査手段１１３は、サーバマシンの負荷状況を調査する。もし、問題があれば、サーバマシンの状態がエラーの原因である可能性が高い旨をユーザに通知する。
【００２６】
異常停止解析手段１１４は、Ｗｅｂアプリケーションサーバログ解析手段１１５と、Ｊａｖａ（登録商標）ＶＭ調査手段１１６を含む。異常停止解析手段１１４は、異常停止の調査をユーザが命令した際に実行され、Ｗｅｂアプリケーションサーバログ解析手段１１５を実行してＷｅｂアプリケーションサーバの異常停止が発生した原因を解析する。
【００２７】
Ｗｅｂアプリケーションサーバログ解析手段１１５は、Ｗｅｂアプリケーションサーバのログを調査し、ログファイルの最後に停止ログが出力されているか、エラーが出力されているかを確認する。もし、停止ログが出力されており、かつエラーが出力されていれば、エラー解析手段１０３を実行してエラーの原因を解析する。停止ログが出力されていない、または、エラーが出力されていない場合は、Ｊａｖａ（登録商標）ＶＭが起動失敗もしくは異常終了したものと判断し、Ｊａｖａ（登録商標）ＶＭ調査手段１１６を実行する。
【００２８】
Ｊａｖａ（登録商標）ＶＭ調査手段１１６は、Ｊａｖａ（登録商標）ＶＭが起動失敗または異常終了したと判断された場合に実行され、Ｊａｖａ（登録商標）ＶＭのクラッシュログの有無、およびその内容の調査を行い、ユーザにその内容を通知する。
【００２９】
ユーザ通知手段１１７は、各手段における解析結果をユーザに通知する機能を有する。具体的には、例えば表示装置（図示せず）に解析結果を表示することにより通知する。
【００３０】
データ更新手段１１８は、ユーザからの入力、または通信回線を通じたアップデート等によって、関連エラーリスト１０４、関連ソフトウェアリスト１０５、利用パッケージ名リスト１１０に記憶されているデータを更新する。
【００３１】
次に、具体的なエラー出力（ログ）を用いて、障害解析装置１０１の動作について説明する。
【００３２】
説明に用いるエラーのパターンは以下のとおりである。特にパターン（２）〜（５）は、Ｗｅｂアプリケーションサーバ特有の事象であり、発生頻度が高いにも関わらず、これまでの解析方法では原因が正しく特定できなかった事象である。
【００３３】
（１）発生したエラーの原因がＷｅｂアプリケーションサーバか、Ｗｅｂサーバマシンの環境にある場合。
（２）発生したエラーの原因が他のエラーである場合。
（３）発生したエラーの原因が関連ソフトウェア（業務アプリケーション）にある場合。
（４）発生したエラーの原因が関連ソフトウェア（業務アプリケーション以外）にある場合。
（５）Ｗｅｂアプリケーションサーバが異常停止し、異常停止した原因がＪａｖａ（登録商標）ＶＭ  プロセスの異常終了である場合。
【００３４】
（１）発生したエラーの原因がＷｅｂアプリケーションサーバか、Ｗｅｂサーバマシンの環境にある場合。
図５に示すエラーメッセージが出力された場合を例に図９を用いて説明する。まず、エラー検知部１０２がエラーを検知し（ステップＡ１）、エラー解析手段１０３がエラーを取得する（ステップＡ２）。次に、エラー解析手段１０３が関連エラーリスト１０４を取得し（ステップＡ３）、関連エラーの有無、および関連エラーの発生の有無を判断する（ステップＡ４）。図５に示すメッセージは、エラーＩＤが「０００１」であり、図２に示すように関連エラーは無いので（ステップＡ４：Ｎｏ）、ステップＡ５に進む。
【００３５】
次に、エラー解析手段１０３は関連ソフトウェアリスト１０５を取得し（ステップＡ５）、関連ソフトウェアの有無を判断する（ステップＡ６）。図３に示すようにエラーＩＤ「０００１」に関連ソフトウェアは無いので（ステップＡ６：Ｎｏ）、ステップＡ９に進む。
【００３６】
次に、サーバ環境調査手段１１１においてサーバマシンに問題がないか否かの調査を行う（ステップＡ９）。この動作について図１０を用いて詳細に説明する。まず、ログ調査手段１１２においてサーバマシンのイベントログまたはシスログを取得し（ステップＢ１）、エラーが発生した時間から一定時間前および一定時間後にエラーが発生していないか否かを確認する（ステップＢ２）。さらに、負荷状況調査手段１１３においてサーバマシンの負荷状況を取得する（ステップＢ３）。サーバ環境調査手段１１１は、サーバマシンの調査結果を通知内容に付加し（ステップＡ９）、ユーザに通知する（ステップＡ１０）。ユーザは、エラーの内容およびサーバマシンの状態に基づいて、エラーの原因を判断する。
【００３７】
（２）発生したエラーの原因が他のエラーである場合。
図６に示すエラーメッセージが出力された場合を例に図９を用いて説明する。
まず、エラー検知部１０２がエラーを検知し（ステップＡ１）、エラー解析手段１０３がエラーを取得する（ステップＡ２）。次に、エラー解析手段１０３が関連エラーリスト１０４を取得して（ステップＡ３）、関連エラーの有無、および関連エラーの発生の有無を判断する（ステップＡ４）。図６に示すメッセージには、ＩＤが「０００２」のエラーが含まれており、図２を参照すると関連エラーとしてＩＤ「００２０」が取得される。このように関連エラーが存在するため、関連ソフトウェア状態確認手段１０７においてその関連エラーが一定時間内に発生しているかどうかを判断する（ステップＡ４）。図６に示すように、５分前にエラーＩＤ「００２０」のエラーが発生していることが分かる（ステップＡ４：Ｙｅｓ）。このため、エラーＩＤ「００２０」のエラーが根本原因である旨をユーザに通知する（ステップＡ１０）。
【００３８】
（３）発生したエラーの原因が関連ソフトウェア（業務アプリケーション）にある場合。
図７に示すエラーメッセージが出力された場合を例に図９を用いて説明する。
まず、エラー検知部１０２がエラーを検知し（ステップＡ１）、エラー解析手段１０３がエラーを取得する（ステップＡ２）。次に、エラー解析手段１０３が関連エラーリスト１０４を取得して（ステップＡ３）、関連エラーの有無、および関連エラーの発生の有無を判断する（ステップＡ４）。図７に示すメッセージはエラーＩＤが「０００３」であり、図２から関連エラーはないことがわかる。
【００３９】
次に、エラー解析手段１０３は関連ソフトウェアリスト１０５を取得し（ステップＡ５）、関連ソフトウェアの有無を判断する（ステップＡ６）。図３に示すように、エラーＩＤ「０００３」の関連ソフトウェアとして「業務アプリケーション」が取得される（ステップＡ６：Ｙｅｓ）。
【００４０】
関連ソフトウェアが存在した場合の動作について、図１１を用いて説明する。まず、業務アプリケーション調査手段１０８が関連ソフトウェアのリストに業務アプリケーションがあるか否かを判断し（ステップＣ１）、業務アプリケーションがある場合（Ｙｅｓ）、スタックトレース解析手段１０９においてスタックトレースを取得する（ステップＣ２）。次に、スタックトレース解析手段１０９は利用パッケージ名リスト１１０からＷｅｂアプリケーションサーバで利用しているパッケージ名を取得する（ステップＣ３）。さらにスタックトレース解析手段１０９においてスタックトレースを解析し、Ｗｅｂアプリケーションサーバで利用しているもの以外のパッケージがあるか否かを判断する（ステップＣ４）。図７のスタックトレースには、「ｊｐ．ｃｏ．ｂｂｂ」という、利用パッケージ名リストに登録されていないパッケージ名が含まれている。このため、業務アプリケーションに問題があると判断し（ステップＣ４：Ｙｅｓ）、ユーザに業務アプリケーションに問題がある旨を通知する（ステップＡ１０）。
【００４１】
（４）発生したエラーの原因が関連ソフトウェア（業務アプリケーション以外）にある場合。
図８に示すエラーメッセージが出力された場合を例に図９を用いて説明する。なお、ここではＷｅｂサーバが停止しているとする。
まず、エラー検知部１０２がエラーを検知し（ステップＡ１）、エラー解析手段１０３がエラーを取得する（ステップＡ２）。次に、エラー解析手段１０３が関連エラーリスト１０４を取得して（ステップＡ３）、関連エラーの有無、および関連エラーの発生の有無を判断する（ステップＡ４）。図８に示すメッセージはエラーＩＤが「０００４」であり、図２から関連エラーとして「００４０」が取得される。関連エラーが存在したため、関連エラーが一定時間内に発生していないか否かを判断する（ステップＡ４）。図８から、エラーＩＤ「００４０」は発生していないことがわかる。
【００４２】
次に、エラー解析手段１０３は関連ソフトウェアリスト１０５を取得する（ステップＡ５）。図３から、エラーＩＤ「０００４」の関連ソフトウェアとして「Ｗｅｂサーバ」が取得される。
【００４３】
関連ソフトウェアが存在した場合の動作について、図１１を用いて詳細に説明する。まず、業務アプリケーション調査手段１０８が関連ソフトウェアのリストに業務アプリケーションがあるか否かを確認する（ステップＣ１）。ここでは業務アプリケーションがないため（Ｎｏ）ステップＣ５へ進み、「業務アプリケーション」以外の関連ソフトウェアである「Ｗｅｂサーバ」のログおよび状態を確認する。ステップＣ６では関連ソフトウェアに問題があるか否か判断する。ここでは、Ｗｅｂサーバが停止しているため（Ｙｅｓ）、関連ソフトウェアに問題がある旨をユーザに通知する（ステップＡ１０）。
【００４４】
（５）Ｗｅｂアプリケーションサーバが異常停止し、異常停止した原因がＪａｖａ（登録商標）ＶＭ  プロセスの異常終了である場合。
パターン５について、図１２を用いて詳細に説明する。ユーザは、Ｗｅｂアプリケーションサーバの異常停止に気付いたら、異常停止解析手段１１４を実行する（ステップＤ１）。異常停止解析手段１１４が実行されると、まずＷｅｂアプリケーションサーバログ解析手段１１５がＷｅｂアプリケーションサーバのログを解析し（ステップＤ２）、起動完了後にエラーログが出力されていないかを判断する（ステップＤ３）。エラーログが出力されていれば（Ｙｅｓ）、エラー解析手段１０３を実行してエラーを解析する（ステップＤ４）。エラー解析手段１０３の動作は、パターン（１）〜（４）と同様である。
【００４５】
ステップＤ３で、エラーログが出力されていないと判断された場合、Ｊａｖａ（登録商標）ＶＭプロセスが異常終了したと判断できるため、Ｊａｖａ（登録商標）ＶＭ調査手段１１６を実行する（ステップＤ５）。Ｊａｖａ（登録商標）ＶＭのクラッシュログが出力されていれば（ステップＤ６：Ｙｅｓ）、その内容を読み込み、既知の問題でないかインターネット上を確認し（ステップＤ７）、その結果をユーザに通知する（ステップＡ１０）。クラッシュログが出力されていない場合は（ステップＤ６：Ｎｏ）、サーバ環境調査手段１１１を利用してサーバマシンの状態を確認し、その旨をユーザに通知する（ステップＡ９、Ａ１０）。
【００４６】
以上のように、本実施形態によれば、障害解析装置１０１において、Ｗｅｂアプリケーションサーバにおけるエラーの発生を検知すると、まず、関連エラーリスト１０４を取得し、Ｗｅｂアプリケーションサーバの起動開始後からエラー発生までのログに、原因となりうる関連エラーが出力されていないか否かを確認する。もし、出力されていれば、その関連エラーが原因と考えられる旨をユーザに通知する。
【００４７】
原因となり得る関連エラーが出力されていない場合、関連ソフトウェアリスト１０５を取得し、関連ソフトウェアが存在すれば、それぞれのソフトウェアの状態をログや通信確認テストを実行して調査する。関連ソフトウェアに問題があれば、その旨をユーザに通知する。
【００４８】
関連ソフトウェアに業務アプリケーションが存在する場合、出力されたスタックトレースを読み込む。スタックトレースに、未知のパッケージ名が含まれていた場合、業務アプリケーションが原因だと判断して、ユーザにスタックトレースと、業務アプリケーションに問題がある旨の通知を行う。スタックトレースに、ＷｅｂアプリケーションサーバおよびＷｅｂアプリケーションサーバが動作するために必要となるパッケージ名のみ含まれている場合、業務アプリケーションには問題ないと判断する。
【００４９】
関連ソフトウェアにも異常がない場合は、Ｗｅｂアプリケーションサーバ自身か、サーバの環境に問題がある。このため、サーバマシンのログを調査して、エラーが出力された時間帯に、サーバマシンのログにエラーや警告が出力されていないかを確認する。もし、サーバマシンのログにエラーや警告が出力されていれば、その旨をユーザに通知する。さらに、サーバ環境の負荷状況を計測し、高負荷であると判定された場合はその旨をユーザに通知する。サーバ環境に問題がない場合は、Ｗｅｂアプリケーションサーバ自身に問題があるため、エラー内容と他のソフトウェアには問題がない旨を通知する。
【００５０】
また、Ｗｅｂアプリケーションサーバが異常停止する場合も考えられる。この場合、ユーザは手動で、異常停止解析手段１１４を実行する。異常停止の場合、ＷｅｂアプリケーションサーバのログおよびＪａｖａ（登録商標）ＶＭプロセスのクラッシュログと、当時のサーバマシンの状態を確認する必要がある。このため、まず、Ｗｅｂアプリケーションサーバの起動開始後からログの最後までの間にエラーが出力されているか否かを確認する。エラーが出力されている場合、エラーを検知した場合と同様の処理を実行する。
【００５１】
エラーが出力されていない場合、ＷｅｂアプリケーションサーバのＪａｖａ（登録商標）ＶＭのプロセスが突然終了したと考えられる。このため、Ｊａｖａ（登録商標）ＶＭのクラッシュログの有無を確認し、クラッシュログが出力されている場合は、クラッシュログの中身を読み込む。さらに、サーバマシンがネットワークを利用できる場合は、クラッシュログに出力されているエラー内容と同様の内容が既に報告されていないかインターネットを利用して検索し、該当するエラー内容が報告されていれば、その旨をユーザに通知する。また、バグが修正されたバージョンを取得できれば、合わせてアップデートを促す。
【００５２】
エラーもＪａｖａ（登録商標）ＶＭのクラッシュログも出力されていな場合、原因はサーバマシンの環境にある可能性が高い。このため、イベントログ・シスログを調査して、エラー発生の時間帯にエラーや警告が出力されていないかを確認し、その結果と、サーバマシンに原因がある旨をユーザに通知する。
【００５３】
このように、本実施形態によればユーザはＷｅｂアプリケーションサーバで障害が発生した際に、原因箇所を簡単に把握することが可能となる。特に、これまでは特定できなかった、Ｗｅｂアプリケーションサーバ以外の関連ソフトウェアに原因がある場合についても、正しい原因を特定することができる。すなわち、従来の方法では、関連ソフトウェアに原因がある場合でも、Ｗｅｂアプリケーションサーバのエラーであると判別されてしまっていたが、本実施形態によれば、このような場合にも正しい原因を特定できるので、問題の早期解決に繋げることができる。
【００５４】
また、本実施形態によれば、原因箇所を自動的に特定できるため、ユーザは、業務アプリケーションの修正や、適切な製品保守部隊への問い合わせを行うことができ、障害発生時の原因究明にかかる時間を削減することができる。
【００５５】
また、本実施形態によれば、Ｗｅｂアプリケーションにあまり詳しくなくないユーザでも、障害の原因を特定することができる。
【００５６】
また、本実施形態によれば、エラー検知、解析、通知を自動実行するため、エラーが発生した際に即時に調査を実行することが可能であり、障害の検知が遅れたためにシステムの状態が変化してしまい、障害の原因がわからなくなるという事態を回避することができる。
【００５７】
さらに、関連ソフトウェアリスト１０５に記憶されている内容を、ユーザによる手動更新やネットワーク経由のアップデートで更新できるようにすることにより、一度目の発生では正しく解析できなかった障害についても、２度目以降は正しく原因を特定することが可能となる。
【００５８】
なお、本実施形態の変形例として、エラー内容から原因が明確で、かつ自動復旧が可能なエラーについては、自動復旧方法をデータベースに登録しておくようにしてもよい。そして、エラー解析の際、該当するメッセージがあった場合は、ユーザへの通知とともに、自動復旧を実行する。これにより、障害解析だけでなく、障害の自動復旧も可能となる。また、自動復旧方法を、ネットワーク上から検索してくるようにしてもよい。
【００５９】
さらに、他の変形例として、Ｗｅｂアプリケーションサーバと同一のサーバにＷｅｂアプリケーションサーバのマニュアルがインストールされている場合は、エラーに対応するマニュアルのページを取得するようにしてもよい。そして、エラーの内容、関連ソフトウェアの調査結果、マニュアルの情報をユーザに通知する。マニュアルの内容を表示することで、マニュアルを検索する時間を削減することができる。
【００６０】
また、ネットワークが利用できる環境である場合、エラー内容やクラッシュログの内容をインターネット上で検索し、対応方法などについての情報を取得し、ユーザに提示するようにしてもよい。これにより、ユーザによる障害復旧の手助けを行うことができる。
【００６１】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）サーバにおけるエラーの発生を検知するエラー検知手段と、
前記エラーが発生した際のログへの出力内容と、発生したエラーの原因となり得る関連エラーを対応付ける関連エラーリスト、および前記エラーが発生した際のログへの出力内容と、発生したエラーに関係する可能性のある前記サーバ以外の関連ソフトウェアを対応付ける関連ソフトウェアリスト、を記憶する記憶部と、
前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連エラーが発生していないか否かを解析し、前記関連エラーが発生していればその関連エラーが前記エラーの原因であることをユーザに通知するエラー解析手段と、
前記関連エラーが発生していない場合に、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連ソフトウェアに異常が発生していないか否かを解析し、異常が発生していればその関連ソフトウェアが前記エラーの原因であることをユーザに通知する関連ソフトウェア調査手段と、を備える障害解析装置。
【００６２】
（付記２）前記関連ソフトウェア調査手段は、
前記関連ソフトウェアに業務アプリケーションが含まれるか否かを判断し、前記業務アプリケーションが含まれる場合には、スタックトレースを解析し、前記スタックトレースに前記サーバで利用しているパッケージ以外のパッケージ名が含まれている場合には、その業務アプリケーションが前記エラーの原因であることをユーザに通知する業務アプリケーション調査手段、を備える付記１に記載の障害解析装置。
【００６３】
（付記３）前記業務アプリケーション調査手段は、
前記関連ソフトウェアに業務アプリケーションが含まれていない場合には、その関連ソフトウェアのログおよび状態を解析し、解析の結果その関連ソフトウェアに異常がある場合には、その関連ソフトウェアが前記エラーの原因であることをユーザに通知する、付記１または２に記載の障害解析装置。
【００６４】
（付記４）前記関連エラーおよび前記関連ソフトウェアが前記エラーの原因ではない場合に、
前記サーバマシンが出力するログを解析し、前記エラーの発生時間帯に異常が発生している場合、または前記サーバマシンの負荷状況を調査して、高負荷であると判断された場合に、前記サーバマシンの状態が前記エラーの原因であることをユーザに通知するサーバ環境調査手段を備える、付記１から３のいずれかに記載の障害解析装置。
【００６５】
（付記５）ユーザが入力した異常停止解析の命令を受信した場合に、
前記サーバマシンの異常停止が発生した原因を解析し、解析結果を通知する異常停止解析手段を備える、付記１から４のいずれかに記載の障害解析装置。
【００６６】
（付記６）前記サーバはＷｅｂアプリケーションサーバである、付記１から５のいずれかに記載の障害解析装置。
【００６７】
（付記７）前記異常停止解析手段は、
前記Ｗｅｂアプリケーションサーバのログを解析し、起動完了後にエラーが発生している場合には前記エラー解析手段においてエラー解析を実行し、
起動完了後にエラーが発生していない場合には、Ｊａｖａ（登録商標）ＶＭのクラッシュログが出力されているか否かを判断し、出力されている場合には前記クラッシュログの解析を行い、
前記クラッシュログが出力されていない場合には、前記サーバマシンの状態を調査する、付記６に記載の障害解析装置。
【００６８】
（付記８）サーバにおけるエラーの発生を検知し、
前記エラーが発生した際のログへの出力内容と、発生したエラーの原因となり得る関連エラーを対応付ける関連エラーリストを取得し、
前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連エラーが発生していないか否かを解析し、前記関連エラーが発生していればその関連エラーが前記エラーの原因であることをユーザに通知し、
前記エラーが発生した際のログへの出力内容と、発生したエラーに関係する可能性のある前記サーバ以外の関連ソフトウェアを対応付ける関連ソフトウェアリストを取得し、
前記関連エラーが発生していない場合に、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連ソフトウェアに異常が発生していないか否かを解析し、異常が発生していればその関連ソフトウェアが前記エラーの原因であることをユーザに通知する、障害解析方法。
【００６９】
（付記９）コンピュータを、
サーバにおけるエラーの発生を検知するエラー検知手段と、
前記エラーが発生した際のログへの出力内容と、発生したエラーの原因となり得る関連エラーを対応付ける関連エラーリスト、および前記エラーが発生した際のログへの出力内容と、発生したエラーに関係する可能性のある前記サーバ以外の関連ソフトウェアを対応付ける関連ソフトウェアリスト、を記憶する記憶部と、
前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連エラーが発生していないか否かを解析し、前記関連エラーが発生していればその関連エラーが前記エラーの原因であることをユーザに通知するエラー解析手段と、
前記関連エラーが発生していない場合に、前記サーバの起動開始後から前記エラーの発生までの間のログを解析して、出力内容に対応する前記関連ソフトウェアに異常が発生していないか否かを解析し、異常が発生していればその関連ソフトウェアが前記エラーの原因であることをユーザに通知する関連ソフトウェア調査手段と、して機能させるプログラム。
【符号の説明】
【００７０】
１０１  障害解析装置、１０２  エラー検知手段、１０３  エラー解析手段、１０４  関連エラーリスト、１０５  関連ソフトウェアリスト、１０６  関連ソフトウェア調査手段、１０７  関連ソフトウェア状態確認手段、１０８  業務アプリケーション調査手段、１０９  スタックトレース解析手段、１１０  利用パッケージ名リスト、１１１  サーバ環境調査手段、１１２  ログ調査手段、１１３  負荷状況調査手段、１１４  異常停止解析手段、１１５  Ｗｅｂアプリケーションサーバログ解析手段、１１６  Ｊａｖａ（登録商標）ＶＭ調査手段、１１７  ユーザ通知手段、１１８  データ更新手段
【図２】
0005578487.tif 000002
【図３】
0005578487.tif 000003
【図４】
0005578487.tif 000004
【図５】
0005578487.tif 000005
【図６】
0005578487.tif 000006
【図７】
0005578487.tif 000007
【図８】
0005578487.tif 000008
【図１】
0005578487.tif 000009
【図９】
0005578487.tif 000010
【図１０】
0005578487.tif 000011
【図１１】
0005578487.tif 000012
【図１２】
0005578487.tif 000013