Suivi de l'utilisation de Java dans un conteneur

Vous pouvez suivre l'utilisation Java des applications Java exécutées dans un conteneur à l'aide de parcs JMS. Cette section explique comment configurer un conteneur à l'aide d'une image docker.
Remarque

Seuls les conteneurs comportant des clés JDK Oracle sont détectés.
Prérequis :
  • Vous avez terminé l'installation de l'agent de gestion et le déploiement du module d'extension JMS sur l'hôte de conteneur. L'hôte de conteneur peut être une instance de calcul sur site, sur OCI ou sur toute autre plate-forme cloud.
  • L'image Docker est stockée dans l'hôte de conteneur. L'image contient une ou plusieurs applications Java (fichiers JAR), le JDK Oracle et d'autres dépendances requises pour exécuter vos applications Java.
  • Docker est installé sur l'hôte du conteneur.

Pour suivre l'utilisation de Java dans un conteneur, procédez comme suit :

  1. Assurez-vous que les enregistrements Java Usage Tracker sont écrits dans /var/log/java/usagetracker.log. Utilisez la commande suivante pour démarrer un conteneur.
    Remarque

    Vous devez uniquement utiliser cette configuration avec des conteneurs sécurisés ou lorsque aucune isolation n'est nécessaire entre le conteneur hôte et le conteneur, ni entre les conteneurs. Si une isolation est nécessaire, vous devez utiliser un fichier usagetracker.log distinct pour chaque conteneur et agréger ces journaux dans /var/log/java/usagetracker.log sur l'hôte du conteneur.
    docker run -d -v /var/log/java/:/var/log/java/ -v /etc/oracle/java/:/etc/oracle/java/:ro --name <container_name> <docker_image>:latest
    • -d démarre le conteneur en tant que processus démon.
    • -v /var/log/java/:/var/log/java/ met en correspondance le montage de liaison /var/log/java/ sur l'hôte de conteneur avec /var/log/java/ dans le conteneur. Cela garantit que le fichier /var/log/java/usagetracker.log dans le conteneur est présent dans l'hôte de conteneur.
    • -v /etc/oracle/java/:/etc/oracle/java/:ro est mis en correspondance en tant que montage de liaison en lecture seule /etc/oracle/java/ sur l'hôte de conteneur avec /etc/oracle/java/ dans le conteneur. Cela garantit que le fichier /etc/oracle/java/usagetracker.properties dans le conteneur est présent dans l'hôte de conteneur.
    • --name <container_name> identifie le nom sur le conteneur. Remplacez <container_name> par le nom de votre conteneur.
    • <docker_image>:latest indique l'utilisation de la dernière version de l'image. Remplacez <docker_image> par le nom de votre image docker.
  2. Utilisez l'inspection docker pour vérifier que les montages de liaison ont été créés correctement dans le conteneur.
    docker inspect <container_name>

    Recherchez la section Mounts :

     "Mounts": [
                {
                    "Type": "bind",
                    "Source": "/var/log/java/",
                    "Destination": "/var/log/java/",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "rprivate"
                },
                    "Type": "bind",
                    "Source": "/etc/oracle/java/",
                    "Destination": "/etc/oracle/java/",
                    "Mode": "ro",
                    "RW": false,
                    "Propagation": "rprivate"
            ],
  3. Vérifiez le fichier journal pour vérifier qu'il contient les applications Java (fichiers JAR) et la version JDK de l'image docker.
    cat /var/log/java/usagetracker.log
  4. Incluez usagetracker.config pour créer un fichier journal spécifique sur l'hôte.
    Copiez usagetracker.properties de l'hôte /etc/oracle/java vers le répertoire en cours afin de pouvoir l'inclure dans un build de docker.
    # usage tracker configuration
    RUN mkdir -p /etc/oracle/java/
    COPY ./usagetracker.properties /etc/oracle/java/
    RUN chmod 644 /etc/oracle/java/usagetracker.properties
    RUN sed -i "s/\usagetracker.log/usagetracker.log_${CONTAINER_NAME}/g" /etc/oracle/java/usagetracker.properties
  5. Assurez-vous que les enregistrements Java Usage Tracker sont écrits dans /var/log/java/ pour chaque conteneur. Utilisez la commande suivante pour démarrer un conteneur :
    docker run -d -v /var/log/java/:/var/log/java/ --name <container_name> <docker_image>:latest
  6. Regroupez plusieurs fichiers d'utilisation dans /var/log/java/usagetracker.log sur l'hôte.
  7. Vérifiez votre parc dans JMS pour voir si votre conteneur Docker a été détecté. Vous devez pouvoir voir les fichiers JAR de vos applications Java sous Applications.