日進月歩な仮想化日記

~日々進化する仮想化業界のトレンド発信基地を目指して~

NSX ALBの動作検証④ ターゲットのヘルスチェック

今回はNSX ALBの振り分け先のサーバ(ターゲット)のヘルスチェック機能の動作検証を行った結果を書いていきたいと思います。

 

1. ヘルスチェック機能

NSX ALBではヘルスモニター機能を用いて指定パスの監視が可能です。
チェック間隔は1秒~3600秒の範囲で設定可能
Timeout値は1秒~2400秒の範囲、または、チェック間隔の値から1秒を引いた値のいずれか短い方が適用されます。

2. 設定方法

【Templates】→【Profiles】→【Health Moniters】→【Create】でヘルスチェック用のテンプレートが確認可能です。
デフォルトでDNSやHTTPなど、一般的に使われるプロトコルでの監視テンプレートが作成されています。
f:id:ko-taiki:20210107163305p:plain

どのテンプレートでチェックを行うかはVirtual Service Poolで設定します。
Passive Health Monitorの項目にチェック用のテンプレートを紐づければ設定は完了です。
今回はWebサーバのヘルスチェックを行うため、HTTPとPingを設定します。

f:id:ko-taiki:20210107163721p:plain

3. 検証結果

まずはWebサーバのIISを止めてみます。
PoolのServersのページでHTTPのヘルスチェックに失敗し、IISを停止したサーバのStateが「Down」になっていることが確認できます。

f:id:ko-taiki:20210107165151p:plain
また、EventsにもHTTPの通信が失敗してエラーになっているログが出力されていますね。

f:id:ko-taiki:20210107164328p:plain

この状態でWebサーバをシャットダウンしてみます。
すると先ほどはHTTPだけだったのがPingのヘルスチェックも失敗していることが確認できますね。

f:id:ko-taiki:20210107165241p:plain

Eventsの方には新しいログは出力されていません。
Stateが変化したタイミングでしかログは出力されないみたいですね。

f:id:ko-taiki:20210107164923p:plain

ついでにプール内のすべてのサーバをシャットダウンしてみます。
すると右上のアイコンがエラーとなり、Pool自体が止まったことを示してくれます。

f:id:ko-taiki:20210107165339p:plain

ヘルスチェックを設定しておけば、振り分けるサーバに何らかの不具合が発生した場合、どこが原因となっているのか一目でわかりますね。