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

Container Service for Kubernetes:Managed Service for Prometheus を使用した ACK Edge クラスターの監視

最終更新日:Aug 29, 2026

Managed Service for Prometheus を使用して、ACK Edge クラスター の定義済みダッシュボードとパフォーマンスメトリックを表示できます。 このトピックでは、ACK Edge クラスターManaged Service for Prometheus に接続する方法について説明します。

前提条件

  • バージョン 1.18.8-aliyunedge.1 以降の ACK Edge クラスター

  • ACK Edge クラスター の ack-arms-prometheus コンポーネントがバージョン 1.1.4 以降であることを確認してください。 そうでない場合は、ack-arms-prometheus コンポーネントをアップグレードしてください。

  • クラスターのバージョンが 1.26 より前の場合は、kube-system/edge-tunnel-server-cfg ConfigMap で Node Exporter のポート 9100 と GPU Exporter のポート 9445 のポートフォワーディングが有効になっていることを確認してください。 次の設定が必要です。

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

Managed Service for Prometheus 監視の概要

Managed Service for Prometheus は、オープンソースの Prometheus エコシステムと完全に統合されています。 幅広いコンポーネントの監視をサポートし、さまざまな定義済みダッシュボードとフルマネージドの Prometheus サービスを提供します。 Managed Service for Prometheus を使用すると、独自の監視システムを構築したり、データストレージ、データ視覚化、運用保守などの根本的な問題を管理したりする必要がありません。

ACK Edge クラスターはコンテナモニタリング ベーシック版をサポートしています。

Managed Service for Prometheus での Grafana ダッシュボードの表示

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

  2. クラスターリスト ページで、対象のクラスターの名前をクリックします。 左側メニューで、操作 > Prometheus 監視 を選択します。

    説明

    初めてログインする場合は、画面の指示に従い、コンポーネントの下にある インストール をクリックします。 コンソールは自動的にアドオンをインストールし、ダッシュボードをチェックします。 インストールが完了すると、コンソールは Prometheus モニタリングの詳細ページにリダイレクトします。

    Prometheus 監視 ページでは、[ノードモニタリング][アプリケーションモニタリング][GPU モニタリング] などの組み込みダッシュボードを使用して、クラスター内のノード、アプリケーション、GPU のモニタリングデータを表示できます。

Prometheus アラートルールの設定

アラートルールを作成すると、特定のイベントに関するリアルタイム通知を受信できます。 電話、メール、テキストメッセージ、DingTalk、WeCom、Webhook などのさまざまなチャネルを通じて通知を送信できるため、例外を事前に特定するのに役立ちます。 アラートは通知ポリシーを介して適切な連絡先または連絡先グループにルーティングされます。

  • DingTalk ロボットの作成方法の詳細については、「DingTalk ロボット」をご参照ください。

  • WeCom ロボットの作成方法の詳細については、「WeCom ロボット」をご参照ください。

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

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

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

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

    パラメーター

    説明

    名前

    連絡先の名前。

    電話番号

    連絡先が電話とテキストメッセージでアラート通知を受信できるようになります。

    説明

    通知ポリシーの電話通知には、認証済みの電話番号のみを使用できます。 電話番号の認証方法については、「電話番号の認証」をご参照ください。

    メール

    連絡先がメールでアラート通知を受信できるようになります。

    重要

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

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

静的しきい値アラートルールの作成

