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

Container Service for Kubernetes:Managed Service for Prometheus への接続と設定

最終更新日:Nov 09, 2025

Alibaba Cloud Prometheus Monitoring を統合して、ACK クラスターのコントロールプレーン、ノード、アプリケーションの包括的なメトリックを収集します。可視化されたダッシュボードとリアルタイムアラートを使用して、クラスターのパフォーマンス管理を向上させます。

クイックセレクション

Managed Service for Prometheus は、オープンソースの Prometheus エコシステムと互換性のあるフルマネージドのモニタリングサービスです。基盤となるデータストレージ、データの可視化、またはシステムの運用保守 (O&M) を管理する必要はありません。

  • Pro Edition (推奨): メトリックを 90 日間保存し、フルマネージドのコレクターを提供します。このエディションは、本番環境レベルのサービスレベルアグリーメント (SLA) 99.95% を提供します。また、カスタマイズ可能な Grafana ダッシュボードと ACK コンポーネント用の事前設定されたアラートルールも提供します。

  • Basic Edition: メトリックを 7 日間保存します。コレクターは自分でメンテナンスする必要があります。このエディションは、基本的なダッシュボードのみを提供します。

Prometheus モニタリングの有効化

既存クラスターのモニタリングの有効化

  1. (オプション) ACK 専用クラスターを使用する場合は、まずクラスターにモニタリング権限を付与する必要があります。

  2. [ACK Clusters] ページで、対象クラスターの名前をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[O&M] > [Prometheus Monitoring] を選択します。

  3. [Prometheus Monitoring] ページで、コンテナ監視エディションを選択し、[インストール] をクリックします。

    モニタリングを有効にすると、デフォルトの基本メトリックが自動的に収集されます。カスタムメトリックを収集するには、「カスタムモニタリングメトリックの収集」をご参照ください。このページでは、[クラスターモニタリングの概要][ノードモニタリング][アプリケーションモニタリング][ネットワークモニタリング][ストレージモニタリング] などの複数の事前設定されたダッシュボードを表示できます。

クラスター作成時のモニタリングの有効化

  • ACK マネージドクラスター (Pro Edition) の場合:

    クラスター作成ウィザードの [コンポーネント設定] ページで、[コンテナ監視]Managed Service for Prometheus Pro Edition または Managed Service for Prometheus Basic Edition に設定します。詳細については、「ACK マネージドクラスターの作成」をご参照ください。

    マネージドクラスターの Auto Mode では、デフォルトで Managed Service for Prometheus Basic Edition が有効になります。
  • ACK マネージドクラスター (Basic Edition)、ACS クラスター、または Serverless Kubernetes クラスターの場合:

    クラスター作成ウィザードの [コンポーネント設定] ページで、[コンテナ監視][Use Managed Service For Prometheus] を選択します。Managed Service for Prometheus の Basic Edition がインストールされます。

    モニタリングを有効にすると、デフォルトの基本メトリックが自動的に収集されます。カスタムメトリックを収集するには、「カスタムモニタリングメトリックの収集」をご参照ください。クラスター詳細ページの左側のナビゲーションウィンドウで[O&M] > [Prometheus Monitoring] を選択して[クラスターモニタリングの概要][ノードモニタリング][アプリケーションモニタリング][ネットワークモニタリング][ストレージモニタリング] などの事前設定されたダッシュボードを表示します。

アラート通知の設定

主要なメトリックに対してアラートルールを設定できます。異常が発生した場合、メール、ショートメッセージ、DingTalk などのチャンネルを通じて通知が自動的に送信されます。

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

  2. [連絡先] ページで、通知方法を選択し、アラート通知の連絡先を作成します

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

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

    ルールの設定方法の詳細については、「Prometheus アラートルールの設定」をご参照ください。

カスタムモニタリングメトリックの収集

Managed Service for Prometheus は、クエリ/秒 (QPS) や処理レイテンシーなど、カスタムメトリックを収集するための複数のメソッドをサポートしています。詳細については、「コンテナ環境のカスタム収集ルールの管理」をご参照ください。

Prometheus モニタリングの無効化

  1. クラスター詳細ページの左側のナビゲーションウィンドウで、[コンポーネント管理] をクリックします。

  2. [コンポーネント管理] ページで、[ログ & モニタリング] タブをクリックし、[ack-arms-prometheus] コンポーネントを見つけます。[アンインストール] をクリックし、表示されるダイアログボックスで [OK] をクリックします。

