Java エージェント環境変数の設定
必要な Java エージェント環境変数をすべて設定するには、「Kubernetes でエージェントを設定するためのベストプラクティス」で説明されている次の手順を実行する必要があります。
ConfigMap を使用したアプリケーション サーバ エージェントの設定
コントローラのアクセスキーへの秘密の使用
導入仕様でのアプリケーション固有の設定
導入仕様にアプリケーション固有の階層名環境変数 APPDYNAMICS_AGENT_TIER_NAME を設定します。
spec:
containers:
- name: java-app
env:
- name: APPDYNAMICS_AGENT_TIER_NAME
value: ecommerce-service導入仕様への -javaagent 引数の追加
導入仕様を編集して、次の例に示されているように、アプリケーションコンテナのスタートアップコマンドに -javaagent 引数を追加します。
spec:
containers:
command: ["/bin/sh"]
args: ["-c", "java -javaagent:/opt/appdynamics/javaagent.jar -jar /myapp.jar"]Spring Boot など一部の Java フレームワークでは、標準的な JAVA_TOOL_OPTIONS 環境変数を利用して -javaagent 引数を含めることができます。
(OpenShift のみ)APPDYNAMICS_AGENT_UNIQUE_HOST_ID 環境変数の設定
APPDYNAMICS_AGENT_UNIQUE_HOST_IDOpenShift で実行する Java アプリケーションの場合は、 環境変数を設定して、クラスタエージェントとの APM 相関を有効にします。APPDYNAMICS_AGENT_UNIQUE_HOST_ID 値はランタイム値に依存するため、コンテナのスタートアップコマンドでこの環境変数を設定します。
たとえば、OpenShift 3.10 または 3.11 環境の場合は、次のように環境変数を設定します。
spec:
containers:
command: ["/bin/sh"]
args: ["-c", "APPDYNAMICS_AGENT_UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/docker-(.{12}).*/\\1/p' /proc/self/cgroup) && java -javaagent:/opt/appdynamics/javaagent.jar -jar /myapp.jar"]
ユースケースについては、「アプリケーション エージェントを手動で設定してクラスタエージェントと関連付ける」に記載されている値を参照してください。
(オンプレミスコントローラのみ)コンテナへのコントローラ証明書のコピー
オンプレミスのコントローラ証明書が必要な場合は、ConfigMap を定義して cert ファイルを参照し、導入仕様で volume mount を使用して ConfigMap の内容をコンテナにマウントします。
$ kubectl create configmap appd-cert --from-file=cacerts.jksこの例では、 appd-cert導入仕様のスニペットに示されているように、volumes および volumeMounts を使用して証明書ファイルをコンテナファイルシステムに追加します。
kind: Deployment
spec:
containers:
image: myrepo/java-app:v1
volumeMounts:
- name: appd-cert
subPath: cacerts.jks
mountPath: /opt/appdynamics/ver4.5.11.26665/conf/cacerts.jks
volumes:
- name: appd-cert
configMap:
name: appd-certInit コンテナを使用するための設定例
init コンテナを使用してエージェントバイナリをコピーする導入仕様の完全な例は、Github(java-app.yaml)にあります。