静的しきい値チェックタイプには、事前定義されたメトリックが用意されています。 既存のメトリックを選択することで、アラートルールを迅速に作成できます。

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

  2. 左側のナビゲーションペインで、Prometheusモニタリング > Prometheus アラートルール を選択します。

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

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

    パラメーター

    説明

    アラート名

    アラートの名前。

    prod-cluster-container-cpu-alert

    チェックタイプ

    [静的しきい値] を選択します。

    静的しきい値

    Prometheus インスタンス

    アラートを作成するPrometheus インスタンスを選択します。

    Production Cluster

    アラートグループ

    アラートグループを選択します。

    Prometheus のタイプによってサポートされるアラートグループは異なります。選択可能なアラートグループのオプションは、選択したPrometheus インスタンスのタイプに基づいて異なります。

    Kubernetes Workloads

    アラートメトリクス

    アラートを設定するメトリクスを選択します。各アラートグループは異なるメトリクスに対応しています。

    Container CPU utilization

    アラート条件

    事前定義されたアラートメトリクスに基づいて、アラートをトリガーする条件を設定します。

    コンテナの CPU 使用率がgreater than 80% の場合にアラート条件が満たされます。

    フィルター条件

    アラートメトリクスに基づいてアラートルールの範囲を定義します。フィルター条件に一致するいずれかのリソースでアラートルールが満たされた場合に、アラートがトリガーされます。

    次のフィルター条件を使用できます。

    • [トラバーサル]:アラートルールは、現在の Prometheus インスタンス内のすべてのリソースに適用されます。走査はデフォルトのフィルター条件です。

    • [等しい]:この条件を選択した後、特定のリソース名を入力します。アラートルールはそのリソースにのみ適用されます。複数のリソース名を入力することはできません。

    • [次の値に等しくない:]:この条件を選択した後、特定のリソース名を入力します。アラートルールは指定されたリソースを除くすべてのリソースに適用されます。複数のリソース名を入力することはできません。

    • [正規表現に一致]:この条件を選択した後、必要に応じてリソース名を照合するための正規表現を入力します。アラートルールは正規表現に一致するすべてのリソースに適用されます。

    • [正規表現と一致しない]:この条件を選択した後、必要に応じてリソース名を照合するための正規表現を入力します。アラートルールは正規表現に一致するすべてのリソースを除外します。

    説明
    • フィルター条件を設定すると、データプレビュー エリアが表示されます。

    • フィルター条件は 300 文字を超えることはできません。

    走査

    データプレビュー

    データプレビュー エリアには、アラート条件に対応する Prometheus クエリ言語 (PromQL) 文が表示されます。また、監視メトリクスの値を時系列曲線で表示します。

    デフォルトでは、1つのリソースのリアルタイム値のみが表示されます。このエリアのフィルターボックスでターゲットリソースと時間範囲を選択すると、異なるリソースと時間範囲の値を表示できます。

    説明
    • アラートのしきい値は、時系列曲線上に赤い実線として表示されます。しきい値を超えた部分は濃い赤色で、超えていない部分は青色で表示されます。

    • 時系列曲線にカーソルを合わせると、特定の時点でのリソースの詳細を表示できます。

    • 時系列曲線で時間範囲を選択すると、その期間の曲線を表示できます。

    なし

    継続期間

    • アラート条件が満たされた場合、アラートは即時にトリガーされます。いずれかのデータポイントがしきい値に達すると、アラートがトリガーされます。

    • アラート条件が N 分間継続した場合にのみアラートがトリガーされます。しきい値に達した状態が N 分以上続いた場合に、アラートがトリガーされます。

    秒単位での継続期間の設定はサポートされていません。これは製品の仕様です。

    1

    アラートレベル

    アラートレベルをカスタマイズします。デフォルトのアラートレベルはDefault です。重要度は Default、P4、P3、P2、P1 の順に高くなります。

    Default

    アラート内容

    ユーザーが受信するアラート通知の内容です。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 }}%

    アラート通知

    • [シンプルモード]:Notification Receiver[Notification Period]繰り返しポリシー を設定できます。

    • [通常モード]:

      • 通知ポリシーを指定しない:このオプションを選択した場合、アラートルールを作成した後、通知ポリシー ページで新しい通知ポリシーを作成し、アラートルール名などの一致条件を指定して、アラートルールを関連付けることができます。アラートルールがトリガーされてアラートが生成されると、アラート情報は通知ポリシーで指定された連絡先または連絡先グループに送信されます。詳細については、「通知ポリシー」をご参照ください。

      • 通知ポリシーを指定する:このオプションを選択すると、ARMS は対応する通知ポリシーに一致ルールを自動的に追加します。一致ルールの内容はアラートルール ID で、アラートルール名として表示されます。これにより、現在のアラートルールによって生成されたアラートが、選択された通知ポリシーに一致することが保証されます。

      重要

      通知ポリシーをここで指定しても、現在のアラートルールからのアラートがそのポリシーに一致し、対応するアラートが生成されることが保証されるだけです。ただし、現在のアラートルールからのアラートは、あいまい一致で設定された他の通知ポリシーにも一致する可能性があり、その結果アラートが生成されることがあります。アラートと通知ポリシーは多対多の関係です。

    通知ルールを指定しない

    [詳細設定]

    アラートチェック間隔

    システムがアラートルールをチェックし、データがアラート条件を満たしているか判断する間隔です。デフォルトは 1 分、最小は 1 分です。15 秒など、1 分未満の値を入力した場合でも、システムは 1 分ごとにチェックを実行します。これは製品の仕様です。

    1

    データが完全になった後にチェック

    • はい

    • いいえ

    はい

    タグ

    アラートにタグを設定します。タグは通知ポリシーの一致条件として使用できます。

    なし

    アノテーション

    アラートにアノテーションを設定します。

    なし

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