課金

  • クラスター規模のモニタリング料金: Basic Edition は無料です。Pro Edition は、クラスター内のノード数に応じて従量課金制で課金されます。

  • Prometheus インスタンス料金: デフォルトの 基本メトリック の収集には料金はかかりません。カスタムメトリックの収集料金は、書き込まれたデータ量、レポートされたデータ量、ストレージ容量、ストレージ期間などの要因に応じて従量課金制で課金されます。

課金ルールと価格の詳細については、「コンテナ監視の課金」をご参照ください。

デフォルトの基本メトリック

次の表に、一般的な基本メトリックを示します。基本メトリックの詳細については、「メトリック」をご参照ください。

カテゴリ

メトリック

説明

コンテナーの基本リソースモニタリング (kubelet)

container_cpu_usage_seconds_total

コンテナーが消費した合計 CPU 時間。

container_memory_usage_bytes

コンテナーのメモリ使用量 (バイト)。

container_fs_usage_bytes

コンテナーのファイルシステム使用量 (バイト)。

container_network_transmit_bytes_total

コンテナーがネットワーク経由で送信した合計バイト数。

クラスターノードの基本リソースモニタリング (node-exporter)

node_cpu_seconds_total

ノードが消費した合計 CPU 時間。

node_memory_MemAvailable_bytes

ノードの利用可能なメモリ (バイト)。

node_load1

ノードの 1 分間の平均負荷。

node_filesystem_avail_bytes

ノードのファイルシステム上の利用可能なスペース (バイト)。

node_network_receive_bytes_total

ノードが受信した合計バイト数。

コントロールプレーンコンポーネントのモニタリング (API Server)

apiserver_request_total

API リクエストの総数。

apiserver_request_duration_seconds_bucket

API Server リクエストのレイテンシーのバケット (秒)。

apiserver_current_inflight_requests

API Server が現在処理中のリクエスト数。

クラスターアプリケーションステータスのモニタリング (kube-state-metrics)

kube_pod_status_phase

Pod のフェーズ。

kube_deployment_status_replicas_available

Kubernetes Deployment で利用可能なレプリカの数。

kube_node_status_condition

ノードの状態。

kube_pod_container_status_restarts_total

Pod 内のコンテナーの再起動総数。

kube_deployment_spec_replicas

Kubernetes Deployment に指定されたレプリカの数。

CoreDNS モニタリング

coredns_dns_request_duration_seconds_bucket

CoreDNS DNS リクエスト期間の分位数 (秒)。

coredns_dns_response_rcode_count_total

CoreDNS DNS 応答コードの総数。

coredns_dns_request_count_total

CoreDNS DNS リクエストの総数。

coredns_cache_hits_total

CoreDNS キャッシュヒットの総数。

coredns_cache_misses_total

CoreDNS キャッシュミスの総数。

クラスターとノードのストレージモニタリング

cluster_pv_status_num_total

クラスター内の永続ボリューム (PV) のステータス別の総数。

cluster_pvc_status_num_total

クラスター内の永続ボリューム要求 (PVC) のステータス別の総数。

container_fs_usage_bytes

コンテナーのファイルシステム使用量 (バイト)。

node_volume_capacity_bytes_available

ノードボリュームの利用可能な容量 (バイト)。

node_volume_io_time_seconds_total

ノードボリュームの合計 I/O 時間 (秒)。

node_volume_read_bytes_total

ノードボリュームから読み取られた合計バイト数。

node_volume_write_bytes_total

ノードボリュームに書き込まれた合計バイト数。

ノード GPU モニタリング (gpu-exporter)

DCGM_CUSTOM_CONTAINER_MEM_ALLOCATED

コンテナーに割り当てられた GPU メモリ。

DCGM_CUSTOM_DEV_FB_ALLOCATED

合計 GPU メモリに対する割り当て済み GPU メモリの比率。値の範囲は [0, 1] です。

DCGM_CUSTOM_DEV_FB_TOTAL

GPU カードの合計 GPU メモリ。

DCGM_CUSTOM_PROCESS_DECODE_UTIL

