[17.0.0.1 und höher]

Liberty-Server unter Docker bei IBM Cloud Product Insights registrieren

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.

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

  1. Erstellen Sie den Build für das Docker-Image.
    1. Konfigurieren Sie die Verbindung zum Product Insights-Service. Konfigurieren Sie in der server.xml-Datei des Liberty-Servers die Verbindung zum Product Insights-Service. Ersetzen Sie <apiHost> durch den API-Host für Ihren Product Insights-Service. Ersetzen Sie <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.
    2. 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-Image, das Liberty-Feature productInsights-1.0 und die IBM Cloud-Zertifikatsdatei digicert.jks installiert. Die folgende Dockerfile extrahiert das websphere-liberty:webProfile7-Image aus Docker Hub und verwendet diese Versoin von Liberty, um den Build für das neue Image zu erstellen. Informationen zur Installation möglicher weiterer Liberty-Docker-Images finden Sie im websphere-liberty-Repository unter Docker Hub.
      FROM websphere-liberty:webProfile7
      COPY server.xml /config/
      RUN apt-get update \
          && apt-get install -y --no-install-recommends unzip curl \
          && rm -rf /var/lib/apt/lists/*
      RUN installUtility install --acceptLicense productInsights-1.0\
          && rm -rf /output/workarea /output/logs
      RUN cd /opt/ibm/wlp/usr/servers/defaultServer \
          && curl -O https://wlpcfg.ng.bluemix.net/productinsights/digicert.jks
    3. 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, das Liberty-Feature productInsights-1.0 und das erforderliche IBM Cloud-Zertifikat digicert.jks heruntergeladen werden müssen.
      docker build -t liberty-product-insights-example
  2. Führen Sie das Image in einem Docker-Container aus.
    1. 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 -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.
    2. 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 -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
  3. Überprüfen Sie die Registrierung bei IBM Cloud Product Insights.
    1. Suchen Sie die Container-ID, indem Sie den Befehl docker ps ausführen.
      docker ps
    2. Ordnen Sie STDIN dem Docker-Container über bash zu, damit Sie mit dem Docker-Containerdateisystem interagieren können.
      docker exec -it <containerId> bash
    3. 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.
    4. 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.


Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_docker_product_insights.html