静的しきい値リストで利用できないメトリックを監視するには、カスタム PromQL チェックタイプを使用してアラートルールを作成します。

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

パラメーター

説明

アラート名

アラートの名前。

Pod CPU usage is greater than 8%

チェックタイプ

[カスタム PromQL クエリ] に設定します。

カスタム PromQL クエリ

Prometheus インスタンス

アラートを作成するPrometheus インスタンスを選択します。

なし

参照アラートグループ

アラートグループを選択します。

Prometheus のタイプによってサポートされるアラートグループは異なります。選択可能なアラートグループのオプションは、選択したPrometheus インスタンスのタイプに基づいて異なります。

Kubernetes Workload

参照アラートメトリクス

オプション。一般的なメトリクス用のカスタム PromQL 設定が参照用として提供されています。類似のメトリクスを選択して各フィールドに値を事前入力し、必要に応じて設定を変更できます。

[参照アラートメトリクス] パラメーターでは、選択されたPrometheus インスタンスタイプに基づいて、サポートされているアラートメトリクスが自動的にフィルタリングされます。

Pod disk usage alert

カスタム 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

データプレビュー

データプレビュー エリアには、アラート条件に対応する Prometheus クエリ言語 (PromQL) 文が表示されます。また、監視メトリクスの値を時系列曲線で表示します。

デフォルトでは、1つのリソースのリアルタイム値のみが表示されます。このエリアのフィルターボックスでターゲットリソースと時間範囲を選択すると、異なるリソースと時間範囲の値を表示できます。

説明
  • 時系列曲線にマウスカーソルを合わせると、特定のデータポイントのリソース詳細を表示できます。

  • グラフ上で時間範囲を選択すると、その期間の時系列を表示できます。

なし

継続期間

  • いずれかのデータポイントがしきい値に達すると、アラートは即時にトリガーされます。

  • 条件が N 分間継続した場合にのみアラートがトリガーされます。

秒単位での継続期間の設定はサポートされていません。これは製品の仕様です。

1

アラートレベル

アラートレベルをカスタマイズします。デフォルトのアラートレベルはDefault です。重要度は Default、P4、P3、P2、P1 の順に高くなります。

Default

アラート内容

ユーザーが受信するアラート通知の内容です。Goテンプレート構文を使用して、アラート内容のパラメーター変数をカスタマイズできます。

以下の例は、Pod の再起動アラートのテンプレートです。これにより、読みやすい通知内容を設定するのに役立ちます。

Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}} restarted more than {{ $labels.metrics_params_value}} times in {{$labels.metrics_params_time}} minutes. Current restarts: {{ $value }}

Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}}/Disk device: {{$labels.device}} usage exceeds 90%, current value {{ printf "%.2f" $value }}%

アラート通知

  • [シンプルモード]:Notification Receiver[Notification Period]繰り返しポリシー を設定できます。

  • [通常モード]:

    • 通知ポリシーを指定しない:このオプションを選択した場合、アラートルールを作成した後、通知ポリシー ページで新しい通知ポリシーを作成し、アラートルール名などの一致条件を指定して、アラートルールを関連付けることができます。アラートルールがトリガーされてアラートが生成されると、アラート情報は通知ポリシーで指定された連絡先または連絡先グループに送信されます。詳細については、「通知ポリシー」をご参照ください。

    • 通知ポリシーを指定する:このオプションを選択すると、ARMS は対応する通知ポリシーに一致ルールを自動的に追加します。一致ルールの内容はアラートルール ID で、アラートルール名として表示されます。これにより、現在のアラートルールによって生成されたアラートが、選択された通知ポリシーに一致することが保証されます。

    重要

    通知ポリシーをここで指定しても、現在のアラートルールからのアラートがそのポリシーに一致し、対応するアラートが生成されることが保証されるだけです。ただし、現在のアラートルールからのアラートは、あいまい一致で設定された他の通知ポリシーにも一致する可能性があり、その結果アラートが生成されることがあります。アラートと通知ポリシーは多対多の関係です。

