(57)【要約】【課題】システムの動作状況に合わせてタイムアウト時間を設定すること。【解決手段】監視制御部３００は、システムの稼働状況を監視する複数の監視処理それぞれに対して監視処理を強制終了する第１のタイムアウト時間を設定して実行された複数の監視処理の実行時間それぞれを取得し、複数の監視処理を開始する際に、取得した実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する。【選択図】図２
2020004112.tif 000002
【特許請求の範囲】
【請求項１】
システムの稼働状況を監視する複数の監視処理それぞれに対して前記監視処理を強制終了する第１のタイムアウト時間を設定して実行された前記複数の監視処理の実行時間それぞれを取得し、
再び前記複数の監視処理を開始する際に、取得した前記実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する、
処理をコンピュータに実行させることを特徴とする監視制御プログラム。
【請求項２】
設定した前記第２のタイムアウト時間に達して強制終了になった監視処理の数に応じて、複数の監視処理を管理する前記監視制御プログラムを停止する処理を前記コンピュータにさらに実行させることを特徴とする請求項１に記載の監視制御プログラム。
【請求項３】
前記設定する処理は、前記第２のタイムアウト時間の設定時から遡って過去の所定回数分の実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする請求項１または２に記載の監視制御プログラム。
【請求項４】
前記設定する処理は、前記第２のタイムアウト時間の設定時との間で曜日または時刻のうち少なくともいずれか１つを含む時間条件が類似する実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする請求項３に記載の監視制御プログラム。
【請求項５】
システムの稼働状況を監視する複数の監視処理それぞれに対して前記監視処理を強制終了する第１のタイムアウト時間を設定して実行された前記複数の監視処理の実行時間それぞれを取得し、
再び前記複数の監視処理を開始する際に、取得した前記実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する、
処理をコンピュータが実行することを特徴とする監視制御方法。
【請求項６】
システムの稼働状況を監視する複数の監視処理それぞれに対して前記監視処理を強制終了する第１のタイムアウト時間を設定して実行された前記複数の監視処理の実行時間それぞれを取得する取得部と、
再び前記複数の監視処理を開始する際に、取得した前記実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する設定部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視制御プログラム、監視制御方法および情報処理装置に関する。
【背景技術】
【０００２】
安定稼働や障害対応といった側面から、システムの動作を監視する仕組みがシステムに組み込まれる。例えば、エージェントと呼ばれる監視用のソフトウェアが監視対象とするシステムにインストールされることがある。このエージェントは、システムの運用者等により定義された項目、例えばシステムの各種のリソースやネットワーク、アプリケーションなどごとに監視用プログラムを実行することで、システム監視を実現する。
【０００３】
このようにエージェントが実行する監視用プログラムは、システムの運用者等が自由に作成することができる反面で、監視用プログラムが一因となってシステムに意図しない不具合が生じたり、システム監視時にループが発生したりする一面もある。この場合、エージェントがエージェント以外のソフトウェアの動作に悪影響を与える結果、監視という側面で用いられるエージェントがシステムに与えられた本来のタスクを阻害することになる。これを抑止する側面から、監視用プログラムが実行する監視処理には、一定期間で監視処理を強制終了するタイムアウト時間が設定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３８５４３号公報
【特許文献２】国際公開第２０１４／０５４２７４号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の技術には、システム監視のタイムアウト時間を適切に設定できないという一面がある。
【０００６】
すなわち、上記のタイムアウトの設定は、システムの運用者等による手動設定に委ねられる現状がある。このように手動設定が行われるタイムアウト時間は、必ずしもシステムの動作状況に対応するとは限らないので、監視処理を適切なタイミングで打ち切ることができるとは限らない。
【０００７】
これに加えて、上記のタイムアウト時間には、固定値が設定されるが、システムの動作状況は必ずしも一定とは限らない。それ故、手動設定が行われたタイムアウト時間がある時点では妥当な値であったとしても、別の時点ではそのタイムアウト時間が妥当な値であるとは限らない。例えば、繁忙期や閑散期などの時間的な条件によってシステムの負荷状態は変化し、負荷状態によって監視用プログラムが実行する監視処理の所要時間も左右される。このようにシステムの動作状況が動的に変化する状況の下で固定値のタイムアウト時間を設定したのでは、システムの動作状況の変化によってタイムアウト時間に過不足が生じる。例えば、タイムアウト時間が監視処理の所要時間よりも短すぎればシステム監視が機能せず、また、タイムアウト時間が監視処理の所要時間よりも長すぎれば監視用プログラムが一因となってシステム本来のタスクが阻害されることもある。
【０００８】
１つの側面では、本発明は、システムの動作状況に合わせてタイムアウト時間を設定できる監視制御プログラム、監視制御方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、監視制御プログラムは、システムの稼働状況を監視する複数の監視処理それぞれに対して前記監視処理を強制終了する第１のタイムアウト時間を設定して実行された前記複数の監視処理の実行時間それぞれを取得し、再び前記複数の監視処理を開始する際に、取得した前記実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する、処理をコンピュータに実行させる。
【発明の効果】
【００１０】
システム監視のタイムアウトを適切に設定できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る監視制御プログラムのユースケースの一例を示す図である。
【図２】図２は、実施例１に係るホストの機能的構成の一例を示すブロック図である。
【図３】図３は、実績ファイル３４の一例を示す図である。
【図４】図４は、実施例１に係る起動処理の手順を示すフローチャートである。
【図５】図５は、実施例１に係る第１の停止処理の手順を示すフローチャートである。
【図６】図６は、実施例１に係る第２の停止処理の手順を示すフローチャートである。
【図７】図７は、実績ファイル３４の他の一例を示す図である。
【図８】図８は、実施例１及び実施例２に係る監視制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る監視制御プログラム、監視制御方法および情報処理装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［ユースケースの一例］
図１は、実施例１に係る監視制御プログラムのユースケースの一例を示す図である。図１には、あくまでユースケースの一例として、ホスト３０−１〜３０−ｎのハードウェアを始め、ソフトウェアやネットワークを含むシステムＳＹＳを監視する例を示す。図１に示すように、システムＳＹＳの監視には、監視対象の一例として示すシステムＳＹＳそのものの他にも、マネージャサーバ１０及び運用者端末５０などを利用することができる。以下、ホスト３０−１〜３０−ｎのことを「ホスト３０」と記載することがある。
【００１４】
これらのうち、マネージャサーバ１０及びホスト３０の間は、任意のネットワークを介して接続される。また、マネージャサーバ１０及び運用者端末５０の間も、任意のネットワークを介して接続できる他、コネクタ等の端子を介してポート間を接続することもできる。例えば、ネットワークには、有線または無線を問わず、構内通信網や広域通信網などの任意の種類の通信網が対応する。なお、図１に示すトポロジは、あくまで監視機能を説明する側面から模式化されたものに過ぎず、実際のトポロジが図示のものに限定される訳ではない。例えば、ホスト３０及び運用者端末５０が接続されることを妨げない。
【００１５】
ここで、システムＳＹＳの監視は、一例として、ホスト３０単位で当該ホスト３０を監視する項目が定義された定義ファイルＤＦ、ホスト３０を操作するＡＰＩ（Application  Programming  Interface）を提供するマネージャ１、監視用プログラム３ａ〜３ｎの制御を行うエージェント２をパッケージソフトウェアとして提供することにより、実現される。以下、監視用プログラム３ａ〜３ｎのことを「監視用プログラム３」と記載することがある。
【００１６】
より詳細には、上記の定義ファイルＤＦは、システムＳＹＳの運用者等が使用する運用者端末５０により作成される。例えば、定義ファイルＤＦには、ホスト３０単位で当該ホスト３０を監視する項目、例えばリソースやネットワーク、アプリケーションなどを始め、各項目に対応する監視処理を実行する監視用プログラム３を実行する実行条件などが定義される。このような定義ファイルＤＦにしたがって、マネージャサーバ１０上で動作するマネージャ１、及び、ホスト３０上で動作するエージェント２が連携することより、システムＳＹＳが監視される。例えば、マネージャ１は、監視が指定された項目に対応する監視用プログラム３をエージェント２に配布したり、エージェント２から監視結果が記述された実績ファイルを収集したりする。また、エージェント２は、監視用プログラム３ａ〜３ｎを定義ファイルＤＦに定義された周期で起動し、監視用プログラム３ａ〜３ｎに監視処理を実行させる。
【００１７】
このように、マネージャ１が実行されるマネージャサーバ１０、エージェント２が実行されるホスト３０、及び、定義ファイルＤＦの作成に用いる運用者端末５０は、いずれも機能を分類する上で付与されたラベルであり、そのハードウェア構成は限定されない。このように特定のハードウェアに限定されないという断りの下で例を挙げれば、ホスト３０には、ＷｅｂサーバやＡＰ（Application）サーバ、ＤＢ（DataBase）サーバ、メインフレームの他、ロードバランサなどが対応する。また、運用者端末５０には、パーソナルコンピュータなどのデスクトップ型のコンピュータなどが対応する。これはあくまで一例であり、運用者端末５０は、ラップトップ型のコンピュータや携帯端末装置、ウェアラブル端末などの任意のコンピュータであってかまわない。
【００１８】
［課題の一側面］
上記の背景技術の欄でも説明した通り、エージェント２が実行する監視用プログラム３として、ＣＰＵ（Central  Processing  Unit）やメモリ、ストレージなどのリソースの使用状況を監視する汎用の監視用プログラムがパッケージソフトを提供するベンダーにより用意される他、運用者端末５０を通じて、運用者等がＷｅｂやＡＰなどのシステムＳＹＳ上の要件に対応してカスタマイズされた監視用プログラムを自由に作成することができる。このようなカスタマイズによって監視の自由度が高まる反面で、監視用プログラム３が一因となってホスト３０に意図しない不具合が生じたり、監視用プログラム３が実行する監視処理にループが発生したりする一面もある。この場合、エージェント２がエージェント２以外のソフトウェア、例えばＷｅｂサービスプログラムやＷｅｂアプリケーションプログラムの動作に悪影響を与える結果、監視という側面で用いられるエージェント２がシステムＳＹＳに与えられた本来のタスクを阻害することになる。これを抑止する側面から、監視用プログラム３が実行する監視処理には、一定期間で監視処理を打ち切るタイムアウト時間が設定される。
【００１９】
しかしながら、システム監視のタイムアウト時間を適切に設定することは困難であるという側面がある。
【００２０】
その一因として、システムＳＹＳの運用者等による手動設定に委ねられることが挙げられる。手動設定では、システムＳＹＳの運用者の勘や経験によって精度が左右されるので、妥当な値がタイムアウト時間に設定されることは限らない。
【００２１】
他の一因として、タイムアウト時間に固定値が設定されることが挙げられる。すなわち、たとえ手動設定が行われたタイムアウト時間がある時点では妥当な値であったとしても、別の時点ではそのタイムアウト時間が妥当な値であるとは限らない。例えば、繁忙期や閑散期などの時間的な条件によって各ホスト３０の負荷状態は変化し、負荷状態によって監視用プログラム３が実行する監視処理の所要時間も変化する。このように各ホスト３０の動作状況が動的に変化する状況の下で固定値のタイムアウト時間を設定したのでは、システムＳＹＳの動作状況の変化によってタイムアウト時間に過不足が生じる。例えば、タイムアウト時間が監視処理の所要時間よりも短すぎればシステム監視が機能せず、また、タイムアウト時間が監視処理の所要時間よりも長すぎれば監視用のソフトウェアが一因となってシステムＳＹＳ本来のタスクが阻害されることもある。
【００２２】
［課題解決のアプローチの一側面］
そこで、本実施例に係るエージェント２は、監視用プログラム３を起動する際、過去に監視用プログラム３が実行した監視処理の所要時間の実測値を取得し、当該実測値に応じて監視処理を強制終了するタイムアウト時間を設定する。このように、監視用プログラム３が監視処理を正常終了する場合の所要時間の実測値をタイムアウト時間の設定に用いるので、タイムアウト時間の設定値をシステムＳＹＳの動作状況に近付けることができる。さらに、監視用プログラム３が起動される度に異なる実測値がタイムアウト時間の設定に用いられるので、システムＳＹＳの動作状況の変化にタイムアウト時間の設定値を追従させることができる。したがって、本実施例に係るエージェント２によれば、システムＳＹＳの動作状況に合わせてタイムアウト時間を設定することが可能になる。
【００２３】
［ホスト３０の構成］
図２は、実施例１に係るホストの機能的構成の一例を示すブロック図である。図２には、説明の便宜上、上記の監視制御プログラムに対応する機能に関連する機能部を抜粋して示すが、これ以外にも、既存のコンピュータがデフォルトまたはオプションで装備する機能部がホスト３０に備わることを妨げない。
【００２４】
図２に示すように、ホスト３０は、通信Ｉ／Ｆ（InterFace）部３１と、記憶部３３と、制御部３５とを有する。ホスト３０は、情報処理装置の一例に対応する。
【００２５】
通信Ｉ／Ｆ部３１は、他の装置、例えばマネージャサーバ１０などとの間で通信制御を行うインタフェースである。
【００２６】
一実施形態として、通信Ｉ／Ｆ部３１には、ＬＡＮカードなどのネットワークインタフェースカードなどが対応する。例えば、通信Ｉ／Ｆ部３１は、マネージャサーバ１０から定義ファイルＤＦを始め、監視用プログラムの配信を受け付けたり、あるいは監視用プログラムの実行結果が記録された実績ファイルをマネージャサーバ１０へ出力したりする。
【００２７】
記憶部３３は、制御部１５で実行されるＯＳ（Operating  System）を始め、上記のエージェント２や監視用プログラム３ａ〜３ｎなどのアプリケーションプログラムなどの各種プログラムおよび各種のプログラムに用いられるデータを記憶するストレージの一例に対応する。
【００２８】
一実施形態として、記憶部３３は、ホスト３０における補助記憶装置として実装することができる。例えば、記憶部３３には、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などを採用できる。なお、記憶部３３は、必ずしも補助記憶装置として実装されずともよく、ホスト３０における主記憶装置として実装することもできる。この場合、記憶部３３には、各種の半導体メモリ素子、例えばＲＡＭ（Random  Access  Memory)やフラッシュメモリを採用できる。
【００２９】
記憶部３３は、制御部３５が実行するプログラムに用いられるデータの一例として、実績ファイル３４Ａ〜３４Ｎを記憶する。これらのデータ以外にも、記憶部３３には、他の電子データが記憶されることとしてもかまわない。例えば、記憶部３３は、ホスト３０−１〜３０−ｎごとに定義された定義ファイルＤＦのうち当該ホスト３０に対応する定義ファイルＤＦをなども併せて記憶することもできる。
【００３０】
実績ファイル３４Ａ〜３４Ｎは、いずれも監視用プログラム３ａ〜３ｎの監視結果が実績として記述されたデータである。以下、実績ファイル３４Ａ〜３４Ｎのことを「実績ファイル３４」と記載する場合がある。
【００３１】
一実施形態として、実績ファイル３４には、監視用プログラム３が実行する監視処理の開始日時、終了日時および実行時間などの項目が対応付けられたデータを採用することができる。図３は、実績ファイル３４の一例を示す図である。図３には、監視用プログラム３が監視処理を実行する度に当該監視処理に関する開始日時、終了日時および実行時間を含むレコードが追加して記述される例が示されている。図３に示す実績ファイル３４の１行目で言えば、監視処理を２０１８年４月１日の１３時１０分００秒００．０２４ミリ秒に開始した後に２０１８年４月１日の１３時１０分０３秒０３．０３０ミリ秒に終了し、所要時間が３００６ミリ秒であったことを意味する。図３に示す２行目以降のレコードにおいても、各フィールドの値は異なれども、開始日時、終了日時および実行時間の各項目が持つ意味は共通する。なお、図３には、あくまで一例として、実績ファイル３４がＣＳＶ（Comma-Separated  Values）で記述される例が示されているが、他の形式、例えばＸＭＬ（Extensible  Markup  Language）で記述されることとしてもかまわない。
【００３２】
制御部３５は、ホスト３０の全体制御を行う処理部である。
【００３３】
一実施形態として、制御部３５は、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、ＣＰＵやＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサ、例えばＧＰＵ（Graphics  Processing  Unit）やＤＳＰ（Digital  Signal  Processor）の他、ＧＰＧＰＵ（General-Purpose  computing  on  Graphics  Processing  Units）により実装することができる。この他、制御部３５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されることとしてもかまわない。
【００３４】
制御部３５は、図示しない主記憶装置として実装されるＲＡＭのワークエリア上に、常駐のプログラムとして設定されたエージェント２を展開してエージェント２を実行することにより、監視制御部３００を仮想的に実現する。さらに、制御部３５は、監視制御部３００の制御にしたがって監視用プログラム３ａ〜３ｎを実行することにより、監視実行部３６０Ａ〜３６０Ｎを仮想的に実現する。なお、ここでは、制御部３５が実行するプログラムの例として、システム監視に関連するエージェント２や監視用プログラム３を抜粋して例に挙げたが、ＯＳを始め、システムＳＹＳ上の要件に対応するアプリケーションプログラム、例えばＷｅｂサービスプログラムやＷｅｂアプリケーションプログラムが実行されるのは言うまでもない。
【００３５】
図２に示すように、監視制御部３００は、参照部３１０と、取得部３２０と、設定部３３０と、起動部３４０と、停止部３５０とを有する。
【００３６】
参照部３１０は、定義ファイルＤＦを参照する処理部である。
【００３７】
一実施形態として、参照部３１０は、常駐のプログラムであるエージェント２が起動または再起動された場合、あるいはホスト３０に設定された定義ファイルＤＦが更新された場合、次のような処理を実行する。すなわち、参照部３１０は、マネージャサーバ１０またはマネージャサーバ１０及びホスト３０がアクセス可能なファイルサーバ等に保存された定義ファイルＤＦのうち、当該ホスト３０に対応する定義ファイルＤＦを参照したり、定義ファイルＤＦに定義された項目に対応する監視用プログラム３の配信を受け付けたりする。
【００３８】
取得部３２０は、実績ファイル３４を取得する処理部である。
【００３９】
一実施形態として、取得部３２０は、定義ファイルＤＦに監視の実行が定義された項目に対応する監視用プログラム３ごとに並行して次のような処理を実行する。すなわち、取得部３２０は、定義ファイルＤＦに定義された監視用プログラム３の実行条件が満たされるのを待機する。例えば、監視用プログラム３の実行条件として一定間隔で監視処理を実行することが定義されている場合、前回に監視用プログラム３が起動されてから所定の時間が経過するのを待機する。そして、取得部３２０は、監視用プログラム３の実行条件が満たされた場合、記憶部３３に記憶された実績ファイル３４Ａ〜３４Ｎのうち当該監視用プログラム３に対応する実績ファイル３４を取得する。
【００４０】
なお、ここでは、実行条件のあくまで一例として、一定間隔で監視処理を実行させる例を挙げたが、これに限定されない。例えば、定期時刻に監視処理を実行させることとしてもよいし、運用者端末５０からリクエストを受け付けた場合に監視処理を実行させることとしてもかまわない。
【００４１】
設定部３３０は、タイムアウト時間を設定する処理部である。
【００４２】
一実施形態として、設定部３３０は、取得部３２０により取得された実績ファイルが取得される度に、当該実績ファイルに含まれる実行時間に応じて、監視用プログラム３が実行する監視処理を強制終了するタイムアウト時間を算出する。例えば、設定部３３０は、取得部３２０により取得された実績ファイルに含まれる実行時間のうち、過去の所定回数、例えば５回分の実行時間を今回の監視処理を強制終了するタイムアウト時間の算出に用いる。このようなタイムアウト時間の算出には、各種の統計処理を用いることができる。例えば、設定部３３０は、過去５回の実行時間の相加平均値Ａｖに安全係数αを乗算する計算を実行することにより、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αを算出する。
【００４３】
その上で、設定部３３０は、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αが当該監視用プログラム３の監視処理に設定することが許可されたタイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘ未満であるか否かを判定する。このとき、設定部３３０は、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αがタイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘ未満である場合、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αをタイムアウト時間Ｔｏｕｔに設定する。その一方で、設定部３３０は、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αがタイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘ未満でない場合、タイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘをタイムアウト時間Ｔｏｕｔに設定する。
【００４４】
例えば、図３に示す実績ファイル３４が取得された場合、下記の通りにタイムアウト時間が算出される。ここでは、タイムアウト時間の計算に用いる安全係数αが１．５であり、許容限界値が５０００ミリ秒であると仮定する。図３に示す実績ファイル３４では、過去５回の実行時間のうち直近のものから順に、２９９３ミリ秒、３１７９ミリ秒、２８８２ミリ秒、３１１９ミリ秒、３００６ミリ秒である。この場合、過去５回の実行時間の相加平均値「（２９９３＋３１７９＋２８８２＋３１１９＋３００６）／５」に安全係数である１．５を乗算することにより、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αが４５５３．７と求まる。この場合、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊α＜タイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘすなわち、「４５５３．７＜５０００」である。したがって、タイムアウト時間Ｔｏｕｔは、４５５３．７ミリ秒と算出される。
【００４５】
なお、ここでは、あくまで統計処理の一例として、相加平均値を計算する場合を例示したが、他の統計処理、例えば加重平均値の計算、メジアンの抽出、あるいは最頻値の抽出などを行うこととしてもかまわない。また、ここでは、相加平均値に安全係数が乗算される例を挙げたが、安全係数は加算されることとしてもよく、また、必ずしも安全係数を乗算または加算せずともかまわない。
【００４６】
起動部３４０は、監視用プログラム３の起動を制御する処理部である。
【００４７】
一実施形態として、起動部３４０は、設定部３３０によりタイムアウト時間が設定された監視用プログラム３を起動する。これによって、監視実行部３６０が監視用プログラム３の実行を開始することで監視処理が開始される。
【００４８】
停止部３５０は、監視用プログラム３の停止を制御する処理部である。
【００４９】
１つの側面として、停止部３５０は、起動部３４０により起動された実行中の監視用プログラム３ごとに並行して次のような処理を実行する。例えば、停止部３５０は、監視用プログラム３が起動されてからの経過時間を監視処理の実行時間として計測する。そして、停止部３５０は、監視処理の実行時間がタイムアウト時間を経過するまでに監視用プログラム３が正常に終了された場合、当該監視処理の開始日時、終了日時および実行時間を含むレコードを実績ファイル３４に追記する。一方、停止部３５０は、監視処理の実行時間がタイムアウト時間を経過するまでに監視用プログラム３が正常に終了されない場合、監視用プログラム３を強制終了した上で、図示しないワークエリア上の実行抑止リストに当該監視用プログラム３の識別情報、例えばプロセス名を登録する。この実行抑止リストにエントリがある監視用プログラム３は、当該エントリが削除されるまで監視用プログラム３の実行が抑止される。なお、ここでは、あくまで一例として、実績ファイル３４に対する記録がエージェント２により実行される例を説明したが、監視用プログラム３により実行されることとしてもかまわない。
【００５０】
他の側面として、停止部３５０は、エージェント２の停止も制御する。例えば、停止部３５０は、図示しないワークエリアに保存された実行抑止リストに対する更新を監視する。このとき、停止部３５０は、実行抑止リストに対する更新がある場合、実行抑止リストにエントリがある監視用プログラム３の数が所定の閾値Ｔｈ以上であるか否かを判定する。ここで、実行抑止リストにエントリがある監視用プログラム３の数が閾値Ｔｈ以上である場合、ホスト３０に与えられた本来のタスクに比べて処理負荷が軽い監視処理に影響を与えるほどの障害や高負荷がホスト３０に発生している可能性がある。この場合、ホスト３０に与えられた本来のタスクの処理負荷を軽減する側面から、停止部３５０は、エージェント２を強制終了する。
【００５１】
［処理の流れ］
次に、本実施例に係るホスト３０の処理の流れについて説明する。なお、ここでは、ホスト３０により実行される（１）起動処理、（２）第１の停止処理、（３）第２の停止処理の順に説明することとする。
【００５２】
（１）起動処理
図４は、実施例１に係る起動処理の手順を示すフローチャートである。この処理は、一例として、定義ファイルＤＦに監視の実行が定義された項目に対応する監視用プログラム３ごとに並行して実行される。あくまで一例として、前回に監視用プログラム３が起動されてから所定の条件、例えば動作間隔や定期時刻などの条件を満たす場合、当該監視プログラム３の起動処理が開始される。
【００５３】
図４に示すように、取得部３２０は、記憶部３３に記憶された実績ファイル３４Ａ〜３４Ｎのうち当該監視用プログラム３に対応する実績ファイル３４を取得する（ステップＳ１０１）。続いて、設定部３３０は、ステップＳ１０１で取得された実績ファイルに含まれる実行時間のうち、過去の所定回数分の実行時間の統計値を算出する（ステップＳ１０２）。
【００５４】
そして、設定部３００は、ステップＳ１０２で算出された実行時間の統計値に安全係数が乗算されたタイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αがタイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘ未満であるか否かを判定する（ステップＳ１０３）。
【００５５】
ここで、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αがタイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘ未満である場合（ステップＳ１０３Ｙｅｓ）、設定部３３０は、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αをタイムアウト時間Ｔｏｕｔに設定する（ステップＳ１０４）。
【００５６】
一方、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αがタイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘ未満でない場合（ステップＳ１０３Ｎｏ）、タイムアウト時間の許容限界値Ｔｏｕｔ＿ｍａｘをタイムアウト時間Ｔｏｕｔに設定する（ステップＳ１０５）。
【００５７】
このようにステップＳ１０４またはステップＳ１０５でいずれかのタイムアウト時間Ｔｏｕｔが設定された後、起動部３４０は、タイムアウト時間Ｔｏｕｔが設定された監視用プログラム３を起動し（ステップＳ１０６）、処理を終了する。
【００５８】
（２）第１の停止処理
図５は、実施例１に係る第１の停止処理の手順を示すフローチャートである。この処理は、一例として、図４に示す起動処理で起動されることにより監視実行部３６０が実行中である監視用プログラム３ごとに並行して実行される。
【００５９】
図５に示すように、停止部３５０は、監視用プログラム３が起動されてからの経過時間を監視処理の実行時間として計測する（ステップＳ２０１）。そして、停止部３５０は、監視処理の実行時間がタイムアウト時間を経過するまでに監視用プログラム３が正常に終了された場合（ステップＳ２０２Ｙｅｓ）、当該監視処理の開始日時、終了日時および実行時間を含むレコードを実績ファイル３４に追記し（ステップＳ２０３）、処理を終了する。
【００６０】
一方、監視処理の実行時間がタイムアウト時間を経過するまでに監視用プログラム３が正常に終了されない場合（ステップＳ２０２ＮｏかつステップＳ２０４Ｎｏ）、停止部３５０は、監視用プログラム３を強制終了する（ステップＳ２０５）。そして、停止部３５０は、図示しないワークエリア上の実行抑止リストに当該監視用プログラム３の識別情報、例えばプロセス名を登録し（ステップＳ２０６）、処理を終了する。
【００６１】
（３）第２の停止処理
図６は、実施例１に係る第２の停止処理の手順を示すフローチャートである。この処理は、エージェント２が起動されてから終了するまで継続して実行される。図６に示すように、停止部３５０は、図示しないワークエリアに保存された実行抑止リストに対する更新を監視する（ステップＳ３０１）。
【００６２】
このとき、実行抑止リストに対する更新がある場合（ステップＳ３０２Ｙｅｓ）、停止部３５０は、実行抑止リストにエントリがある監視用プログラム３の数が所定の閾値Ｔｈ以上であるか否かを判定する（ステップＳ３０３）。
【００６３】
そして、実行抑止リストに対する更新がない場合（ステップＳ３０２Ｎｏ）、あるいは実行抑止リストにエントリがある監視用プログラム３の数が所定の閾値Ｔｈ以上でない場合（ステップＳ３０３Ｎｏ）、ステップＳ３０１に戻って実行抑止リストに対する更新を待機する。
【００６４】
ここで、実行抑止リストにエントリがある監視用プログラム３の数が閾値Ｔｈ以上である場合（ステップＳ３０３Ｙｅｓ）、ホスト３０に与えられた本来のタスクに比べて処理負荷が軽い監視処理に影響を与えるほどの障害や高負荷がホスト３０に発生している可能性がある。この場合、ホスト３０に与えられた本来のタスクの処理負荷を軽減する側面から、停止部３５０は、エージェント２を強制終了し（ステップＳ３０４）、処理を終了する。
【００６５】
［効果の一側面］
上述してきたように、本実施例に係るエージェント２は、監視用プログラム３を起動する際、過去に監視用プログラム３が実行した監視処理の所要時間の実測値を取得し、当該実測値に応じて監視処理を強制終了するタイムアウト時間を設定する。このように、監視用プログラム３が監視処理を正常終了する場合の所要時間の実測値をタイムアウト時間の設定に用いるので、タイムアウト時間の設定値をシステムＳＹＳの動作状況に近付けることができる。さらに、監視用プログラム３が起動される度に異なる実測値がタイムアウト時間の設定に用いられるので、システムＳＹＳの動作状況の変化にタイムアウト時間の設定値を追従させることができる。したがって、本実施例に係るエージェント２によれば、システムＳＹＳの動作状況に合わせてタイムアウト時間を設定することが可能である。
【実施例２】
【００６６】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６７】
［タイムアウト時間］
上記の実施例１では、タイムアウト時間の算出に過去の所定回数分の実行時間として直近の所定回数分の実行時間を用いる例を説明したが、必ずしもタイムアウト時間の算出に用いるサンプルは直近の実行時間に限定されない。例えば、設定部３３０は、タイムアウト時間を算出する時点と時間条件、例えば曜日および時刻が類似する実行時間をタイムアウト時間の算出に用いることができる。
【００６８】
図７は、実績ファイル３４の他の一例を示す図である。図７には、タイムアウト時間が算出される時点が２０１８年４月８日の１３時００分００秒であるとしたとき、タイムアウト時間の算出時点と曜日および時刻が一致するレコードがハッチングで示されている。すなわち、図７に示すように、タイムアウト時間の算出には、開始時刻が２０１８年３月４日の１３時００分００秒０２４ミリ秒、２０１８年３月１１日の１３時００分００秒０３２ミリ秒、２０１８年３月１８日の１３時００分００秒０１９ミリ秒、２０１８年３月２５日の１３時００分００秒０４１ミリ秒、２０１８年４月１日の１３時００分００秒０１８ミリ秒の５つのレコードの実行時間が用いられる。これら５つのレコードにおける実行をタイムアウト時間の算出時点と近いものから順に並べると、２９９３ミリ秒、３１７９ミリ秒、２８８２ミリ秒、３１１９ミリ秒、３００６ミリ秒である。この場合、５つの実行時間の相加平均値「（２９９３＋３１７９＋２８８２＋３１１９＋３００６）／５」に安全係数である１．５を乗算することにより、タイムアウト時間の計算値Ｔｏｕｔ＿Ａｖ＊αが４５５３．７と算出される。
【００６９】
このように、タイムアウト時間を算出する時点と時間条件が類似する実行時間をタイムアウト時間の算出に用いることで、タイムアウト時間の算出にシステムの動作状況が類似するサンプルの実績値を用いてタイムアウト時間を算出できる。
【００７０】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、監視制御部３００に含まれる各機能部のうちいずれかの機能部をホスト３０の外部装置としてネットワーク経由で接続するようにしてもよい。また、監視制御部３００に含まれる各機能部のうちいずれかの機能部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のホスト３０の機能を実現するようにしてもよい。
【００７１】
［監視制御プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図８を用いて、上記の実施例と同様の機能を有する監視制御プログラムを実行するコンピュータの一例について説明する。
【００７２】
図８は、実施例１及び実施例２に係る監視制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図８に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００７３】
ＨＤＤ１７０には、図８に示すように、上記の実施例１で示した監視制御部３００と同様の機能を発揮する監視制御プログラム１７０ａが記憶される。この監視制御プログラム１７０ａは、図２に示した監視制御部３００の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【００７４】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から監視制御プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、監視制御プログラム１７０ａは、図８に示すように、監視制御プロセス１８０ａとして機能する。この監視制御プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち監視制御プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、監視制御プロセス１８０ａが実行する処理の一例として、図４〜図６に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【００７５】
なお、上記の監視制御プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に監視制御プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から監視制御プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに監視制御プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから監視制御プログラム１７０ａを取得して実行するようにしてもよい。
【００７６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７７】
（付記１）システムの稼働状況を監視する複数の監視処理それぞれに対して前記監視処理を強制終了する第１のタイムアウト時間を設定して実行された前記複数の監視処理の実行時間それぞれを取得し、
再び前記複数の監視処理を開始する際に、取得した前記実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する、
処理をコンピュータに実行させることを特徴とする監視制御プログラム。
【００７８】
（付記２）設定した前記第２のタイムアウト時間に達して強制終了になった監視処理の数に応じて、複数の監視処理を管理する前記監視制御プログラムを停止する処理を前記コンピュータにさらに実行させることを特徴とする付記１に記載の監視制御プログラム。
【００７９】
（付記３）前記設定する処理は、前記第２のタイムアウト時間の設定時から遡って過去の所定回数分の実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする付記１に記載の監視制御プログラム。
【００８０】
（付記４）前記設定する処理は、前記第２のタイムアウト時間の設定時との間で曜日または時刻のうち少なくともいずれか１つを含む時間条件が類似する実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする付記３に記載の監視制御プログラム。
【００８１】
（付記５）システムの稼働状況を監視する複数の監視処理それぞれに対して前記監視処理を強制終了する第１のタイムアウト時間を設定して実行された前記複数の監視処理の実行時間それぞれを取得し、
再び前記複数の監視処理を開始する際に、取得した前記実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する、
処理をコンピュータが実行することを特徴とする監視制御方法。
【００８２】
（付記６）設定した前記第２のタイムアウト時間に達して強制終了になった監視処理の数に応じて、複数の監視処理を管理する前記監視制御プログラムを停止する処理を前記コンピュータがさらに実行することを特徴とする付記５に記載の監視制御方法。
【００８３】
（付記７）前記設定する処理は、前記第２のタイムアウト時間の設定時から遡って過去の所定回数分の実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする付記５に記載の監視制御方法。
【００８４】
（付記８）前記設定する処理は、前記第２のタイムアウト時間の設定時との間で曜日または時刻のうち少なくともいずれか１つを含む時間条件が類似する実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする付記７に記載の監視制御方法。
【００８５】
（付記９）システムの稼働状況を監視する複数の監視処理それぞれに対して前記監視処理を強制終了する第１のタイムアウト時間を設定して実行された前記複数の監視処理の実行時間それぞれを取得する取得部と、
再び前記複数の監視処理を開始する際に、取得した前記実行時間に応じて決定した第２のタイムアウト時間を対応する監視処理に設定する設定部と、
を有することを特徴とする情報処理装置。
【００８６】
（付記１０）設定した前記第２のタイムアウト時間に達して強制終了になった監視処理の数に応じて、複数の監視処理を管理する前記監視制御プログラムを停止する停止部をさらに有することを特徴とする付記９に記載の情報処理装置。
【００８７】
（付記１１）前記設定部は、前記第２のタイムアウト時間の設定時から遡って過去の所定回数分の実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする付記９に記載の情報処理装置。
【００８８】
（付記１２）前記設定部は、前記第２のタイムアウト時間の設定時との間で曜日または時刻のうち少なくともいずれか１つを含む時間条件が類似する実行時間の統計値を前記第２のタイムアウト時間に設定することを特徴とする付記１１に記載の情報処理装置。
【符号の説明】
【００８９】
１    マネージャ
２    エージェント
３    監視用プログラム
１０    マネージャサーバ
３０    ホスト
３１    通信Ｉ／Ｆ部
３３    記憶部
３４    実績ファイル
３５    制御部
３００    監視制御部
３１０    参照部
３２０    取得部
３３０    設定部
３４０    起動部
３５０    停止部
３６０    監視実行部
５０    運用者端末
【図１】
2020004112.tif 000003
【図２】
2020004112.tif 000004
【図３】
2020004112.tif 000005
【図４】
2020004112.tif 000006
【図５】
2020004112.tif 000007
【図６】
2020004112.tif 000008
【図７】
2020004112.tif 000009
【図８】
2020004112.tif 000010