Seguimiento del uso de Java en un contenedor

Puede realizar un seguimiento del uso de Java de las aplicaciones Java que se ejecutan en un contenedor mediante conjuntos JMS. Esta sección ejemplifica cómo configurar un contenedor mediante una imagen de docker.
Nota

Solo se detectan contenedores con JDK de Oracle.
Requisitos:
  • Ha terminado Instalación del agente de gestión y despliegue del plugin JMS en el host de contenedor. El host de contenedor puede ser una instancia informática local, en OCI o en cualquier otra plataforma en la nube.
  • La imagen de Docker se almacena en el host de contenedor. La imagen contiene una o más aplicaciones Java (archivos jar), Oracle JDK y otras dependencias necesarias para ejecutar las aplicaciones Java.
  • Docker está instalado en el host de contenedor.

Para realizar un seguimiento del uso de Java en un contenedor:

  1. Asegúrese de que los registros de Java Usage Tracker se escriben en /var/log/java/usagetracker.log. Use el siguiente comando para iniciar un contenedor.
    Nota

    Solo debe utilizar esta configuración con contenedores de confianza o si no necesita aislamiento entre el contenedor de host y el contenedor, o entre contenedores. Si necesita aislamiento, debe utilizar un archivo usagetracker.log independiente para cada contenedor y agregar esos logs en /var/log/java/usagetracker.log en el host del contenedor.
    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 inicia el contenedor como un proceso de daemon.
    • -v /var/log/java/:/var/log/java/ asigna el montaje de enlace /var/log/java/ en el host de contenedor a /var/log/java/ en el contenedor. Esto garantiza que el archivo /var/log/java/usagetracker.log del contenedor esté presente en el host del contenedor.
    • -v /etc/oracle/java/:/etc/oracle/java/:ro se asigna como un montaje de enlace de solo lectura /etc/oracle/java/ en el host de contenedor a /etc/oracle/java/ en el contenedor. Esto garantiza que el archivo /etc/oracle/java/usagetracker.properties del contenedor esté presente en el host del contenedor.
    • --name <container_name> identifica el nombre del contenedor. Sustituya <container_name> por el nombre del contenedor
    • <docker_image>:latest indica el uso de la última versión de la imagen. Sustituya <docker_image> por el nombre de la imagen de docker.
  2. Utilice docker Inspection para verificar que los montajes de enlace se han creado correctamente en el contenedor.
    docker inspect <container_name>

    Busque la sección Mounts (Montajes):

     "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. Verifique que el archivo log para validarlo contiene las aplicaciones Java (archivos jar) y la versión de JDK de la imagen de docker.
    cat /var/log/java/usagetracker.log
  4. Incluya usagetracker.config para crear un archivo log específico en el host.
    Copie usagetracker.properties del host /etc/oracle/java en el directorio actual para poder incluirlo como parte de una compilación 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. Asegúrese de que los registros de Java Usage Tracker se escriban en /var/log/java/ para cada contenedor. Use el siguiente comando para iniciar un contenedor:
    docker run -d -v /var/log/java/:/var/log/java/ --name <container_name> <docker_image>:latest
  6. Agregue varios archivos de uso a /var/log/java/usagetracker.log en el host.
  7. Compruebe el conjunto en JMS para ver si se ha detectado el contenedor de Docker. Debería poder ver los archivos jar de las aplicaciones Java en Aplicaciones.