Come tenere traccia dell'uso di Java in un contenitore

È possibile tenere traccia dell'uso Java delle applicazioni Java in esecuzione in un contenitore utilizzando le flotte JMS. Questa sezione illustra come configurare un contenitore utilizzando un'immagine docker.
Nota

Vengono rilevati solo i container con Oracle JDK.
Prerequisiti:
  • L'opzione Installazione di Management Agent e distribuzione del plugin JMS sull'host contenitore è stata completata. L'host container può essere un'istanza di computazione on premise, su OCI o su qualsiasi altra piattaforma cloud.
  • L'immagine Docker viene memorizzata nell'host del contenitore. L'immagine contiene una o più applicazioni Java (file jar), Oracle JDK e altre dipendenze necessarie per eseguire le applicazioni Java.
  • Docker è installato nell'host contenitore.

Per tenere traccia dell'uso di Java in un contenitore:

  1. Assicurarsi che i record di Java Usage Tracker siano scritti in /var/log/java/usagetracker.log. Per avviare un contenitore, utilizzare il comando seguente.
    Nota

    Utilizzare questa configurazione solo con contenitori sicuri o in cui non è necessario l'isolamento tra il contenitore host e il contenitore o tra i contenitori. Se è necessario l'isolamento, è necessario utilizzare un file usagetracker.log separato per ciascun contenitore e aggregare tali log in /var/log/java/usagetracker.log nell'host del contenitore.
    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 avvia il contenitore come processo daemon.
    • -v /var/log/java/:/var/log/java/ mappa l'accesso di autenticazione /var/log/java/ sull'host del contenitore a /var/log/java/ nel contenitore. Ciò garantisce che il file /var/log/java/usagetracker.log nel contenitore sia presente nell'host del contenitore.
    • -v /etc/oracle/java/:/etc/oracle/java/:ro viene mappato come accesso di autenticazione di sola lettura /etc/oracle/java/ sull'host del contenitore a /etc/oracle/java/ nel contenitore. Ciò garantisce che il file /etc/oracle/java/usagetracker.properties nel contenitore sia presente nell'host del contenitore.
    • --name <container_name> identifica il nome nel contenitore. Sostituire <container_name> con il nome del contenitore
    • <docker_image>:latest indica l'uso della versione più recente dell'immagine. Sostituire <docker_image> con il nome dell'immagine docker.
  2. Utilizzare il docker inspect per verificare che gli accessi di autenticazione siano stati creati correttamente nel contenitore.
    docker inspect <container_name>

    Cercare la sezione Mount:

     "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. Verificare il file di log per convalidare che contenga le applicazioni Java (file jar) e la versione JDK dell'immagine del docker.
    cat /var/log/java/usagetracker.log
  4. Includere usagetracker.config per creare un file di log specifico sull'host.
    Copiare usagetracker.properties dall'host /etc/oracle/java nella directory corrente in modo da poterlo includere come parte di una build 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. Assicurarsi che i record di Java Usage Tracker vengano scritti in /var/log/java/ per ogni contenitore. Per avviare un contenitore, utilizzare il comando seguente:
    docker run -d -v /var/log/java/:/var/log/java/ --name <container_name> <docker_image>:latest
  6. Aggrega più file di utilizzo in /var/log/java/usagetracker.log sull'host.
  7. Controllare la flotta in JMS per verificare se il contenitore Docker è stato rilevato. È possibile visualizzare i file jar delle applicazioni Java in Applicazioni.