(57)【特許請求の範囲】
【請求項１】
コンピュータが、
監視対象のシステム上で動作する複数のプログラムのうち、オペレーティングシステムに対して発行したコマンド履歴が所定のパターン条件を満たすプログラムを特定し、
少なくとも、前記複数のプログラムから、特定した該プログラムを除外したプログラムを監視対象として選択し、
前記特定においては、前記コマンド履歴から、所定時間連続して動作すると共に、前記プログラム内で順に連続して実行される順次連続処理のパターン情報を格納する格納部から取得した該パターン情報と一致する順次連続処理を行うプログラムを抽出し、抽出した該プログラムの１回の実行によって１回実行される該順次連続処理の実行時間を、抽出した該プログラムの実行毎に計測し、計測された最大の実行時間と最小の実行時間との割合に応じて、前記所定のパターン条件を満たすプログラムを特定する
ことを特徴とする監視対象プログラムの選択方法。
【請求項２】
前記特定において、さらに、前記抽出したプログラムのうちで、１回の実行によってある１のプログラムを複数回実行させていたプログラムを、所定のパターン条件を満たすプログラムとして特定する
ことを特徴とする請求項１に記載の監視対象プログラムの選択方法。
【請求項３】
コンピュータに、
監視対象のシステム上で動作する複数のプログラムのうち、オペレーティングシステムに対して発行したコマンド履歴が所定のパターン条件を満たすプログラムを特定し、
少なくとも、前記複数のプログラムから、特定した該プログラムを除外したプログラムを監視対象として選択する、
処理を実行させ、
前記特定においては、前記コマンド履歴から、所定時間連続して動作すると共に、前記プログラム内で順に連続して実行される順次連続処理のパターン情報を格納する格納部から取得した該パターン情報と一致する順次連続処理を行うプログラムを抽出し、抽出した該プログラムの１回の実行によって１回実行される該順次連続処理の実行時間を、抽出した該プログラムの実行毎に計測し、計測された最大の実行時間と最小の実行時間との割合に応じて、前記所定のパターン条件を満たすプログラムを特定する
ことを特徴とする監視対象選択プログラム。
【請求項４】
前記特定において、さらに、前記抽出したプログラムのうちで、１回の実行によってある１のプログラムを複数回実行させていたプログラムを、所定のパターン条件を満たすプログラムとして特定する
ことを特徴とする請求項３に記載の監視対象選択プログラム。
【請求項５】
監視対象のシステム上で動作する複数のプログラムのうち、オペレーティングシステムに対して発行したコマンド履歴が所定のパターン条件を満たすプログラムを特定する特定部と、
少なくとも、前記複数のプログラムから、特定した該プログラムを除外したプログラムを監視対象として選択する選択部と、
を備え、
前記特定部は、前記コマンド履歴から、所定時間連続して動作すると共に、前記プログラム内で順に連続して実行される順次連続処理のパターン情報を格納する格納部から取得した該パターン情報と一致する順次連続処理を行うプログラムを抽出し、抽出した該プログラムの１回の実行によって１回実行される該順次連続処理の実行時間を、抽出した該プログラムの実行毎に計測し、計測された最大の実行時間と最小の実行時間との割合に応じて、前記所定のパターン条件を満たすプログラムを特定する
ことを特徴とする監視対象選択装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視対象プログラムを選択する技術に関する。
【背景技術】
【０００２】
システムを監視するために、監視対象のシステム上で動作するプログラムやプロセスを事前に選択し、異常を検知することが行われている。また、各システム上においても、プログラムの動作を監視する監視プログラムが動作し、異常を検知することが行われている。
【０００３】
第１の技術として、コンピュータシステムにおける性能障害を検知する障害検知システムがある（例えば、特許文献１）。障害検知システムは、プログラム挙動検知部、性能情報収集部、性能パターン出力部、性能障害検知部を備える。プログラム挙動検知部は、コンピュータシステム上で動作する監視対象プログラムが監視対象挙動を実行したことを検知する。性能情報収集部は、監視対象プログラムが監視対象挙動を実行したことが検知されたタイミングで、当該監視対象プログラムに関連する性能を示す性能情報を収集する。性能パターン出力部は、監視対象プログラムが実行した監視対象挙動と当該監視対象プログラムに関連する性能情報とを対応付けてパターン化した性能パターンを作成する。性能障害検知部は、前記性能パターンを正常時の性能パターンと照合することで、性能障害を検知する。
【０００４】
第２の技術として、コンピュータ相互監視方式がある（例えば、特許文献２）。コンピュータ相互監視方式では、自コンピュータ監視プログラム監視手段は、自コンピュータ監視プログラム動作確認応答手段を呼び出し、自コンピュータ監視プログラムの動作を確認する。自コンピュータ監視プログラム動作確認応答手段は、呼び出されると、自コンピュータ監視プログラムの動作状況を返却する。被監視コンピュータ管理プログラム監視手段は、被監視コンピュータ管理プログラム動作確認応答手段を呼び出し、被監視コンピュータ管理プログラムの動作を確認する。被監視コンピュータ管理プログラム監視手段は、呼び出されると、被監視コンピュータ管理プログラムの動作状況を返却する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１９８０８７号公報
【特許文献２】特開２００４−３４１７７９号公報
【特許文献３】特開２００２−３２８８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
監視対象システムにおいて、監視対象のプログラムやプロセスの選択は種々の方法で行うことができる。しかしながら、ある程度の選択を行った後、不要な監視対象を除外する絞り込み作業が必要となる。
【０００７】
また、監視プログラム自身が異常終了した場合には、監視を十分に行うことができない。その一方で、各システムにおいて、どのような監視プログラムが稼働しているかについては、管理者は十分な知識を有していない場合も多い。そのため、監視対象のプログラムやプロセスを絞り込む際に、除外対象として良いか、判断することができない。
【０００８】
本発明では、一側面として、監視対象システムにおいて監視対象とすべきプログラムを選択する技術を提供する。
【課題を解決するための手段】
【０００９】
監視対象プログラムの選択方法において、コンピュータが、次の処理を行う。すなわち、コンピュータが、監視対象のシステム上で動作する複数のプログラムのうち、オペレーティングシステムに対して発行したコマンド履歴が所定のパターン条件を満たすプログラムを特定する。コンピュータが、少なくとも、前記複数のプログラムから、特定した該プログラムを除外したプログラムを監視対象として選択する。前記特定においては、前記コマンド履歴から、所定時間連続して動作すると共に、前記プログラム内で順に連続して実行される順次連続処理のパターン情報を格納する格納部から取得した該パターン情報と一致する順次連続処理を行うプログラムを抽出し、抽出した該プログラムの１回の実行によって１回実行される該順次連続処理の実行時間を、抽出した該プログラムの実行毎に計測し、計測された最大の実行時間と最小の実行時間との割合に応じて、前記所定のパターン条件を満たすプログラムを特定する。
【発明の効果】
【００１０】
本発明によれば、一側面として、監視対象システムにおいて監視対象とすべきプログラムを選択することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態における監視対象選択装置の一例を示す。
【図２】本実施形態に係るサーバの機能ブロック図を示す。
【図３】本実施形態に係る全体の処理を示す。
【図４】監視プログラムの処理パターンを説明するための図である。
【図５】本実施形態におけるマスターパターン情報の一例を示す。
【図６】本実施形態の実施例におけるサーバの構成を示す。
【図７】本実施形態の実施例におけるログ出力部より出力されるログファイル（トレース情報）の一例を示す。
【図８】本実施形態の実施例におけるマスター情報テーブルの一例を示す。
【図９】本実施形態の実施例における動作モードテーブルの一例を示す。
【図１０】本実施形態の実施例における動作時間テーブルの一例を示す。
【図１１】本実施形態の実施例におけるパターン作業テーブルの一例を示す。
【図１２】本実施形態の実施例におけるパターン明細作業テーブルの一例を示す。
【図１３】本実施形態の実施例における管理部の処理フローを示す。
【図１４】本実施形態の実施例におけるログ出力部の処理フローを示す。
【図１５】本実施形態の実施例における特定部の処理フローを示す。
【図１６】Ｓ３３の処理の詳細を示す。
【図１７】Ｓ３４の処理の詳細を示す。
【図１８】Ｓ５１の処理の詳細を示す。
【図１９】Ｓ５２の処理の詳細を示す。
【図２０】Ｓ３５の処理の詳細を示す。
【図２１】本実施形態の実施例における監視部の処理フローを示す。
【図２２】本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。
【発明を実施するための形態】
【００１２】
図１は、本実施形態における監視対象選択装置の一例を示す。監視対象選択装置１は、特定部２、選択部３を含む。監視対象選択装置１の一例として、サーバ１１，２１が挙げられる。
【００１３】
特定部２は、監視対象のシステム上で動作する複数のプログラムのうち、オペレーティングシステムに対して発行したコマンド履歴が所定のパターン条件を満たすプログラムを特定する。特定部２の一例として、Ｓ２−３及びＳ３の処理を行う特定部１５、またはＳ３３，Ｓ３４の処理を行う特定部２４が挙げられる。
【００１４】
選択部３は、少なくとも、複数のプログラムから、特定したプログラムを除外したプログラムを監視対象として選択する。選択部３の一例として、Ｓ３の処理を行う特定部１５、またはＳ３４の処理を行う特定部２４が挙げられる。
【００１５】
このように構成することにより、監視対象システムにおいて監視対象とすべきプログラムを特定することができる。
【００１６】
監視対象選択装置１は、さらに、格納部４を含む。格納部４は、プログラム内で順に連続して実行される順次連続処理のパターン情報を格納する。格納部４の一例として、マスターパターン情報３６を記憶する記憶部３１が挙げられる。
【００１７】
この場合、特定部２は、コマンド履歴から、所定時間連続して動作すると共に、パターン情報と一致する順次連続処理を行うプログラムを抽出する。それから、特定部２は、抽出したプログラムのうち同一プログラム内で複数回実行される順次連続処理の実行時間のそれぞれを計測する。そして、特定部２は、計測された最大の実行時間と最小の実行時間との割合に応じて、所定のパターン条件を満たすプログラムを特定する。
【００１８】
特定部２は、さらに、抽出したプログラムのうち、同じプログラムが複数回実行されているか否かに応じて、所定のパターン条件を満たすプログラムを特定する。
【００１９】
このように構成することにより、監視対象候補のプログラムから、監視する必要のあるプログラムに類似する処理パターンを有するプログラムを除外し、少数のプログラムを監視対象に決定することができる。これにより、業務システムに与える負荷を少しでも小さくすることができる。
【００２０】
以下に、本実施形態について詳述する。
図２は、本実施形態に係るサーバの機能ブロック図を示す。サーバ１１は、制御部１２、記憶部１７を含む。制御部１２は、管理部１３、収集部１４、特定部１５、監視部１６として機能する。
【００２１】
管理部１３は、収集部１４、特定部１５、監視部１６の機能を制御する。収集部１４は、実行された関数に基づくプロセスから出力されるログ（トレース情報）を収集する。特定部１５は、収集したトレース情報に基づいて、監視対象となる監視プログラムに対応するプロセスを特定する。監視部１６は、特定されたプロセスに対応する監視プログラムの監視を行なう。
【００２２】
記憶部１７は、収集したログ（トレース情報）、監視対象となる監視プログラムに対応するプロセスを特定するために用いるマスターパターン情報、監視対象を管理するマスター情報テーブル等を格納する。
【００２３】
図３は、本実施形態に係る全体の処理を示す。まず、管理部１３は、各プロセスがトレース情報を出力するように、収集モードに設定する。収集部１４は、各プロセスから出力されたトレース情報を収集する（Ｓ１）。
【００２４】
次に、特定部１５は、収集されたトレース情報と、予め登録されたマスターパターンとに基づいて、動作しているプロセス（プログラム）から、監視プログラムの候補を抽出する（Ｓ２）。マスターパターン情報は、監視対象のプログラムの実行により、繰り返し実行される１以上の関数の処理シーケンスのパターン情報であって、イベントや性能監視プログラムの特徴的な処理シーケンスをパターン化した情報である。
【００２５】
特定部１５は、監視プログラムの候補から例外のプログラムを除外し、監視対象となる監視プログラムを決定する（Ｓ３）。特定部１５は、監視対象として決定した監視プログラムに関する情報を、マスター情報としてマスター情報テーブルに登録する。
【００２６】
監視部１６は、マスター情報テーブルに登録した監視プログラムを監視する（Ｓ２４）。
【００２７】
ここで、Ｓ１〜Ｓ３の処理は、Ｓ４の処理を実現するための監視対象情報収集・登録処理であり、本実施形態の導入時に、および導入以降は定期的（例えば、１回／１週間）に行い、監視対象情報を最新化する。
【００２８】
Ｓ４は、Ｓ１〜Ｓ３で収集・登録した監視対象情報を活用し、本番環境にて日々日常的に動作し、監視プログラムの動作異常を監視し続ける。
【００２９】
以下に、Ｓ１〜Ｓ４の詳細について説明する。
Ｓ１は、管理部１３により、各プロセスがトレース情報を出力するように収集モードに設定されると、収集部１４は、各プロセスから出力されたトレース情報を収集する。本実施形態では、予め、オペレーティングシステム（ＯＳ）別に、所定の関数のライブラリが、その関数のライブラリとトレース情報を出力する関数とをラッピングした関数（ラッパー関数）のライブラリで置き換えられている。これにより、該当の関数が実行された時、ラッパー関数がトレース情報を出力する。
【００３０】
例えば、ＯＳの１つであるＬｉｎｕｘ（登録商標）の場合は、以下の手順で、所定の関数のライブラリをラッパー関数のライブラリで置き換える。まず、置き換える対象の関数は、例えば、fork/exec/open/creat/close/unlink/read/write/connect/send/recv/stat/waitであるとする。置き換える対象の関数のラッパー関数が準備され、そのラッパー関数が動的ライブラリとして作成される。
【００３１】
次に、ライブラリパスを設定する変数として、例えば、LD_PRELOAD/LD_LIBRARY_PATHというように、上記の動的ライブラリの場所が設定される。
【００３２】
これにより、管理部１３は、各プロセスがトレース情報を出力するように、収集モードに設定すると、各プロセスはトレース情報を出力する。その結果、収集部１４は、各プロセスから出力されたトレース情報を収集することができる。
【００３３】
Ｓ２では、特定部１５は、収集されたトレース情報と、予め登録されたマスターパターン情報とに基づいて、動作しているプロセス（プログラム）から、監視プログラムの候補を抽出する。
【００３４】
まず、特定部１５は、常駐プロセスを抽出する（Ｓ２−１）。特定部１５は、プロセスのトレース情報を解析して、常駐プロセスかどうかを判定して、常駐プロセスを抽出する。例えば、特定部１５は、一定時間（例：１日）以上動作し続けているプロセスを常駐プロセスと判定する。判定の結果、特定部１５は、常駐プロセスと判定したプロセスのプログラム名を、常駐プロセステーブルに格納する。
【００３５】
次に、特定部１５は、常駐プロセスの繰り返している処理シーケンスを抽出する（Ｓ２−２）。特定部１５は、常駐プロセスのトレース情報を解析して、それぞれのプロセスが繰り返している処理パターン（処理シーケンス、およびそのシーケンスの繰り返し間隔、定期的かどうかの情報）を抽出する。
【００３６】
ここで、トレース情報から、プログラムにおいて実行された関数の確認方法と、監視プログラムの特徴的な処理シーケンスのマスターパターンとについて説明する。監視プログラムの処理は、図４に示すパターンに分類できる。
【００３７】
図４は、監視プログラムの処理パターンを説明するための図である。性能情報を定期的に収集するプログラム（性能情報収集プログラム）は、パターンＰ１〜Ｐ３に分類することができる。
【００３８】
パターンＰ１の場合、性能情報収集プログラムがＯＳのコマンド（一定期間後情報を出力するタイプ）を実行することにより、性能情報が収集される。この方法では、処理は以下のシーケンスＰ１−１〜Ｐ１−４の繰り返しになる。
【００３９】
（Ｐ１−１）性能情報収集プログラムが、ＯＳのコマンドを実行する。この場合、fork関数、およびexec関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、fork関数、およびexec関数の実行を確認する。なお、実行するコマンド名は、exec関数の引数から取得できる。
【００４０】
（Ｐ１−２）性能情報収集プログラムが、ＯＳのコマンドの出力を読み込む。この場合、read関数が実行されるため、特定部１５は、ラッパー関数の出力情報からread関数の実行を確認できる。
【００４１】
（Ｐ１−３）性能情報収集プログラムが、読み込んだＯＳのコマンドの出力を解析する。
【００４２】
（Ｐ１−４）性能情報収集プログラムが、解析した結果をファイルに出力する（書き込む）。この場合、write関数が実行されるため、特定部１５は、ラッパー関数の出力情報からwrite関数の実行を確認することができる。
【００４３】
上記より、特定部１５は、ラッパー関数の出力情報から、パターンＰ１として、以下の処理シーケンスを特定できる。
P1: fork→exec→read→write
パターンＰ１の例としては、sarコマンドが実行されることにより、全体のＣＰＵ情報を取得する処理シーケンスが該当する。
【００４４】
パターンＰ２の場合、性能情報収集プログラムがＯＳのコマンド（即時に情報を出力するタイプ）を実行することにより、性能情報を収集する。この方法では、処理は以下のシーケンスＰ２−１〜Ｐ２−５の繰り返しになる。
【００４５】
（Ｐ２−１）性能情報収集プログラムが、ＯＳのコマンドを実行する。この場合、fork関数、およびexec関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、fork関数、およびexec関数の実行を確認することができる。なお、実行するコマンド名は、exec関数の引数から取得できる。
【００４６】
（Ｐ２−２）性能情報収集プログラムが、ＯＳのコマンドの出力を読み込む。この場合、read関数が実行されるため、特定部１５は、ラッパー関数の出力情報からread関数の実行を確認できる。
【００４７】
（Ｐ２−３）性能情報収集プログラムが、読み込んだＯＳのコマンドの出力を解析する。
【００４８】
（Ｐ２−４）性能情報収集プログラムが、解析した結果をファイルに出力する（書き込む）。この場合、write関数が実行されるため、特定部１５は、ラッパー関数の出力情報からwrite関数の実行を確認することができる。
【００４９】
（Ｐ２−５）性能情報収集プログラムが、一定期間待つ。この場合、sleep関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、sleep関数の実行を確認できる。
【００５０】
上記より、特定部１５は、ラッパー関数の出力情報から、パターンＰ２として、以下の処理シーケンスを特定できる。
P2: fork→exec→read→write→sleep
パターンＰ２の例としては、psコマンドが実行されることにより、プロセス毎のＣＰＵ情報を取得する処理シーケンスが該当する。
【００５１】
パターンＰ３の場合、性能情報収集プログラムが、サービス（FTP（file transfer protocol）、TELNET、Web（HTTP（HyperText Transfer Protocol））、Web（HTTPS）等）にアクセスして性能を実測して収集する。この方法では、処理は以下のシーケンスＰ３−１〜Ｐ３−５の繰り返しになる。
【００５２】
（Ｐ３−１）性能情報収集プログラムが、サービスに接続してリクエストを送信する。性能情報収集プログラムが、コマンド“connect”でサービスに接続し、コマンド“send”でリクエストを送信するため、特定部１５は、ラッパー関数の出力情報からコマンド“connect”、“send”を確認できる。また、引数から、サービスのIP（Internet Protocol）アドレス／ポート番号が取得できる。例えば、サービスが「FTP」の場合、ポート番号「21」が取得される。サービスが「TELNET」の場合、ポート番号「23」が取得される。サービスが「Web (HTTP)」の場合、ポート番号「80」が取得される。サービスが「Web (HTTPS)」の場合、ポート番号「443」が取得される。
【００５３】
（Ｐ３−２）性能情報収集プログラムが、サービスから応答を受信する。応答を受信する関数はrecvであり、特定部１５は、ラッパー関数の出力情報から、recv関数の実行を確認することができる。
【００５４】
（Ｐ３−３）性能情報収集プログラムが、読み込んだＯＳのコマンドの出力を解析する。
【００５５】
（Ｐ３−４）性能情報収集プログラムが、解析した結果をファイルに出力する（書き込む）。この場合、write関数が実行されるため、特定部１５は、ラッパー関数の出力情報からwrite関数の実行を確認することができる。
【００５６】
（Ｐ３−５）性能情報収集プログラムが、一定期間待つ。この場合、sleep関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、sleep関数の実行を確認できる。
【００５７】
上記より、特定部１５は、ラッパー関数の出力情報から、パターンＰ３として以下の処理シーケンスを確認することで特定できる。
P3: connect→send→recv→write→sleep
パターンＰ３の例としては、webサーバのレスポンス時間を実測して収集する場合が考えられる。
【００５８】
次に、性能情報収集プログラム以外の他の監視プログラムは、パターンＰ４〜Ｐ７に分類することができる。
【００５９】
パターンＰ４の場合、Webサービスの生死監視等の、サービス／サーバの生死監視について、処理は以下のシーケンスＰ４−１〜Ｐ４−５の繰り返しになる。
【００６０】
（Ｐ４−１）監視プログラムが、サービス（FTP（file transfer protocol）、TELNET、Web（HTTP（HyperText Transfer Protocol））、Web（HTTPS））に接続してリクエストを送信する。監視プログラムが、コマンド“connect”でサービスに接続し、コマンド“send”でリクエストを送信するため、特定部１５は、ラッパー関数の出力情報からコマンド“connect”、”send”を判断できる。また、引数から、サービスのIP（Internet Protocol）アドレス／ポート番号が取得できる。
【００６１】
（Ｐ４−２）監視プログラムが、サービスから応答を受信する。応答を受信する関数はrecvであり、特定部１５は、ラッパー関数の出力情報から、recv関数の実行を確認することができる。
【００６２】
（Ｐ４−３）監視プログラムが、recv関数の実行結果を解析する。
（Ｐ４−４）監視プログラムが、その解析の結果、サービスに異常がある場合、通知を出力する。
【００６３】
（Ｐ４−５）監視プログラムが、一定期間待つ。この場合、sleep関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、sleep関数の実行を確認できる。
【００６４】
上記より、特定部１５は、ラッパー関数の出力情報から、パターンＰ４として、以下の処理シーケンスを確認することで特定できる。
P4: connect→send→recv→sleep
【００６５】
パターンＰ５の場合、apacheプロセスの生死監視等の、プロセスの生死監視について、処理は以下のシーケンスＰ５−１〜Ｐ５−５の繰り返しになる。
【００６６】
（Ｐ５−１）監視プログラムが、プロセス一覧情報を取得するコマンドを実行する。この場合、fork/exec関数が実行されるため、特定部１５は、ラッパー関数の出力情報からfork/exec関数の実行を確認する。
【００６７】
（Ｐ５−２）監視プログラムが、fork/exec関数で実行されるコマンドの出力結果を読み込む。この場合、read関数が実行されるため、特定部１５は、ラッパー関数の出力情報からread関数の実行を確認できる。
【００６８】
（Ｐ５−３）監視プログラムが、read関数の実行結果を解析する。
（Ｐ５−４）監視プログラムが、その解析の結果、サービスに異常がある場合、通知を出力する。
【００６９】
（Ｐ５−５）監視プログラムが、一定期間待つ。この場合、sleep関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、sleep関数の実行を確認できる。
【００７０】
上記より、特定部１５は、ラッパー関数の出力情報から、パターンＰ５として以下の処理シーケンスを確認することで特定できる。
P5: fork→exec→read→sleep
【００７１】
パターンＰ６の場合、シスログファイルの更新監視等の、ファイルの更新監視について、処理はシーケンスＰ６−１〜Ｐ６−４の繰り返しになる。
【００７２】
（Ｐ６−１）監視プログラムが、ファイルの変更情報を取得する。コマンド「stat」が実行されるため、特定部１５は、ラッパー関数の出力情報からコマンド「stat」の実行を確認する。また、引数から、ファイル名が特定される。
【００７３】
（Ｐ６−２）監視プログラムが、取得したファイルの変更情報を解析する。
（Ｐ６−３）監視プログラムが、ファイルの変更情報に変更があった場合に解析の結果を出力する。この場合、write関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、write関数の実行を確認できる。
【００７４】
（Ｐ６−４）監視プログラムが、一定期間待つ。この場合、sleep関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、sleep関数の実行を確認できる。
【００７５】
上記より、特定部１５は、ラッパー関数の出力情報から、パターンＰ６として以下の処理シーケンスを確認することで特定できる。
P6: stat→sleep
【００７６】
パターンＰ７の場合、イベント発生有無の監視等の、イベント監視について、処理は以下のシーケンスＰ７−１〜Ｐ７−３の繰り返しになる。
【００７７】
（Ｐ７−１）監視プログラムが、イベントの発生を待つ。この場合、wait関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、wait関数の実行を確認できる。
【００７８】
（Ｐ７−２）監視プログラムが、発生したイベントの内容を読み込む。この場合、read関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、read関数の実行を確認できる。
【００７９】
（Ｐ７−３）イベントが発生した場合、監視プログラムが、通知を出力する。この場合、write関数が実行されるため、特定部１５は、ラッパー関数の出力情報から、write関数の実行を確認できる。
【００８０】
上記より、特定部１５は、ラッパー関数の出力情報から、パターンＰ７として、以下の処理シーケンスを確認することで特定できる。
P7: wait→read→write
【００８１】
それから、特定部１５は、Ｓ２−２で抽出したプロセスの処理パターンと、予め登録された監視プログラムの特徴的な処理シーケンスのマスターパターンとを照合して、監視プログラムの候補を特定する（Ｓ２−３）。ここでは、特定部１５は、Ｓ２−２で抽出した各プロセスの処理シーケンスを、マスターパターン（図５）と照合して、パターンが一致するプロセスを、監視プログラムの候補として抽出する。
【００８２】
ここで、Ｓ２−３の照合処理により監視プログラムの候補でないと判断される例を示す。プロセス「apache」について、このプロセスは、常時HTTPリクエストを受信しようとしている。HTTPリクエストを受信すると、プロセス（親プロセス）は子プロセスを起動して、受信したリクエストの処理を子プロセスに任せる。そして、親プロセスは、再びHTTPリクエストを受信しようとする。
【００８３】
プロセス「apache」の動作シーケンスは、以下の通りである。
recv→fork→exec→wait→recv→fork→exec→wait→
（ここで、recv→fork→exec→wait→が繰り返されるシーケンスである。）
【００８４】
照合処理では、上記動作シーケンスと、監視プログラムの特徴的なシーケンスであるＰ１〜Ｐ７のマスターパターンとが照合される。照合の結果、この動作シーケンスは、パターンＰ１〜Ｐ７の何れにも一致しないため、特定部１５は、apacheプロセスは、監視プログラムの候補でないと判定する。
【００８５】
次に、Ｓ３では、特定部１５は、監視プログラムの候補から例外のプログラムを除外し、監視対象となる監視プログラムを決定する。Ｓ２で特定したプログラムには、監視プログラムの他に、コマンドやジョブの起動／リモートサーバへのリクエスト送信とレスポンス受信を繰り返す特性を持つオンライン業務の制御プログラムまたはバッチジョブの制御プログラムも含まれている可能性がある。
【００８６】
ここでは、業務システムに与える負荷を少しでも小さくするために、イベント監視や性能情報監視をする監視プログラムの常駐プロセス以外を除外する。監視プログラムは、“同じコマンド（リクエスト送信）”を“一定間隔”で行う特性を持っている。例外プログラムの除外処理は、この特性と異なる以下の特性をチェックすることで実現する。
【００８７】
例えば、オンライン業務の制御プログラムの場合、ユーザの依頼があった時にオンライン業務を実行することから、処理シーケンスの実行は非定期的である。そこで、処理シーケンスが繰り返される周期の時間をチェックし、処理シーケンスの周期に２倍以上の差異が存在する場合、そのプログラムは除外する対象であると判定する。
【００８８】
バッチジョブの制御プログラムの場合、ジョブによって、定期的に実行するバッチジョブもあり、ユーザのコマンドで随時実行するバッチジョブもあるため、処理シーケンスの実行は、定期と非定期の両方がある。そこで、処理シーケンスが繰り返される周期の時間をチェックし、周期に２倍以上の差異が存在する場合、そのプログラムは除外する対象と判定する。周期に２倍以上の差異が存在しない場合、起動されるプログラムの名前をチェックし、同一名のプログラムが複数存在した場合、その同一名のプログラムを除外する対象と判定する。
【００８９】
これによって、特定部１５は、Ｓ２−３で特定したプログラムから、オンライン業務の制御プログラムおよびバッチジョブの制御プログラムを除外して、監視対象の監視プログラムを決定する。
【００９０】
Ｓ３では、特定部１５は、監視対象として決定した監視プログラムの処理シーケンスのパターン情報及びその関連情報をマスター情報としてマスター情報テーブルに登録する。このようにしてマスター情報テーブルが生成される。
【００９１】
図５は、本実施形態におけるマスターパターン情報の一例を示す。マスターパターン情報は、パターン毎に、処理シーケンスの実行パターンが格納されている。マスターパターン情報は、「パターン名」、「処理シーケンス」の項目を含む。
【００９２】
なお、本実施形態では、図５で示すパターンＰ１〜Ｐ７をマスターパターン情報としたが、これに限定されず、繰り返して関数が順次実行される動作シーケンスのパターンであればいずれをマスターパターン情報として登録してもよい。
【００９３】
次に、Ｓ４では、監視部１６は、マスター情報を用いて、監視対象として決定した監視プログラムを監視する。ここでは、マスター情報に登録された監視プログラム（監視対象）から監視プロセスのトレース情報が出力され、監視対象でないプログラムからトレース情報は出力されない。
【００９４】
監視部１６は、出力されたトレース情報を解析して、監視プロセスの動作パターンを抽出する。監視部１６は、トレース情報から解析した動作パターンと、マスター情報テーブルに格納されたマスターパターンとを照合して、動作中の監視プログラムの動作が異常あるか否かを判定する。
【００９５】
本実施形態によれば、コンピュータ上のイベントや性能監視を行っているプロセスを特定する際、特定部１５は、次の処理を行う。すなわち、特定部１５は、マスターパターン情報と、稼働中のプロセスが起動（呼出）するコマンド（リクエスト）の数・間隔の情報とに基づいて、イベントや性能監視プログラムと類似するシーケンスのプロセスを除外する。ここで、これにより、イベントや性能監視プログラムだけを特定することができる。また、業務サーバに負荷を与えずに（少数のプロセスのみを監視）監視できる。
【００９６】
次に、上述した実施形態の実施例について詳述する。
図６は、本実施形態の実施例におけるサーバの構成を示す。サーバ２１は、業務アプリケーションプログラムが稼動している業務サーバである。サーバ２１は、制御部２２、記憶部３１を含む。
【００９７】
所定の関数のライブラリをラッパー関数のライブラリで置き換えることにより、各プロセス４１は、起動時に、ログ出力部４２が組み込まれる。ログ出力部４２は、実行された関数に基づくログ（トレース情報）を出力する。
【００９８】
プロセス４１には、後述するように、監視対象となるプロセス１，２，・・・、監視対象から除外されるプロセスＭ，Ｎ，・・・、監視対象ではないプロセスＰ，Ｑ，・・・がある。
【００９９】
記憶部３１には、各プロセス４１のログ出力部４２から出力されるログファイル（トレース情報）３２、管理ＤＢ３３、動作時間テーブル３７、パターン作業テーブル３８、パターン明細テーブル３９等が格納される。管理ＤＢ３３は、マスター情報テーブル３４、動作モードテーブル３５、マスターパターン情報３６を格納する。動作モードテーブル３５は、制御部２２の動作モードを制御するためのテーブルである。
【０１００】
制御部２２は、管理部２３、特定部２４、監視部２５として機能する。管理部２３は、特定部２４、監視部２５の機能を制御する。特定部２４は、記憶部３１に格納されたログファイル３２に基づいて、監視対象となる監視プログラムに対応するプロセスを特定し、マスター情報テーブル３４に登録する。監視部２５は、マスター情報テーブル３４に登録されたプロセスに対応する監視プログラムの監視を行なう。
【０１０１】
図７は、本実施形態の実施例におけるログ出力部より出力されるログファイル（トレース情報）の一例を示す。ログファイル３２は、コマンドが実行された日時３２−１、プログラム名３２−２、関数名等（その関数の引数）３２−３を含む。
【０１０２】
図８は、本実施形態の実施例におけるマスター情報テーブルの一例を示す。マスター情報テーブル３４は、監視対象として決定したプログラム（プロセス）に関する情報を格納する。マスター情報テーブル３４は、「プログラム番号」３４−１、「プログラム名」３４−２、「プロセスＩＤ」３４−３、「パターンＩＤ」３４−４、「パターン番号」３４−５、「処理シーケンス」３４−６、「引数」３４−７、「間隔（秒）」３４−８の項目を含む。
【０１０３】
「プログラム番号」３４−１には、プログラム番号が格納される。「プログラム名」３４−２には、プログラムの名称が格納される。「プロセスＩＤ」３４−３には、プロセスを識別するプロセスＩＤが格納される。「パターンＩＤ」３４−４には、処理のパターンを識別するパターンＩＤが格納される。「パターン番号」３４−５には、パターンＩＤに対応する番号が格納される。「処理シーケンス」３４−６には、パターンＩＤで識別されるパターンに含まれる連続した複数の関数による処理シーケンスが格納される。「引数」３４−７には、「処理シーケンス」３４−６に格納された関数の引数が格納される。「間隔（秒）」３４−８には、処理シーケンスの繰り返し間隔（周期）が格納される。
【０１０４】
図９は、本実施形態の実施例における動作モードテーブルの一例を示す。動作モードテーブル３５は、「動作モード」３５−１、「設定日時」３５−２の項目を含む。
【０１０５】
「動作モード」３５−１には、制御部２２の動作モードを制御する情報が格納される。動作モード＝“１”（収集モード）は、監視対象情報を収集中であることを示す。動作モード＝“２”（監視モード）は、監視対象情報を収集済みで、監視中であることを示す。
「設定日時」３５−２には、動作モードを設定した日時が格納される。
【０１０６】
図１０は、本実施形態の実施例における動作時間テーブルの一例を示す。動作時間テーブル３７は、常駐プロセスを決定するために用いられるテーブルである。動作時間テーブル３７は、「プログラム番号」３７−１、「プログラム番号」３７−２、「動作時間（分）」３７−３の項目を含む。
【０１０７】
「プログラム番号」３７−１には、プログラムを識別する番号が格納される。「プログラム番号」３７−２には、そのプログラムの名称が格納される。「動作時間（分）」３７−３には、そのプログラムの動作時間が格納される。
【０１０８】
図１１は、本実施形態の実施例におけるパターン作業テーブルの一例を示す。パターン作業テーブル３８は、マスター情報テーブル３４へ、監視対象のプログラムの情報を登録する際、及び、監視前に監視対象を決定する際に用いられる作業テーブルである。
【０１０９】
パターン作業テーブル３８は、「プログラム番号」３８−１、「プログラム名」３８−２、「プロセスＩＤ」３８−３、「パターンＩＤ」３８−４、「パターン番号」３８−５、「処理シーケンス」３８−６、「引数」３８−７、「間隔（秒）」３８−８の項目を含む。パターン作業テーブル３８の有する項目は、マスター情報テーブル３４の有する項目と同じである。
【０１１０】
図１２は、本実施形態の実施例におけるパターン明細作業テーブルの一例を示す。パターン明細作業テーブル３９は、パターン作業テーブル３８に登録されたプログラムに対応する明細テーブルであって、マスター情報テーブル３４の「間隔（秒）」３４−８に登録する間隔を算出するために用いられるテーブルである。
【０１１１】
パターン明細作業テーブル３９は、「プログラム番号」３９−１、「Ｎｏ．」３９−２、「シーケンス時間」３９−３、「合計」３９−４の項目を含む。
【０１１２】
「プログラム番号」３９−１は、パターン作業テーブル３８の「プログラム番号」３８−１に格納されたプログラム番号が格納される。「Ｎｏ．」３９−２には、そのプログラムの実行回数が格納される。「シーケンス時間」３９−３は、可変の項目であり、そこには、パターン作業テーブル３８の「処理シーケンス」３８−６に登録された各関数のシーケンス毎の動作時間が格納される。
【０１１３】
次に、本実施形態の実施例の処理のフローについて説明する。
図１３は、本実施形態の実施例における管理部の処理フローを示す。管理部２３は、動作モードテーブル３５に、動作モード＝“１”（収集モード）を設定して、所定期間（例えば、１週間）、待つ（Ｓ１１）。これにより、図１４で説明するフローが実行される。
【０１１４】
所定期間経過後、管理部２３は、マスター情報登録プロセスを起動し、その完了を待つ（Ｓ１２）。これにより、図１５で説明するフローが実行される。
【０１１５】
管理部２３は、動作モードテーブル３５に、動作モード＝“２”（監視モード）を設定して、監視プロセスを起動する（Ｓ１３）。これにより、図２１で説明するフローが実行される。
【０１１６】
図１４は、本実施形態の実施例におけるログ出力部の処理フローを示す。各プログラムで使用する関数は、ラッパー関数のライブラリを用いるように設定されている。そのプログラムからラッパー関数が呼び出されることにより起動するプロセスは、ログ出力部４２として機能し、ラッピングされている本来の関数を呼び出す（Ｓ２１）。
【０１１７】
ログ出力部４２は、呼び出し元のプログラム名を取得する（Ｓ２２）。ログ出力部４２は、動作モードテーブル３５を参照して、動作モードを判定する（Ｓ２３）。動作モード＝１（収集モード）の場合（Ｓ２３で「Ｙｅｓ」）、ログ出力部４２は、図７に示すように、そのプロセスに基づいて、呼び出し時刻、復帰時刻、プログラム名、プロセスＩＤ，引数、復帰値等のトレース情報をログファイル３２に出力する（Ｓ２５）。
【０１１８】
動作モード＝２（監視モード）の場合（Ｓ２３で「Ｙｅｓ」）、ログ出力部４２は、マスター情報テーブル３４を参照し、呼び出し元のプログラムについてのマスター情報が登録されているか否かを判定する（Ｓ２４）。
【０１１９】
呼び出し元のプログラムに関するマスター情報が登録されている場合（Ｓ２４で「Ｙｅｓ」）、ログ出力部４２は、次の処理を行う。すなわち、ログ出力部４２は、図７に示すように、そのプロセスに基づいて、呼び出し時刻、復帰時刻、プログラム名、プロセスＩＤ，引数、復帰値等のトレース情報をログファイル３２に出力する（Ｓ２５）。
【０１２０】
呼び出し元のプログラムについてのマスター情報が登録されていない場合（Ｓ２４で「Ｎｏ」）、本フローは終了する。
【０１２１】
図１５は、本実施形態の実施例における特定部の処理フローを示す。特定部２４は、管理部２３からの制御に基づいて、常駐プロセスを抽出する（Ｓ３１）。Ｓ３１では、特定部２４は、ログファイル３２に基づいて、プログラム（プロセス）の起動時刻を解析し、その起動時刻から各プログラム（プロセス）の動作時間を算出する。特定部２４は、算出した各プログラム（プロセス）の動作時間を動作時間テーブル３７に登録する。特定部２４は、動作時間テーブル３７に登録した動作時間から、一定時間以上（例えば、１日）動作し続けたプロセスを常駐プロセスと判定し、他のプロセスを非常駐プロセスとして除外する。
【０１２２】
次に、特定部２４は、ログファイル３２から、各常駐プロセスの処理シーケンスを抽出する（Ｓ３２）。Ｓ３２では、特定部２４は、ログファイル３２から、Ｓ３１で判定した常駐プロセスに対応するプログラムから呼び出された関数を時刻順に抽出する。
【０１２３】
次に、特定部２４は、Ｓ３２で抽出した処理シーケンスのパターンから、マスターパターン情報３６と一致する処理シーケンスのパターンのプロセス（プログラム）を抽出する（Ｓ３３）。Ｓ３３の処理の詳細については、後述する。
【０１２４】
次に、特定部２４は、Ｓ３３で抽出したプロセス（プログラム）から、例外プロセスを除外する（Ｓ３４）。Ｓ３４の処理については後述する。
【０１２５】
そして、特定部２４は、Ｓ３４で残ったプロセス（プログラム）に関する情報をマスター情報として、マスター情報テーブル３４に登録する（Ｓ３５）。Ｓ３５の処理については後述する。
【０１２６】
図１６は、Ｓ３３の処理の詳細を示す。Ｓ３３の処理は、Ｓ３２において処理シーケンスを抽出した全てのプロセスについて行う。
【０１２７】
特定部２４は、Ｓ３２で、処理シーケンスが抽出されたプロセスのうち、１つのプロセスの処理シーケンスを取り出す（Ｓ４１）。
【０１２８】
特定部２４は、取り出したプロセスの処理シーケンスが、マスターパターン情報３６に登録されたパターンＰ１〜Ｐ７のいずれかと一致するかを判定する（Ｓ４２）。取り出したプロセスの処理シーケンスが、マスターパターン情報３６に登録されたパターンＰ１〜Ｐ７のいずれとも一致しない場合（Ｓ４２で「Ｎｏ」）、特定部２４は、Ｓ４５の処理を行う。
【０１２９】
取り出したプロセスの処理シーケンスが、マスターパターン情報３６に登録されたパターンＰ１〜Ｐ７のいずれかと一致する場合（Ｓ４２で「Ｙｅｓ」）、特定部２４は、取り出したプロセスが監視対象プロセスの候補であると判定する（Ｓ４３）。
【０１３０】
特定部２４は、その監視対象プロセス候補についての情報を、パターン作業テーブル３８、パターン明細作業テーブル３９に記録する（Ｓ４４）。すなわち、特定部２４は、ログファイル３２及びマスターパターン情報３６を用いて、パターン作業テーブル３８に、その監視対象プロセス候補についてのエントリ（「間隔（秒）」３８−８以外の項目）を登録する。また、特定部２４は、ログファイル３２及びマスターパターン情報３６を用いて、パターン明細作業テーブル３９に、エントリを登録する。
【０１３１】
特定部２４は、Ｓ３２で処理シーケンスを抽出したプロセスに、未処理のものがある場合（Ｓ４５で「Ｙｅｓ」）、次のプロセスを取り出し（Ｓ４６）、Ｓ４２〜Ｓ４４を行う。Ｓ３２で処理シーケンスを抽出した全プロセスについて、処理が完了すると（Ｓ４５で「Ｎｏ」）、本フローは終了する。
【０１３２】
図１７は、Ｓ３４の処理の詳細を示す。特定部２４は、Ｓ３３で決定した監視対象プロセス候補から、複数コマンドを起動するプログラムを除外する（Ｓ５１）。
【０１３３】
それから、特定部２４は、Ｓ３３で決定した監視対象プロセス候補から、処理シーケンスの繰り返し間隔に２倍以上の差異があるプログラムを除外する（Ｓ５２）。
【０１３４】
図１８は、Ｓ５１の処理の詳細を示す。特定部２４は、パターン作業テーブル３８の先頭のプログラムのエントリを取り出す（Ｓ６１）。特定部２４は、取り出したエントリから、プログラム名、プロセスＩＤ、パターン名を抽出する（Ｓ６２）。
【０１３５】
特定部２４は、パターン作業テーブル３８において、取り出したエントリ以降に同じプログラム名及びプロセスＩＤのエントリがあるかを判定する（Ｓ６３）。パターン作業テーブル３８において、取り出したエントリ以降に同じプログラム名及びプロセスＩＤのエントリがない場合、特定部２４は、Ｓ６６の処理を行う。
【０１３６】
パターン作業テーブル３８において、取り出したエントリ以降に同じプログラム名及びプロセスＩＤのエントリがある場合（Ｓ６３で「Ｙｅｓ」）、特定部２４は、そのエントリのプロセスが例外プログラムであると判定する（Ｓ６４）。
【０１３７】
特定部２４は、パターン作業テーブル３８及びパターン明細作業テーブル３９から、例外プログラムであると判定したエントリを全て削除する（Ｓ６５）。
【０１３８】
特定部２４は、パターン作業テーブル３８の次のエントリを取り出し（Ｓ６６で「Ｎｏ」、Ｓ６７）、Ｓ６２〜Ｓ６５を行う。パターン作業テーブル３８に登録された全エントリについて、処理が完了すると（Ｓ６６で「Ｙｅｓ」）、本フローは終了する。
【０１３９】
図１９は、Ｓ５２の処理の詳細を示す。特定部２４は、パターン作業テーブル３８の先頭のプログラムのエントリを取り出す（Ｓ７１）。特定部２４は、パターン明細作業テーブル３９から、その取り出したエントリのプログラムに対応する各エントリの「合計」３９−４から合計値を取得する。そして、特定部２４は、その取得した合計値のうち、最大の合計値と、最小の合計値を取得する（Ｓ７２）。
【０１４０】
特定部２４は、最大の合計値が最小の合計値の２倍以上か否かを判定する（Ｓ７３）。最大の合計値が最小の合計値の２倍未満の場合（Ｓ７３で「Ｎｏ」）、特定部２４は、Ｓ７６の処理を行う。
【０１４１】
最大の合計値が最小の合計値の２倍以上の場合がある場合（Ｓ７３で「Ｙｅｓ」）、特定部２４は、そのエントリのプロセスが例外プログラムであると判定する（Ｓ７４）。
【０１４２】
特定部２４は、パターン作業テーブル３８及びパターン明細作業テーブル３９から、例外プログラムであると判定したエントリを全て削除する（Ｓ７５）。
【０１４３】
特定部２４は、パターン作業テーブル３８の次のエントリを取り出し（Ｓ７６で「Ｎｏ」、Ｓ７７）、Ｓ７２〜Ｓ７５を行う。パターン作業テーブル３８に登録された全エントリについて、処理が完了すると（Ｓ７６で「Ｙｅｓ」）、本フローは終了する。
【０１４４】
なお、本実施例では、最大の合計値が最小の合計値のｎ（ｎ＝２）倍以上か否かについて判定したが、ｎの値は２に限定されず、所定の値、例えば、ｎ＝１．５等であってもよい。
【０１４５】
図２０は、Ｓ３５の処理の詳細を示す。特定部２４は、パターン作業テーブル３８の内容をマスター情報テーブル３４に格納する（Ｓ８１）。
【０１４６】
それから、特定部２４は、プログラム毎に、パターン明細作業テーブル３９の「合計」の平均値を算出する。特定部２４は、そのプログラム毎に算出した合計の平均値を、マスター情報テーブル３４の「間隔（秒）」３４−８にセットする（Ｓ８２）。これにより、監視対象のプログラム（プロセス）についての情報（マスター情報）がマスター情報テーブル３４に登録される。
【０１４７】
図２１は、本実施形態の実施例における監視部の処理フローを示す。動作モードテーブル３５に、監視モードが設定されている場合、図１４で説明したように、ログファイル３２は、マスター情報テーブル３４に登録されているプロセスから出力される。監視部２５は、そのマスター情報テーブル３４に登録されているプロセスから出力されたログファイル３２から、各プロセスの動作パターン（処理シーケンス）を抽出する（Ｓ９１）。
【０１４８】
監視部２５は、ログファイル３２から抽出したプロセスの動作パターンと、マスター情報テーブル３４に登録されたそのプロセスに対応するプロセスのパターンとを比較する（Ｓ９２）。
【０１４９】
比較の結果、動作異常がある場合（Ｓ９３で「Ｙｅｓ」）、監視部２５は、予め設定した動作（例えば、異常を通知する電子メールを送信する、所定のコマンドを実行する、等）を行う（Ｓ９４）。
【０１５０】
図２２は、本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。コンピュータ５０は、サーバ１１、２１として機能する。コンピュータ５０は、ＣＰＵ５２、ＲＯＭ５３、ＲＡＭ５６、通信Ｉ／Ｆ５４、記憶装置５７、出力Ｉ／Ｆ５１、入力Ｉ／Ｆ５５、読み取り装置５８、バス８９、出力機器６１、入力機器６２によって構成されている。
【０１５１】
ここで、ＣＰＵは、中央演算装置を示す。ＲＯＭは、リードオンリメモリを示す。ＲＡＭは、ランダムアクセスメモリを示す。Ｉ／Ｆは、インターフェースを示す。バス５９には、ＣＰＵ５２、ＲＯＭ５３、ＲＡＭ５６、通信Ｉ／Ｆ５４、記憶装置５７、出力Ｉ／Ｆ５１、入力Ｉ／Ｆ５５、及び読み取り装置５８が接続されている。読み取り装置５８は、可搬型記録媒体を読み出す装置である。出力機器６１は、出力Ｉ／Ｆ５１に接続されている。入力機器６２は、入力Ｉ／Ｆ５５に接続にされている。
【０１５２】
記憶装置５７としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置５７またはＲＯＭ５３には、ＣＰＵ５２を管理部１３，２３、収集部１４、ログ出力部４２、特定部１５，２４、監視部１６，２５として機能させるプログラムが格納されている。また、記憶装置５７またはＲＯＭ５３には、ログファイル３２、管理ＤＢ３３、動作モードテーブル３７、パターン作業テーブル３８、パターン明細作業テーブルが格納されている。ＲＡＭ５６には、情報が一時的に記憶される。
ＣＰＵ５２は、本実施形態に係るプログラムを読み出し、当該プログラムを実行する。
【０１５３】
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク６０、および通信Ｉ／Ｆ５４を介して、例えば記憶装置５７に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置５８にセットされて、ＣＰＵ５２によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカード、ＵＳＢメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置５８によって読み取られる。
【０１５４】
また、入力機器６２には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器６１には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク６０は、インターネット、ＬＡＮ、ＷＡＮ、専用線、有線、無線等の通信網であってよい。
【０１５５】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１５６】
１      監視対象選択装置
２      特定部
３      選択部
４      格納部
１１    サーバ
１２    制御部
１３    管理部
１４    収集部
１５    特定部
１６    監視部
１７    記憶部
２１    サーバ
２２    制御部
２３    管理部
２４    特定部
２５    監視部
３１    記憶部
３２    ログファイル
３３    管理ＤＢ
３４    マスター情報テーブル
３５    動作モードテーブル
３６    マスターパターン情報
３７    動作時間テーブル
３８    パターン作業テーブル
３９    パターン明細テーブル
４１    プロセス
４２    ログ出力部
【図１】
0006390208.tif 000002
【図２】
0006390208.tif 000003
【図３】
0006390208.tif 000004
【図４】
0006390208.tif 000005
【図５】
0006390208.tif 000006
【図６】
0006390208.tif 000007
【図７】
0006390208.tif 000008
【図８】
0006390208.tif 000009
【図９】
0006390208.tif 000010
【図１０】
0006390208.tif 000011
【図１１】
0006390208.tif 000012
【図１２】
0006390208.tif 000013
【図１３】
0006390208.tif 000014
【図１４】
0006390208.tif 000015
【図１５】
0006390208.tif 000016
【図１６】
0006390208.tif 000017
【図１７】
0006390208.tif 000018
【図１８】
0006390208.tif 000019
【図１９】
0006390208.tif 000020
【図２０】
0006390208.tif 000021
【図２１】
0006390208.tif 000022
【図２２】
0006390208.tif 000023