WebSphere ヘルス管理とは何ですか?

公開: 2015-02-14

IBM WebSphere Application Server での正常性管理と、正常性ポリシーの作成方法について学びます。

健康経営とは?

Health Management は WebSphere Virtual Enterprise 環境の一部であり、WebSphere Application Server 8.5 に統合されています。

WebSphere 8.5 は、正常性ポリシーを利用する運用ポリシーと統合されています。

ヘルス管理は、WebSphere エンタープライズ アプリケーション サーバーの使用状況を監視し、停止が発生する前に問題領域に対応できるようにするためのポリシー主導のアプローチです。

健康管理には、次の 2 つの要素があります。

  1. ヘルスコントローラー
  2. 健康政策

リアクションモードとは?

正常性ポリシーには、環境内で監視する正常性状態が含まれています。 定義された要件が満たされない場合に反応します。

2 つの反応モードがあります。

  1. 自動モード: 正常性ポリシー違反が検出されると、システムがアクションを実行します。

たとえば、メモリ使用量を監視するように構成し、メッセージの使用率が 85% のときに JVM を再起動する場合、システムは JVM ヒープ サイズが 85% に達すると対象の JVM を再起動します。

  1. 監視モード: 正常性ポリシー違反が検出されると、システムはランタイム タスクを作成します。 これには、WebSphere 管理者がランタイム タスク アクションを承認または拒否するために手動で介入する必要があります。

健康状態とは?

Health Condition は、環境を監視するオブジェクトまたはメトリックです。

WebSphere 8.5 では、 8 つの事前定義されたヘルス条件を使用できます。 カスタムの健康状態を作成するオプションがあります。

  • 年齢ベースの条件 - この条件は、定義された JVM を監視し、構成された年齢しきい値に達するとアクションを実行します。

元:

JVM が 15 日間実行されている場合は、この条件を構成して JVM を再起動できます。 この状況で許容される値は、以下に示すように日または時間です。

年齢に基づく状態

  • 過剰な要求タイムアウト条件 - この条件は、要求タイムアウトのパーセンテージが定義された値を超えるとアクションを実行します。 許容値は、以下に示すようにパーセンテージです。

超過要求タイムアウト

  • 過度の応答時間条件 - リクエストが完了するまでにかかる時間を監視し、時間が定義されたしきい値を超えた場合にアクションを実行します。

元:

要求の応答時間が 1 分の場合にスレッド ダンプを取得するように、この条件を構成できます。 以下に示すように、許容値はミリ秒、秒、および分です。

過度の応答時間

  • メモリ状態: 過剰なメモリ使用量– JVM のメモリ使用量を監視し、しきい値を超えた場合にアクションを実行します。

元:

この条件を構成して、メモリ使用量がしきい値を超えたときに JVM ヒープ ダンプを取得し、JVM を再起動できます。 以下に示すように、JVM ヒープ サイズの許容値はパーセンテージであり、問​​題の期間は秒と分です。

メモリ条件の使用

  • メモリ状態: メモリ リーク– JVM でメモリ リークを探し、アクションを実行します。

メモリ状態リーク

これにより、3 つの検出レベルが得られました。

  1. 高速 (誤警報)
  2. 標準 (いくつかの誤警報)
  3. 遅い (誤報が少ない)
  • ストーム ドレイン状態 – 平均応答時間の大幅な低下を監視し、スレッド ダンプの生成や JVM の再起動などのアクションを実行します。

ヘルス ポリシー ストーム

これは2つの検出レベルを取得しました。

  1. 標準 (いくつかの誤警報)
  2. 遅い (誤報が少ない)
  • ワークロード状態 - この状態は、JVM が構成された数の要求を処理すると検出されます。

元:

20000000 リクエストを処理したら、JVM を再起動するように構成できます。

健康状態ワークロード

  • ガベージ コレクションのパーセンテージ条件 - 定義された期間のガベージ コレクションに費やされた時間の割合を監視し、しきい値を超えるとアクションを実行します。 許容値は、以下に示すようにパーセンテージとサンプリング期間です。

健康状態 GC

ヘルスアクションとは?

ヘルス アクションは、構成されたしきい値を超えると実行されるヘルス ポリシー アクションです。

WebSphere 8.5 で使用できる定義済みのヘルス アクションは 7 つあります。

健康アクション

  • サーバーの再起動 - JVM を再起動します
  • スレッド ダンプを取る - JVM のスレッド ダンプを取ります
  • Take JVM heap dumps – JVM ヒープ ダンプを取得します
  • SNMP トラップを生成する - トラブルシューティング用の SNMP トラップを生成します
  • サーバーをメンテナンス モードにする - 新しいクライアント リクエストを停止し、アクティブなセッションのみを提供します
  • サーバーをメンテナンス モードにしてアフィニティを解除する - 新規および既存のアクション セッションを停止する
  • メンテナンスモードから抜けて、新しいリクエストを受け入れる準備ができました

カスタムのヘルス アクションを作成するオプションがあります。

正常性ポリシーを作成するには?

正常性ポリシーは、4 つの簡単な手順で作成できます。

  1. 正常性ポリシーの一般的なプロパティを定義します。ここでは、ポリシーの名前を指定し、正常性状態を選択します
  2. 正常性ポリシーの正常性状態のプロパティを定義します。ここでは、選択した正常性状態のしきい値を提供し、正常性状態が違反したときに実行する必要なアクションを構成します
  3. 監視するメンバーを指定 - JVM、クラスター、動的クラスター、オンデマンド ルーター、またはセルを正常性ポリシーのターゲットとして選択します。
  4. 正常性ポリシーの作成を確認する - 正常性ポリシーの構成を確認し、作成することを確認します

次のように、1 つの正常性ポリシーを作成しましょう。

  • WebSphere 8.5 ND DMGR コンソールにログインします。
  • [運用ポリシー] >> [正常性ポリシー] をクリックします。
  • [新規] をクリックします
  • 名前を入力 – Test_Policy
  • ワークロード条件として [Health] 条件を選択します (この条件をすばやくテストできます)
  • [次へ] をクリックします
  • テスト目的で、リクエストの合計を 1000 と入力します
  • 反応モードを自動として選択します
  • アクションを追加サーバーを再起動し、スレッド ダンプを取得する

ヘルス ポリシー ワークロード

  • [次へ] をクリックします
  • サーバー/ノードとしてフィルターを選択します
  • server1 をターゲット メンバーとして追加する
  • [次へ] をクリックします
  • 構成を確認し、[完了] をクリックします。

ヘルス ポリシーの概要

次に、対象の JVM (server1) で実行されているアプリケーションにアクセスしてテストしてみましょう。

JVM が 1000 件のリクエストを処理したら、スレッド ダンプを取得して再起動する必要があります。 JMeter を使用して負荷をかけると、テストをすばやく実行できます。

ヘルスコントローラーとは?

ヘルス コントローラーは、ヘルス ポリシーを制御し、システムを監視します。 ポリシーを監視するには、Health Controller で Health Monitoring を有効にする必要があります。

ヘルス コントローラー自体には、実行頻度やサーバーの再起動などの構成可能なプロパティがあります。

これにより、ビジネスのピーク時にサーバーの再起動を制限できます。

医療政策目標とは?

正常性ポリシーまたはアクションのターゲットは、JVM、クラスター、動的クラスター、オンデマンド ルーター、またはセルにすることができます。

これが理解を深めるのに役立つことを願っています。 DevOps の学習に興味がある場合は、この基礎コースをチェックしてください。