Sie können IBM WebSphere Liberty-Server, die unter Docker mit IBM Cloud
Product Insights ausgeführt werden, registrieren, um Informationen zur Serverregistrierung und -nutzung sowie weitere Informationen, wie z. B. die Anzahl aktiver Liberty-Server, Hostpositionen aller Server, Produktedition und Version aller Server und Auslastungsgrad aller Server, zu berichten.
Vorbereitende Schritte
IBM Cloud
Product Insights erfordert WebSphere Application
Server Liberty ab Version 17.0.0.1.
Bei den Liberty-Docker-Builds wird eine Pull-Operation der aktuellsten Version des WebSphere Liberty-Docker-Image aus dem Docker-Hub ausgeführt. Die Liberty-Docker-Hub-Images beinhalten eine ILAN-Lizenz, d. h., es sind kostenlose, nicht unterstützte Versionen des Produkts ohne Gewährleistung. Wenn Sie die Lizenz eines unterstützten Produkts aktualisieren möchten, lesen Sie die Informationen unter Upgrading
the image from Docker Hub to a production image.
Wenn Sie eine Verbindung zu einer IBM WebSphere Liberty-Serverinstanz zu Product Insights herstellen möchten, benötigen Sie zunächst
ein IBM Cloud-Konto und Sie müssen den Service in einer Organisation und in einem Bereich erstellen. Befolgen Sie die Anweisungen in der Einführung, um ein Konto einzurichten und den Product Insights-Service zuzuordnen. Notieren Sie sich den API-Host und den API-Schlüssel, die in den Anweisungen beschrieben werden.
Für die Konfiguration Ihrer WebSphere Liberty-Server unter Docker ist entweder eine Linux-Maschine oder eine virtuelle Maschine mit installiertem Docker erforderlich.
Anmerkung: Für die Konfiguration von Liberty in einer Kubernetes-Umgebung ist eine Methode ähnlich dem dynamischen Hinzufügen von IBM Cloud Product Insights erforderlich. Sie können geheime Kubernetes-Schlüssel oder Konfigurationsübersichten erstellen, die die Dateien productInsights.xml und digicert.jks enthalten, und diese Dateien an das aktive Docker-Image anhängen, indem Sie die Mountpunkte in der YAML-Datei für die Anwendungsimplementierung angeben.
Informationen zu diesem Vorgang
Nachdem Sie den Liberty-Verbund definiert und das Docker-Image in einem Docker-Container erstellt haben, verwenden Sie das Tool "Implementieren", um das Image in einem Docker-Host innerhalb des Verbunds zu installieren.
Vorgehensweise
- Erstellen Sie den Build für das Docker-Image.
- Wenn Sie einen Standardwert in der Liberty-Serverkonfiguration überschreiben möchten, benennen Sie die vorhandene server.xml-Datei um und Sie können eine neue server.xml-Datei erstellen und konfigurieren. Product Insights wird dynamisch aktiviert und erfordert keine weiteren Product Insights-Konfigurationsschritte. Die folgende Serverkonfiguration ist im Docker-Image websphere-liberty:webProfile7 enthalten.
<server>
<featureManager>
<feature>webProfile-7.0</feature>
</featureManager>
<!-- Für den Zugriff auf diesen Server über einen fernen Client fügen Sie dem folgenden Element host="*" hinzu. -->
<httpEndpoint id="defaultHttpEndpoint"
host="*"
httpPort="9080"
httpsPort="9443" />
<!-- WAR-Dateien und EAR-Dateien automatisch einblenden -->
<applicationManager autoExpand="true"/>
</server>
- Erstellen Sie eine Dockerfile für die Installation. Erstellen Sie in demselben Verzeichnis, in dem sich die Datei server.xml befindet, eine Dockerfile, die das Liberty-Feature productInsights-1.0 installiert.
FROM websphere-liberty:webProfile7
COPY server.xml /config
RUN installUtility install --acceptLicense productInsights-1.0\
&& rm -rf /output/workarea /output/logs
Wenn Sie in Schritt 1 keine eigene server.xml-Datei erstellt haben, entfernen Sie die folgende Zeile oder setzen Sie sie auf Kommentar:
COPY server.xml /config
- Erstellen Sie den Build für das Docker-Image. Erstellen Sie den Build für das Docker-Image, indem Sie den Docker-Buildbefehl ausführen. Die Maschine, von der aus Sie das Docker-Image erstellen, benötigt Internetzugriff, da das Liberty-Docker-Image und das Liberty-Feature productInsights-1.0 heruntergeladen werden müssen.
docker build -t liberty-product-insights-example
- Führen Sie das Image in einem Docker-Container aus.
- Führen Sie eine Instanz des Docker-Image aus. Verwenden Sie zum Ausführen der Instanz des Docker-Image den Namen der Anwendung, der im Liberty-Server-Container gehostet wird. Das folgende Beispiel veranschaulicht bewährte Verfahren für die Benennung.
docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' liberty-product-insights-example
Anmerkung: Der Standardhostname, der an Product Insights für die aktive Serverinstanz berichtet wird, ist der Containername, der jedes Mal, wenn ein Docker-Image ausgeführt oder skaliert wird neu zugeordnet wird. Wenn Sie durchgängig Metriken für einen Server überwachen möchten, müssen Sie den Wert für den Standardhostnamen überschreiben, indem Sie einen Wert für die Umgebungsvariable CONTAINER_HOST festlegen.
- Führen Sie mehrere Instanzen des Docker-Image aus. Wenn Sie mehrere Instanzen des Docker-Image für dieselbe Anwendung ausführen möchten, verwenden Sie denselben Wert für CONTAINER_HOST für jede Instanz. Wenn Registrierungs- und Nutzungsdaten, die dem CONTAINER_HOST entsprechen, an den Product Insights-Service gesendet werden, kombiniert der Service die Informationen so, als kämen sie aus einer einzelnen Instanz, sodass Sie alle Nutzungsdaten anzeigen können, die der Anwendung zugeordnet sind.
Anmerkung: Wenn Sie optional den Servernamen überschreiben möchten, setzen Sie die den Wert für die Umgebungsvariable
CONTAINER_NAME. Wenn diese Variable nicht gesetzt ist, berichten alle Images als Servernamen
defaultServer an den
Product Insights-Service.
docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
- Fügen Sie die IBM Cloud
Product Insights-Konfiguration dynamisch hinz.
- Laden Sie die IBM Cloud-Kopie der digicert.jks-Zertifikatsdatei herunter und speichern Sie sie im Verzeichnis /opt/docker/libertyConfig.
- Erstellen Sie in demselben Verzeichnis eine Konfigurationsdateiname mit dem Namen productInsights.xml. Ersetzen Sie <apiHost> durch den API-Host und <apiKey> durch den API-Schlüssel für ihren Service.
<server>
<featureManager>
<feature>productInsights-1.0</feature>
</featureManager>
<productInsights url="<apiHost>" apiKey="<apiKey>" sslRef="productInsightsSSL"
groups="DockerImages"/>
<keyStore id="productInsightsKeyStore" location="/config/digicert.jks" type="JKS"/>
<ssl id="productInsightsSSL"
keyStoreRef="productInsightsKeyStore"
trustStoreRef="productInsightsKeyStore"
sslProtocol="TLSv1.2"/>
</server>
Anmerkung: Wenn die Maschine, auf der der Docker-Container ausgeführt wird, eine Verbindung zum
Product Insights-Service über ein Gateway oder einen Proxy-Server herstellt, sieht die Konfiguration etwas anders aus. Weitere Informationen finden Sie unter
Use a gateway or proxy server.
- Überprüfen Sie die Registrierung bei IBM Cloud
Product Insights.
- Suchen Sie die Container-ID, indem Sie den Befehl docker ps ausführen.
docker ps
- Ordnen Sie STDIN dem Docker-Container über bash zu, damit Sie mit dem Docker-Containerdateisystem interagieren können.
docker exec -it <containerId> bash
- Vergewissern Sie sich, dass der Server beim Product Insights-Service registriert wurde, indem Sie die Liberty-Protokolle überprüfen. Öffnen Sie im Verzeichnis /logs die Datei messages.log und suchen Sie nach der folgenden Nachricht.
CWWKR0400I: Der Server wurde mit dem Service IBM Cloud Product Insights unter der angegebenen URL <apiHost> registriert.
- Rufen Sie in Ihrem Browser Ihr Product Insights-Service-Dashboard unter IBM Cloud auf, um den neu registrierten Server anzuzeigen.
Ergebnisse
Ihre IBM WebSphere Liberty-Server, die mit IBM Cloud
Product Insights unter Docker ausgeführt werden, sind für die Unterstützung der Serverregistrierung und Servernutzung registriert.