• /
  • EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

New Relic Java agent for Dockerのインストール

このドキュメントでは、 dockerコンテナーでの agent for Java アプリケーションの基本的なインストールについて説明します。 必須の設定について説明し、次のようなオプションの設定についても説明します。

  • コンテナが使用される環境に関わらず、各コンテナに同一のNew Relic設定ファイルを使用する方法
  • すべての環境のすべてのエージェントが微妙に異なる設定データを必要とする場合に、Dockerレイヤーをどのように使用するか
  • ある環境ではNew Relicエージェントを無効にし、別の環境では有効にする方法

ここでは高度なオプションについては説明しませんが、JavaエージェントをDockerボリュームにインストールして、Swarm、ECS、AKS、EKS、OpenShift、Kubernetesなどの他のソフトウェアでDockerコンテナイメージを使用することができます。私たちのDockerの例ではTomcatを参照していますので、他のアプリケーションサーバーを使用している場合は、ベンダーのドキュメントを参照してください。

Javaエージェントの取得

curlInvoke-WebRequest (PowerShell)、またはNew Relic UIを使用してnewrelic-java.zipをダウンロードします。

インストールディレクトリの設定

newrelic-java.zipファイルは都合のよい場所ならどこでも解凍できます。以降のセクションでは、現在の作業ディレクトリに抽出したと仮定します。これにより、必要なファイルが./newrelicに配置されます。

スタートアップスクリプトの変更

アプリケーションサーバーを起動するコマンドを含む起動スクリプトには、Javaの組み込み引数-javaagentが含まれている必要があります。この引数は、 JAVA_OPTS環境変数を使用して設定することをお勧めします。その引数の値には、 ADDエージェントのjarファイルをイメージに追加する場所が含まれている必要があります。

たとえば、Tomcatでは、 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"

エージェントの設定

デフォルトでは、エージェントの動作はnewrelic.ymlの構成エントリによって制御されます。これは通常、エージェントと同じディレクトリにあります。このセクションでは、 Dockerfileの環境変数またはJavaシステムプロパティを使用して、これらのnewrelic.yml構成をオーバーライドする方法について説明します。

特定の構成を確認する前に、 Dockerfileを使用してnewrelic.ymlをロードする方法を次に示します。

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

基本的なDockerのインストールでは、以下の設定を行います。

アプリケーション名

アプリケーション名は、New Relicでアプリケーションを識別するために設定する設定です。

ヒント

同じ役割を果たす複数のアプリにアプリケーション名を再利用することで、それらのアプリからのすべてのデータがNew Relicの同じ論理的なアプリケーションにロールアップされます。追加のグループ化オプションの詳細については、 Use multiple names for an app を参照してください。

次のDockerfileコマンドのいずれかで、 MY_APP_NAMEをアプリケーション名に置き換えます。

オプション

コマンド

環境変数

ENV NEW_RELIC_APP_NAME="MY_APP_NAME"

Java システム プロパティ

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

コンテナを起動すると、New Relicにアプリケーション名が表示されます。

ライセンスキー

この設定は、New Relic アカウントにデータを報告するために必要です。

ライセンスキーをコピーするには

  1. API キーUIに移動して を取得します。

  2. これらのDockerfileコマンドのいずれかで、 MY_LICENSE_KEYをライセンスキーに置き換えます。

    オプション

    コマンド

    環境変数

    ENV NEW_RELIC_LICENSE_KEY="MY_LICENSE_KEY"

    Java システム プロパティ

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

ログ

デフォルトでは、ログはnewrelic.jarの場所を基準にしてlogsディレクトリに書き込まれます。アプリケーションサーバーを起動するユーザーアカウントにも、次のようなタスクを実行する権限があることを確認してください。

  • logsディレクトリの作成。
  • そのディレクトリ内のログファイルを作成し、追記する。

Dockerfileの例を次に示します。 tomcatはTomcatを起動するユーザーです。

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

Dockerfileに次のいずれかを追加して、ログをSTDOUTに送信することもできます。

オプション

コマンド

環境変数

ENV NEW_RELIC_LOG_FILE_NAME=STDOUT

Java システム プロパティ

ENV JAVA_OPTS=-Dnewrelic.config.log_file_name=STDOUT

環境(オプション)

Java プロパティまたは環境変数を渡して、エージェントがnewrelic.ymlで使用する環境固有のセクションを決定できます。 すべての構成を Docker 経由で渡すのではなく、 newrelic.ymlファイルで環境固有の構成を制御する場合は、このアプローチを使用します。

以下は、Docker 経由でnewrelic.environment Java システム プロパティを渡し、 newrelic.ymlの環境セクションでカスタム値devを使用するDockerfileの例です。

  1. CMD命令のシェル形式を使用して、選択した新しい環境変数への参照を含めます(たとえば、 ENV )。

    CMD java -Dnewrelic.environment=$ENV -jar myjar.jar
  2. docker runコマンドラインに、コンテナに環境変数を設定するための引数を含めます。

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

重要

newrelic.environmentの値を指定しない場合、エージェントは実稼働環境で実行されていると見なし、構成ファイルの本体の値を使用します。

エージェントが有効(オプション)

この設定は、エージェントを有効にするかどうかを制御します。例えば、すべてのインストールに同じDockerイメージを使用したいとします。しかし、エンジニアがテストアプリを起動するたびにNew Relicエージェントを実行するのは、インスタンス数を増やしたくないからです。

この問題は、 newrelic.environment Javaシステムプロパティを使用して解決できます。

  1. newrelic.ymlの本体で、 agent_enabled: falseを設定してJavaエージェントを無効にします。
  2. newrelic.ymlの特定の環境セクションで、 agent_enabled: trueを設定します。

そして、実行時に環境を指定することで、特定のエージェントを実行することができます。

追加のTomcat Dockerfileの例

次のステップ

これで、Dockerでの基本的なエージェントのインストールが完了しましたが、ここでは追加の手順をご紹介します。

Copyright © 2024 New Relic株式会社。

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