Suivi de l'utilisation de Java dans un conteneur

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

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

Pour suivre l'utilisation de Java dans un conteneur :

  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.
    Note

    Vous devez utiliser cette configuration uniquement avec des conteneurs approuvés, ou lorsque vous n'avez pas besoin d'isolement entre le conteneur hôte et le conteneur, ou entre des conteneurs. Si vous avez besoin d'un isolement, 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/ mappe le montage de liaison /var/log/java/ sur l'hôte du conteneur à /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 du conteneur.
    • -v /etc/oracle/java/:/etc/oracle/java/:ro est mappé en tant que montage de liaison en lecture seule /etc/oracle/java/ sur l'hôte du conteneur à /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 du 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 votre image. Remplacez <docker_image> par le nom de votre image de docker.
  2. Utilisez docker inspect pour vérifier que les supports de liaison ont été créés correctement dans le conteneur.
    docker inspect <container_name>

    Recherchez la section Montages :

     "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 valider qu'il contient vos applications Java (fichiers jar) et la version JDK de votre 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 courant afin de pouvoir l'inclure dans une version 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 du traceur d'utilisation Java sont écrits dans /var/log/java/ pour chaque conteneur. Pour démarrer un conteneur, utilisez la commande suivante :
    docker run -d -v /var/log/java/:/var/log/java/ --name <container_name> <docker_image>:latest
  6. Agrégez 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 devriez pouvoir voir les fichiers JAR de vos applications Java sous Applications.