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

Application Real-Time Monitoring Service:ack-onepilot を使用した Go エージェントのインストール

最終更新日:Aug 25, 2026

Container Service for Kubernetes (ACK) または Container Compute Service (ACS) にデプロイされた Go アプリケーションをモニタリングするには、Application Real-Time Monitoring Service (ARMS) の ack-onepilot コンポーネントをインストールし、Go バイナリファイルをコンパイルする必要があります。 その後、ARMS で、アプリケーションのトポロジ、API コール、データベース分析などのモニタリングデータを表示できます。 このトピックでは、Container Service for Kubernetes (ACK) または Container Compute Service (ACS) にデプロイされたアプリケーションに Go エージェントをインストールする方法について説明します。

説明
  • ACK と ACS のインストール手順は同じです。本トピックでは ACK を例として使用します。

  • Go エージェントについてご質問がある場合は、DingTalk の Q&A グループ (ID: 159215000379) までお問い合わせください。

前提条件

ステップ 1:ARMS リソースへのアクセス権限の付与

ACK マネージドクラスター

ACK マネージドクラスターに ARMS アドオン トークンが存在しない場合、クラスターに ARMS リソースへのアクセス権限を手動で付与する必要があります。

クラスターに ARMS Addon トークンが存在するかどうかの確認

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

  2. 左側のナビゲーションウィンドウで、[設定] > [シークレット] を選択します。ページの上部で、[名前空間] ドロップダウンリストから [kube-system] を選択し、[シークレット] ページに addon.arms.token が表示されるかどうかを確認します。

説明

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

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

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

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

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

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

    • AliyunTracingAnalysisFullAccess:Managed Service for OpenTelemetry へのフルアクセス権限。

    • AliyunARMSFullAccess:ARMS へのフルアクセス権限。

ACK 専用クラスターと登録クラスター

ACK 専用クラスターおよびACK One 登録済みクラスター内のアプリケーションをモニタリングするには、Alibaba Cloud アカウントに AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限が必要です。権限の付与方法の詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

ack-onepilot コンポーネントをインストールした後、ARMS 権限を持つ Alibaba Cloud アカウントの AccessKey ペア (AccessKey ID と AccessKey シークレット) を提供する必要があります。

方法 1: Helm で AccessKey ペアを指定する

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

  2. クラスターリスト ページで、目的のクラスターの名前をクリックします。 左側のナビゲーションペインで、アプリケーション > Helm を選択します。 ack-onepilot コンポーネントを見つけ、[操作] 列の [更新] をクリックします。

  3. accessKeyaccessKeySecret をご自身の AccessKey ID と AccessKey シークレットに置き換え、[OK] をクリックします。

    説明

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

    [リリース更新] ページの YAML 設定エディターで、controller セクションの下にある accessKey フィールドと accessKeySecret フィールドを探します。

  4. アプリケーションの Deployment を再起動します。

方法 2: シークレットから AccessKey ペアを参照する

  1. コンテナサービス for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションペインで、クラスターリスト をクリックします。

  2. クラスターリスト ページで目的のクラスターの名前をクリックし、左側のナビゲーションペインで 設定 > シークレット を選択します。

  3. ack-onepilot 名前空間を選択し、シークレットを作成して AccessKey ペア情報を追加します。

    説明

    AccessKey ペアの取得方法については、「AccessKey ペアの作成」をご参照ください。

    [Name] を ack-onepilot-aksk に、[Type] を [Opaque] に設定し、データテーブルでキーとして aksk を、値として対応する AccessKey ID と AccessKey シークレットを追加してから、[OK] をクリックします。

  4. 左側のナビゲーションペインで、ワークロード > ステータスなし を選択します。 ack-onepilot 名前空間にある、通常 ack-onepilot-ack-onepilot という名前の ack-onepilot コンポーネントをクリックします。

  5. ack-onepilot-ack-onepilot ページの右上隅にある[編集]をクリックします。 次に、[環境変数] セクションで ONE_PILOT_ACCESSKEYONE_PILOT_ACCESSKEY_SECRET を追加し、シークレットを参照して値を設定し、[OK] をクリックします。

    両方の変数の参照シークレットを ack-onepilot-aksk に設定します。 ONE_PILOT_ACCESSKEY のキーを ak に、ONE_PILOT_ACCESSKEY_SECRET のキーを sk に設定します。

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

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

ステップ 2:ack-onepilot コンポーネントのインストール

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

  2. 左側のナビゲーションペインで、コンポーネントの管理 をクリックし、ack-onepilot を検索します。

    重要

    ack-onepilot のバージョンが 3.2.0 以降であることを確認してください。

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

    説明

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

  4. 表示されるダイアログボックスで、パラメーターを設定し、[OK] をクリックします。デフォルト値を使用することを推奨します。

    説明

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

