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

Container Service for Kubernetes:Alibaba Cloud 向け Prometheus モニタリングを使用した ACK エッジクラスターのモニタリング

最終更新日:Mar 26, 2026

ACK エッジクラスターは、VPC とエッジノードが異なるネットワークプレーンで実行されるオフラインのデータセンターにノードをデプロイします。標準の Prometheus エージェントは、エッジノード上の Node Exporter または GPU Exporter のエンドポイントに直接到達できません。Managed Service for Prometheus は、ACK エッジクラスターに組み込まれたクラウドネイティブトンネルを使用して、クラウドとエッジ間のギャップを自動的に埋めることで、この問題を解決します。このトピックでは、Managed Service for Prometheus を ACK エッジクラスターに接続し、事前定義されたダッシュボードを表示し、アラートルールを設定する方法について説明します。

前提条件

開始する前に、次のものをご用意ください。

  • バージョン 1.18.8-aliyunedge.1 以降の ACK エッジクラスター。詳細については、「ACK エッジクラスターの作成」をご参照ください。

  • ACK エッジクラスターにインストールされているバージョン 1.1.4 以降の ack-arms-prometheus アドオン。バージョンを確認またはアップグレードするには、「ack-arms-prometheus のバージョン確認」をご参照ください。

  • Kubernetes バージョン 1.26 より前のクラスターの場合:kube-system/edge-tunnel-server-cfg ConfigMap で Node Exporter のポート 9100 と GPU Exporter のポート 9445 のポートフォワーディングが有効になっていること。

    http-proxy-ports: 9445
    https-proxy-ports: 9100

エッジクラスターにおけるモニタリングの仕組み

クラウド内の VPC とエッジノードは異なるネットワークプレーンで実行されるため、クラウド内の Prometheus エージェントはエッジノード上の Node Exporter および GPU Exporter のエンドポイントに直接到達できません。

ack-arms-prometheus 1.1.4 以降、このアドオンは ACK エッジクラスターに組み込まれたクラウドネイティブの O&M 通信トンネル (トンネル) を使用して、クラウドとエッジ間のコレクションリンクを自動的に確立します。

ACK エッジクラスターは、コンテナモニタリングの Basic Edition をサポートしています。

Grafana ダッシュボードの表示

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

  2. [クラスター] ページで、対象のクラスター名をクリックします。左側のナビゲーションウィンドウで、[運用] > [Prometheus モニタリング] を選択します。

    このページに初めてアクセスする場合は、画面の指示に従って [インストール] をクリックします。コンソールが自動的にアドオンをインストールし、インストール後に Prometheus モニタリングの詳細ページにリダイレクトします。
  3. [Prometheus モニタリング] ページで、事前定義ダッシュボード上のノード、アプリケーション、GPU のモニタリングデータを表示します。

Prometheus アラートルールの設定

アラートルールは、メトリックが定義されたしきい値を超えたときに通知をトリガーします。アラートが発生すると、Managed Service for Prometheus は指定された連絡先グループの連絡先に通知を送信します。サポートされている通知チャネルには、電話、ショートメッセージ、メール、DingTalk、WeCom、Webhook があります。

アラートの設定には、通知を受け取る連絡先を作成し、次にアラートルールを作成するという 2 つのステップが含まれます。DingTalk および WeCom 通知チャネルの設定については、「DingTalk ロボット」および「WeCom ロボット」をご参照ください。

ステップ 1:連絡先の作成

  1. ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[アラート管理] > [通知オブジェクト] を選択します。

  2. [連絡先] タブで、[連絡先の作成] をクリックします。

  3. [連絡先の作成] ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。

    重要

    最大 100 件の連絡先を作成できます。

    パラメーター説明
    名前連絡先の名前です。
    電話番号連絡先の携帯電話番号です。電話およびショートメッセージによる通知に使用されます。通知ポリシーでは、検証済みの携帯電話番号のみ使用できます。詳細については、「携帯電話番号の検証」をご参照ください。
    メールアドレス連絡先のメールアドレスです。メール通知に使用されます。

ステップ 2:Prometheus アラートルールの作成

Prometheus アラートルールは、2 つのチェックタイプをサポートしています。

チェックタイプ使用場面
静的しきい値単純なしきい値条件で事前設定されたメトリックをモニターします。
カスタム PromQL静的しきい値の事前設定リストにないメトリックを、カスタム PromQL 式を使用してモニターします。

