Metric Server stellt Load Balancer Informationen zur Serverauslastung bereit. Diese Informationen werden in Form
systemspezifischer Metriken für den Serverzustand bereitgestellt.
Vorbereitende Schritte
Der Metric-Server-Agent muss auf allen Servern installiert und ausgeführt werden, die am Lastausgleich
teilnehmen.
Falls Sie auf Ihrer Maschine mit dem Protokoll IPv6 arbeiten und Metric Server
verwenden möchten, müssen Sie überprüfen, ob protocol 58 in der Protokolldatei als
ICMPv6 definiert ist.
Einschränkung von Metric Server:
Der WLM-Agent gibt wie der Agent Berichte zu kompletten Serversystemen aus und nicht
zu einzelnen protokollspezifischen Serverdämonen. Metric Server und WLM stellen ihre Ergebnisse in die Spalte "System" des
Managerberichts. Deshalb wird die gleichzeitige Ausführung von WLM-Advisor und
Metric Server nicht unterstützt.
Informationen zu diesem Vorgang
Der Load-Balancer-Manager
richtet Anfragen an den Metric-Server-Agenten, der sich
auf jedem der Server befindet, und legt anhand der Metriken,
die er von den Agenten erhalten hat, Wertigkeiten
für den Lastausgleich fest. Die Ergebnisse werden auch in den Managerbericht
gestellt.
Anmerkung: Wenn für jeden Server zwei oder mehr Metriken ermittelt und
in einen Systemauslastungswert normalisiert werden, kann es zu Rundungsfehlern
kommen.
Vorgehensweise
- Konfigurieren Sie Metric Server auf der Load-Balancer-Maschine.
Tipp: Sie können ähnliche Schritte für die Konfiguration von
Metric
Server für die anderen Load-Balancer-Komponenten verwenden.
- Starten Sie dsserver. Starten Sie den Executor, und fügen Sie
Ihrer Konfiguration Cluster, Ports und Server hinzu.
- Den Manager starten. Setzen Sie den folgenden Befehl ab:
dscontrol manager start manager.log Port
Port ist hier der
ausgewählte RMI-Port für alle Metric-Server-Agenten. Der in der Datei metricserver.cmd festgelegte Standard-RMI-Port
ist 10004.
- Fügen Sie dem Cluster das Systemmetrikscript hinzu. Setzen Sie den folgenden Befehl ab:
dscontrol metric add Cluster@Systemmetrik
Systemmetrik ist hier der Name
des Scripts (auf dem Back-End-Server), das für jeden Server, der unter dem angegebenen Cluster
in der Konfiguration enthalten ist, ausgeführt werden soll. Dem Kunden werden zwei Scripts - cpuload und memload - bereitgestellt.
Sie können aber auch angepasste Systemmetrikscripts erstellen.
Tipp: Für Site Selector werden cpuload und memload automatisch
ausgeführt.
Das Script enthält einen
Befehl, der einen numerischen Wert im Bereich von 0-100 oder, bei inaktivem Server, den Wert -1 zurückgeben
sollte.
Dieser numerische Wert sollte eine Lastmessung und keinen Verfügbarkeitswert
darstellen.
Avoid trouble: Wenn der Name Ihres Systemmetrikscripts eine andere Dateierweiterung als ".exe" hat, müssen Sie den vollständigen
Namen der Datei angeben (z. B. "mysystemscript.bat"). Dies ergibt sich aus einer Java-Einschränkung.
gotcha
- Fügen Sie zur Konfiguration nur Server hinzu, die einen Metric-Server-Agenten enthalten, der für den in der Datei
metricserver.cmd angegebenen Port ausgeführt wird. Der Port sollte mit dem im Befehl
"manager start" angegebenen Portwert übereinstimmen.
Anmerkung: Gehen Sie wie folgt vor, um die Sicherheit zu gewährleisten:
- Erstellen Sie auf der Load-Balancer-Maschine eine Schlüsseldatei (mit dem Befehl "lbkeys create").
- Kopieren Sie die generierte Schlüsseldatei für die verwendete Komponente auf der Back-End-Servermaschine
in das Verzeichnis "Installationsstammverzeichnis/admin/keys".
Stellen Sie sicher, dass die Berechtigungen der Schlüsseldatei Root das Lesen der Datei ermöglichen.
- Konfigurieren Sie Metric Server auf den Servermaschinen.
- Installieren Sie das Metric-Server-Paket aus den Load-Balancer-Installationsdateien.
- Überprüfen Sie das Metric-Server-Script im Verzeichnis
Installationsstammverzeichnis/ms/bin,
um sicherzustellen, dass der gewünschte RMI-Port verwendet wird. Der Standard-RMI-Port
ist 10004.
Anmerkung: Der RMI-Portwert muss mit dem RMI-Port identisch sein, der mit dem Befehl "manager start" in
Schritt 1b angegeben wurde.
- Optional: Sie können eigene Metrikscriptdateien
schreiben, die den Befehl definieren, der von Metric Server auf den Servermaschinen abgesetzt wird.
Stellen Sie sicher, dass alle angepassten Scripts ausführbar sind und sich im Verzeichnis
"Installationsstammverzeichnis/ms/script" befinden.
Angepasste Scripts müssen einen numerischen Lastwert zwischen 0 und 100
zurückgeben.
Dem Kunden werden die folgenden beiden Scripts im Verzeichnis
"
Installationsstammverzeichnis/ms/script" bereitgestellt:
- cpuload: Gibt die CPU-Auslastung als Prozentwert zwischen 0 und 100 zurück.
- memload: Gibt die Speicherbelegung als Prozentwert zwischen 0 und 100 zurück.
- Starten Sie den Metric-Server-Agenten. Geben Sie in einer Befehlszeile
jeder Servermaschine, auf der sich Metric Server befindet, Folgendes ein:
metricserver start
Klicken Sie nacheinander auf
Start > Systemsteuerung > Verwaltung > Dienste. Klicken Sie mit der rechten Maustaste auf IBM Metric Server (ULB), und wählen Sie
Starten aus.
- Optional: Stoppen Sie den Metric-Server-Agenten.
![[Linux]](../lb/images/linux.gif)
![[AIX HP-UX Solaris]](../lb/images/unix.gif)
Setzen
Sie zum Stoppen des Metric-Server-Agenten
den folgenden Befehl auf jeder Servermaschine ab, auf der sich Metric Server befindet:
metricserver stop
Klicken Sie nacheinander auf
Start > Systemsteuerung > Verwaltung > Dienste. Klicken Sie mit der rechten Maustaste auf IBM Metric Server (ULB), und wählen Sie
Stoppen aus.
- Optional: Ändern Sie die Protokollstufe im Startscript für Metric Server. Der gültige Wertebereich für die Protokollierungsstufe ist
wie bei den Load-Balancer-Protokollen 0 bis 5. Hierbei wird ein Agentenprotokoll im Verzeichnis
"Installationsstammverzeichnis/ms/logs" generiert.
- Optional: Wenn Metric Server für eine vom lokalen Host abweichende Adresse ausgeführt werden soll, müssen Sie die Datei
metricserver auf der am Lastausgleich beteiligten Servermaschine editieren.
Anmerkung: Wenn Sie Metriken domänenübergreifend erfassen, müssen Sie
"java.rmi.server.hostname" im Serverscript (dsserver usw.)
auf den vollständig qualifizierten Domänennamen (FQDN) der Maschine setzen, die die Metriken anfordert. Dies ist notwendig,
weil InetAddress.getLocalHost.getHostName() den FQDN unter Umständen nicht zurückgibt.
- Fügen Sie in der Datei "metricserver" hinter dem
Eintrag "java" Folgendes ein:
-Djava.rmi.server.hostname=andere_Adresse
- Fügen Sie in der Datei "metricserver"
vor den Anweisungen "if" die folgende Zeile hinzu:
hostname andere_Adresse
Außerdem müssen Sie
im Microsoft Stack auf der Metric-Server-Maschine den Aliasnamen für andere_Adresse angeben. Beispiel: call netsh interface ip add address "Local Area Connection"
addr=9.37.51.28 mask=255.255.240.0
- Optional: Konfigurieren Sie Metric Server nur für IPv4 oder nur für
IPv6. In einer Load-Balancer-Konfiguration mit Unterstützung für IPv4- und IPv6-Cluster können Server,
die die Funktion Metric Server ausführen, nur als
IPv4-Server oder nur als IPv6-Server konfiguriert werden. Wenn Sie durchsetzen möchten, dass Metric Server ein bestimmtes
IP-Protokoll verwendet, geben Sie im Script "metricserver" die Java-Eigenschaft
"java.rmi.server.hostname" an.
Anmerkung: Der in der Java-Eigenschaft angegebene
Hostname muss die physische IP-Adresse von
Metric Server sein.
![[AIX]](../lb/images/aixlogo.gif)
![[Linux]](../lb/images/linux.gif)
![[Solaris]](../lb/images/solaris.gif)
Wenn Metric Server
über die IPv6-Adresse 2002:92a:8f7a:162:9:42:92:67 kommunizieren soll, geben Sie
im Startscript "metricserver" im Verzeichnis Installationsstammverzeichnis/bin
die Java-Eigenschaft nach $LB_CLASSPATH
an. Installationsstammverzeichnis/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 &
Wenn Metric Server
über die IPv6-Adresse 2002:92a:8f7a:162:9:42:92:67 kommunizieren soll, müssen Sie die Datei
"metricserver.cmd" im Verzeichnis Installationsverzeichnis
wie folgt
bearbeiten: 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