すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:ACK および ACS クラスターへの ARMS Java エージェントのインストール

最終更新日:Sep 03, 2026

Application Real-Time Monitoring Service (ARMS) は、Container Service for Kubernetes (ACK) および Container Compute Service (ACS) で実行されている Java アプリケーションを自動的にインストルメンテーションします。クラスターに ack-onepilot コンポーネントをインストールし、Deployment に 3 つのラベルを追加します。これにより、ARMS はコードを変更することなく、トレース、アプリケーショントポロジ、API 呼び出しメトリック、エラーおよびレイテンシーデータを収集します。

説明

ACK と ACS のインストール手順は同じです。このガイドでは、ACK を例として使用します。

仕組み

ack-onepilot コンポーネント (ARMS エージェントオンボーディングアシスタント) は、クラスター内でコントローラーとして実行されます。ラベルが付けられた Pod が起動すると、ack-onepilot は ARMS Java エージェントを Pod に自動的にインジェクションします。新しいエージェントバージョンがリリースされると、次回のアプリケーション再起動時に ack-onepilot がエージェントをアップグレードします。特定のバージョンを固定するには、「エージェントバージョンの手動制御」をご参照ください。

インジェクションのメカニズムの詳細については、「ack-onepilot の仕組み」をご参照ください。

重要

レガシーコンポーネントである arms-pilot はメンテナンスが終了しています。ack-onepilot はその後継であり、完全な互換性があります。移行に際してアプリケーション設定の変更は不要です。移行手順については、「arms-pilot のアンインストールと ack-onepilot のインストール」をご参照ください。

プロセスの概要

ARMS モニタリングの設定は、3 つのステップで完了します。

  1. ack-onepilot のインストール -- ACK コンソールを使用してモニタリングコンポーネントをデプロイします。

  2. [ARMS への権限付与] -- ARMS のクラスター認証を設定します (クラスターの種類によって異なります)。

  3. Deployment へのラベル付け -- Pod テンプレートに 3 つのラベルを追加して、自動インストルメンテーションを有効にします。

前提条件

開始する前に、以下を確認してください。

ステップ1:ack-onepilot のインストール

  1. ACK コンソールにログインします。 [クラスター] ページで、クラスター名をクリックします。

  2. ナビゲーションペインで、 [アドオン] をクリックします。 [ack-onepilot] を検索します。

  3. [ack-onepilot] カードで、 [インストール] をクリックします。

  4. ダイアログボックスで、デフォルトのパラメーター値を変更せずに、 [OK] をクリックします。

説明

ack-onepilot は、デフォルトで最大 1,000 個の Pod をサポートします。Pod が 1,000 個追加されるごとに、コンポーネントに 0.5 コアの CPU と 512 MB のメモリを割り当ててください。

インストール後、 [アドオン] ページから ack-onepilot のアップグレード、設定、またはアンインストールが可能です。

ステップ2:ARMS への権限付与

必要な権限は、クラスターの種類によって異なります。お使いのクラスターの種類を確認し、対応する手順に従ってください。

ACK マネージドクラスター

ARMS アドオントークンを持つ ACK マネージドクラスターは自動的に承認されます。続行する前に、トークンが存在するかどうかを確認してください。

ARMS アドオントークンの確認:

  1. ACK コンソールにログインします。 [クラスター] をクリックし、次にクラスター名をクリックします。

  2. ナビゲーションペインで、 [設定] > [シークレット] を選択します。 [Namespace] ドロップダウンリストから [kube-system] を選択します。

  3. [シークレット] ページで addon.arms.token という名前の Secret を探します。

  • addon.arms.token が存在する場合、クラスターはすでに承認済みです。ステップ 3 に進んでください。

  • もし addon.arms.token が存在しない場合は、必要な権限ポリシーを手動で追加してください (下記参照)。

説明

