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

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

最終更新日:Jul 16, 2026

汎用的な Kubernetes 環境の Java アプリケーションを Application Real-Time Monitoring Service (ARMS) アプリケーションモニタリングに接続し、アプリケーションのトポロジー、API コール、低速なトランザクションと異常なトランザクション、および SQL クエリをモニタリングします。

説明

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

前提条件

  • お使いの Kubernetes クラスターのバージョンが 1.18 以降であること。

  • お使いの Kubernetes クラスターが Alibaba Cloud 上にデプロイされていない場合は、クラスターがパブリックインターネットにアクセスできるか、Cloud Enterprise Network (CEN) またはその他の方法で Alibaba Cloud の VPC に接続されていることを確認してください。

  • ご利用の JDK バージョンが アプリケーションモニタリングでサポートされている こと

  • JVM の最大ヒープメモリ (-Xmx) が 256 MB 以上であること

方法 1: ACK One の登録済みクラスターとの接続

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

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

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

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

  2. 登録済みクラスターに ack-onepilot コンポーネントをインストールします。詳細については、「登録済みクラスターの ARMS アプリケーションモニタリングへの接続」をご参照ください。

方法 2: ARMS への直接接続

重要

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

手順 1: Helm 3 のインストール

手順 2: エージェントのインストール

ARMS アプリケーションモニタリングは、ステートレス (Deployment) とステートフル (StatefulSet) のアプリケーションのみをサポートします。接続方法は両方のタイプで同じです。次の例では、ステートレス (Deployment) アプリケーションを使用します。

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

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

    tar xvf ack-onepilot-5.2.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> です。

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

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

      • RAM ユーザーを使用している場合は、RAM ユーザーにも AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限があることを確認してください。手順については、「RAM ユーザーへの権限付与」をご参照ください。

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

    • uid: Alibaba Cloud アカウントの ID。ID を確認するには、Alibaba Cloud コンソールの右上隅にあるプロフィール画像にカーソルを合わせます。

    • region_id: Alibaba Cloud のリージョン ID。アプリケーションモニタリングが利用可能なリージョンの一覧については、「サポートされているリージョン」をご参照ください。

    説明

    ターゲットクラスターがエッジクラスターである場合は、nodeSelector アノテーションを追加して、ack-onepilot コンポーネントをクラウドノードにスケジュールします。これにより、ack-onepilot が正しく機能するようになります。

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: xxx
      namespace: xxx
    spec:
      template:
        spec:
          nodeSelector:
            # 実際のノードセレクターに置き換えます。
            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>"    #  をお使いのアプリケーション名に置き換えます。
      aliyun.com/app-language: java
    説明

    次のサンプル YAML ファイルは、新しいステートレス (Deployment) アプリケーションを作成して ARMS に接続する例です。

    新規 Deployment 用の完全なサンプル 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:
        # このサービスがリッスンするポート
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # このサービスのトラフィックを受信するために一致する必要があるラベルのキーと値
      selector:
        app: mysql
    ---
  4. 設定を保存すると、アプリケーションは自動的に再起動して変更を適用します。

    2〜5 分後、ARMS コンソールアプリケーションモニタリング > アプリケーションリスト ページにアプリケーションが表示され、データのレポートが開始されると、接続は成功しています。