静的しきい値に基づくアラートルールの作成

  1. ARMS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[Managed Service for Prometheus] > [Prometheus アラートルール] を選択します。

  3. [Prometheus アラートルール] ページで、[Prometheus アラートルールの作成] をクリックします。

  4. [Prometheus アラートルールの作成] ページで、次のパラメーターを設定し、[保存] をクリックします。

    フィルター条件は 300 文字に制限されています。
    パラメーター説明
    アラートルール名アラートルールの名前。本番クラスター - コンテナ CPU 使用率アラート
    チェックタイプ静的しきい値 を選択します。静的しきい値
    Prometheus インスタンスモニターする Prometheus インスタンス。本番クラスター
    アラート連絡先グループアラートがトリガーされたときに通知する連絡先グループ。利用可能なグループは Prometheus インスタンスタイプによって異なります。Kubernetes ロード
    アラートメトリックモニターするメトリック。利用可能なメトリックは連絡先グループによって異なります。コンテナ CPU 使用率
    アラート条件アラートイベントをトリガーする条件。CPU 使用率が 80% を超える
    フィルター条件アラートルールが適用されるリソースの範囲。以下のフィルター条件タイプをご参照ください。トラバース
    データプレビューアラート条件の PromQL 文と時系列グラフを表示します。しきい値は赤い線で表示され、それを超えるデータは濃い赤色で表示されます。フィルター条件を設定した後に利用可能になります。
    期間アラートイベントを生成するタイミング:データポイントがしきい値に達した直後、または条件が N 分間継続して満たされた後のみ。1
    アラートレベルアラートの重大度。有効値: Default (最低)、P4、P3、P2、P1 (最高)。デフォルト
    アラートメッセージアラートがトリガーされたときに連絡先に送信されるメッセージ。Go テンプレート変数をサポートしています。Namespace: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / Container: {{$labels.container}} CPU utilization: {{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%. Current value: {{ printf "%.2f" $value }}%
    アラート通知シンプルモード:通知オブジェクト、通知期間、通知を再送信するかどうかを設定します。標準モード通知ポリシーの作成と管理:通知ポリシーを割り当てるか、後で通知ポリシーページで作成します。詳細については、「」をご参照ください。通知ポリシーを指定しない
    アラートチェックサイクル (詳細設定)ルールがアラート条件を評価する頻度 (分単位)。デフォルト:1。最小値:1。1
    データが完全な場合にチェック (詳細設定)条件を評価する前に、完全なデータを待つかどうか。はい
    タグ (詳細設定)アラートルールのタグ。通知ポリシーを照合するために使用されます。
    アノテーション (詳細設定)アラートルールのアノテーション。

    フィルター条件タイプ:

    タイプ説明
    巡回Prometheus インスタンス内のすべてのリソースに適用されます。デフォルトで選択されています。
    等しい指定した単一のリソース名に適用されます。
    等しくない指定したリソースを除くすべてのリソースに適用されます。
    正規表現に一致名前が正規表現に一致するすべてのリソースに適用されます。
    正規表現に一致しない名前が正規表現に一致しないすべてのリソースに適用されます。

カスタム PromQL 文を使用したアラートルールの作成

静的しきい値の事前設定リストにないメトリックをモニターするには、カスタム PromQL チェックタイプを使用します。

[Prometheus アラートルールの作成] ページで、[チェックタイプ][カスタム PromQL] に設定し、次のパラメーターを設定して [保存] をクリックします。

パラメーター説明
アラートルール名アラートルールの名称です。Pod の CPU 利用率が 8 % を超過
チェックタイプカスタム PromQL を選択します。カスタム PromQL
Prometheus インスタンス監視対象の Prometheus インスタンスです。
参照アラート連絡先グループ通知先の連絡先グループです。利用可能なグループは、Prometheus インスタンスタイプによって異なります。Kubernetes ロード
参照メトリック(任意)あらかじめ定義されたメトリックを選択すると、カスタム PromQL ステートメント フィールドにその PromQL 式が自動入力されます。必要に応じて式を編集してください。Pod ディスク使用率アラート
カスタム PromQL ステートメントアラート条件を定義する PromQL 式です。max(container_fs_usage_bytes{pod!="", namespace!="arms-prom",namespace!="monitoring"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=""}) by (pod_name,namespace, device) * 100 > 90
データプレビューメトリックの時系列グラフを表示します。カーブ上にポインターを移動すると、特定時点の詳細を確認できます。また、期間を選択してズームインできます。
継続時間アラートイベントを生成するタイミング:データポイントがしきい値に達した直後に即時生成するか、または条件が N 分間継続して満たされた場合のみ生成するかを選択します。1
アラートレベルアラートの重大度です。有効な値:Default(最低)、P4、P3、P2、P1(最高)。Default
アラートメッセージ通知メッセージです。Go テンプレート変数をサポートします。名前空間: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / デバイス {{$labels.device}} のディスク使用率が 90 % を超過しました。現在値: {{ printf "%.2f" $value }}%
アラート通知シンプルモード または 標準モード を選択します。「静的しきい値」セクションをご参照ください。通知ポリシーを指定しない
アラートチェック周期(高度な設定)評価頻度(分単位)。デフォルト値:1。最小値:1。1
データ完了時にチェック(高度な設定)評価前に完全なデータを待つかどうかを指定します。はい
タグ(高度な設定)通知ポリシーとのマッチングに使用するタグです。
アノテーション(高度な設定)アラートルールに対するアノテーションです。

よくある質問

ack-arms-prometheus のバージョン確認

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

  2. ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、[アドオン] をクリックします。

  3. [アドオン] ページで、[ログとモニタリング] タブをクリックし、ack-arms-prometheus を見つけます。

バージョン番号はコンポーネントカードに表示されます。新しいバージョンが利用可能な場合は、カードに [アップグレード] ボタンが表示されます。これをクリックして更新します。

GPU モニタリングをデプロイできない理由

GPU ノードに Pod のスケジューリングを妨げる Taint がある場合、GPU モニタリングのデプロイは失敗します。次のコマンドを実行して確認します。

kubectl describe node cn-beijing.47.100.***.***

出力に Taint が表示された場合 (例:Taints: test-key=test-value:NoSchedule)、次のいずれかの方法で解決します。

  • ノードから Taint を削除します。

    kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-
  • GPU エクスポーターの DaemonSet に Toleration を追加して、Pod が Taint のあるノードにスケジューリングされるようにします。

    # ack-prometheus-gpu-exporter DaemonSet を編集
    kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter

    YAML ファイルで、containers と同じレベルに次の tolerations フィールドを追加します。

    tolerations:
    - key: "test-key"
      operator: "Equal"
      value: "test-value"
      effect: "NoSchedule"
    containers:
      # 他のフィールドは省略

再インストールに失敗した場合に ARMS-Prometheus の設定を完全に削除する方法

arms-prom 名前空間のみを削除した場合、残存するクラスターレベルのリソースが再インストールをブロックします。次のコマンドを実行して、すべての ARMS-Prometheus リソースを削除します。

  1. 名前空間を削除します。

    kubectl delete namespace arms-prom
  2. ClusterRole を削除します。

    kubectl delete ClusterRole arms-kube-state-metrics
    kubectl delete ClusterRole arms-node-exporter
    kubectl delete ClusterRole arms-prom-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-prometheus-oper3
    kubectl delete ClusterRole arms-prometheus-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-pilot-prom-k8s
    kubectl delete ClusterRole gpu-prometheus-exporter
    kubectl delete ClusterRole o11y:addon-controller:role
    kubectl delete ClusterRole arms-aliyunserviceroleforarms-clusterrole
  3. ClusterRoleBindings を削除します:

    kubectl delete ClusterRoleBinding arms-node-exporter
    kubectl delete ClusterRoleBinding arms-prom-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding arms-prometheus-oper-bind2
    kubectl delete ClusterRoleBinding arms-kube-state-metrics
    kubectl delete ClusterRoleBinding arms-pilot-prom-k8s
    kubectl delete ClusterRoleBinding arms-prometheus-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding gpu-prometheus-exporter
    kubectl delete ClusterRoleBinding o11y:addon-controller:rolebinding
    kubectl delete ClusterRoleBinding arms-kube-state-metrics-agent
    kubectl delete ClusterRoleBinding arms-node-exporter-agent
    kubectl delete ClusterRoleBinding arms-aliyunserviceroleforarms-clusterrolebinding
  4. Role と RoleBinding を削除します。

    kubectl delete Role arms-pilot-prom-spec-ns-k8s
    kubectl delete Role arms-pilot-prom-spec-ns-k8s -n kube-system
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s -n kube-system

これらのリソースを削除した後、Container Service for Kubernetes (ACK) コンソールContainer Service コンソールに移動し、[オペレーション] > [アドオン]を選択し、[ack-arms-prometheus] を再インストールします。