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

Application Real-Time Monitoring Service:汎用 Kubernetes 環境でのエージェントの自動インストール

最終更新日:Mar 10, 2026

Application Real-Time Monitoring Service (ARMS) を使用して、汎用 Kubernetes 環境におけるアプリケーションのトポロジー、API 呼び出し、異常なトランザクションと低速なトランザクション、および SQL クエリをモニタリングします。このトピックでは、汎用 Kubernetes 環境で Java アプリケーションを ARMS アプリケーションモニタリングに接続する方法について説明します。

説明

ご利用の Kubernetes クラスターが Container Service for Kubernetes (ACK) によって提供されている場合、このトピックは適用されません。ACK クラスターを ARMS に接続する方法については、「ack-onepilot コンポーネントを使用した Container Service for Kubernetes (ACK) および Container Compute Service (ACS) への Java エージェントのインストール」をご参照ください。

前提条件

  • ご利用の Kubernetes クラスターがバージョン 1.18 以降であることを確認します。

  • ご利用の Kubernetes クラスターが Alibaba Cloud にデプロイされていない場合、クラスターがパブリックネットワークに接続できることを確認します。Cloud Enterprise Network (CEN) などのサービスを使用して、クラスターを Alibaba Cloud VPC に接続することもできます。

  • JDK バージョンを確認します。詳細については、「サポートされている JDK バージョン」をご参照ください。

  • プロセスの最大ヒープメモリが 256 MB より大きいことを確認します。

(推奨) 方法 1: 登録済み ACK クラスターを介した ARMS への接続

登録済み ACK クラスターを使用するメリットは次のとおりです。

  • より効率的な O&M サポート。

  • モニタリング、ロギング、バックアップと復元、セキュリティ、弾力的なクラウドリソースなど、より多くの ACK クラスターの拡張機能へのアクセス。詳細については、「登録済みクラスターの概要」をご参照ください。

  1. Kubernetes クラスターを ACK One に接続します。詳細については、「ACK One の登録済みクラスターの作成」をご参照ください。

  2. 登録済みクラスターに ack-onepilot コンポーネントをインストールします。詳細については、「Application Real-Time Monitoring Service (ARMS) を登録済みクラスターに接続」をご参照ください。

方法 2: ARMS への直接接続

重要

このメソッドは、登録済みの ACK クラスターを使用しません。ARMS に接続すると、CPU、メモリ、ディスク、ネットワーク使用量などのコンテナ情報は表示されません。[アプリケーションインスタンス] ページでは、ARMS によって収集されたコンテナデータのみが表示されます。Managed Service for Prometheus に接続しても、Prometheus エージェントからのコンテナデータを表示することはできません。詳細については、「Java アプリケーションインスタンスのモニタリング」をご参照ください。

ステップ 1: Helm 3 のインストール

ステップ 2: エージェントのインストール

ARMS アプリケーションモニタリングは、ステートレス (Deployment) アプリケーションと StatefulSet アプリケーションの接続をサポートしています。接続方法はどちらのタイプでも同じです。このセクションでは、Kubernetes 環境におけるステートレス (Deployment) アプリケーションを例として使用します。

  1. 次の wget コマンドを実行して、ack-onepilot インストールパッケージをダウンロードします。

     wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.1.1.tgz'
  2. 次のコマンドを実行して、ack-onepilot インストールパッケージを解凍します。

    tar xvf ack-onepilot-5.1.1.tgz                 
  3. インストールパッケージ内の values.yaml ファイルを編集します。必要に応じて次のパラメーターを変更し、ファイルを保存します。

    registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/
    cluster_id: __ACK_CLUSTER_ID__
    accessKey: __ACCESSKEY__
    accessKeySecret: __ACCESSKEY_SECRET__
    uid: "__ACK_UID__"
    region_id: __ACK_REGION_ID__
    • registry: ack-onepilot のレジストリアドレス。

    • cluster_id: Kubernetes クラスターのカスタム ID。ID は一意である必要があります。推奨される形式は <uid>-<clusterid> です。

    • accessKey および accessKeySecret: ご利用の Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret。AccessKey ペアの取得方法の詳細については、「AccessKey ペアの作成」をご参照ください。

      重要
      • Alibaba Cloud アカウントに AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限があることを確認します。

      • Resource Access Management (RAM) ユーザーを使用している場合、RAM ユーザーにも AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限があることを確認します。詳細については、「RAM ユーザー権限の管理」をご参照ください。

      • AccessKey ペアのセキュリティを確保するために、Kubernetes Secret を使用して AccessKey ID と AccessKey Secret を非表示にできます。詳細については、「方法 2: Kubernetes Secret を使用した AccessKey ペアのインポート」をご参照ください。

    • uid: ご利用の Alibaba Cloud アカウントの ID。ID を取得するには、Alibaba Cloud 管理コンソールの右上隅にあるプロフィール画像にポインターを合わせます。

    • region_id: Alibaba Cloud リージョンの ID。アプリケーションモニタリングがサポートするリージョンの詳細については、「リージョンとゾーン」をご参照ください。

    説明

    宛先クラスターがエッジクラスターの場合、ack-onepilot コンポーネントをクラウドにスケジュールするために nodeSelector アノテーションを追加します。これにより、ack-onepilot が期待どおりに動作することが保証されます。

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: xxx
      namespace: xxx
    spec:
      template:
        spec:
          nodeSelector:
            # Replace it with the actual node selector.
            alibabacloud.com/is-edge-worker: "false"
  4. 次のコマンドを実行して、ack-onepilot をインストールします。

    このコマンドは、ack-onepilot インストールパッケージの外で実行します。

    helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace

ステップ 3: アプリケーションの YAML ファイルの変更

  1. 次のコマンドを実行して、宛先のステートレス (Deployment) アプリケーションの YAML ファイルを表示します。

    kubectl get deployment {deployment-name} -o yaml                            
    説明

    {deployment-name} が不明な場合は、次のコマンドを実行してすべてのステートレス (Deployment) アプリケーションを表示します。出力から宛先アプリケーションを見つけて、その YAML ファイルを表示します。

    kubectl get deployments --all-namespaces                
  2. 次のコマンドを実行して、宛先のステートレス (Deployment) アプリケーションの YAML ファイルを編集します。

    kubectl edit deployment {deployment-name} -o yaml                        
  3. YAML ファイルで、spec.template.metadata レベルの下に次のコンテンツを追加します。

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # Replace <your-deployment-name> with your application name.
      aliyun.com/app-language: java
    説明

    Kubernetes 環境で新しいステートレス (Deployment) アプリケーションを作成し、ARMS に接続する場合は、次の完全な YAML ファイルを使用します。

    完全なサンプル YAML ファイルを表示するために展開

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: arms-springboot-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: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: arms-demo-mysql
      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
    spec:
      ports:
        # the port that this service should serve on
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # label keys and values that must match to receive traffic for this service
      selector:
        app: mysql
    ---
  4. 設定を保存すると、変更を有効にするためにアプリケーションが自動的に再起動します。

    2~5分後、アプリケーションが [アプリケーションモニタリング] > [アプリケーション] ページに ARMS コンソールで表示され、データが報告されている場合、接続は成功しています。