ヘルス管理
Liberty のヘルス管理フィーチャーにより、アプリケーション・サーバー環境をモニターするためのポリシー駆動のアプローチを使用し、非正常基準がディスカバーされたときにアクションを実行することができます。
環境でモニターするヘルス条件、およびその条件が満たされた場合に実行するヘルス・アクションが含まれたヘルス・ポリシーを定義できます。
ヘルス条件
ヘルス条件は、ご使用環境内でモニターする変数を定義します。条件エレメントは、当該ヘルス・ポリシーをトリガーできる動作を定義します。ヘルス・ポリシーごとに定義できる条件エレメントは 1 つのみです。以下の事前定義のヘルス条件から選択できます。
- 要求タイムアウト超過条件
- タイムアウトになることができる HTTP 要求のパーセントを指定します。要求のパーセントが定義した値を超えた場合、ヘルス・アクションが実行されます。タイムアウト値は、環境構成によって異なります。
<excessiveRequestTimeout timeoutPercentage="5"/>
注: この条件を使用するには、動的ルーティングを有効にする必要があります。 - 応答時間超過条件
- 要求の完了にかかった平均時間を追跡します。時間が定義されている応答時間しきい値を超過した場合、ヘルス・アクションが実行されます。
<excessiveResponseTime responseTime="10s"/>
注: 要求タイムアウト超過条件に構成されているタイムアウト値を超過した要求は、このヘルス条件でカウントされません。例えば、デフォルト・タイムアウト値が 60 秒に設定されている場合、60 秒を超過した要求はすべてタイムアウトになるため、このヘルス条件の平均応答時間の計算には含まれません。この制限は、要求タイムアウト超過条件を定義していない場合でも適用されます。注: この条件を使用するには、動的ルーティングを有効にする必要があります。 - メモリー条件: メモリー使用量超過
- メンバーのメモリー使用量を追跡します。メモリー使用量が、特定の期間ヒープ・サイズの一定のパーセントを超過した場合、ヘルス・アクションが実行されます。
<excessiveMemoryUsage heapSizePercentage="85" timePeriod="5m"/>
- メモリー条件: メモリー・リーク
- 空きメモリーの下降トレンドが検出された場合、ヘルス・アクションが実行されます。
<memoryLeak/>
ヘルス・アクション
ヘルス・アクションは、ヘルス条件が満たされていないときに実行するアクティビティーを定義します。action エレメントは、検出された条件に応答して実行するアクションを定義します。すべてのアクションは、エレメント・タイプ <action> を共有します。action 属性は、実行するアクションを決定します。各ヘルス・ポリシーに複数のアクションを定義できます。アクションは、ポリシーで指定されている順序で実行されます。以下の表に、Liberty サーバー環境でサポートされるヘルス・アクションをリストします。
ヘルス・アクション | 同じ集合コントローラーで実行されている Liberty サーバー |
---|---|
サーバーを再始動する | サポートされる |
スレッド・ダンプの取得 | サポートされる |
Java™ 仮想マシン (JVM) のヒープ・ダンプの取得 | IBM® JRE または JDK で実行されているサーバーでサポートされる |
サーバーを保守モードにする | サポートされる |
サーバーの保守モードの終了 | サポートされる |
<action action="generateThreadDump"/>
<action action="generateHeapDump"/>
<action action="restartServer"/>
<action action="enterMaintenanceMode"/>
<action action="exitMaintenanceMode"/>
ヘルス・ターゲット
ターゲット・エレメントは、条件でモニターするトポロジーのスコープを定義します。以下の 3 つのターゲット・タイプがあります。
- ホスト
<host hostName="someHost"/>
- クラスター内の各サーバー
<cluster clusterName="someCluster"/>
- シングル・サーバー
<server hostName="Host" wlpUsrDirectory="/opt/ibm/liberty/wlp" serverName="Server"/>
各ターゲット・タイプには、healthPolicy エレメント内でそれを定義するために使用する固有のエレメントがあります。ヘルス・ポリシーごとに複数のターゲットを指定できます。