ステップ 3:Go アプリケーションイメージのコンパイル

  1. (任意) プロジェクトに vendor ディレクトリが含まれている場合は、go build の後に -mod=vendor を追加します。

  2. wget コマンドを使用して instgo コンパイルツールをダウンロードし、お使いのコンパイル環境とコンパイルマシンのリージョンに対応するダウンロードアドレスを選択してください。

    instgo はコンパイル中に自動的に更新されることに注意してください。ビルドユーザーが書き込み権限を持つディレクトリに instgo を保存してください。

    説明
    • Instgo は、ARMS が Go アプリケーション用に提供するビルドツールです。instgo を使用して Go プロジェクトをコンパイルすると、ARMS で Go アプリケーションをモニタリングできます。

    • ビルドツールはすべてのリージョンで同じです。パブリックネットワークから OSS URL にアクセスできる場合は、オペレーティングシステムとアーキテクチャに一致する中国 (杭州) リージョンのパブリックエンドポイントからツールをダウンロードできます。

    ダウンロードコマンドを表示

    Linux (AMD64)

    パブリック URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo

    Linux (ARM64)

    パブリック URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-arm64" -O instgo

    Mac (ARM64)

    パブリック URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-arm64" -O instgo

    Mac (AMD64)

    パブリック URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-amd64" -O instgo

    Windows (AMD64)

    パブリック URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-windows-amd64.exe" -O instgo.exe

  3. ビルドツールに実行権限を付与します。

    Linux と Mac

    # 実行権限を付与します
    chmod +x instgo

    Windows

    Windows では、実行権限を付与する必要はありません。

  4. (任意) UID をビルドパラメータとして設定します。

    重要

    この手順をスキップすると、instgo はデフォルトで最新バージョンの ARMS エージェントをインストールします。

    set コマンドを使用して、UID またはライセンスキーをビルドパラメータとして設定します。

    instgo set --uid={YourAliyunUid} // instgo 1.4.5 以降のバージョンが必要です。uid は、プライマリ Alibaba Cloud アカウントの UID です。
  5. 元のビルドコマンドの前に instgo を追加します。

    instgo go build {arg1} {arg2} {arg3}

    この方法は、go install を使用する場合にも適用されます。

  6. 前の手順で生成されたバイナリファイルを使用してイメージをビルドします。

ステップ 4:Go アプリケーションに対する ARMS 監視の有効化

次の YAML テンプレートは、ステートレス (Deployment) アプリケーションを作成し、ARMS アプリケーション監視を有効にする方法の完全な例を示しています:

完全なサンプル YAML ファイル (Go) を表示

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: otel-go-client
  name: otel-go-client
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: otel-go-client
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        aliyun.com/app-language: golang # Go アプリケーションに必須。Go アプリケーションであることを示します。
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: otel-go-client
        app: otel-go-client
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-client-arms-go-test-0.0.1
          imagePullPolicy: Always
          name: client
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: otel-go-server
  name: otel-go-server
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: otel-go-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: otel-go-server
        aliyun.com/app-language: golang
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: otel-go-server
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-server-arms-go-test-0.0.1
          imagePullPolicy: Always
          name: server
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: v1
kind: Service
metadata:
  labels:
    app: otel-go-server
  name: otel-server
  namespace: default
spec:
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: http
      port: 9000
      protocol: TCP
      targetPort: 9000
  selector:
    app: otel-go-server
  sessionAffinity: None
  type: ClusterIP
  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. クラスターリスト ページの上部で、対象のクラスターが配置されているリソースグループとリージョンを選択し、対象のクラスターの名前をクリックします。左側のナビゲーションペインで ワークロード をクリックし、ステータスなしStatefulSets、または Daemon Sets を選択します。

  3. 対象のアプリケーションを探し、「操作」列でimage > YAML の編集を選択します。

    新しいアプリケーションを作成するには、YAML のリソースの作成 をクリックします。

  4. YAML ファイルで、spec.template.metadata 階層に次の labels を追加します。

    labels:
      aliyun.com/app-language: golang # Go アプリケーションに必須。Go アプリケーションであることを示します。
      armsPilotAutoEnable: 'on'
      armsPilotCreateAppName: "<YOUR-DEPLOYMENT-NAME>"    # <YOUR-DEPLOYMENT-NAME> をアプリケーション名に置き換えます。
  5. 更新 をクリックします。

結果

約 1 分後、お客様の Go アプリケーションが ARMS コンソールアプリケーションモニタリング > アプリケーションリスト ページに表示され、データを報告している場合、エージェントは接続されています。