ロードバランサの健全性検査は、設定されている Application Server インスタンスの中で、正常ではないとしてマークされているすべてのインスタンスを定期的にチェックします。健全性検査は必須ではありませんが、このプログラムが存在しない場合、または無効になっている場合は、正常でないインスタンスの定期的な健全性検査は実行されません。ロードバランサは、正常でないインスタンスが正常になるタイミングを判断することはできません。
ロードバランサの健全性検査メカニズムは、HTTP を使用してアプリケーションサーバーと通信します。健全性検査は、指定された URL に HTTP 要求を送信し、応答を待ちます。HTTP 応答ヘッダー内の状態コードが 100 〜 500 の間であれば、インスタンスが正常であることを示します。
ロードバランサがクラスタに対するフロントエンドであり、クライアント証明書認証を有効にしてセキュリティー保護ポートを使用しているインスタンスがそのクラスタに含まれる配備状況では、健全性検査はインスタンスの診断を実行できません。したがって、そのようなインスタンスは常に正常でないと認識され、それらのインスタンスには要求は送られません。
健全性検査のプロパティーを指定するために、管理コンソールまたは asadmin create-http-health-checker コマンドを使用できます。管理コンソールでこれを行うには、「HTTP ロードバランサ」ノードに移動し、ノードを展開してロードバランサを選択します。次に「ターゲット」タブを開き、「ターゲット」テーブルで目的のターゲットの「健全性検査を編集」リンクをクリックします。次のパラメータを指定します。
表 5–2 健全性検査のパラメータ
パラメータ |
説明 |
デフォルト |
---|---|---|
ロードバランサ |
選択したサーバーで負荷分散を使用できるようにするには、「有効」チェックボックスにチェックを入れます。 |
False/無効 |
無効タイムアウト |
このサーバーが無効にされてから休止状態に入るまでの時間 (分単位)。 |
30 分 |
url |
ロードバランサが健康状態を判断するためにチェックするリスナーの URL を指定します。 |
“/” |
interval |
インスタンスの健全性検査を実行する間隔を秒単位で指定します。0 を指定すると、健全性検査が無効になります。 |
30 秒 |
timeout |
正常だと見なされるリスナーが応答を受け取るまでのタイムアウト間隔を秒単位で指定します。 |
10 秒 |
アプリケーションサーバーインスタンスが正常でないとマークされている場合、健全性検査が正常ではないインスタンスをポーリングして、インスタンスが正常になったかどうかを判断します。健全性検査は、指定された URL を使用して正常でないアプリケーションサーバーインスタンスをすべてチェックし、それらが正常な状態に戻っているかどうかを判断します。
健全性検査により、正常ではないインスタンスが正常になったことが確認されると、そのインスタンスが正常なインスタンスのリストに加えられます。
各コマンドの詳細については、create-http-health-checker(1) および delete-http-health-checker(1) を参照してください。
create-http-health-checker によって作成された健全性検査は、正常ではないインスタンスのみをチェックします。正常なインスタンスを定期的にチェックするには、エクスポートした loadbalancer.xml ファイルに追加のプロパティーをいくつか設定します。
これらのプロパティーは、loadbalancer.xml ファイルをエクスポートしたあとに手動で編集することによってのみ設定できます。同機能を持つ asadmin コマンドはありません。
正常なインスタンスをチェックするには、次のプロパティーを設定します。
表 5–3 健全性検査の手動のプロパティー
プロパティー |
定義 |
---|---|
サーバーインスタンスが正常であるかどうかを調べるために、それらに対して Ping を実行するかどうかを示す true/false フラグ。サーバーインスタンスに対して Ping を実行するには、このフラグを true に設定します。 |
|
ロードバランサの健全性検査が、応答しないサーバーインスタンスを正常でないとマークするまでに、それらに対して Ping を実行する回数を指定します。有効な範囲は 1 〜 1000 です。デフォルト値は 3 に設定します。 |
loadbalancer.xml ファイルを編集して、プロパティーを設定します。次に例を示します。
<property name="active-healthcheck-enabled" value="true"/> <property name="number-healthcheck-retries" value="3"/>
これらのプロパティーを追加し、続いて loadbalancer.xml ファイルをふたたび編集およびエクスポートする場合、新しくエクスポートされた設定には追加のプロパティーが含まれません。したがって、新しくエクスポートされた設定にこれらのプロパティーを再度追加する必要があります。