ARMS アプリケーションモニタリングを使用すると、汎用的な Kubernetes 環境で Go アプリケーションをモニタリングできます。これには、アプリケーショントポロジー、API 呼び出し、エラーと低速トランザクション、SQL 分析などが含まれます。このトピックでは、これらのアプリケーションを ARMS アプリケーションモニタリングに接続する方法について説明します。
このトピックは、ACK 以外の Kubernetes クラスターのみを対象としています。Container Service for Kubernetes (ACK) クラスターについては、「ack-onepilot コンポーネントを使用した ACK およびコンテナコンピューティングサービス (ACS) クラスター用の Go プローブのインストール」をご参照ください。
前提条件
-
ご利用の Kubernetes クラスターの kube-apiserver コンポーネントは、バージョン 1.10 以降である必要があります。
-
ご利用の Kubernetes クラスターが Alibaba Cloud にデプロイされていない場合、インターネットにアクセスできるか、または Cloud Enterprise Network (CEN) などを介して Alibaba Cloud VPC に接続されている必要があります。
-
ご利用の Go アプリケーションは、バージョン 1.18 以降である必要があります。
ステップ 1: Golang アプリケーションイメージのコンパイル
(オプション) コンパイル時にプロジェクトに `vendor` ディレクトリが含まれている場合は、
go buildの後に-mod=vendorを追加します。wgetコマンドを使用して、コンパイルツール instgo をダウンロードできます。ビルドマシンのコンパイル時の環境とリージョンに基づいて、ダウンロードアドレスを選択してください。instgo はコンパイル時に自動更新をトリガーすることにご注意ください。ビルドユーザーが書き込み権限を持つディレクトリに instgo を保存してください。
説明Instgo は ARMS が提供する Golang アプリケーションのコンパイルツールです。instgo を使用して Golang プロジェクトをコンパイルすると、ARMS は Golang アプリケーションのモニタリングを開始します。
各リージョンでダウンロードされるコンパイルツールは同じです。パブリックネットワーク環境が OSS アドレスにアクセスできる場合は、ご利用のオペレーティングシステムとアーキテクチャに対応する杭州のパブリックネットワークアドレスを使用してコンパイルツールを取得してください。
コンパイルツールに実行権限を付与する必要があります。
Linux/Mac
# 実行権限を付与 chmod +x instgoWindows
Windows では実行権限は必要ありません。
(任意) コンパイルパラメーターとして LicenseKey または UID を設定できます。
重要このステップをスキップすると、instgo はデフォルトで最新バージョンの ARMS プローブをインストールします。
DescribeTraceLicenseKey OpenAPI を使用して LicenseKey を取得できます。
DescribeTraceLicenseKey のドキュメントページで、[デバッグ] をクリックし、リージョンを選択してから [呼び出し開始] をクリックして LicenseKey を取得します。

`set` コマンドを使用して、UID または LicenseKey をコンパイルパラメーターとして設定できます。
instgo set --uid={YourAliyunUid} // instgo バージョン 1.4.5 以降が必要です。UID はご利用の Alibaba Cloud アカウントの UID です。 instgo set --licenseKey=${YourLicenseKey} // UID または LicenseKey のいずれかを設定します。
既存のコンパイルコマンドのプレフィックスとして `instgo` を追加し、コンパイルを実行します。
instgo go build {arg1} {arg2} {arg3}プロジェクトのコンパイルに `go install` を使用する場合も、既存のコンパイルコマンドのプレフィックスとして `instgo` を追加してコンパイルを実行できます。
前のステップでコンパイルしたバイナリファイルを使用してイメージをビルドします。
ステップ 2: Helm 3 のインストール
ステップ 3: エージェントのインストール
Application Real-Time Monitoring Service (ARMS) は、ステートレス (Deployment) およびステートフル (StatefulSet) アプリケーションのみをサポートします。導入手順はどちらも同じです。この例では、Kubernetes のステートレス (Deployment) アプリケーションを ARMS に接続する方法を示します。
-
次の
wgetコマンドを実行して、ack-onepilot インストールパッケージをダウンロードします。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.1.1.tgz' -
次のコマンドを実行して、ack-onepilot インストールパッケージを展開します。
tar xvf ack-onepilot-5.1.1.tgz -
インストールパッケージ内の 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。フォーマット<uid>-<clusterid>を推奨します。 -
accessKeyおよびaccessKeySecret:ご利用の Alibaba Cloud アカウント (メインアカウント) の AccessKey ID と AccessKey Secret。取得方法については、「AccessKey の作成」をご参照ください。重要メインアカウントに AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限があることを確認してください。
-
uid:ご利用の Alibaba Cloud アカウント (メインアカウント) の ID。これは、Alibaba Cloud コンソールの右上隅にあるプロフィール画像にカーソルを合わせることで取得できます。 -
region_id:Alibaba Cloud リージョン ID。サポートされているリージョンの一覧については、「利用可能なリージョン」をご参照ください。
-
-
次のコマンドを実行して ack-onepilot をインストールします。
このコマンドは、ack-onepilot インストールパッケージのディレクトリ外から実行してください。
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
ステップ 4: Deployment の YAML ファイルの変更
-
次のコマンドを実行して、対象の Deployment の YAML ファイルを表示します。
kubectl get deployment {deployment-name} -o yaml説明{deployment-name}が不明な場合は、次のコマンドを実行してすべての Deployment を一覧表示します。その後、出力から対象の Deployment の名前を見つけます。kubectl get deployments --all-namespaces -
対象の Deployment の YAML ファイルを編集します。
kubectl edit deployment {deployment-name} -o yaml -
YAML ファイルでは、
spec.template.metadataの下に以下の内容を追加します。labels: aliyun.com/app-language: "golang" # Go アプリケーションに必須です。 armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # <your-deployment-name> をご利用のアプリケーション名に置き換えます。K8s 環境で新しい Deployment を作成し、それを ARMS に接続する必要がある場合は、次の完全な YAML ファイルを使用します。
結果
Go アプリケーションが ARMS コンソール の に表示され、約 1 分以内にデータのレポートを開始した場合、統合は成功です。