ack-onepilot をインストールし、Go バイナリファイルをコンパイルすると、Application Real-Time Monitoring Service (ARMS) は、Container Service for Kubernetes (ACK) または Container Compute Service (ACS) にデプロイされた Go アプリケーションを監視します。 アプリケーショントポロジー、インターフェイス呼び出し、データベース分析データなどのモニタリングデータを表示できます。 このトピックでは、ACK または ACS にデプロイされた Go アプリケーションの ARMS エージェントをインストールする方法について説明します。
ARMS エージェントの使用中に質問がある場合は、テクニカルサポートのために DingTalk グループチャット(ID: 35568145)に参加してください。
前提条件
ACK または ACS クラスタが作成されていること。
ACK クラスタ: ビジネス要件に基づいて、ACK マネージドクラスター、ACK 専用クラスター、ACK Serverless Kubernetes クラスター、または 登録済みクラスター を作成できます。
ACS クラスタ: ACS クラスタの作成方法については、「ACS クラスタを作成する」をご参照ください。
クラスターに名前空間が作成されていること。 詳細については、「名前空間とリソースクォータを管理する」をご参照ください。 この例で使用されている名前空間は default です。
環境のオペレーティングシステムとアーキテクチャ、および Go とフレームワークのバージョンを確認します。 詳細については、「ARMS でサポートされている Go コンポーネントとフレームワーク」をご参照ください。
go.mod ファイルが作成されていること。 アプリケーションモニタリングは、go.mod ファイルに基づくコンパイルのみをサポートしています。 go.mod ファイルを作成するには、go mod init コマンドを実行します。
手順
ACK にデプロイされたアプリケーションの ARMS エージェントをインストールする手順は、ACS にデプロイされたアプリケーションの手順と同じです。 以下では、ACK 環境を例として使用します。
ステップ 1: ack-onepilot をインストールする
ACK コンソール にログインします。 [クラスター] ページで、クラスターの名前をクリックします。
左側のナビゲーションウィンドウで、
を選択します。 [アドオン] ページの右上隅に ack-onepilot と入力します。重要ack-onepilot が V3.2.0 以降であることを確認してください。
[ack-onepilot] カードの [インストール] をクリックします。
説明デフォルトでは、ack-onepilot コンポーネントは 1,000 ポッドをサポートしています。 クラスタ内の追加の 1,000 ポッドごとに、コンポーネントに 0.5 CPU コアと 512 MB のメモリを追加する必要があります。
表示されたダイアログボックスで、パラメーターを構成し、[OK] をクリックします。 デフォルト値を使用することをお勧めします。
説明ack-onepilot をインストールした後、[アドオン] ページでアップグレード、構成、またはアンインストールできます。
ステップ 2: Go バイナリファイルをコンパイルする
wget
コマンドを実行して、環境とマシンが存在するリージョンに基づいてコンパイルツール instgo をダウンロードします。 instgo はコンパイル中に自動更新をトリガーするため、コンパイルユーザーに書き込み権限があるディレクトリに instgo を保存します。説明Go 用のコンパイルツール instgo は、Go アプリケーションの監視を支援するために ARMS によって提供されています。
インターネット経由で Object Storage Service (OSS) にアクセスできる場合は、中国 (杭州) リージョンのオペレーティングシステムとアーキテクチャのパブリックエンドポイントを直接使用して、コンパイルツールを取得できます。
コンパイルツールに、関連する操作を実行するために必要な権限を付与します。
Linux/Darwin
# 権限を付与します。 chmod +x instgo
Windows
Windows では、権限を付与する必要はありません。
オプション。 ライセンスキーを取得し、コンパイルパラメーターを設定します。
重要この手順をスキップすると、instgo は開発モードに入り、デフォルトで最新バージョンの ARMS エージェントをインストールします。 本番環境にエージェントをデプロイするには、DescribeTraceLicenseKey パラメーターを設定することをお勧めします。
API 操作を呼び出して、ライセンスキーを取得できます。 詳細については、「DescribeTraceLicenseKey」をご参照ください。
ライセンスキーを取得したら、
set
コマンドを実行して、コンパイルパラメーターを設定します。instgo set --licenseKey=${YourLicenseKey} --regionId=${YourRegionId} --dev=false
既存のコンパイルコマンドにプレフィックスとして instgo を追加し、次のコマンドを実行します。
instgo go build {arg1} {arg2} {arg3}
前の手順でコンパイルしたバイナリファイルを使用して、イメージをビルドします。
参考資料
アプリケーションを初めてコンパイルすると、ARMS エージェントはデフォルトで
/opt
ディレクトリ(Windows ではC:\ProgramData
)にダウンロードされます。 ディレクトリに対する権限がない場合は、--cacheDir
フラグを使用してキャッシュディレクトリを指定するか、sudo -E
コマンドを実行してエージェントをコンパイルできます。 Windows では、管理者としてコマンドを実行してアプリケーションをコンパイルします。コンパイルが強制的に停止または強制終了された場合、残渣が発生する可能性があります。 残渣をクリーンアップする方法については、「Go 用の ARMS エージェントをアンインストールする」をご参照ください。
ステップ 3: ARMS リソースへのアクセス権限を付与する
ACK マネージドクラスター
ACK マネージドクラスター に ARMS Addon Token が存在しない場合は、次の手順を実行して、ACK クラスタが ARMS にアクセスすることを承認します。 ARMS Addon Token が存在する場合は、ステップ 4 に進んでください。
クラスターに ARMS Addon Token がある場合、ARMS はクラスターでパスワードなしの認証を実行します。 一部の ACK マネージドクラスターには、ARMS Addon Token が存在しない場合があります。 ARMS を使用してクラスター内のアプリケーションを監視する前に、ACK マネージドクラスターに ARMS Addon Token があるかどうかを確認することをお勧めします。 クラスターに ARMS Addon Token がない場合は、クラスターが ARMS にアクセスすることを手動で承認する必要があります。
ACK 専用クラスター/登録済みクラスター
ACK 専用クラスター または 登録済みクラスター にデプロイされたアプリケーションを監視するには、Alibaba Cloud アカウントに AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限が付与されていることを確認します。 RAM ユーザーに権限を付与する方法の詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
ack-onepilot コンポーネントをインストールした後、ack-onepilot の構成ファイルに Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレットを入力する必要があります。
左側のナビゲーションウィンドウで、
を選択します。 次に、ack-onepilot の横にある 更新 をクリックします。accessKey
とaccessKeySecret
を Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレットに置き換え、OK をクリックします。説明AccessKey ペアを取得する方法の詳細については、「AccessKey ペアを作成する」をご参照ください。
Alibaba Cloud アカウントの AccessKey シークレットは、Alibaba Cloud アカウントの AccessKey ペアを作成するときにのみ表示されます。 後続の操作で AccessKey シークレットを照会することはできません。 これにより、AccessKey ペアの漏洩のリスクを軽減できます。 AccessKey シークレットを記録し、機密にしてください。
デプロイメントを再起動します。
ASK/ECI クラスター
ACK Serverless (ASK) クラスター内のアプリケーション、または Elastic Container Instance に接続されている Kubernetes クラスター内のアプリケーションを監視するには、まず クラウド・リソース・アクセス認可 ページで、クラスターが ARMS にアクセスすることを承認する必要があります。 その後、ack-onepilot コンポーネントがデプロイされているすべてのポッドを再起動します。
ステップ 4: アプリケーションのアプリケーションモニタリングを有効にする
次の YAML テンプレートは、デプロイメントを作成し、アプリケーションのアプリケーションモニタリングを有効にする方法を示しています。
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
表示されたページで、左上隅にあるクラスターが存在するリソースグループとリージョンを選択し、クラスターの名前をクリックします。 次に、左側のナビゲーションウィンドウで、ビジネス要件に基づいて [ワークロード] をクリックし、[デプロイメント]、[ステートフルセット]、または [デーモンセット] をクリックします。
表示されたページで、アプリケーションを見つけ、
[アクション] 列の を選択します。新しい Go アプリケーションのアプリケーションモニタリングを有効にするには、[デプロイメント] ページの [YAML から作成] をクリックします。
YAML ファイルで、
spec.template.metadata
に次のタグを追加します。labels: aliyun.com/app-language: golang # Go アプリケーションを指定します。 armsPilotAutoEnable: 'on' armsPilotCreateAppName: "<your-deployment-name>" # <your-deployment-name> をデプロイメント名に置き換えます。
結果の確認
約 1 分後、ARMS コンソール にログインします。 左側のナビゲーションウィンドウで、 を選択します。 アプリケーションが [アプリケーションリスト] ページに表示されている場合、アプリケーションは監視されています。