クラスターに ARMS アドオントークンがある場合、ARMS はクラスターに対してパスワードなしの権限付与を実行します。一部の ACK マネージドクラスターには ARMS アドオントークンが存在しない場合があります。ARMS を使用してクラスター内のアプリケーションをモニタリングする前に、ACK マネージドクラスターに ARMS アドオントークンがあるかどうかを確認することを推奨します。

権限ポリシーの手動追加:

  1. [クラスター] ページで、クラスター名をクリックします。

  2. [クラスター情報] ページの [基本情報] タブで、 [クラスターリソース] セクションの [ワーカーRAMロール] の横にあるリンクをクリックします。

  3. 表示されたページの [権限] タブで、 [権限の付与] をクリックします。

  4. [権限の付与] パネルで、以下の 2 つのポリシーを追加し、 [権限を付与] をクリックします。

    ポリシー

    アクセス範囲

    AliyunTracingAnalysisFullAccess

    Managed Service for OpenTelemetry へのフルアクセス

    AliyunARMSFullAccess

    ARMS へのフルアクセス

ACK 専有クラスターおよび登録済みクラスター

ACK 専有クラスターおよび ACK One 登録済みクラスターには、以下の 2 つが必要です。

  • お使いの Alibaba Cloud アカウントに AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限が必要です。「RAM ユーザーの権限管理」をご参照ください。

  • ack-onepilot コンポーネントには、ARMS 権限を持つ AccessKey ペアが必要です。

以下のいずれかの方法を使用して、ack-onepilot に AccessKey ペアを指定します。

方法1:Helm での AccessKey ペアの指定

  1. ACK コンソールにログインします。 [クラスター] をクリックし、次にクラスター名をクリックします。

  2. ナビゲーションペインで、 [アプリケーション] > [Helm] を選択します。 [ack-onepilot] の横にある [更新] をクリックします。

  3. accessKey と accessKeySecret の値を AccessKey ID と AccessKey シークレットに置き換えます。 [OK] をクリックします。

    説明

    AccessKey ペアを取得するには、「AccessKey ペアの作成」をご参照ください。

    admissionRegistration:
      failurePolicy: Ignore
      onlyLabel: false
    configuration:
      downloadTimeout: "90"
    controller:
      accessKey: __ACCESSKEY__
      accessKeySecret: __ACCESSKEY_SECRET__
      accessSource: ACSKS
      cluster_id: c0c3c907a2e30
      clusterProfile: __ACK_CLUSTER_PROFILE__
      clusterType: __ACK_CLUSTER_TYPE__
      imagePullPolicy: Always
      is_finance: <no value>
      logLevel: 1
  4. アプリケーションの Deployment を再起動します。

方法2:Kubernetes Secret の使用

  1. ACK コンソールにログインします。 [クラスター] をクリックし、次にクラスター名をクリックします。

  2. ナビゲーションペインで、 [設定] > [シークレット] を選択します。 [ack-onepilot] 名前空間を選択し、AccessKey ID と AccessKey シークレットを格納する Secret を作成します。

    説明

    AccessKey ペアを取得するには、「AccessKey ペアの作成」をご参照ください。

    Secret を作成する際、 [Name] を ack-onepilot-aksk に設定し、 [Type] に [Opaque] を選択し、データテーブルに 2 つの行を追加します。キー ak は AccessKey ID に、キー sk は AccessKey シークレットにそれぞれ対応します。

  3. ナビゲーションペインで、 [ワークロード] > [デプロイメント] を選択します。ack-onepilot コンポーネント (通常は ack-onepilot 名前空間内の ack-onepilot-ack-onepilot) をクリックします。

  4. 右上隅の [編集] をクリックします。 [環境変数] セクションで、以下の 2 つの変数を追加して Secret の値を参照するようにし、 [OK] をクリックします。

    環境変数

    説明

    ONE_PILOT_ACCESSKEY

    Secret に格納されている AccessKey ID を参照します

    ONE_PILOT_ACCESSKEY_SECRET

    Secret に格納されている AccessKey シークレットを参照します

