Journaux persistants vers un emplacement de stockage central du journal (version 9.0.0.3 ou ultérieure)

En conservant les fichiers journaux dans un emplacement central à l'extérieur des conteneurs Docker, vous pouvez effectuer des diagnostics et identifier et résoudre des incidents, même si le conteneur n'est pas accessible ou est détruit.

A compter d'HCL Commerce version 9.0.0.3, à l'intérieur de chaque conteneur Docker, les fichiers journaux sont rassemblés sous un nom de dossier unique dérivé de containerType et containerId. Par exemple, en supposant que vous avez deux Search server Docker containers, les fichiers journaux se trouvent dans les répertoires suivants.
  • Conteneur de recherche 1 : /opt/WebSphere/Liberty/usr/servers/default/logs/container/search_<containerId1>
  • Conteneur de recherche 2 : /opt/WebSphere/Liberty/usr/servers/default/logs/container/search_<containerId2>
Auparavant, les fichiers journaux étaient collectés dans le répertoire /logs/ standard, ce qui rendait difficile la collecte et l'organisation des fichiers à partir de différents conteneurs.
Remarque : Si vous souhaitez définir le dossier de journal dans un autre répertoire à l'intérieur du conteneur, vous pouvez utiliser la commande Run Engine suivante.
run set-trace-log-directory <new_log_path>
Pour en savoir plus sur la façon dont le processus de démarrage définit le dossier du journal, voir le script /SETUP/bin/entrypoint.sh.
Vous pouvez conserver tous les fichiers journaux de conteneurs en créant un point de montage de volume vers la machine hôte Docker ou le serveur de journaux central. Puisque chaque conteneur dispose de son propre dossier de journal unique (containerType_containerId), vous pouvez simplement monter tous les répertoires de journal de conteneur (*/logs/) sur le même chemin sur votre machine hôte.
Image des conteneurs qui alimentent le stockage central des journaux

Pourquoi et quand exécuter cette tâche

La procédure suivante fournit un exemple de comment conserver les fichiers journaux d'un environnement local HCL Commerce sur la machine hôte Docker à l'aide de Docker Composer. Vous pouvez également appliquer la même stratégie pour conserver les fichiers journaux des environnements déployés à l'aide d'autres outils tels que Kubernetes ou Marathon. Pour plus d'informations sur les méthodes de montage avec d'autres stratégies de déploiement, reportez-vous à la documentation officielle respective.

Procédure

  1. Créez un dossier sur l'ordinateur hôte Docker pour stocker les fichiers journaux.

    Par exemple, créez un répertoire /logs pour stocker des fichiers à partir des serveurs de transactions, de magasin, de recherche, personnalisés et Web.

    Le conteneur du serveur d'utilitaire ne suit pas la convention containerType_containerId, puisque vous n'avez pas besoin de déployer plusieurs conteneurs d'utilitaires. Créez un répertoire distinct tel que /logs/utils.

  2. Configurez vos conteneurs Docker pour commencer par un montage de volume dans le répertoire correspondant que vous venez de créer sur la machine hôte Docker.
    Par exemple, si vous utilisez Docker Composer, modifiez le fichier Composer pour ajouter l'indicateur sur les volumes.
    volumes:
        -"<log_folder_on_machine>":"<log_folder_in_container>"
    Les exemples suivants indiquent les chemins qui mènent à l'endroit où les journaux sont générés dans chaque conteneur.
    • Pour Transaction server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/AppServer/profiles/default/logs/container"
    • Pour Web server Docker container,
      volumes:
          - "/logs:/opt/WebSphere/HTTPServer/logs"
    • Pour Search server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/Liberty/usr/servers/default/logs/container"
      Le répertoire /opt/WebSphere/Liberty/usr/servers/default/logs/container est également lié au répertoire /profile/logs du conteneur.
    • Pour Store server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/Liberty/usr/servers/default/logs/container"
      Le répertoire /opt/WebSphere/Liberty/usr/servers/default/logs/container est également lié au répertoire /profile/logs du conteneur.
    • Pour Customization server Docker container,
      volumes:
          -"/logs:/opt/WebSphere/Liberty/usr/servers/default/logs/container"
    • Pour Utility server Docker container
      volumes:
          -"/logs/utils:/opt/WebSphere/CommerceServer90/logs"
          -"/logs/utils:/opt/WebSphere/CommerceServer90/instances/demo/logs"
    Pour plus d'informations, voir :
  3. Déployez des conteneurs à l'aide du fichier Docker Compose mis à jour.

Résultats

Sur votre machine hôte, votre répertoire /logs doit avoir des dossiers similaires.
  • /logs/search_<containerId>
  • /logs/store_<containerId>
  • /logs/ts_<containerId>
  • /logs/web_<containerId>
  • /logs/xc_<containerId>
  • /logs/utils

Que faire ensuite

Réfléchissez à comment traiter les fichiers journaux de votre environnement de production afin d'avoir plusieurs conteneurs de chaque composant. Par exemple, vous pouvez envisager d'utiliser plusieurs serveurs de journaux centraux pour l'équilibrage de charge. Vous pouvez également conserver le fichier SystemOut.log sur le serveur de journal central en temps réel, puis configurer un planificateur pour qu'il conserve de manière asynchrone le fichier trace.log.