[17.0.0.1 and later]

Activation dynamique de Product Insights sur Docker

Vous pouvez enregistrer des serveurs IBM WebSphere Liberty qui s'exécutent sur Docker avec IBM Cloud Product Insights pour signaler l'enregistrement et l'utilisation des serveurs, ainsi que d'autres informations, telles que le nombre de serveurs WebSphere Liberty actifs, l'emplacement hôte de chaque serveur, l'édition et la version de produit de chaque serveur et le niveau d'occupation de chaque serveur.

Avant de commencer

IBM Cloud Product Insights requiert WebSphere Application Server Liberty version 17.0.0.1 ou ultérieure.

Les générations Liberty Docker incluent une extraction de la dernière version de l'image WebSphere Liberty Docker issue du référentiel Docker Hub. Les images Liberty Docker issues du référentiel Docker Hub incluent une license ILAN, ce qui signifie qu'il s'agit de versions gratuites, sans support et sans garantie du produit. Pour mettre à jour la licence vers un produit pris en charge, voir Upgrading the image from Docker Hub to a production image.

Avant de connecter une instance de serveur IBM WebSphere Liberty versProduct Insights, vous devez disposer d'un compte IBM Cloud et créer le service dans une organisation et dans un espace. Suivez les étapes d'initiation pour configurer un compte et allouer le service Product Insights. Notez les valeurs d'hôte d'API et de clé d'API décrites dans les instructions.

Configurer vos serveurs WebSphere Liberty dans un environnement Docker nécessite une machine Linux ou une machine virtuelle sur laquelle Docker est installé.

Remarque : La configuration de Liberty dans un environnement Kubernetes requiert une approche similaire à l'ajout dynamique d'IBM Cloud Product Insights. Vous pouvez créer des secrets Kubernetes ou des mappes de configuration qui contiennent les fichiersproductInsights.xml et digicert.jks et monter ces fichiers sur l'image Docker en cours d'exécution en spécifiant les points de montage dans le fichier YAML de déploiement d'applications.

Pourquoi et quand exécuter cette tâche

Après avoir défini la collectivité Liberty et créé l'image Docker dans un conteneur Docker, utilisez l'outil de déploiement pour installer cette image sur un hôte Docker de cette collectivité.

Procédure

  1. Générez l'image Docker.
    1. Pour substituer une valeur par défaut dans la configuration de serveur Liberty et renommer le fichier server.xml existant, vous pouvez créer et configurer un nouveau fichier server.xml. Product Insights est activé de façon dynamique et ne nécessite aucune configuration de Product Insights supplémentaire. La configuration de serveur suivante est incluse dans l'image Docker websphere-liberty:webProfile7 :
      <server>
          <featureManager>
             <feature>webProfile-7.0</feature>
          </featureManager>
         <!-- To allow access to this server from a remote client host="*" has been added to the following element -->
      
         <httpEndpoint id="defaultHttpEndpoint"
                        host="*"
                        httpPort="9080"
                        httpsPort="9443" />
          <!-- Automatically expand WAR files and EAR files -->
          <applicationManager autoExpand="true"/>
      </server>
    2. Créez un fichier Docker d'installation. Dans le même répertoire que le fichier server.xml, créez un fichier Docker qui installe la fonction Liberty productInsights-1.0.
      FROM websphere-liberty:webProfile7
      COPY server.xml /config
      RUN installUtility install --acceptLicense productInsights-1.0\
          && rm -rf /output/workarea /output/logs
      Si vous n'avez pas créé votre propre fichier server.xml à l'étape 1, retirez ou mettez en commentaire la ligne suivante :
      COPY server.xml /config
    3. Générez l'image Docker. Générez l'image Docker en exécutant la commande docker build. La machine à partir de laquelle vous générez l'image Docker doit pouvoir accéder à Internet car elle a besoin de télécharger l'image Liberty Docker et la fonction Liberty productInsights-1.0.
      docker build -t liberty-product-insights-example
  2. Exécutez l'image dans un conteneur Docker.
    1. Exécutez une instance de l'image Docker. Pour exécuter une instance de l'image Docker, utilisez le nom de l'application qui est hébergée sur le conteneur de serveur Liberty. L'exemple suivant illustre la meilleure pratique pour l'attribution de nom.
      docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' liberty-product-insights-example
      Remarque : Le nom d'hôte par défaut qui est communiqué à Product Insights pour l'instance de serveur en cours d'exécution correspond au nom de conteneur, qui est réaffecté chaque fois qu'une image Docker est exécutée ou mise à l'échelle. Pour pouvoir suivre les mesures d'un serveur de manière cohérente, vous devez remplacer la valeur du nom d'hôte par défaut en affectant une valeur à la variable d'environnement HOTE_CONTENEUR.
    2. Exécutez plusieurs instances de l'image Docker. Pour exécuter plusieurs instances de l'image Docker pour la même application, utilisez la même valeur HOTE_CONTENEUR pour chaque instance. Lorsque les données d'enregistrement et d'utilisation correspondant à la variable d'environnement HOTE_CONTENEUR sont envoyées au service Product Insights, celui-ci combine les informations comme si elles provenaient d'une seule instance afin de vous permettre de visualiser toutes les utilisations qui sont associées à l'application.
      Remarque : Vous pouvez remplacer le nom de serveur si vous le souhaitez en définissant la variable d'environnement NOM_CONTENEUR. Si cette variable n'est pas définie, toutes les images communiquent defaultServer comme nom de serveur au service Product Insights.
      docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
  3. Ajoutez la configuration IBM Cloud Product Insights de manière dynamique.
    1. Téléchargez la copie IBM Cloud du fichier certificat digicert.jks et placez-la dans le répertoire /opt/docker/libertyConfig.
    2. Dans le même répertoire, créez un fichier de configuration nommé productInsights.xml. Remplacez <hôte_API> par l'hôte d'API et <clé_API> par la clé d'API de votre 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>
      Remarque : Si la machine qui exécute le conteneur Docker se connecte au service Product Insights via une passerelle ou un serveur proxy, la configuration est légèrement différente. Pour plus d'informations, voir Use a gateway or proxy server.
  4. Vérifiez l'enregistrement auprès d'IBM Cloud Product Insights.
    1. Recherchez l'ID conteneur en exécutant la commande docker ps.
      docker ps
    2. Associez STDIN au conteneur Docker via bash afin de pouvoir interagir avec le système de fichiers de conteneur Docker.
      docker exec -it <containerId> bash
    3. Assurez-vous que le serveur a été enregistré auprès du service Product Insights en vérifiant les journaux Liberty. Dans le répertoire /logs, ouvrez le fichier messages.log et recherchez le message suivant :
      CWWKR0400I: The server was registered with the IBM Cloud Product Insights service on the specified URL <apiHost>.
    4. Dans votre navigateur, accédez à votre tableau de bord de service Product Insights sur IBM Cloud pour visualiser le serveur nouvellement enregistré.

Résultats

Vos serveurs IBM WebSphere Liberty qui s'exécutent sur Docker avec IBM Cloud Product Insights sont enregistrés pour prendre en charge l'enregistrement et l'utilisation de serveur.


Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_dynamic_docker_product_insights.html