ACK Serverless クラスター (ASK) および ECI 統合クラスター

[リソースアクセス承認] ページで権限付与を完了し、ack-onepilot コンポーネントのすべての Pod を再起動します。

ステップ3:Deployment へのラベル付け

Deployment YAML の spec.template.metadata.labels セクションに 3 つのラベルを追加して、ARMS モニタリングを有効にします。

labels:
  armsPilotAutoEnable: "on"
  armsPilotCreateAppName: "<your-deployment-name>"    #  をお使いのアプリケーション名に置き換えます。
  aliyun.com/app-language: java

ラベル

値

説明

armsPilotAutoEnable

"on"

Pod へのエージェントの自動インジェクションを有効にします

armsPilotCreateAppName

"<your-deployment-name>"

ARMS コンソールに表示されるアプリケーション名。お使いのアプリケーション名に置き換えてください。

aliyun.com/app-language

java

エージェントのアプリケーション言語を指定します

説明

ラベルは metadata.labels (Deployment メタデータ) ではなく、 spec.template.metadata.labels (Pod テンプレート) に配置する必要があります。ラベルを間違った場所に配置すると、モニタリングデータが表示されない一般的な原因となります。

既存の Deployment へのラベルの適用

  1. ACK コンソールにログインします。 [クラスター] をクリックし、次にクラスター名をクリックします。

  2. ナビゲーションペインで、 [ワークロード] > [デプロイメント] を選択します。

  3. [ステートレス] ページで、対象のアプリケーションの横にある [more icon] > [YAML の編集] をクリックします。

  4. spec.template.metadata.labels に 3 つのラベルを追加し、 [更新] をクリックします。

説明

アプリケーションセキュリティの詳細については、「アプリケーションセキュリティとは」をご参照ください。

アプリケーションセキュリティの課金の詳細については、「課金の概要」をご参照ください。

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # 1.8.0 より前のバージョンの場合は apps/v1beta1 を使用します
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
    spec:
      containers:
        - resources:

モニタリングを有効にした新規 Deployment の作成

[ステートレス] ページで [YAMLから作成] をクリックし、Deployment 定義にラベルを含めます。

YAML の完全な例 (Java) を展開して表示

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # 1.8.0 より前のバージョンの場合は apps/v1beta1 を使用します
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo
          env:
            - name: SELF_INVOKE_SWITCH
              value: "true"
            - name: COMPONENT_HOST
              value: "arms-demo-component"
            - name: COMPONENT_PORT
              value: "6666"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: apps/v1 # 1.8.0 より前のバージョンの場合は apps/v1beta1 を使用します
kind: Deployment
metadata:
  name: arms-springboot-demo-subcomponent
  namespace: arms-demo
  labels:
    app: arms-springboot-demo-subcomponent
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo-subcomponent
  template:
    metadata:
      labels:
        app: arms-springboot-demo-subcomponent
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo-subcomponent
          env:
            - name: SELF_INVOKE_SWITCH
              value: "false"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: arms-demo-component
  name: arms-demo-component
  namespace: arms-demo
spec:
  ports:
    - name: arms-demo-component-svc
      port: 6666
      targetPort: 8888
  selector:
    app: arms-springboot-demo-subcomponent
---
apiVersion: apps/v1 # 1.8.0 より前のバージョンの場合は apps/v1beta1 を使用します
kind: Deployment
metadata:
  name: arms-demo-mysql
  namespace: arms-demo
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
          name: mysql
          ports:
            - containerPort: 3306
              name: mysql
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: mysql
  name: arms-demo-mysql
  namespace: arms-demo
spec:
  ports:
    - name: arms-mysql-svc
      port: 3306
      targetPort: 3306
  selector:
    app: mysql

モニタリングデータの検証

[ステートレス] ページで、対象アプリケーションの [操作] 列にある [more icon] > [ARMSコンソール] をクリックして、アプリケーションのモニタリング詳細を表示します。

よくある質問