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.
Nota: La configuración de Liberty en un entorno Kubernetes requiere un enfoque similar al de la adición dinámica de Product Insights IBM Cloud. Se pueden crear secretos Kubernetes o mapas de configuración que contienen los archivos productInsights.xml y digicert.jks y montan dichos archivos en la imagen Docker en ejecución especificando los puntos de montaje en el archivo YAML de despliegue de las aplicaciones.
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.
- Para sustituir temporalmente un valor predeterminado en la configuración del servidor Liberty, renombre el archivo existente server.xml y podrá crear y configurar un nuevo archivo server.xml. Product Insights se habilita dinámicamente y no requiere ninguna configuración adicional de Product Insights. La configuración de servidor siguiente se incluye en la imagen Docker websphere-liberty:webProfile7.
<server>
<featureManager>
<feature>webProfile-7.0</feature>
</featureManager>
<!-- Para permitir el acceso a este servidor desde un cliente remoto, se ha añadido host="*" al elemento siguiente -->
<httpEndpoint id="defaultHttpEndpoint"
host="*"
httpPort="9080"
httpsPort="9443" />
<!-- Se expanden de forma automática los archivos WAR y EAR -->
<applicationManager autoExpand="true"/>
</server>
- Cree un Dockerfile de instalación. En el mismo directorio de server.xml, cree un Dockerfile que instale la característica 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 no creó su propio server.xml en el paso 1, elimine o comente la línea siguiente:COPY server.xml /config
- Compile la imagen de Docker. Compile la imagen Docker ejecutando el comando de compilación docker. La máquina a partir de la que se compila la imagen Docker ha de tener acceso a internet, porque tiene que descargar la imagen Docker de Liberty y la característica productInsights-1.0Liberty.
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 --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -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 --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
- Añada dinámicamente la configuración de IBM CloudProduct Insights.
- Descargue la copia IBM Cloud del archivo de certificado digicert.jks y colóquela en el directorio /opt/docker/libertyConfig.
- En el mismo directorio, cree un archivo de configuración llamado productInsights.xml. Sustituya <apiHost> con el API de host y <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.
- 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.