Metric Server はシステム固有のメトリックの形式でサーバー・ロード情報を Load Balancer に提供し、サーバーの状態について報告します。
始める前に
Metric Server エージェントは、ロード・バランシング対象のサーバーすべてにインストールされていて、実行中でなければなりません。
マシンで IPv6 プロトコルを使用していて、Metric Server を使用しようとする
場合は、protocol 58 が protocol ファイルに ICMPv6 として
定義されているかどうかを確認する必要があります。
Metric Server の制約事項: Metric Server エージェントのように、WLM エージェントは、個々のプロトコル特有のサーバー・デーモンではなく、サーバー・システム全体について報告します。Metric Server および WLM は、結果を manager 報告書の system 列に入れます。そのため、WLM advisor および Metric Server の両方を同時に実行することはできません。
このタスクについて
Load Balancer manager は、各サーバーに常駐している Metric Server エージェントに照会し、エージェントから収集したメトリックを使用してロード・バランシング処理に重みを割り当てます。
その結果も manager 報告書に入れられます。
注: 複数のメトリックが収集されて、サーバーごとに 1 つのシステム負荷値に正規化されるとき、丸め誤差が起こることがあります。
手順
- Load Balancer マシンで Metric Server を構成します。
ヒント: 同様の手順を使用して、Load Balancer の他のコンポーネント用の Metric Server を構成できます。
- dsserver を開始します。executor を開始し、
ご使用の構成にクラスター、ポート、およびサーバーを追加します。
- manager を開始します。 以下のコマンドを発行する。
dscontrol manager start manager.log port
ここで、port は、すべての Metric Server エージェントを実行するために選択する RMI ポートです。metricserver.cmd ファイル中で設定されているデフォルト RMI ポートは 10004 です。
- システム・メトリック・スクリプトをクラスターに追加します。 以下のコマンドを発行する。
dscontrol metric add cluster@systemMetric
systemMetric は、指定されたクラスターの下の構成の各サーバーで実行される (バックエンド・サーバーに存在している) スクリプトの名前です。
2 つのスクリプト cpuload および memload がお客様に提供されます。または、カスタム・システム・メトリック・スクリプトを作成することができます。
ヒント: Site Selector の場合は、cpuload および memload は自動的に実行されます。
スクリプトには、0 から 100 までの範囲の数値または値 -1 (サーバーがダウンしている場合) を返すコマンドが含まれています。
この数値は、可用性の値ではなく、負荷測定値を表すようにしてください。
Avoid trouble: システム・メトリック・スクリプトの名前の拡張子が「.exe」以外になっているときには、ファイルのフルネーム (例えば、「mysystemscript.bat」) を指定しなければなりません。これは Java の制限によるものです。
gotcha
- 構成には、metricserver.cmd ファイル中に指定されているポートで実行中の Metric Server エージェントが含まれているサーバーだけを追加します。 ポートは manager start コマンドに指定されたポート値と一致している必要があります。
注: セキュリティーを確認するには、以下のようにします。
- Load Balancer マシンで、鍵ファイルを作成 (lbkeys create コマンドを使用) します。
- バックエンドのサーバー・マシンで、ご使用のコンポーネント用に、得られる鍵ファイルを install_root/admin/keys ディレクトリーにコピーします。鍵ファイルの許可によって、root がそのファイルを読み取ることができるかどうかを検査します。
- サーバー・マシンで Metric Server を構成します。
- Load Balancer インストール・ファイルから、Metric Server パッケージをインストールします。
- install_root/ms/bin ディレクトリー内の Metric Server スクリプトを調べて、必要な RMI ポートが使用中であることを確認します。デフォルトの RMI ポートは 10004 です。
注: 指定された RMI ポート値は、
Step 1b の manager start コマンドで指定した RMI ポート値と同じ値でなければなりません。
- オプション: Metric Server がサーバー・マシンで出すコマンドを定義する、独自のカスタマイズ済みメトリック・スクリプト・ファイルを作成できます。すべてのカスタム・スクリプトが実行可能であること、および install_root/ms/script ディレクトリーにあることを確認してください。カスタム・スクリプトは、0 から 100 の範囲に属する数値の負荷値を返す必要があります。
以下の 2 つのスクリプトがお客様に対して提供され、
install_root/ms/script ディレクトリーにあります。
- cpuload: 使用中の cpu のパーセンテージを 0 から 100 の範囲で返します。
- memload: 使用中のメモリーのパーセンテージを 0 から 100 の範囲で返します。
- Metric Server エージェントを開始します。 Metric Server が常駐する各サーバー・マシンのコマンド行に、以下を入力します。
metricserver start
「スタート」>「コントロール パネル」>「管理ツール」>「サービス」とクリックします。
「IBM Metric Server (ULB)」を右クリックして、「開始」を選択します。
- オプション: Metric Server エージェントを停止します。
![[Linux]](../lb/images/linux.gif)
![[AIX HP-UX Solaris]](../lb/images/unix.gif)
Metric Server エージェントを停止するには、Metric Server が常駐するすべてのサーバー・マシンで以下のコマンドを発行します。
metricserver stop
「スタート」>「コントロール パネル」>「管理ツール」>「サービス」とクリックします。
「IBM Metric Server (ULB)」を右クリックして、「停止」を選択します。
- オプション: Metric Server 始動スクリプトのログ・レベルを変更します。 Load Balancer ログのログ・レベル範囲と同様に、0 から 5 のログ・レベル範囲を指定することができます。
これにより、install_root/ms/logs ディレクトリーにエージェント・ログが生成されます。
- オプション: Metric Server をローカル・ホスト以外のアドレスで実行させるには、ロード・バランシング対象のサーバー・マシン上の metricserver ファイルを編集する必要があります。
注: さまざまなドメイン間でメトリックを収集するときは、サーバー・スクリプト (dsserver 等) で java.rmi.server.hostname を、メトリックを
要求するマシンの完全修飾ドメイン名 (FQDN) に明示的に設定しなければなりません。
これが必要なのは、InetAddress.getLocalHost.getHostName() が FQDN を戻さない
可能性があるためです。
- metricserver ファイル中の「java」のオカレンスの後に、以下を挿入します。
-Djava.rmi.server.hostname=OTHER_ADDRESS
- metricserver ファイル中の「if」ステートメントの前に、次の行を追加します。
hostname OTHER_ADDRESS
Metric Server マシンの Microsoft スタックで、OTHER_ADDRESS に別名を割り当てることも必要です。 例えば、以下のようになります。
call netsh interface ip add address "Local Area Connection"
addr=9.37.51.28 mask=255.255.240.0
- オプション: IPv4 専用または IPv6 専用に Metric Server を構成します。 IPv4 クラスターと IPv6 クラスターの両方をサポートする Load Balancer 構成では、Metric Server 機能を実行するサーバーは、IPv4 専用または IPv6 専用 (両方は不可) として構成することができます。
Metric Server が特定の IP プロトコルを強制的に使用するようにするには、metricserver スクリプトで、Java プロパティー java.rmi.server.hostname を指定します。
注: Java プロパティーで指定されるホスト名は、Metric Server の物理 IP アドレスでなければなりません。
![[AIX]](../lb/images/aixlogo.gif)
![[Linux]](../lb/images/linux.gif)
![[Solaris]](../lb/images/solaris.gif)
Metric Server が IPv6 アドレス 2002:92a:8f7a:162:9:42:92:67 を介して通信するには、以下のように、install_root/bin ディレクトリー内の metricserver 起動スクリプトで $LB_CLASSPATH の後に Java プロパティーを指定します。 install_root/java/jre/bin/java ..... $ULB_CLASSPATH
-Djava.rmi.server.hostname=2002:92a:8f7a:162:9:42:92:67
com.ibm.internet.nd.sma.SMA_Agent $LB_RMIPORT $LOG_LEVEL $LOG_SIZE $LOG_DIRECTORY $KEYS_DIRECTORY
$SCRIPT_DIRECTORY &
Metric Server が IPv6 アドレス 2002:92a:8f7a:162:9:42:92:67 を介して通信するには、以下のように install_root/bin ディレクトリー内の metricserver.cmd ファイルを編集する必要があります。start
/min /wait %IBMULBPATH%¥java¥jre¥bin¥java
-Djava.rmi.server.hostname=2002:92a:8f7a:162:9:42:92:67
-Djava.net.preferIPv4Stack=false
-Djava.net.preferIPv6Stack=true -Xrs -cp
%LB_CLASSPATH% com.ibm.internet.nd.sma.SMA_Agent
%RMI_PORT% %LOG_LEVEL% %LOG_SIZE% %LOG_DIRECTORY% %KEYS_DIRECTORY%
%SCRIPT_DIRECTORY%
goto done
:stop
%IBMLBPATH%¥java¥jre¥bin¥java
-Djava.rmi.server.hostname=2002:92a:8f7a:162:9:42:92:67
-Djava.net.preferIPv4Stack=false
-Djava.net.preferIPv6Stack=true -cp %LB_CLASSPATH% com.ibm.internet.nd.sma.SMA_AgentStop %RMI_PORT%
:done