10.3.3 プロセス生存監視
プロセス生存監視は,修正パッチの適用後に使用できる機能です。プロセス生存監視では,Tomcatサーバプロセスの生存状況を監視し,Tomcatサーバプロセスが異常終了した場合には,ユーザコマンドを実行します。
Tomcatサーバプロセスの生存状況が監視されている場合,次の順序で動作します。
-
Tomcatサーバプロセスが障害によって異常終了したとTomcatプロセスモニタが判定する。
-
スナップショットログを収集する。
-
Tomcatプロセスモニタが終了する。
この場合,主にスナップショットログ収集に掛かる時間の分,Tomcatプロセスモニタの終了が遅れます。例えば,Tomcatプロセスモニタの終了後にロードバランサからのリクエストを閉塞する場合,スナップショットログ収集に掛かる時間の分,閉塞の開始が遅れます。
稼働監視機能のプロセス生存監視では,Tomcatサーバプロセスの異常を検知した場合,スナップショットログが収集される前にユーザコマンドを実行します。動作の順序を次に示します。
-
Tomcatサーバプロセスの生存状況を監視することで,Tomcatサーバプロセスの異常終了を検知する。
-
ユーザコマンドを実行する。
-
スナップショットログを収集する。
-
Tomcatプロセスモニタが終了する。
このように,プロセス生存監視によって,Tomcatプロセスモニタの終了を待つことなく,必要な処理を開始できます。
- 〈この項の構成〉
(1) 障害発生の判定基準
Tomcatサーバプロセスの停止処理の実行時,次の場合に障害が発生したと判定します。
-
稼働監視機能を起因とする停止要求ではない場合,かつ,Tomcatサーバプロセスの終了ステータスが障害発生を示す値であった場合
-
稼働監視機能を起因とする停止要求ではない場合,かつ,Tomcatサーバプロセスがプロセス終了待ちタイムアウト時間内に終了しなかった場合
Tomcatサーバプロセスの終了ステータスの値,およびプロセス終了待ちタイムアウト時間は,config.properties(本製品の設定ファイル)で指定します。config.properties(本製品の設定ファイル)については,「12.2 config.properties(本製品の設定ファイル)」を参照してください。
(2) 障害検知時の動作
(a) 障害検知時に出力されるイベントプロパティ
Tomcatサーバプロセスの異常終了を検知した時は,次のJSON形式のイベントプロパティを出力します。
-
イベントプロパティ(Tomcatサーバプロセスが終了した場合)
{ "type": "shutdown", "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", "succeeded": false, "exitstatus": 137<Tomcatサーバプロセスの終了ステータスの値> }
-
イベントプロパティ(Tomcatサーバプロセスがプロセス終了待ちタイムアウト時間内に終了しなかった場合)
{ "type": "shutdown", "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", "succeeded": false }
(b) 障害検知後のアクション
Tomcatサーバプロセスの障害発生を検知した場合,ユーザが定義したコマンドを実行します。コマンドを定義する方法については,「10.4 稼働監視機能の設定(ユーザコマンドの実行)」を参照してください。
(3) 設定できる内容
config.properties(本製品の設定ファイル)で,次の項目を設定できます。
-
Tomcatサーバプロセスの異常終了時に,ユーザコマンドを実行する終了ステータスの値
-
Tomcatサーバプロセスの異常終了検知時に実行するコマンド
config.properties(本製品の設定ファイル)については,「12.2 config.properties(本製品の設定ファイル)」を参照してください。
該当するプロパティと設定例を次に示します。この例では,「10.4 稼働監視機能の設定(ユーザコマンドの実行)」で設定する「ユーザコマンド定義のID」を「exec1」としています。
healthcheck.shutdown.enabled=true healthcheck.shutdown.actions.failure.condition=ERROR healthcheck.shutdown.actions.failure.usercommand.idrefs.1=exec1