通知ルールを指定しない

詳細設定

アラートチェック間隔

アラートルールをチェックする間隔 (分) です。最小値は 1 分です。15 秒など、1 分未満の値を入力した場合でも、システムは 1 分ごとにチェックを実行します。これは製品の仕様です。

1

データが完全になった後にチェック

  • はい

  • いいえ

はい

タグ

アラートにタグを設定します。タグは通知ポリシーの一致条件として使用できます。

なし

アノテーション

アラートにアノテーションを設定します。

なし

よくある質問

ack-arms-prometheus アドオンのバージョンの確認方法

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

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

    現在のバージョンがコンポーネントカードに表示されます。 新しいバージョンが利用可能な場合は、アップグレード をクリックしてコンポーネントを更新してください。

    説明

    アップグレード ボタンは、インストールされているコンポーネントが最新バージョンでない場合にのみ表示されます。

ACK Edge クラスター:監視データの取得方法

エッジコンピューティングシナリオでは、エッジノードは通常、比較的隔離されたオンプレミスデータセンター環境にあります。 これは、クラウドベースの VPC とエッジノードが別々のネットワークで動作することを意味します。 クラウドにデプロイされた Prometheus Agent は、Node Exporter や GPU Exporter などのエッジ側コンポーネントのエンドポイントに直接アクセスしてメトリックを収集することはできません。 ack-arms-prometheus バージョン 1.1.4 から、ACK Edge クラスター に組み込まれているクラウドネイティブ運用保守通信コンポーネント Tunnel により、ack-arms-prometheus はクラウドとエッジの間にデータ収集チャネルを自動的に確立できます。

GPU 監視のデプロイが失敗する理由

GPU 監視のデプロイは、GPU ノードに Taint がある場合に失敗する可能性があります。 この問題を解決するには、まずノードの Taint を確認します。

  1. 次のコマンドを実行して、ターゲット GPU ノードの Taint を確認します。

    GPU ノードにカスタム Taint がある場合は、関連するエントリを見つけることができます。 この例では、keytest-keyvaluetest-valueeffectNoSchedule の Taint を使用します。

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

    想定される出力:

    Taints:test-key=test-value:NoSchedule
  2. 次の 2 つの方法のいずれかで GPU ノードの Taint を処理してください。

    • 次のコマンドを実行して、GPU ノードから Taint を削除してください。

      kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-
    • Taint の Toleration を宣言して、Pod がノードにスケジュールされるようにしてください。

      # 1. 次のコマンドを実行して、ack-prometheus-gpu-exporter DaemonSet を編集してください。
      kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter
      
      # 2. 次のフィールドを YAML ファイルに追加して、Taint の Toleration を宣言してください。
      # 他のフィールドは省略されます。
      # `tolerations` フィールドは `containers` フィールドの上で同じレベルに追加されます。
      tolerations:
      - key: "test-key"
        operator: "Equal"
        value: "test-value"
        effect: "NoSchedule"
      containers:
      # 他のフィールドは省略されます。

ARMS-Prometheus リソースの完全な削除方法

Managed Service for Prometheus の名前空間のみを削除すると、リソースが削除された後に設定が残ってしまいます。 これは再インストールに影響します。 次の操作を実行して、残りの ARMS-Prometheus 設定を完全に手動で削除できます。

  • arms-prom 名前空間を削除してください。

    kubectl delete namespace arms-prom
  • 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
  • ClusterRoleBinding を削除してください。

    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
  • 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

リソースを削除したら、ACK コンソールに戻り、操作 > アドオン管理 を選択し、[ack-arms-prometheus] アドオンを再インストールしてください。