Se pueden registrar servidores IBM WebSphere Liberty que ejecutan en Docker en IBM Cloud
Product Insights para notificar el registro y el uso de servidor y otra información como, por ejemplo, el número de servidores WebSphere Liberty activos, la ubicación de host de cada servidor, la edición y versión de producto de cada servidor y qué nivel de ocupación tiene cada uno.
Antes de empezar
IBM Cloud
Product Insights requiere WebSphere Application
Server Liberty versión 17.0.0.1 o posteriores.
Las compilaciones de Liberty Docker incluyen una extracción de la versión más reciente de la imagen Docker de WebSphere Liberty
del hub de Docker. Las imágenes de Docker Hub de Liberty incluyen una licencia ILAN, lo que significa que son versiones del producto que carecen de coste, soporte y garantía. Para actualizar la licencia a un producto soportado, consulte Actualización de la imagen de Docker Hub a una imagen de producción.
Antes de conectar una instancia de servidor IBM WebSphere Liberty con Product Insights, hay que tener una cuenta de IBM Cloud y crear el servicio en una organización y un espacio. Siga los pasos iniciales para configurar una cuenta y asignar el servicio Product Insights. Tome nota del host de API y de la clave de API descritos en las instrucciones.
La configuración de los servidores de WebSphere Liberty en Docker requiere una máquina Linux o una máquina virtual con Docker instalado.
Acerca de esta tarea
Después de definir el colectivo Liberty y crear la imagen de Docker en un contenedor de Docker, utilice la herramienta de despliegue para instalar la imagen en un host de
Docker en el colectivo.
Procedimiento
- Compile la imagen de Docker.
- Configure la conexión con el servicio de Product Insights. En el archivo server.xml del servidor Liberty, configure la conexión con el servicio Product Insights. Sustituya <apiHost> con el host de API del servicio de Product Insights. Sustituya <apiKey> con la clave de API del servicio.
<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>
Nota: Si la máquina que ejecuta el contenedor Docker se conecta con el servicio
Product Insights a través de un servidor proxy o una pasarela, la configuración es ligeramente diferente. Para obtener más información, consulte
Uso de una pasarela o un servidor proxy.
- Cree un Dockerfile de instalación. En el mismo directorio de server.xml, cree un Dockerfile que instale la imagen de Liberty, productInsights-1.0 Liberty y el archivo de certificado IBM Cloud digicert.jks. El siguiente Dockerfile extrae la imagen websphere-liberty:webProfile7 de Docker Hub y usa esa versión de Liberty para compilar la nueva imagen. Para obtener las otras imágenes Docker de Liberty que se pueden instalar, consulte el repositorio websphere-liberty en 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
- Compile la imagen de Docker. Compile la imagen Docker ejecutando el comando de compilación docker. La máquina desde la que se compila la imagen Docker ha de tener acceso a internet, porque tiene que descargar la imagen Docker de Liberty, la característica productInsights-1.0
Liberty y el certificado IBM Cloud
digicert.jks.
docker build -t liberty-product-insights-example
- Ejecute la imagen en un contenedor Docker.
- Ejecute una instancia de la imagen Docker. Para ejecutar una instancia de la imagen Docker, utilice el nombre de la aplicación alojada en el contenedor de servidor Liberty. El ejemplo siguiente ilustra la mejor práctica de nombrado.
docker run -d -e CONTAINER_HOST='myApplication' liberty-product-insights-example
Nota: El nombre de host predeterminado se notifica a Product Insights; para la instancia de servidor en ejecución es el nombre del contenedor, que se reasigna cada vez que se ejecuta o escala una imagen Docker. Para poder rastrear sistemáticamente métricas de un servidor, hay que sustituir el valor de nombre de host definiendo un valor predeterminado para la variable de entorno CONTAINER_HOST.
- Ejecute varias instancias de la imagen Docker. Para ejecutar varias instancias de la imagen Docker de la misma aplicación, utilice el mismo valor de CONTAINER_HOST en cada instancia. Cuando los datos de registro y uso que corresponden al CONTAINER_HOST (host de contenedor) se envían al servicio Product Insights, dicho servicio combina la información como si se tratara de una única instancia para que se pueda ver todo el uso asociado a la aplicación.
Nota: Para sustituir opcionalmente el nombre de servidor, configure la variable de entorno
CONTAINER_NAME. Si esta variable no está configurada, todas las imágenes notificarán
defaultServer como nombre de servidor del servicio
Product Insights.
docker run -d -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
- Compruebe el registro en IBM Cloud Product Insights.
- Busque el ID del contenedor ejecutando el comando docker ps.
docker ps
- Conecte STDIN al contenedor Docker a través de bash para poder interactuar con el sistema de archivos del contenedor Docker.
docker exec -it <IdContenedor> bash
- Verifique que el servidor se ha registrado en el servicio Product Insights comprobando los registros cronológicos de Liberty En el directorio /logs, abra el archivo messages.log y busque el mensaje siguiente.
CWWKR0400I: The server was registered with the IBM Cloud Product Insights service on the specified URL <apiHost>.
- En el navegador, vaya al panel de servicios Product Insights IBM Cloud para ver el servidor recién registrado.
Resultados
Los servidores IBM WebSphere Liberty que ejecutan en Docker con IBM Cloud
Product Insights están registrados para soportar el uso y el registro de servidores.