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

Container Service for Kubernetes:Java アプリケーションモニタリング

最終更新日:Jun 27, 2025

Application Real-Time Monitoring Service (ARMS) のアプリケーションモニタリングコンポーネントである ack-onepilot を、Container Service for Kubernetes (ACK) にデプロイされている Java アプリケーションにインストールすると、ARMS はアプリケーショントポロジーの自動検出、3D トポロジーの生成、インターフェイスの監視、異常トランザクションと低速トランザクションのキャプチャを開始します。 これにより、オンラインでの問題診断の効率が大幅に向上します。

背景

ARMS は、アプリケーションパフォーマンス管理 (APM) サービスです。 コードを変更することなく、ACK にデプロイされた Java アプリケーションの包括的なモニタリングを提供します。 ack-onepilot をインストールして承認することで、失敗したリクエストと低速なリクエストを効率的に特定し、リクエストパラメーターを再現し、メモリリークを検出し、システムのボトルネックを発見できます。 ARMS アプリケーションモニタリングの詳細については、「アプリケーションモニタリングとは」をご参照ください。

前提条件

  • 名前空間が作成されていること。 詳細については、「名前空間とリソースクォータの管理」をご参照ください。 この例では、arms-demo という名前の名前空間を使用します。

  • JDK のバージョンがアプリケーションモニタリングでサポートされていること。 ARMS は、次の JDK バージョンをサポートしています。

    • JDK 1.7.0+

      重要

      ARMS エージェント V3.0.X 以降では、Java 7 はサポートされなくなります。 まだ Java 7 を使用している場合は、Java バージョンをアップグレードすることをお勧めします。 詳細については、「アプリケーションモニタリングは Java 7 をサポートしなくなりました」をご参照ください。

    • JDK 1.8.0_25+

      説明
      • Kubernetes クラスターにアプリケーションをデプロイする場合は、JDK V1.8.0_191 以降を使用することをお勧めします。

      • JDK のバージョンが 1.8.0_25 または 1.8.0_31 でないことを確認してください。 そうしないと、ARMS エージェントのインストールに失敗する可能性があります。 この場合は、JDK を最新の 1.8.X にアップグレードすることをお勧めします。

    • JDK 11.0.8+

    • JDK 17

  • ARMS がアクティブ化されていること。 詳細については、「ARMS のアクティブ化」をご参照ください。

ステップ 1: ARMS アプリケーションモニタリングコンポーネントをインストールする

重要

古いコンポーネント arms-pilot は、現在はメンテナンスされていません。 新しいコンポーネント ack-onepilot をインストールして、アプリケーションを監視できます。 ack-onepilot コンポーネントは arms-pilot と完全に互換性があります。 アプリケーション構成を変更することなく、ack-onepilot をシームレスにインストールできます。 詳細については、「arms-pilot をアンインストールして ack-onepilot をインストールするにはどうすればよいですか。」をご参照ください。

  1. ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけて、その名前をクリックします。 左側のナビゲーションウィンドウで、[アドオン] をクリックします。

  3. [ログとモニタリング] セクションで、[ack-onepilot] を見つけて、[インストール] をクリックします。 表示されたダイアログボックスで、必要に応じてパラメーターを構成します。 デフォルト値を使用することをお勧めします。 次に、[OK] をクリックします。

    説明

    デフォルトでは、ack-onepilot は 1,000 ポッドをサポートします。 クラスター内の追加の 1,000 ポッドごとに、ack-onepilot に 0.5 CPU コアと 512 MB のメモリを追加する必要があります。

    [ack-onepilot] をインストールした後、[アドオン] ページでアップグレード、構成、またはアンインストールできます。

ステップ 2: ARMS がリソースにアクセスすることを承認する

  • addon.arms.token がない ACK クラスターにデプロイされたアプリケーションを監視するには、次の操作を実行して、ACK クラスターが ARMS にアクセスすることを承認します。 addon.arms.token がすでに存在する場合は、これ以上の承認は必要ありません。

    説明

    ACK クラスターでは、addon.arms.token を使用すると、ARMS はパスワードなしで自動的に承認を実行できます。 通常、マネージドクラスター にはデフォルトで addon.arms.token があります。 ただし、以前に作成された マネージドクラスター の一部には、addon.arms.token が含まれていない場合があります。

    1. クラスターに addon.arms.token があるかどうかを確認します。

      [addon.arms.token secret] を クラスター確認します

      1. ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

      2. [クラスター] ページで、変更するクラスターの名前をクリックします。 左側のウィンドウで、[構成] > [シークレット] を選択します。

      3. ページの上部にある [名前空間] ドロップダウンリストから [kube-system] を選択し、addon.arms.token が存在するかどうかを確認します。

    2. addon.arms.token が存在しない場合は、次の手順を実行して、クラスターが ARMS リソースにアクセスすることを手動で承認します。

      1. ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

      2. [クラスター] ページで、目的のクラスターを見つけて、その名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

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

      4. [権限] タブで、[権限の付与] をクリックします。

      5. AliyunARMSFullAccess ポリシーを選択し、[OK] をクリックします。

  • エラスティックコンテナインスタンスに接続されている マネージドクラスター にデプロイされたアプリケーションを監視するには、RAM クイック承認 ページに移動して、承認を完了します。 その後、ack-onepilot 用に作成されたポッドを再起動します。

ステップ 3: Java アプリケーションを監視するように ARMS を有効にする

新しいアプリケーションを作成するときにアプリケーションモニタリングを有効にするには、次の手順を実行します。

  1. ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけて、その名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [デプロイメント] ページで、ページの上部にある [YAML から作成] をクリックします。

  4. [作成] ページで、[サンプルテンプレート] ドロップダウンリストからテンプレートを選択し、[テンプレート] コードエディターの spec.template.metadata フィールドに次の labels を追加します。

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    // <your-deployment-name> を実際のアプリケーション名に置き換えます。
      armsSecAutoEnable: "on"    // アプリケーションをアプリケーションセキュリティに接続する場合は、このパラメーターを構成する必要があります。
    説明

    YAML Example

    次の YAML テンプレートは、デプロイメントを作成し、アプリケーションのアプリケーションモニタリングを有効にする方法を示しています。

    展開して完全な YAML テンプレートを表示する

    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"
            one-agent.jdk.version: "OpenJDK11"
        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"
            one-agent.jdk.version: "OpenJDK11"
        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
    ---

次のステップ

デプロイメント上記の手順を完了すると、ACK クラスターにデプロイされたアプリケーションに対して ARMS アプリケーションモニタリングが有効になります。 [デプロイメント] ページで、アプリケーションの 列にある image > [ARMS コンソール]アクション を選択して、アプリケーションモニタリングの詳細を表示します。 詳細については、「アプリケーションの概要」をご参照ください。

image.png

FAQ