ロードバランサの診断プログラムは、設定されている Application Server インスタンスの中で、正常ではないとしてマークされているすべてのインスタンスを定期的にチェックします。診断プログラムは必須ではありませんが、このプログラムが存在しない場合、または無効になっている場合は、正常でないインスタンスの定期的な診断プログラムは実行されません。ロードバランサは、正常でないインスタンスが正常になるタイミングを判断することはできません。
ロードバランサの診断プログラムメカニズムは、HTTP を使用してアプリケーションサーバーと通信します。診断プログラムは、指定された URL に HTTP 要求を送信し、応答を待ちます。HTTP 応答ヘッダー内の状態コードが 100 〜 500 の間であれば、インスタンスが正常であることを示します。
診断プログラムを作成するには、asadmin create-http-health-checker コマンドを使用します。次のパラメータを指定します。
表 5–2 診断プログラムのパラメータ
パラメータ |
説明 |
デフォルト |
---|---|---|
url |
ロードバランサが健康状態を判断するためにチェックするリスナーの URL を指定します。 |
“/” |
interval |
インスタンスの診断プログラムを実行する間隔を秒単位で指定します。0 を指定すると、診断プログラムが無効になります。 |
30 秒 |
timeout |
正常だとみなされるリスナーが応答を受け取るまでのタイムアウトを秒単位で指定します。 |
10 秒 |
アプリケーションサーバーインスタンスが正常でないとマークされている場合、診断プログラムが正常ではないインスタンスをポーリングして、インスタンスが正常になったかどうかを判断します。診断プログラムは、指定された URL を使用して正常でないアプリケーションサーバーインスタンスをすべてチェックし、それらが正常な状態に戻っているかどうかを判断します。
診断プログラムにより、正常ではないインスタンスが正常になったことが確認されると、そのインスタンスが正常なインスタンスのリストに加えられます。
詳細については、create-http-health-checker および delete-http-health-checker のドキュメントを参照してください。
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 ファイルをふたたび編集およびエクスポートする場合、新しくエクスポートされた設定には追加のプロパティーが含まれません。したがって、新しくエクスポートされた設定にこれらのプロパティーを再度追加する必要があります。