smfv2

Heartbeat サーバ

 Heartbeatサーバはサービスアダプタから定期的に送信されるHeartbeatパケットを受け取り、監視を行うためのサーバです。Heartbeatパケットにはサービスアダプタの動作状態を示すいくつかの情報が含まれており、これを利用することで動作情報をグラフ化して表示することもできます。その内部構造を以下に示します。

 Heartbeatサーバでは、大きく分けて以下の三つの機能が提供されます。

Heartbeatパケットの受信

 サービスアダプタからのHeartbeatパケットを受信するのは「hbserver」というプログラムで、デーモンとして動作し、常に受信を待ち受けています。パケットを受信すると設定ファイル指定したディレクトリ下に受信記録を残します。なお、サービスアダプタがHeartbeat送信する間隔は任意に指定可能ですが、1台のHeartbeatサーバに送信するすべてのサービスアダプタの送信間隔は統一する必要があります。
 また、hbserverは設定ファイルから冗長化モードを指定することで、サーバ2台を1セットとして冗長化構成を取ることができます。この場合、サービスアダプタは常に2台のHeartbeatサーバに対して、同時にHeratbeatパケットを送信します。

サービスアダプタの死活判定および通知

 Heartbeatパケットの受信記録をもとにサービスアダプタの死活判定を行うのは「mreport.py」というプログラムで、cronを用いて定期的に実行されます。UP/DOWNの判定は、サービスアダプタからのHeartbeatパケットを、設定ファイルで指定した回数連続で受信したか否かで判定します。cronでの実行間隔を短くすることで、より早く通知を行うことができますが、RSやHeartbeatサーバへの負荷はそれに伴って上昇します。

サービスアダプタの各種情報のグラフ化

 Heartbeatパケットに含まれるステータス情報を元にグラフ化を行い、イメージまたはHTML形式でクライアントに提供する機能です。グラフ情報はHTTPサーバ上で動作するCGIとして提供され、CGIにグラフ描画オプションを指定することでグラフ表示をカスタマイズすることもできます。 Page Top