• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Instale o agente Java New Relic para Docker

Este documento explica uma instalação básica do aplicativo agente para Java em um contêiner Docker . Discutimos a configuração necessária e também exploramos algumas configurações opcionais, incluindo:

  • Como utilizar arquivos de configuração New Relic idênticos para cada contêiner, independente do ambiente onde os containers são utilizados
  • Como usar a camada Docker quando cada agente em cada ambiente precisa de dados de configuração ligeiramente diferentes
  • Como desabilitar o agente New Relic em alguns ambientes e habilitá-lo em outros

Embora não discutamos opções avançadas aqui, você pode instalar o agente Java em volumes Docker e usar a imagem do contêiner Docker em outro software, como Swarm, ECS, AKS, EKS, OpenShift e Kubernetes. Nossos exemplos Docker referem-se ao Tomcat, portanto, se você estiver usando outro servidor de aplicativos, consulte a documentação do seu fornecedor.

Obtenha o agente Java

Baixe newrelic-java.zip usando curl, Invoke-WebRequest (PowerShell) ou a interface New Relic:

Configure o diretório de instalação

Você pode descompactar o arquivo newrelic-java.zip onde for conveniente para você. Nas seções subsequentes, presumimos que você o extraiu no diretório de trabalho atual, que coloca os arquivos necessários em ./newrelic.

Modificar script de inicialização

O script de inicialização que contém o comando para iniciar o servidor do aplicativo deve incluir o argumento integrado do Java -javaagent. Recomendamos que você defina esse argumento com a variável de ambiente JAVA_OPTS . O valor desse argumento deve conter o local onde você ADD transfere o arquivo jar do agente Java APM para a imagem.

Por exemplo, com o Tomcat, use comandos como estes no Dockerfile:

RUN mkdir -p /usr/local/tomcat/newrelic
ADD ./newrelic/newrelic.jar /usr/local/tomcat/newrelic/newrelic.jar
ENV JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/tomcat/newrelic/newrelic.jar"

Definir configuração do agente

Por padrão, o comportamento do agente é controlado por entradas de configuração em newrelic.yml, que normalmente está localizado no mesmo diretório que o agente. Esta seção explica como substituir essas configurações newrelic.yml usando variáveis de ambiente ou propriedades do sistema Java no Dockerfile.

Antes de analisarmos algumas configurações específicas, veja como carregar newrelic.yml usando o Dockerfile:

ADD ./newrelic/newrelic.yml /usr/local/tomcat/newrelic/newrelic.yml

Para uma instalação básica Docker , conclua estas configurações:

Nome do aplicativo

O nome do aplicativo é uma configuração que você define para identificar seu aplicativo no New Relic.

Dica

Você pode reutilizar um nome de aplicativo para vários aplicativos que atendem à mesma função, para que todos os dados desses aplicativos sejam acumulados no mesmo aplicativo lógico no New Relic. Para obter mais detalhes sobre opções de agrupamento adicionais, consulte Usar vários nomes para um aplicativo.

Substitua MY_APP_NAME pelo nome do seu aplicativo em um destes Dockerfile comandos:

Opção

Comando

Ambiente
variável

ENV NEW_RELIC_APP_NAME="MY_APP_NAME"

Sistema Java
propriedade

ENV JAVA_OPTS="$JAVA_OPTS -Dnewrelic.config.app_name='MY_APP_NAME'"

Depois de inicializar o contêiner, o nome do seu aplicativo aparecerá no New Relic.

chave de licença

Esta configuração é necessária para você reportar dados para sua conta New Relic.

Para copiar sua chave de licença:

  1. Acesse a interface da chave da API e obtenha um .

  2. Em um destes comandos Dockerfile , substitua MY_LICENSE_KEY pela sua chave de licença:

    Opção

    Comando

    Ambiente
    variável

    ENV NEW_RELIC_LICENSE_KEY="MY_LICENSE_KEY"

    Sistema Java
    propriedade

    ENV JAVA_OPTS="$JAVA_OPTS -Dnewrelic.config.license_key='MY_LICENSE_KEY'"

Registro

Por padrão, os logs são gravados no diretório de log relativo ao local de newrelic.jar. Certifique-se de que a conta de usuário que inicia o servidor do seu aplicativo também tenha o direito de executar tarefas como:

  • Criando o diretório de log.
  • Criando e anexando ao arquivo de log nesse diretório.

Aqui está um exemplo do Dockerfile onde tomcat é o usuário que inicia o Tomcat:

RUN mkdir -p /usr/local/tomcat/newrelic/logs
RUN chown -R tomcat:tomcat /usr/local/tomcat/newrelic/logs

Você também pode enviar o log para STDOUT adicionando um dos seguintes itens ao Dockerfile:

Opção

Comando

Ambiente
Variável

ENV NEW_RELIC_LOG_FILE_NAME=STDOUT

Sistema Java
propriedade

ENV JAVA_OPTS=-Dnewrelic.config.log_file_name=STDOUT

Meio ambiente (opcional)

É possível transmitir uma propriedade Java ou uma variável de ambiente para determinar quais seções específicas do ambiente o agente usa em newrelic.yml. Use esta abordagem se preferir que o arquivo newrelic.yml controle a configuração específica do ambiente em vez de passar toda a configuração via Docker.

Aqui está um exemplo Dockerfile de transmissão da propriedade de sistema Java newrelic.environment via Docker para usar o valor customizado dev na seção de ambiente de newrelic.yml:

  1. Usando o formato shell da instrução CMD, inclua uma referência a uma nova variável de ambiente escolhida (por exemplo, ENV):

    CMD java -Dnewrelic.environment=$ENV -jar myjar.jar
  2. Na linha de comando docker run , inclua um argumento para definir a variável de ambiente no contêiner:

    docker run -it -e "ENV=dev" myDockerImage

Importante

Se você não especificar um valor para newrelic.environment, o agente assumirá que ele está em execução no seu ambiente de produção e usará os valores do corpo principal do arquivo de configuração.

Agente habilitado (opcional)

Esta configuração controla se o agente está habilitado. Digamos que você queira a mesma imagem Docker para cada instalação. No entanto, você não deseja executar o agente New Relic sempre que um engenheiro inicia um aplicativo de teste porque não deseja aumentar sua contagem de instâncias.

Este problema pode ser resolvido usando a propriedade de sistema Java newrelic.environment .

  1. No corpo principal de newrelic.yml, desative o agente Java configurando agent_enabled: false.
  2. Em seções de ambiente específicas de newrelic.yml, defina agent_enabled: true.

Então, você pode executar um agente específico especificando o ambiente em tempo de execução.

Exemplos adicionais do Dockerfile do Tomcat

Próximos passos

Agora que você tem uma instalação básica do agente no Docker, aqui estão algumas etapas adicionais a serem consideradas:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.