GPU スレッドのデコーダー使用率。

コストモニタリング (cost-exporter)

node_current_price

ノードの現在の実価格。

pretax_amount

請求書における現在のインスタンスの支払額。

usage

請求書における現在のインスタンスのリソース使用量。

invoice_discount

請求書における現在のインスタンスの割引額。

outstanding_amount

請求書における現在のインスタンスの未払い額。

Ingress モニタリング

nginx_ingress_controller_requests

NGINX Ingress コントローラーへのリクエスト総数。

nginx_ingress_controller_request_duration_seconds_bucket

NGINX Ingress コントローラーのリクエストレイテンシーの分布 (秒)。

nginx_ingress_controller_bytes_sent_sum

NGINX Ingress コントローラー - 送信された合計バイト数 (合計)。

nginx_ingress_controller_errors

NGINX Ingress コントローラー - エラー数。

リソーススケジューリングモニタリング

koordlet_node_resource_allocatable

ノード上の割り当て可能なリソースのメトリック。

koordlet_container_resource_requests

コンテナリソースリクエストのメトリック。

koordlet_container_resource_limits

コンテナリソース制限のメトリック。

scheduler_pending_pods

スケジューラ内の保留中の Pod の数。

scheduler_schedule_attempts_total

スケジューラによるスケジューリング試行の総数。

scheduler_e2e_scheduling_duration_seconds_bucket

スケジューラにおけるエンドツーエンドのスケジューリングレイテンシーの分布。

scheduler_pod_scheduling_duration_seconds_bucket

スケジューラにおける Pod スケジューリングレイテンシーのバケット (秒)。

scheduler_unschedulable_pods

スケジューラ内のスケジュール不可能な Pod の数。

よくある質問

Prometheus モニタリングページに「関連するダッシュボードが見つかりません」と表示される

Prometheus モニタリングを有効にした後、クラスター詳細ページの [O&M] > [Prometheus Monitoring] ページに [関連するダッシュボードが見つかりません] というメッセージが表示された場合は、次の手順に従って問題を解決してください。

image

  1. Prometheus モニタリングコンポーネントを再インストールします。

    1. Prometheus モニタリングを無効にします

    2. コンポーネントを再インストールします:

      1. コンポーネントがアンインストールされたことを確認したら、[インストール] をクリックし、表示されるダイアログボックスで [OK] をクリックします。

      2. インストールの完了を待ってから、Prometheus モニタリングページに戻り、問題が解決されているかどうかを確認します。

        インストールが完了するのを待ってから、Prometheus モニタリングページに戻り、問題が解決したかどうかを確認します。問題が解決しない場合は、次のステップに進みます。

  2. Prometheus インスタンスの接続を確認します。

    1. [ARMS コンソール] の左側のナビゲーションウィンドウで、[プロビジョニング] をクリックします。

    2. [プロビジョニングされた環境] タブで、[コンテナ環境] リストを確認し、クラスターと同じ名前のコンテナ環境が存在するかどうかを確認します。

      • 対応するコンテナ環境が見つからない場合は、「ARMS または Prometheus コンソール経由で接続する」をご参照ください。

      • コンテナ環境が存在する場合: 対象のコンテナ環境の [アクション] 列で [プローブ設定] をクリックして [プローブ設定] ページに移動します。

        インストールされているプローブが期待どおりに実行されているかどうかを確認します。

ack-arms-prometheus コンポーネントのバージョンを表示するにはどうすればよいですか?

  1. [ACK Clusters] ページで、対象クラスターの名前をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[コンポーネント管理] をクリックします。

  2. [コンポーネント管理] ページで、[ログ & モニタリング] タブをクリックし、[ack-arms-prometheus] コンポーネントを見つけます。

    現在のバージョンはコンポーネントの下に表示されます。新しいバージョンが利用可能な場合は、バージョンの右側にある [アップグレード] をクリックしてコンポーネントをアップグレードできます。

    説明

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

GPU モニタリングをデプロイできないのはなぜですか?

