VMware HA で アプリケーション障害のときのリセットの様子

VMware HA での 仮想マシン内のアプリケーション監視というのは、仮想マシン内から VMwareTools 経由でアプリケーションのハートビートがあるかを監視している。このハートビートは仮想マシン内でユーザが定義する。VMware仮想マシン内のプロセスを見てくれるといったようなことはない。アプリケーション監視のハートビートが途切れたら障害と見なしてリセットがかかる。

障害と見なす時間などは、仮想マシン監視と同一の画面で設定する。HAのクラスタ全体で同じにもできるし、仮想ホストごとに個別に設定もできる。このような感じで設定する。

vCenter 上には、原因:アプリケーションのハートビート障害、と記録される。

ではこのアプリケーションのハートビートはどうやって送出するのか。

たとえば Linux の場合。VMware GuestAppMonitor SDK からアーカイブを取得し仮想マシン内に展開し、適当なフォルダにコピーする。

 

# tar zxvf VMware-GuestAppMonitorSDK-425873.gz
# cd VMware-GuestAppMonitorSDK
# cp bin/bin32/vmware-appmonitor /usr/bin
# cp lib32/libappmonitorlib.so /usr/lib

 

まずは監視スタートを通知する。

 

# vmware-appmonitor enable

 

これ以降HAクラスタ側でハートビートを監視し始める。ハートビートの送出方法は

 

# vmware-appmonitor markActive

 

これを定期的に(30秒に1回とか)実行する。例えばプロセス監視であれば、特定のプロセスが動作していれば markActive を実行し、そうでなければ何もしない。

現状どういうステータスなのか、通知しているアイコンの色が知れる。

 

# vmware-appmonitor getAppStatus

 

green とか red とか gray とかの文字列がかえってくる。

メンテナンスなどでハートビート監視をされたら困るときはそのときだけ一旦無効に。

 

# vmware-appmonitor disable

 

メンテが終わればまた有効にする。

 

# vmware-appmonitor enable

 

このような感じでHAクラスタに対してハートビート監視を有効にしてから生きてますよ信号を出すことができる。というか出し続けなければいけない。サボると再起動されちゃうからね。