10.3.2 ハートビート監視
稼働監視コンポーネントは,Tomcatサーバプロセスから定期的に送信されるハートビートを監視し,ハートビート待ちタイムアウトが発生するかどうかによって,Tomcatサーバプロセスのハングアップを監視できます。
- 〈この項の構成〉
(1) 障害発生の判定基準
ハートビート待ちタイムアウトの計測を開始してから,Tomcatサーバプロセスからのハートビートを受信できなかった場合,障害発生と判定します。
詳細な状態は次のとおりです。
状態 |
説明 |
---|---|
初期状態 |
Tomcatサーバプロセスからの開始完了通知受信時にハートビート待ちタイムアウトの計測を開始します。 |
正常状態 |
毎回のハートビート受信時にプロセスは正常に稼働していると判定し,ハートビート待ちタイムアウトをリセットして計測を開始します。プロセスが正常に稼働していると判定している間は,イベントは発行しません。 |
異常状態 |
ハートビート待ちタイムアウトが発生した場合,障害発生と判定し,メッセージKDLR20223-Wを出力して障害イベントを1回発行します。 その後,ハートビートを受信した場合は障害の回復と判定し,メッセージKDLR20224-Iを出力し回復イベントを1回発行して正常状態に戻ります。 |
障害イベント・回復イベントの発行時に出力されるイベントプロパティと,イベント検知後のアクションについては,「(2) 障害検知時の動作」を参照してください。
(2) 障害検知時の動作
(a) 障害検知時に出力されるイベントプロパティ
障害イベント・回復イベントの発行時には,JSON形式のイベントプロパティを出力します。障害イベントの例を次に示します。
{ "type": "heartbeatdelay", "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", "succeeded": false }
(b) 障害検知後のアクション
障害イベントの通知を受けた場合,デフォルトでは次のアクションを実行します。
-
スナップショットログを収集します。
-
Tomcatサーバプロセスの停止指示は出さないで処理を続行します。
アクションの変更方法については「(3)(b) 障害イベント・回復イベントの通知後の動作」を参照してください。
(3) 設定できる内容
ハートビート監視では,Tomcatサーバプロセスから定期的に送信されるハートビートを監視します。ハートビートの送信は,「10.2.2 Tomcatサーバプロセスへの稼働監視用ライフサイクルリスナーの設定」で設定したライフサイクルリスナーによって実施されます。
ハートビート監視に関して設定できる内容を次に示します。
(a) ハートビートの監視設定
Tomcatプロセスモニタのconfig.properties(本製品の設定ファイル)で次の項目を設定できます。
-
Tomcatプロセスモニタ側のハートビート監視の有効/無効
-
Tomcatプロセスモニタ側のハートビート待ちタイムアウト時間
-
Tomcatサーバプロセス側のハートビート送信間隔
該当するプロパティと設定例を次に示します。この例ではデフォルト値を記載しています。
healthcheck.heartbeatdelay.enabled=true healthcheck.heartbeatdelay.timeout=60000 healthcheck.heartbeat.interval=10000
config.properties(本製品の設定ファイル)については,「12.2 config.properties(本製品の設定ファイル)」を参照してください。
(b) 障害イベント・回復イベントの通知後の動作
障害イベント・回復イベントの通知後の動作は,次の項目を組み合わせてconfig.properties(本製品の設定ファイル)で指定できます。
-
ユーザコマンドの実行
ユーザコマンドを定義する場合は,別途「10.4 稼働監視機能の設定(ユーザコマンドの実行)」の定義が必要です。
-
スナップショットログの収集有無
-
Tomcatサーバプロセスの停止有無
回復イベントの通知時にアクションを実行する場合で,そのアクション実行時間がhealthcheck.heartbeat.intervalで指定したインターバルを超えるとき,次のハートビート送信が遅れることがあります。
該当するプロパティと設定例を次に示します。この例では,「10.4 稼働監視機能の設定(ユーザコマンドの実行)」で設定する「ユーザコマンド定義のID」として,「exec1」「exec2」を設定しています。
healthcheck.heartbeatdelay.actions.failure.usercommand.idrefs.1=exec1 healthcheck.heartbeatdelay.actions.failure.snapshot=true healthcheck.heartbeatdelay.actions.failure.terminate=false healthcheck.heartbeatdelay.actions.recovery.usercommand.idrefs.1=exec2
config.properties(本製品の設定ファイル)については,「12.2 config.properties(本製品の設定ファイル)」を参照してください。