Download PDF
Download page アプリケーション エージェントを手動で設定してクラスタエージェントと関連付ける.
アプリケーション エージェントを手動で設定してクラスタエージェントと関連付ける
このページでは、Kubernetes アプリケーションを手動でインストゥルメント化する際に、クラスタエージェントと APM コンテナの関連付けを設定する方法について説明します。「Kubernetes」を参照してください。
APM と関連付けると、クラスタエージェントによってモニタされるアプリケーションコンテナがコントローラの [Application/Container] ビューに表示されます。Cluster Agent Pod ダッシュボードの [Pod Details] ページには、APM Node ダッシュボードへのリンクも表示されます。
この設定は、クラスタエージェントが実行されているクラスタで init コンテナまたは Dockerfile を使用して手動でアプリケーションをインストゥルメント化する場合にのみ必要です。クラスタエージェントの自動インストゥルメンテーションを使用すると、APM コンテナの関連付けが自動的に処理されます。「クラスタエージェントを使用したアプリケーションの自動インストゥルメンテーション」を参照してください。
APM コンテナの関連付けでは、特定の言語エージェントの UNIQUE_HOST_ID (
または APPDYNAMICS_AGENT_UNIQUE_HOST_ID)
プロパティを使用します。このプロパティの設定方法の例については、次の言語固有のコンテナインストールページを参照してください。
次の表に、ランタイム、プラットフォーム、およびアプリケーション エージェントのタイプに基づいて UNIQUE_HOST_ID
値の割り当てに必要なコマンドを示します。
プラットフォーム(Platform) | コンテナ ランタイム | コンテナ ID のコマンド |
---|---|---|
Kubernetes | Docker | UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/(.{12}).*/\1/p' /proc/self/cgroup) |
OpenShift 3.11 | Docker | UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/docker-(.{12}).*/\1/p' /proc/self/cgroup) |
OpenShift 4.x | CRI-O | UNIQUE_HOST_ID=$(cat /proc/self/cgroup | head -1 | awk -F '/' ' {print $NF}' | awk -F '-' '{print $2}' | cut -c 1-12) ; if [ -z $UNIQUE_HOST_ID]; then UNIQUE_HOST_ID=$(cat /proc/self/cgroup | head -1 | awk -F '/' '{print $NF} ' | cut -c 1-12) ; fi ; |
Docker を使用した Kubernetes
エージェントが自動的に UNIQUE_HOST_ID
値を取得するため、Java APM 相関はすぐに機能します。UNIQUE_HOST_ID
プロパティを持つ他のエージェントについては、UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/-(.{12}).*/\1/p' /proc/self/cgroup)
コマンドを使用してプロパティを設定する必要があります。
uniqueHostId
プロパティを持つすべての言語エージェントに対して、アプリケーションイメージの作成時にこのメソッドを使用してプロパティを設定します。
UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/(.{12}).*/\1/p' /proc/self/cgroup)
JAVA_OPTS="$JAVA_OPTS -Dappdynamics.agent.uniqueHostId=$UNIQUE_HOST_ID"
アプリケーションイメージを変更できない場合は、command
属性を変更して、Kubernetes の導入仕様に UNIQUE_HOST_ID
を割り当てることができます。
command: ["/bin/sh"]
args: ["-c", "UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/(.{12}).*/\1/p' /proc/self/cgroup) && java -Dappdynamics.agent.uniqueHostId=$UNIQUE_HOST_ID $JAVA_OPTS -jar /java-services.jar"]
このアプローチは、アプリケーションのエントリポイントが既知であることを意味します。この例では、元のエントリポイントは次のとおりです。
java $JAVA_OPTS -jar /java-services.jar
Docker ランタイムを使用した OpenShift 3.11
Docker ランタイムを使用した OpenShift v3.10 および v3.11 で UNIQUE_HOST_ID
プロパティを持つすべての言語エージェントに対して、アプリケーションイメージの作成時にこのメソッドを使用してプロパティを設定します。
UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/docker-(.{12}).*/\1/p' /proc/self/cgroup)
アプリケーションイメージを変更できない場合は、command
属性を変更して、OpenShift v3.10 または v3.11 の導入仕様に UNIQUE_HOST_ID
を割り当てることができます。
command: ["/bin/sh"]
args: ["-c", "UNIQUE_HOST_ID=$(sed -rn '1s#.*/##; 1s/docker-(.{12}).*/\1/p' /proc/self/cgroup) && java -Dappdynamics.agent.uniqueHostId=$UNIQUE_HOST_ID $JAVA_OPTS -jar /java-services.jar"]
このアプローチは、アプリケーションのエントリポイントが既知であることを意味します。この例では、元のエントリポイントは次のとおりです。
java $JAVA_OPTS -jar /java-services.jar
CRI-O ランタイムを使用した OpenShift 4.x
CRI-O ランタイムを使用した OpenShift v4.x で UNIQUE_HOST_ID
プロパティを持つすべての言語エージェントに対して、アプリケーションイメージの作成時にこのメソッドを使用してプロパティを設定します。
UNIQUE_HOST_ID=$(cat /proc/self/cgroup | head -1 | awk -F '/' '
{print $NF}' | awk -F '-' '{print $2}' | cut -c 1-12) ; if [ -z $UNIQUE_HOST_ID ]; then UNIQUE_HOST_ID=$(cat /proc/self/cgroup | head -1 | awk -F '/' '{print $NF}' | cut -c 1-12) ; fi ;
アプリケーションイメージを変更できない場合は、command
属性を変更して、OpenShift v4.x の導入仕様に UNIQUE_HOST_ID
を割り当てることができます。
command: ["/bin/sh"]
args: ["-c", "UNIQUE_HOST_ID=$(cat /proc/self/cgroup | head -1 | awk -F '/' '{print $NF}' | awk -F '-' '{print $2}' | cut -c 1-12) ; if [ -z $UNIQUE_HOST_ID ]; then UNIQUE_HOST_ID=$(cat /proc/self/cgroup | head -1 | awk -F '/' '{print $NF}' | cut -c 1-12) ; fi ; java -Dappdynamics.agent.uniqueHostId=$UNIQUE_HOST_ID $JAVA_OPTS -jar /java-services.jar"]
このアプローチは、アプリケーションのエントリポイントが既知であることを意味します。この例では、元のエントリポイントは次のとおりです。
java $JAVA_OPTS -jar /java-services.jar