Application Real-Time Monitoring Service (ARMS) を使用して、Kubernetes クラスターにデプロイされているアプリケーションを監視できます。ARMS では、トポロジー、API リクエスト、異常トランザクション、低速トランザクション、SQL 分析など、さまざまなパフォーマンスメトリクスに基づいてアプリケーションを監視できます。このトピックでは、Kubernetes クラスターにデプロイされている Java アプリケーションを ARMS で監視できるようにする方法について説明します。
このトピックは、Alibaba Cloud Container Service for Kubernetes (ACK) クラスターには適用されません。ACK クラスターに ARMS エージェントをインストールする方法については、ACK に ARMS エージェントを自動的にインストールするを参照してください。
前提条件
Kubernetes クラスターのバージョンが 1.18 以後であること。
クラスターがインターネット経由でアクセス可能であるか、Cloud Enterprise Network (CEN) インスタンスを使用して Alibaba Cloud 仮想プライベートクラウド (VPC) とクラスター間にネットワーク接続が確立されていること。
JDK のバージョンが Application Monitoring でサポートされていること。詳細については、ARMS でサポートされている Java コンポーネントとフレームワークを参照してください。
プロセスの最大ヒープメモリが 256 MB より大きいこと。
(推奨)方法 1:登録済み Kubernetes クラスターを使用して ARMS を有効にする
登録済み Kubernetes クラスターを使用するメリット:
より効率的な O&M サポート。
クラウドでの監視、ロギング、バックアップと復元、セキュリティ、および弾性リソースなどの、より多くのスケーリング機能。詳細については、登録済みクラスターの概要を参照してください。
ACK One に Kubernetes クラスターを登録します。詳細については、登録済みクラスターの作成を参照してください。
登録済み Kubernetes クラスターに ack-onepilot コンポーネントをインストールします。詳細については、登録済みクラスターで ARMS を有効にするを参照してください。
方法 2:ARMS を直接有効にする
アプリケーションに対して ARMS を直接有効にした場合、Kubernetes クラスターの CPU、メモリ、ディスク、およびネットワーク情報は ARMS に同期されません。さらに、クラスターに Prometheus エージェントをインストールしても、前述の情報は取得できません。ARMS コンソールのアプリケーションインスタンスの詳細ページには、ARMS によって収集されたクラスターデータのみが表示されます。詳細については、Java アプリケーションインスタンスの監視を参照してください。
ステップ 1:Helm V3 をインストールする
ステップ 2:ARMS エージェントをインストールする
ARMS は、Deployment と StatefulSet の 2 種類のアプリケーションのみを監視できます。Deployment アプリケーションを ARMS で監視できるようにするには、次の手順を実行します。
次の
wget
コマンドを実行して、ack-onepilot インストールパッケージをダウンロードします。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-3.3.3.tgz'
次のコマンドを実行して、インストールパッケージを解凍します。
tar xvf ack-onepilot-3.3.3.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 シークレット。AccessKey ペアを取得する方法については、AccessKey ペアの作成を参照してください。重要AliyunARMSFullAccess ポリシーと AliyunSTSAssumeRoleAccess ポリシーが Alibaba Cloud アカウントにアタッチされていることを確認してください。これらのポリシーを Resource Access Management (RAM) ユーザーにアタッチする方法については、RAM ユーザーに権限を付与するを参照してください。
uid
:Alibaba Cloud アカウントの ID。Alibaba Cloud アカウントの ID を取得するには、Alibaba Cloud 管理コンソールの右上隅にあるプロフィール画像にポインターを移動します。region_id
:リージョン ID。Application Monitoring をサポートするリージョンの詳細については、サポートされているリージョンを参照してください。
説明エッジクラスターに ARMS エージェントをインストールする場合は、ack-onepilot の正常な動作を確実にするために、nodeSelector アノテーションを追加して ack-onepilot コンポーネントをスケジュールします。
kind: Deployment apiVersion: apps/v1 metadata: name: xxx namespace: xxx spec: template: spec: nodeSelector: # ビジネス要件に基づいてノードセレクターを指定します。 alibabacloud.com/is-edge-worker: "false"
ack-onepilot コンポーネントをインストールします。
ack-onepilot インストールパッケージを開かずに、次のコマンドを実行します。
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
ステップ 3:アプリケーションの YAML ファイルを編集する
次のコマンドを実行して、Deployment アプリケーションの YAML ファイルを表示します。
kubectl get deployment {デプロイメントアプリケーションの名前} -o yaml
説明デプロイメントアプリケーションの名前
がわからない場合は、次のコマンドを実行してすべての Deployment アプリケーションを表示します。結果に必要な Deployment アプリケーションがあります。次に、アプリケーションの YAML ファイルを表示します。kubectl get deployments --all-namespace
次のコマンドを実行して、Deployment アプリケーションの YAML ファイルを編集します。
kubectl edit deployment {デプロイメントアプリケーションの名前} -o yaml
YAML ファイルで、次のコンテンツを spec.template.metadata パラメーターに追加します。
labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # <your-deployment-name> を実際のアプリケーション名に置き換えます。 armsSecAutoEnable: "on" # アプリケーションを Application Security に接続する場合は、このパラメーターを設定する必要があります。
説明最適なユーザーエクスペリエンスを確保するために、ARMS エージェントをインストールした後、新しいエージェントバージョンがリリースされると、アプリケーションの再起動時に ack-onepilot コンポーネントが自動的にエージェントを最新バージョンに更新します。新しいリリースごとにエージェントを自動的に更新したくない場合は、バージョンを手動で制御できます。詳細については、エージェントバージョンの制御を参照してください。
Application Security については、Application Security とはを参照してください。
Application Security の課金ルールについては、課金を参照してください。
次の例は、Kubernetes クラスターに Deployment アプリケーションを作成し、ARMS でアプリケーションを監視できるようにするための完全な YAML ファイルを示しています。
前述の設定が保存されると、アプリケーションが自動的に再起動し、設定が有効になります。
2 ~ 5 分後、アプリケーションが ARMS コントロールパネルARMS コンソールの ARMSコンソール
ページに表示され、特定の監視データが報告されている場合、アプリケーションは ARMS によって監視されています。