Persistencia de registros en una ubicación de almacenamiento de registro central (versión 9.0.0.3 o más reciente)

Al persistir los archivos de registro en una ubicación central fuera de los contenedores de Docker, puede realizar diagnósticos y resolver problemas incluso si el contenedor no es accesible o se ha destruido.

A partir de la versión 9.0.0.3 de HCL Commerce, dentro de cada contenedor de Docker, los archivos de registro se recopilan en un nombre de carpeta único que se deriva del containerType y del containerId. Por ejemplo, suponiendo que tiene dos Search server Docker container, los archivos de registro se encuentran en los directorios siguientes.
  • Contenedor de búsqueda 1: /opt/WebSphere/Liberty/usr/servers/default/logs/container/search_<containerId1>
  • Contenedor de búsqueda 2: /opt/WebSphere/Liberty/usr/servers/default/logs/container/search_<containerId2>
Anteriormente, los archivos de registro se recopilaban en el directorio /logs/ estándar, lo que hace que sea difícil recopilar y organizar los archivos de diferentes contenedores.
Nota: Si desea establecer la carpeta de registro en un directorio diferente dentro del contenedor, puede utilizar el siguiente mandato de Ejecutar motor.
run set-trace-log-directory <new_log_path>
Para obtener más información sobre cómo el proceso de inicio establece la carpeta de registro, consulte el script /SETUP/bin/entrypoint.sh.
Puede persistir todos los archivos de registro de contenedor mediante la creación de un punto de montaje de volumen en la máquina de host del Docker o en el servidor de registro central. Puesto que cada contenedor tiene su propia carpeta de registro exclusivo (containerType_containerId), puede simplemente montar todos los directorios de registro del contenedor (*/logs/) en la misma vía de acceso de la máquina host.
Imagen de los contenedores que alimentan el almacenamiento del registro central

Por qué y cuándo se efectúa esta tarea

El procedimiento siguiente proporciona un ejemplo de cómo persistir los archivos de registro desde un entorno local HCL Commerce a la máquina host de Docker mediante Docker Compose. También puede aplicar la misma estrategia para conservar los archivos de registro de los entornos desplegados mediante otras herramientas como Kubernetes o Marathon. Para obtener más información sobre el montaje de métodos con otras estrategias de despliegue, consulte la documentación oficial correspondiente.

Procedimiento

  1. Cree una carpeta en la máquina host del Docker para almacenar los archivos de registro.

    Por ejemplo, cree un directorio /logs para almacenar los archivos de los servidores de transacción, tienda, búsqueda, XC y Web.

    El contenedor del servidor de programa de utilidad no sigue el convenio containerType_containerId puesto que no es necesario desplegar varios contenedores de programa de utilidad. Cree un directorio independiente como /logs/utils.

  2. Configure los contenedores de Docker para que empiecen con un montaje de volumen en el directorio correspondiente que acaba de crear en la máquina host del Docker.
    Por ejemplo, si utiliza el Docker Compose, edite el archivo de Compose para añadir el distintivo de volúmenes.
    volumes:
        -"<log_folder_on_machine>":"<log_folder_in_container>"
    En los siguientes ejemplos se indican las vías de acceso al lugar donde se generan los registros en cada contenedor.
    • Para Transaction server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/AppServer/profiles/default/logs/container"
    • Para Web server Docker container,
      volumes:
          - "/logs:/opt/WebSphere/HTTPServer/logs"
    • Para Search server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/Liberty/usr/servers/default/logs/container"
      El directorio /opt/WebSphere/Liberty/usr/servers/default/logs/container también enlaza al directorio /profile/logs en el contenedor.
    • Para Store server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/Liberty/usr/servers/default/logs/container"
      El directorio /opt/WebSphere/Liberty/usr/servers/default/logs/container también enlaza al directorio /profile/logs en el contenedor.
    • Para Customization server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/Liberty/usr/servers/default/logs/container"
    • Para el Utility server Docker container
      volumes:
          -"/logs/utils:/opt/WebSphere/CommerceServer90/logs"
          -"/logs/utils:/opt/WebSphere/CommerceServer90/instances/demo/logs"
    Para más información, consulte
  3. Despliegue los contenedores mediante el archivo de Docker Compose actualizado.

Resultados

En la máquina host, el directorio /logs debe tener carpetas similares.
  • /logs/search_<containerId>
  • /logs/store_<containerId>
  • /logs/ts_<containerId>
  • /logs/web_<containerId>
  • /logs/xc_<containerId>
  • /logs/utils

Qué hacer a continuación

Piense en cómo manejar los archivos de registro desde el entorno de producción donde puede tener varios contenedores de cada componente. Por ejemplo, puede considerar la posibilidad de utilizar varios servidores de registro central para el equilibrio de carga. O tal vez desee que solo se conserve el archivo SystemOut.log en el servidor de registro central en tiempo real y, a continuación, configure un planificador para que almacene de forma asíncrona el archivo trace.log.