Dockerfile の使用
Dockerfile を使用して、作成時に .NET Agent for Linux を Docker イメージにコピーします。オプションを使用するには、アプリケーションと .NET Agent for Linux の両方のバイナリが含まれた単一のイメージを作成します。
Docker イメージの作成時にエージェントをアプリケーションイメージにコピーするには、次の手順を実行します。
.NET Agent for Linux のダウンロードと解凍
プログラムによって、またはダウンロードポータルから .NET Agent for Linux をダウンロードします。エージェントは zip ファイルとしてパッケージ化されます。シェルで、AppDynamics-DotNetCore-linux-x64 フォルダに解凍します。
$ unzip AppDynamics-DotNetCore-linux-x64-<version>.zip -d AppDynamics-DotNetCore-linux-x64
イメージへのエージェントバイナリのコピー
Dockerfile を編集して、パッケージ化されていないエージェントバイナリをターゲットフォルダにコピーします。
COPY AppDynamics-DotNetCore-linux-x64/ /opt/appdynamics/
.NET Agent for Linux の環境変数の設定
非 Kubernetes 環境でアプリケーションを実行している場合(たとえば を使用)、Dockerfile でエージェント環境変数を設定します。例:
ENV CORECLR_PROFILER="{57e1aa68-2229-41aa-9931-a6e93bbc64d8}"
ENV CORECLR_ENABLE_PROFILING=1
ENV CORECLR_PROFILER_PATH="/opt/appdynamics/libappdprofiler.so"
ENV APPDYNAMICS_AGENT_APPLICATION_NAME=<value>
ENV APPDYNAMICS_AGENT_TIER_NAME=<value>
ENV APPDYNAMICS_AGENT_ACCOUNT_NAME=<value>
ENV APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<value>
ENV APPDYNAMICS_CONTROLLER_HOST_NAME=<value>
ENV APPDYNAMICS_CONTROLLER_PORT=<value>
ENV APPDYNAMICS_CONTROLLER_SSL_ENABLED=<value>
ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME=true
ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX=<value>
# variables required to send transaction analytics data
ENV APPDYNAMICS_ANALYTICS_HOST_NAME=<value>
ENV APPDYNAMICS_ANALYTICS_PORT=<value>
ENV APPDYNAMICS_ANALYTICS_SSL_ENABLED=<value>
Kubernetes アプリケーションの場合は、これらの環境変数を Dockerfile から除外し、ConfigMaps と秘密を使用して設定します。
再利用ノード名とプレフィックス環境変数は、同じアプリケーションイメージの複数のコンテナインスタンスに一意のノード名を付けるようサポートするために必要です。「.NET Agent for Linux の環境変数」を参照してください。分析ホスト、ポート、および ssl の設定は、分析エージェントの展開方法によって異なります。オプションについては、「Kubernetes での分析の展開」を参照してください。
Alpine Linux コンテナで .NET Core アプリケーションを実行している場合は、LD_LIBRARY_PATH をエージェントバイナリの場所に設定します。Docker アプリケーションの場合は、Dockerfile で LD_LIBRARY_PATH を設定します。
ENV CORECLR_PROFILER="{57e1aa68-2229-41aa-9931-a6e93bbc64d8}"
ENV CORECLR_ENABLE_PROFILING=1
ENV CORECLR_PROFILER_PATH="/opt/appdynamics/libappdprofiler.so"
ENV LD_LIBRARY_PATH="/opt/appdynamics"
...
Kubernetes アプリケーションの場合は、ConfigMap で LD_LIBRARY_PATH を設定します。
APPDYNAMICS_AGENT_UNIQUE_HOST_ID 環境変数の設定
APPDYNAMICS_AGENT_UNIQUE_HOST_ID 環境変数は、Linux 用 .NET Agent のバージョン 20.7.0 以降でサポートされています。以前のバージョンでは、ランタイム値に基づいて AppDynamicsConfig.json でプロパティを設定する必要があります。これは、コンテナの起動スクリプトで実行する必要があります。
Kubernetes アプリケーションの場合は、APPDYNAMICS_AGENT_UNIQUE_HOST_ID 環境変数を設定して、クラスタエージェントとの APM 相関を有効にします。この値はランタイム値に依存するため、「クラスタエージェントと関連付けるアプリケーション エージェントの設定」に記載されている値を使用して、コンテナの起動コマンドでこの環境変数を設定します。たとえば、Docker ランタイムを使用する Kubernetes 環境では、次のように環境変数を設定します( は必須です)。
kind: Deployment
spec:
containers:
image: microsoft/dotnet-samples:aspnetapp
command: ["/bin/sh"]
args: ["-c", "export APPDYNAMICS_AGENT_UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/(.{12}).*/\\1/p' /proc/self/cgroup) && dotnet aspnetapp.dll"]
...
イメージへの AppDynamicsConfig.json ファイルのコピー
一部の Linux 用 .NET Agent オプションは、AppDynamicsConfig.json ファイルで設定する必要があります。これには、outputtype を console に設定することが含まれます。これにより、エージェントログをログ集約ツールに送信しやすくなります。AppDynamicsConfig.json ファイルを作成し、必要な構成を設定します。
AppDynamicsConfig.json をイメージにコピーするように Dockerfile を編集します。
COPY ./AppDynamicsConfig.json /opt/appdynamics/AppDynamicsConfig.json
(オンプレミスコントローラのみ)コントローラ証明書のイメージへのコピー
オンプレミスコントローラと通信する .NET Agent for Linux エージェントの場合は、コントローラ証明書をイメージにコピーする必要があります。.NETエージェント用SSLの有効化 .NETエージェント用SSLの有効化
Dockerfile を使用するための設定例
この Dockerfile は、アプリケーションとエージェントの両方のバイナリが含まれる単一のイメージを作成し、この Kubernetes 導入仕様はその Docker イメージを参照します。