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

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

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.

問題を作成する

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

このドキュメントでは、 の基本的なインストールについて説明します。 Docker コンテナー内の 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コマンドラインに、コンテナに環境変数を設定するための引数を含めます。

    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.