9.2.3 ヘルスチェック機能の仕組み
JP1/IM - Managerのヘルスチェック機能はプロセス同士の相互監視によって成立しています。
JP1/IM - Managerのヘルスチェックで監視を行うプロセスと,監視されるプロセスの対応を次の表に示します。
監視を行うプロセス |
監視されるプロセス |
---|---|
イベント基盤サービス(evflow) |
イベントコンソールサービス(evtcon) |
アクション実行サービス(jcamain) |
|
相関イベント発行サービス(evgen)※1 |
|
イベントサービス(jevservice)※2 |
|
イベントコンソールサービス(evtcon) |
イベント基盤サービス(evflow) |
- 〈この項の構成〉
(1) プロセスの異常検知
JP1/IM - Managerのヘルスチェック機能では,監視を行うプロセスから監視されるプロセスに対して通信を行い,プロセスが正常に稼働していることを確認しています。
プロセスの異常検知は,監視対象のプロセスに対し,定期的な信号を送信することで確認します。信号を送信してから,指定した間隔より長く監視対象のプロセスが無応答だったとき,そのプロセスを異常と判断します。
信号を送信する間隔および異常と判断する無応答回数は,監視されるプロセスによって次のように異なります。
監視されるプロセス |
送信する間隔※1 |
無応答回数※2 |
---|---|---|
イベントサービス(jevservice) |
60〜3,600秒 |
1〜60回 |
イベントサービス以外 |
60〜3,600秒 |
1〜60回 |
無応答を検知したあとのJP1/IM - Managerの動作を次に示します。
-
異常を検知するまでは無応答を検知した場合,KAVB8064-Wメッセージが出力される。
-
無応答回数に達した場合,KAVB8060-EメッセージまたはKAVB8062-Eメッセージが出力される。
-
無応答を検知してもそのあと回復した場合は無応答回数がリセットされる。
-
無応答を検知したあと,回復しない場合はKAVB8064-Wメッセージ,KAVB8060-Eメッセージ,またはKAVB8062-Eメッセージは出力されない。
プロセスの異常検知の方法を図に示すと次のようになります。
(2) プロセスの異常発生の通知
JP1/IM - Managerのヘルスチェック機能を有効にしている場合,JP1/IM - Managerは,プロセスの異常を検知すると,異常が発生したことを通知するために,次の処理を行います。
-
異常が発生したプロセスがJP1/IM - Managerの監視対象プロセス(evtcon,jcamain,evflow,evgen)の場合,KAVB8060-Eメッセージを統合トレースおよびWindowsイベントログ(syslog)に出力します。
-
異常が発生したプロセスがJP1/Baseのイベントサービスの場合,KAVB8062-Eメッセージを統合トレースおよびWindowsイベントログ(syslog)に出力します。
-
通知コマンドを設定している場合,通知コマンドを実行します。
-
クラスタ用の項目(FAILOVER)を有効にしている場合,異常を検知したプロセスが異常終了します。これにより,クラスタシステムにJP1/IM -Managerの異常を通知します。クラスタシステムでJP1/IM - Managerの障害時に,フェールオーバーするように設定しておくことで,ヘルスチェックが異常を検知した場合にフェールオーバーできます。
また,異常が発生したプロセスが正常状態に回復したときには,JP1/IM - Managerの監視対象プロセスの場合はKAVB8061-Iメッセージを,JP1/Baseのイベントサービスの場合はKAVB8063-Iメッセージを,統合トレースログおよびWindowsイベントログ(syslog)に出力します。JP1イベントの発行設定を有効にしている場合は,JP1イベント(イベントID:00002014)を発行します。
- メモ
-
-
イベントIDが00002013のJP1イベントは,JP1/IM - Viewに対して発行されるダミーイベント(イベントDBに登録されないイベント)です。JP1イベントが登録されるイベントサービスに異常が発生しているためダミーイベントを発行します。
-
JP1/IM - Managerのヘルスチェック機能を使用する場合には,通知コマンドの実行設定をしておくことをお勧めします。
これは,JP1イベントの発行だけでは,JP1/IM - Viewで監視していないときやイベントコンソールサービスに異常が発生したときに,ユーザーが異常に対して即時対応できない(JP1/IM側で検知していてもユーザー側にそのことが伝わらない)ためです。
-