Rastreando o Uso do Java em um Contêiner

Você pode rastrear o uso Java de aplicativos Java em execução em um contêiner usando Frotas JMS. Esta seção exemplifica como configurar um contêiner usando uma imagem do docker.
Observação

Somente contêineres com Oracle JDKs são detectados.
Pré-requisitos:
  • Você concluiu a Instalação do Management Agent e a Implantação do Plug-in JMS no host do contêiner. O host de contêiner pode ser uma instância de computação local, na OCI ou em qualquer outra plataforma de nuvem.
  • A imagem do Docker é armazenada no host do contêiner. A imagem contém um ou mais aplicativos Java (arquivos jar), o Oracle JDK e outras dependências necessárias para executar seus aplicativos Java.
  • O Docker é instalado no host do contêiner.

Para rastrear o uso do Java em um contêiner:

  1. Certifique-se de que os registros do Rastreador de Uso do Java sejam gravados em /var/log/java/usagetracker.log. Use o seguinte comando para iniciar um contêiner.
    Observação

    Você só deve usar essa configuração com contêineres confiáveis ou onde não precisar de isolamento entre o contêiner do host e o contêiner ou entre contêineres. Se você precisar de isolamento, deverá usar um arquivo usagetracker.log separado para cada contêiner e agregá-los em /var/log/java/usagetracker.log no host do contêiner.
    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 o contêiner como um processo daemon.
    • -v /var/log/java/:/var/log/java/ mapeia a montagem de bind /var/log/java/ no host do contêiner para /var/log/java/ no contêiner. Isso garante que o arquivo /var/log/java/usagetracker.log no contêiner esteja presente no host do contêiner.
    • -v /etc/oracle/java/:/etc/oracle/java/:ro é mapeado como uma montagem de bind somente para leitura /etc/oracle/java/ no host do contêiner para /etc/oracle/java/ no contêiner. Isso garante que o arquivo /etc/oracle/java/usagetracker.properties no contêiner esteja presente no host do contêiner.
    • --name <container_name> identifica o nome no contêiner. Substitua <container_name> pelo nome do seu contêiner
    • <docker_image>:latest indica o uso da versão mais recente da sua imagem. Substitua <docker_image> pelo nome da sua imagem do docker.
  2. Use a inspeção do docker para verificar se as montagens de bind foram criadas corretamente no contêiner.
    docker inspect <container_name>

    Procure a seção Montagens:

     "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 se o arquivo de log para validá-lo contém seus aplicativos Java (arquivos jar) e a versão do JDK da sua imagem do docker.
    cat /var/log/java/usagetracker.log
  4. Inclua usagetracker.config para criar um arquivo de log específico no host.
    Copie usagetracker.properties do host /etc/oracle/java para o diretório atual para que você possa incluir como parte de um build do 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. Certifique-se de que os registros do Rastreador de Uso do Java sejam gravados em /var/log/java/ para cada contêiner. Use o seguinte comando para iniciar um contêiner:
    docker run -d -v /var/log/java/:/var/log/java/ --name <container_name> <docker_image>:latest
  6. Agregue vários arquivos de uso em /var/log/java/usagetracker.log no host.
  7. Verifique sua Frota no JMS para ver se o contêiner do Docker foi detectado. Você deverá ser capaz de ver os arquivos jar de seus aplicativos Java em Aplicativos.