GPU ノードに Taint がある場合、GPU モニタリングのデプロイメントが失敗することがあります。次の手順を実行して、GPU ノードの Taint を表示できます。

  1. 次のコマンドを実行して、対象の GPU ノードの Taint を表示します。

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

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

    期待される出力:

    Taints:test-key=test-value:NoSchedule
  2. 次のいずれかの方法で GPU ノードの Taint を処理します:

    • 次のコマンドを実行して、GPU ノードから Taint を削除します。

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

      # 1. 次のコマンドを実行して ack-prometheus-gpu-exporter を編集します。
      kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter
      
      # 2. 次のフィールドを YAML ファイルに追加して、Taint の Toleration を宣言します。
      # その他のフィールドは省略されています。
      # tolerations フィールドは containers フィールドの上に追加され、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

    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

Helm を使用して Managed Service for Prometheus をアンインストールするにはどうすればよいですか?

Helm を使用してサービスを手動でデプロイした場合、または環境や Helm のバージョンの問題でリソースが残っている場合は、この方法でアンインストールする必要があります。

  1. [ACK Clusters] ページで、対象クラスターの名前をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[アプリケーション] > [Helm] を選択します。

  2. [Helm] ページで、arms-prometheus コンポーネントを見つけ、[アクション] 列の [削除] をクリックし、[リリースレコードのパージ] を選択して、プロンプトに従ってアプリケーションを削除します。

ack-arms-prometheus コンポーネントのインストール時に「xxx in use」エラーが報告される

  1. [ACK Clusters] ページで、対象クラスターの名前をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[アプリケーション] > [Helm] を選択します。

  2. [Helm] ページで、ack-arms-prometheus が存在するかどうかを確認します。

「コンポーネントがインストールされていません」というメッセージが表示された後、ack-arms-prometheus コンポーネントのインストールに失敗する

  • ack-arms-prometheus コンポーネントがすでにインストールされているかどうかを確認します。

    1. [ACK Clusters] ページで、対象クラスターの名前をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[アプリケーション] > [Helm] を選択します。

    2. [Helm] ページで、ack-arms-prometheus が存在するかどうかを確認します。

  • ack-arms-prometheus のログにエラーがないか確認します。

    1. クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

    2. [デプロイメント] ページの上部で、[名前空間][arms-prom] に設定し、arms-prometheus-ack-arms-prometheus をクリックします。

    3. [ログ] タブをクリックして、ログにエラーがないか確認します。

  • エージェントのインストール中にエラーが発生したかどうかを確認します。

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

    2. [プロビジョニングされた環境] タブで、[コンテナ環境] リストを確認します。対象のコンテナ環境の [アクション] 列で [プローブ設定] をクリックして [プローブ設定] ページに移動します。

ACK 専用クラスターにモニタリング権限を付与するにはどうすればよいですか?

  1. [ACK Clusters] ページで、対象クラスターの名前をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[クラスター情報] をクリックします。

  2. [基本情報] タブで、[ワーカー RAM ロール] の右側にある [KubernetesWorkerRole-***] をクリックします。RAM ロールページで、[権限管理] タブをクリックし、[アクセスポリシー] 列の [k8sWorkerRole****] をクリックします。

  3. アクセスポリシー詳細ページで、[ポリシー内容] タブをクリックし、[ポリシー内容の編集] をクリックします。

  4. スクリプトエディターで、次の権限付与ルールを Statement フィールドに追加します。ルールを変更したら、[OK] をクリックします。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "arms:Describe*",
                    "arms:List*",
                    "arms:Get*",
                    "arms:Search*",
                    "arms:Check*",
                    "arms:Query*",
                    "arms:ListEnvironments",
                    "arms:DescribeAddonRelease",
                    "arms:InstallAddon",
                    "arms:DeleteAddonRelease",
                    "arms:ListEnvironmentDashboards",
                    "arms:ListAddonReleases",
                    "arms:CreateEnvironment",
                    "arms:UpdateEnvironment",
                    "arms:InitEnvironment",
                    "arms:DescribeEnvironment",
                    "arms:InstallEnvironmentFeature",
                    "arms:ListEnvironmentFeatures",
                    "cms:CreateIntegrationPolicy",
                    "cms:ListAddonReleases",
                    "cms:UpdateAddonRelease",
                    "cms:CreateAddonRelease",
                    "cms:GetPrometheusInstance",
                    "cms:ListIntegrationPolicyStorageRequirements"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }

参考資料

Managed Service for Prometheus を Basic Edition から Pro Edition にアップグレードする