• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Installer l'agent Java New Relic pour Docker

Ce document explique une installation de base de l'agent pour l'application Java dans un conteneur Docker . Nous discutons de la configuration requise et explorons également certaines configurations facultatives, notamment :

  • Comment utiliser des New Relic configuration fichiers identiques pour chaque conteneur, quel que soit l'environnement dans lequel les conteneurs sont utilisés
  • Comment utiliser la couche Docker lorsque chaque agent dans chaque environnement nécessite des données de configuration légèrement différentes
  • Comment désactiver l'agent New Relic dans certains environnements et l'activer dans d'autres

Bien que nous ne discutions pas ici des options avancées, vous pouvez installer l'agent Java dans les volumes Docker et utiliser votre image de conteneur Docker dans d'autres logiciels tels que Swarm, ECS, AKS, EKS, OpenShift et Kubernetes. Nos exemples Docker font référence à Tomcat, donc si vous utilisez un autre serveur application, reportez-vous à la documentation de votre fournisseur.

Obtenir l'agent Java

Téléchargez newrelic-java.zip en curl utilisant, Invoke-WebRequest (PowerShell) ou l'UI de New Relic :

Configurer le répertoire d'installation

Vous pouvez décompresser le fichier newrelic-java.zip où bon vous semble. Dans les sections suivantes, nous supposons que vous l'avez extrait dans le répertoire de travail actuel, ce qui place les fichiers dont nous avons besoin dans ./newrelic.

Modifier le script de démarrage

Le script de démarrage qui contient la commande pour démarrer votre serveur application doit inclure l'argument intégré de Java -javaagent. Nous vous recommandons de définir cet argument avec la variable d'environnement JAVA_OPTS . La valeur de cet argument doit contenir l’emplacement où vous ADD le fichier jar de l’agent Java APM vers l’image.

Par exemple, avec Tomcat, utilisez des commandes comme celles-ci dans le 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"

Définir la configuration agent

Par défaut, le comportement de l'agent est contrôlé par les entrées de configuration dans newrelic.yml, qui se trouve généralement dans le même répertoire que l'agent. Cette section explique comment remplacer ces newrelic.yml configurations en utilisant des variables d'environnement ou des propriétés système Java dans le Dockerfile.

Avant d'examiner une configuration spécifique, voici comment charger newrelic.yml en utilisant Dockerfile:

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

Pour une de Docker installation base, complétez ces configurations :

Nom de l'application

Le nom de l'application est une configuration que vous définissez pour identifier votre application dans New Relic.

Conseil

Vous pouvez réutiliser un nom d'application pour plusieurs applications remplissant le même rôle afin que toutes les données de ces applications soient regroupées dans la même application logique dans New Relic. Pour plus de détails sur les options de regroupement supplémentaires, voir Utiliser plusieurs noms pour une application.

Remplacez MY_APP_NAME par le nom de votre application dans l'une de ces commandes Dockerfile :

Option

Commande

Variable d'environnement

ENV NEW_RELIC_APP_NAME="MY_APP_NAME"

Propriété du système Java

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

Après avoir démarré le conteneur, le nom de votre application apparaît dans New Relic.

clé de licence

Cette configuration est requise pour que vous puissiez signaler des données à votre compte New Relic.

Pour copier votre clé de licence :

  1. Accédez à l'UI de clé d'API et obtenez un .

  2. Dans l'une de ces commandes Dockerfile, remplacez MY_LICENSE_KEY par votre clé de licence :

    Option

    Commande

    Variable d'environnement

    ENV NEW_RELIC_LICENSE_KEY="MY_LICENSE_KEY"

    Propriété du système Java

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

Logs

Par défaut, les journaux sont écrits dans le répertoire des journaux par rapport à l'emplacement de newrelic.jar. Assurez-vous que le compte utilisateur qui démarre votre serveur application a également le droit d'effectuer des tâches telles que :

  • Création du répertoire des journaux.
  • Création et ajout au fichier de log dans ce répertoire.

Voici un exemple de Dockerfile où tomcat est l'utilisateur qui démarre Tomcat :

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

Vous pouvez également envoyer le log à STDOUT en ajoutant l’un des éléments suivants au Dockerfile :

Option

Commande

Variable d'environnement

ENV NEW_RELIC_LOG_FILE_NAME=STDOUT

Propriété du système Java

ENV JAVA_OPTS=-Dnewrelic.config.log_file_name=STDOUT

Environnement (optionnel)

Vous pouvez transmettre une propriété Java ou une variable d'environnement pour déterminer laquelle des sections spécifiques à l'environnement l'agent utilise dans newrelic.yml. Utilisez cette approche si vous préférez que le fichier newrelic.yml contrôle la configuration spécifique à l'environnement au lieu de transmettre toute la configuration via Docker.

Voici un exemple Dockerfile de transmission de la propriété système Java newrelic.environment via Docker pour utiliser la valeur personnalisée dev dans la section d'environnement de newrelic.yml:

  1. En utilisant la forme shell de l'instruction CMD, incluez une référence à une nouvelle variable d'environnement de votre choix (par exemple, ENV) :

    CMD java -Dnewrelic.environment=$ENV -jar myjar.jar
  2. Dans votre ligne de commande docker run, incluez un argument pour définir la variable d'environnement dans le conteneur :

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

Important

Si vous ne spécifiez pas de valeur pour newrelic.environment, l'agent suppose qu'il s'exécute dans votre environnement de production et utilise les valeurs du corps principal du fichier de configuration.

agent activé (facultatif)

Cette configuration contrôle si l'agent est activé. Disons que vous voulez la même image Docker pour chaque installation. Cependant, vous ne souhaitez pas exécuter l'agent de New Relic à chaque fois qu'un ingénieur lance une application de test, car vous ne souhaitez pas augmenter votre instance nombre .

Ce problème peut être résolu en utilisant la propriété système Java newrelic.environment .

  1. Dans le corps principal de newrelic.yml, désactivez l'agent Java en définissant agent_enabled: false.
  2. Dans les sections d’environnement spécifiques de newrelic.yml, définissez agent_enabled: true.

Ensuite, vous pouvez exécuter un agent spécifique en spécifiant l’environnement au moment de l’exécution.

Exemples supplémentaires de fichiers Dockerfile Tomcat

Prochaines étapes

Maintenant que vous disposez d’une installation d’agent de base dans Docker, voici quelques étapes supplémentaires à prendre en compte :

Droits d'auteur © 2025 New Relic Inc.

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