アプリケーションモニタリングeBPF Edition(アプリケーションリアルタイム監視サービス(ARMS)の一部)を使用すると、Kubernetes環境にデプロイされたアプリケーションを非侵入的に監視できます。アプリケーションモニタリングeBPF Editionでは、トポロジー、インターフェースコール、アプリケーションの概要、およびアラートに基づいてアプリケーションを監視できます。このトピックでは、アプリケーションモニタリングeBPF Editionを使用してKubernetes環境のアプリケーションを監視する方法について説明します。
このトピックは、Alibaba Cloud Container Service for Kubernetes(ACK)クラスタには適用されません。ACKクラスタ内のアプリケーションを監視する方法については、アプリケーションをアプリケーションモニタリングeBPF Editionに手動で接続するを参照してください。
前提条件
Kubernetesクラスタのバージョンが1.20以降であること。
クラスタがインターネット経由でアクセス可能であるか、クラウドエンタープライズネットワーク(CEN)インスタンスを使用して、Alibaba Cloud仮想プライベートクラウド(VPC)とクラスタ間にネットワーク接続が確立されていること。
x86アーキテクチャが使用されており、カーネルバージョンが4.19以降であること。その他の環境要件については、アプリケーションモニタリングeBPF Editionのオペレーティングシステムの要件と制限を参照してください。
ステップ1:Helm v3をインストールする
Helm v3のインストール方法については、Helmドキュメントを参照してください。
ステップ2:ack-arms-cmonitorエージェントをインストールする
アプリケーションモニタリングeBPF Editionは、DeploymentおよびStatefulSetタイプのアプリケーションのみを監視できます。DeploymentアプリケーションとStatefulSetアプリケーションの接続には、同じ手順が必要です。アプリケーションモニタリングeBPF EditionでDeploymentアプリケーションを監視するには、次の手順を実行します。
次の
wget
コマンドを実行して、ack-arms-cmonitorインストールパッケージをダウンロードします。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-arms-cmonitor-4.1.2.tgz'
次のコマンドを実行して、ack-arms-cmonitorインストールパッケージを解凍します。
tar xvf ack-arms-cmonitor-4.1.2.tgz
otel-collector-deployment.yamlファイルの環境変数IS_PUBLICを
public
に変更します。インストールパッケージ内のvalues.yamlファイルを編集します。ビジネス要件に基づいて次のパラメータを変更し、ファイルを保存します。
registry: registry-__ACK_REGION_ID__-vpc.ack.aliyuncs.com cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__
registry
:イメージアドレス。説明上記の例では、仮想プライベートクラウド(VPC)のイメージアドレスが使用されています。アプリケーションがインターネット上にデプロイされている場合は、次のイメージアドレスを使用してください。
registry-__ACK_REGION_ID__.ack.aliyuncs.com
__ACK_REGION_ID__
:リージョンID。アプリケーションモニタリングeBPF Editionがサポートするリージョンについては、サポートされているリージョンを参照してください。__ACK_CLUSTER_ID__
:Kubernetesクラスタの一意のID。<uid>-<clusterid>
形式でこのパラメータを指定することをお勧めします。__ACCESSKEY__
および__ACCESSKEY_SECRET__
:Alibaba CloudアカウントのAccessKey IDとAccessKeyシークレット。Alibaba CloudアカウントのAccessKey IDとAccessKeyシークレットを取得する方法については、AccessKeyペアを取得するを参照してください。重要AliyunARMSFullAccessポリシーとAliyunSTSAssumeRoleAccessポリシーがAlibaba Cloudアカウントにアタッチされていることを確認する必要があります。
__ACK_UID__
:Alibaba CloudアカウントのID。Alibaba CloudアカウントのIDを取得するには、Alibaba Cloud管理コンソールの右上隅にあるプロフィール画像にポインタを移動します。
ack-arms-cmonitorエージェントをインストールします。
ack-arms-cmonitorインストールパッケージを開かずに、次のコマンドを実行します。
helm3 upgrade --install ack-arms-cmonitor ack-arms-cmonitor --namespace arms-prom --create-namespace
ステップ3:アプリケーションのYAMLファイルを編集する
次のコマンドを実行して、DeploymentアプリケーションのYAMLファイルを表示します。
kubectl get deployment {Deploymentアプリケーション名} -o yaml
説明Deploymentアプリケーションの名前
がわからない場合は、次のコマンドを実行してすべてのDeploymentアプリケーションを表示します。結果に必要なDeploymentアプリケーションがあります。次に、アプリケーションのYAMLファイルを表示します。kubectl get deployments --all-namespace
次のコマンドを実行して、DeploymentアプリケーションのYAMLファイルを編集します。
kubectl edit deployment {Deploymentアプリケーション名} -o yaml
YAMLファイルで、spec.template.metadataパラメータに次のコンテンツを追加します。
labels: armseBPFAutoEnable: "on" armseBPFCreateAppName: "<your-deployment-name>" # <your-deployment-name>をアプリケーション名に置き換えます。
次の例は、Kubernetes環境でDeploymentアプリケーションを作成し、アプリケーションモニタリングeBPF Editionでアプリケーションを監視できるようにするための完全なYAMLファイルを示しています。
上記の設定を保存した後、アプリケーションは自動的に再起動し、設定が有効になります。
2~5分後、アプリケーションがARMSコンソール内)に表示され、特定の監視データが報告されている場合、アプリケーションはアプリケーションモニタリングeBPFエディションによって監視されています。
ページ(
参考資料
Kubernetes環境にデプロイされたアプリケーションをアプリケーションモニタリングeBPF Editionに接続すると、アプリケーションのメトリクス、アップストリームとダウンストリームの依存関係、およびトポロジを表示できます。詳細については、アプリケーションの詳細を参照してください。