• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

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.

Crea una propuesta

Instalar New Relic agente de Java para docker

Este documento explica una instalación básica de la aplicación agente para Java en un contenedor docker . Analizamos la configuración requerida y también exploramos algunas configuraciones opcionales, que incluyen:

  • Cómo utilizar archivos de configuración New Relic idénticos para cada contenedor, independientemente del entorno donde se utilicen los contenedores
  • Cómo utilizar la capa docker cuando cada agente en cada entorno necesita datos de configuración ligeramente diferentes
  • Cómo deshabilitar el agente New Relic en algunos entornos y habilitarlo en otros

Aunque no analizamos las opciones avanzadas aquí, puede instalar el agente de Java en volúmenes docker y usar la imagen del contenedor docker en otro software como Swarm, ECS, AKS, EKS, OpenShift y Kubernetes. Nuestros ejemplos docker se refieren a Tomcat, por lo que si está utilizando otro servidor de aplicaciones, consulte la documentación de su proveedor.

Obtener el agente de Java

Descargue newrelic-java.zip usando curl, Invoke-WebRequest (PowerShell) o la UI de New Relic:

Configurar el directorio de instalación

Puede descomprimir el archivo newrelic-java.zip donde le resulte más cómodo. En las secciones siguientes asumimos que lo extrajo en el directorio de trabajo actual, lo que coloca los archivos que necesitamos en ./newrelic.

Modificar script de inicio

El script de inicio que contiene el comando para iniciar su servidor de aplicaciones debe incluir el argumento integrado de Java -javaagent. Le recomendamos que establezca este argumento con la variable de entorno JAVA_OPTS . El valor de ese argumento debe contener la ubicación donde ADD el archivo jar del agente Java APM a la imagen.

Por ejemplo, con Tomcat, utilice comandos como estos en 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"

Establecer configuración del agente

De forma predeterminada, el comportamiento del agente se controla mediante entradas de configuración en newrelic.yml, que normalmente se encuentra en el mismo directorio que el agente. Esta sección explica cómo anular esta configuración newrelic.yml mediante el uso de variables de entorno o propiedades del sistema Java en Dockerfile.

Antes de ver algunas configuraciones específicas, aquí se explica cómo cargar newrelic.yml usando Dockerfile:

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

Para una instalación básica docker , complete esta configuración:

Nombre de la aplicación

El nombre de la aplicación es una configuración que usted establece para identificar su aplicación en New Relic.

Sugerencia

Puede reutilizar el nombre de una aplicación para varias aplicaciones que cumplen la misma función, de modo que todos los datos de esas aplicaciones se acumulen en la misma aplicación lógica en New Relic. Para obtener más detalles sobre opciones de agrupación adicionales, consulte Usar varios nombres para una aplicación.

Reemplace MY_APP_NAME con el nombre de su aplicación en uno de estos Dockerfile comandos:

Opción

Dominio

Ambiente
variable

ENV NEW_RELIC_APP_NAME="MY_APP_NAME"

Sistema java
propiedad

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

Después de iniciar el contenedor, el nombre de su aplicación aparece en New Relic.

Clave de licencia

Esta configuración es necesaria para que usted pueda reportar datos a su cuenta New Relic.

Para copiar su clave de licencia:

  1. Vaya a la clave de API UI y obtenga un .

  2. En uno de estos Dockerfile comandos, reemplace MY_LICENSE_KEY con su clave de licencia:

    Opción

    Dominio

    Ambiente
    variable

    ENV NEW_RELIC_LICENSE_KEY="MY_LICENSE_KEY"

    Sistema java
    propiedad

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

Registro

De forma predeterminada, los registros se escriben en el directorio de registros relativo a la ubicación de newrelic.jar. Asegúrese de que la cuenta de usuario que inicia su servidor de aplicaciones también tenga derecho a realizar tareas como:

  • Creando el directorio de registro.
  • Creando y añadiendo al archivo de log en ese directorio.

A continuación se muestra un ejemplo de Dockerfile donde tomcat es el usuario que inicia Tomcat:

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

También puede enviar el registro a STDOUT agregando uno de los siguientes al Dockerfile:

Opción

Dominio

Ambiente
Variable

ENV NEW_RELIC_LOG_FILE_NAME=STDOUT

Sistema java
propiedad

ENV JAVA_OPTS=-Dnewrelic.config.log_file_name=STDOUT

Medio ambiente (opcional)

Puede pasar una propiedad Java o una variable de entorno para determinar cuál de las secciones específicas del entorno utiliza el agente en newrelic.yml. Utilice este enfoque si prefiere tener la configuración específica del entorno de control de archivos newrelic.yml en lugar de pasar toda la configuración a través de docker.

A continuación se muestra un Dockerfile ejemplo de cómo pasar la newrelic.environment propiedad del sistema Java a través de docker para usar el valor personalizado dev en la sección de entorno de newrelic.yml:

  1. Usando la forma de shell de la instrucción CMD, incluya una referencia a una nueva variable de entorno que elija (por ejemplo, ENV):

    CMD java -Dnewrelic.environment=$ENV -jar myjar.jar
  2. En su línea de comando docker run , incluya un argumento para establecer la variable de entorno en el contenedor:

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

Importante

Si no especifica un valor para newrelic.environment, el agente asume que se está ejecutando en su entorno de producción y utiliza los valores del cuerpo principal del archivo de configuración.

Agente habilitado (opcional)

Esta configuración controla si el agente está habilitado. Supongamos que desea la misma imagen docker para cada instalación. Sin embargo, no desea ejecutar el agente New Relic cada vez que un ingeniero inicia una aplicación de prueba porque no desea aumentar el recuento de instancias.

Este problema se puede resolver utilizando la propiedad del sistema Java newrelic.environment .

  1. En el cuerpo principal de newrelic.yml, deshabilite el agente de Java configurando agent_enabled: false.
  2. En secciones de entorno específicas de newrelic.yml, establezca agent_enabled: true.

Luego, puede ejecutar un agente específico especificando el entorno en tiempo de ejecución.

Ejemplos adicionales de Tomcat Dockerfile

Próximos pasos

Ahora que tiene una instalación básica del agente en docker, aquí hay algunos pasos adicionales a considerar:

Copyright © 2024 New Relic Inc.

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