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

Container Service for Kubernetes:Managed Service for Prometheus の有効化

最終更新日:Jun 27, 2025

Serverless Kubernetes クラスター のメトリクスは、Managed Service for Prometheus が提供する定義済みのダッシュボードで表示できます。このトピックでは、Serverless Kubernetes クラスターに対して Managed Service for Prometheus を有効化する方法、Managed Service for Prometheus でアラートルールを構成する方法、Managed Service for Prometheus でカスタムメトリクスを作成する方法、および Grafana を使用してカスタムメトリクスを表示する方法について説明します。

Managed Service for Prometheus の概要

Managed Service for Prometheus は、オープンソースの Prometheus エコシステムと連携するフルマネージドのモニタリングサービスです。Managed Service for Prometheus は、幅広いコンポーネントを監視し、複数の定義済みダッシュボードを提供します。

クラスタータイプ

サポートされている Prometheus エージェント

ACK Serverless Pro クラスター

マネージドまたはアンマネージド Prometheus エージェントをインストールできます。デフォルトでは、マネージド Prometheus エージェントがインストールされます。

  • マネージド Prometheus エージェントは、基本メトリクスとカスタムメトリクスをサポートし、クラスターのリソースを消費しません。エージェントを使用すると、Managed Service for Prometheus は Serverless Kubernetes Pro クラスター内のコンテナーから直接モニタリングデータを収集し、Managed Service for Prometheus が提供するすぐに使える機能を使用できます。収集されたデータのデフォルトの保存期間は 7 日間です。

  • アンマネージド Prometheus エージェントは、基本メトリクスをサポートし、メトリック収集コンポーネントや Kube-State-Metrics などのコンポーネントセットをデプロイする必要があります。アンマネージド Prometheus エージェントがデプロイされているポッドには、3 CPU コアと 4 GB のメモリが必要です。収集されたデータのデフォルトの保存期間は 7 日間です。アンマネージド Prometheus エージェントを実行するには、少なくとも 2 つのエラスティックコンテナーインスタンスを起動する必要があります。エラスティックコンテナーインスタンスの料金については、「エラスティックコンテナーインスタンスの概要」をご参照ください。

ACK Serverless Basic クラスター

アンマネージド Prometheus エージェントのみをインストールできます。アンマネージド Prometheus エージェントがデプロイされているポッドには、3 CPU コアと 4 GB のメモリが必要です。収集されたデータのデフォルトの保存期間は 7 日間です。

Managed Service for Prometheus は、マネージド Prometheus 監視システムを提供します。これにより、データストレージ、データ表示、システムメンテナンスなどの基盤となるサービスを管理する手間が省けます。Managed Service for Prometheus の詳細については、「Managed Service for Prometheus とは」をご参照ください。

前提条件

  • ack-virtual-node コンポーネントは v2.11.5 以降である必要があります。

  • Prometheus エージェント を使用する ack-arms-prometheus コンポーネントは、ACK Virtual Node 上の Serverless ポッドを収集および監視するために v1.1.25 以降である必要があります。

手順 1:Managed Service for Prometheus を有効にする

クラスターの作成時に Managed Service for Prometheus を有効にする

[コンポーネント構成] ウィザードページで、[Managed Service For Prometheus を有効にする] を選択します。詳細については、「ACK Serverless クラスターを作成する」をご参照ください。

image.png

説明

デフォルトでは、クラスターを作成するときに [Managed Service For Prometheus を有効にする] が選択されています。クラスターが作成されると、システムは自動的に Managed Service for Prometheus を構成します。

マネージド Prometheus エージェントは、クラスターに自動的にインストールされます。マネージドされていない Prometheus エージェントを使用する場合は、クラスター詳細ページに移動し、左側のナビゲーションウィンドウで [操作] > [アドオン] を選択します。[アドオン] ページで、ack-arms-prometheus をアンインストールします。その後、マネージドされていないバージョンの ack-arms-prometheus が表示され、インストールできるようになります。

説明

[ack-arms-prometheus] が表示されない場合は、Serverless Kubernetes クラスター がデプロイされているリージョンで Managed Service for Prometheus がサポートされていないことを意味します。

image.png

既存のクラスターに対して Managed Service for Prometheus を有効にする

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

  2. [クラスター] ページで、管理するクラスターを見つけて、その名前をクリックします。左側のウィンドウで、[操作] > [Prometheus 監視] を選択します。

  3. [Prometheus 監視] ページで、画面の指示に従って必要なコンポーネントをインストールし、関連するダッシュボードを確認します。

    システムは自動的にコンポーネントをインストールし、ダッシュボードを確認します。インストールが完了したら、各タブをクリックしてメトリクスを表示します。

Managed Service for Prometheus が提供する Grafana ダッシュボードを表示する

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

  2. [クラスター] ページで、管理するクラスターを見つけて、その名前をクリックします。左側のウィンドウで、[操作] > [Prometheus 監視] を選択します。

  3. [Prometheus 監視] ページで、各タブをクリックしてビジネス要件に基づいてダッシュボードを表示します。

Managed Service for Prometheus でアラートルールを構成する

Managed Service for Prometheus を使用すると、監視ジョブのアラートルールを作成できます。アラートルールの条件が満たされると、電子メール、ショートメッセージ、DingTalk 通知を介してリアルタイムでアラートを受信できます。これにより、エラーを事前に検出できます。アラートルールがトリガーされると、システムは指定された連絡先にアラート通知を送信します。

1. 通知オブジェクトを作成する

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

  2. 画面の指示に従って通知オブジェクトを構成します。

    詳細については、「通知オブジェクト」をご参照ください。

2. アラートルールを構成する

  1. ARMS コンソール にログインします。 左側のナビゲーションウィンドウで、[Managed Service For Prometheus] > [インスタンス] を選択します。

  2. 表示されるページの上部で、クラスターがデプロイされているリージョンを選択します。クラスターで使用されている Prometheus インスタンスの名前をクリックして、インスタンスの詳細ページに移動します。

  3. 左側のナビゲーションウィンドウで、[アラートルール] をクリックします。[Prometheus アラートルール] ページで、通知オブジェクトのアラートルールを構成します。

    詳細については、「Prometheus インスタンスのアラートルールを作成する」をご参照ください。

手順 4:カスタムメトリクスを作成し、Grafana を使用してメトリクスを表示する

アノテーションを追加してカスタムメトリクスを作成し、デフォルトのサービスディスカバリ機能を使用してメトリクスを収集できます。または、ServiceMonitors を使用してカスタムメトリクスを作成し、サービスラベルを使用してメトリクスを収集することもできます。

ポッドアノテーション

デプロイメントのテンプレートにアノテーションを追加して、カスタムメトリクスを定義できます。

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

  2. [クラスター] ページで、クラスターの名前をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。画面の指示に従ってワークロードを作成します。

    次の例は、デプロイメントのパラメーターを構成する方法を示しています。詳細については、「イメージからステートレスアプリケーションを作成する」をご参照ください。

    1. [コンテナー] ウィザードページで、コンテナーイメージと必要なリソースを指定し、Web アプリケーションを作成し、ポート 5000 を公開して、[次へ] をクリックします。

    2. [詳細設定] ウィザードページで、サービスを作成し、ポッドアノテーションを追加します。次に、[作成] をクリックします。

      • サービスを作成します。

        [サービス] セクションで、[作成] をクリックしてサービスを構成します。[サービスタイプ] を SLB に設定し、[ポートマッピング] を構成します。

      • [アノテーション] セクションで、次のアノテーションを追加します。

        • prometheus.io/scrape アノテーションを追加し、値を true に設定します。これにより、Managed Service for Prometheus はメトリクスをスクレイピングできます。

        • prometheus.io/port アノテーションを追加し、値を 5000 に設定します。これにより、エンドポイントポート 5000 が Managed Service for Prometheus によってスクレイピングされるように指定します。

        • prometheus.io/path アノテーションを追加し、値を /access に設定します。これにより、エンドポイントパス /access が Managed Service for Prometheus によってスクレイピングされるように指定します。

  3. カスタムメトリクスを構成します。

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

    2. 左側のナビゲーションウィンドウで、[統合管理] をクリックします。

    3. [統合環境] タブで、[Container Service] タブの環境リストを表示します。ACK 環境インスタンスを見つけて、[アクション] 列の [メトリクスのスクレイピング] をクリックします。[メトリクスのスクレイピング] タブが表示されます。

    4. [メトリクスのスクレイピング] タブで、ServiceMonitor と PodMonitor の設定を追加して、Prometheus メトリック収集ルールを定義します。

      詳細については、「ACK 環境のカスタム収集ルールを管理する」をご参照ください。

    5. 上記の手順を完了したら、[統合管理] ページの [自己監視] タブをクリックし、[ターゲット] をクリックして、カスタムメトリクスが構成されているかどうかを確認します。[エンドポイント] 列のハイパーリンクをクリックして、メトリック値を増やすことができます。

      メトリクスの構成方法の詳細については、「DATA MODEL」をご参照ください。

      image

  4. カスタムメトリクスを表示します。

    [統合管理] ページの [メトリクスエクスプローラー] タブで、表示するカスタムメトリクスを選択するか、PromQL ステートメントを指定してカスタムメトリクスを表示および検証できます。詳細については、「メトリクス探索」をご参照ください。

  5. [統合管理] ページの [自己監視] タブで、[監視] をクリックして、Grafana ダッシュボードのカスタムメトリクスを表示します。

サービスラベル

ServiceMonitors を使用してカスタムメトリクスを作成するには、ポッドアノテーションを追加する代わりにサービスラベルを追加する必要があります。

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

  2. [クラスター] ページで、クラスターの名前をクリックします。クラスターの詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。画面の指示に従ってワークロードを作成します。

    次の例は、デプロイメントのパラメーターを構成する方法を示しています。詳細については、「イメージからステートレスアプリケーションを作成する」をご参照ください。

    1. [コンテナー] ウィザードページで、コンテナーイメージと必要なリソースを指定し、Web アプリケーションを作成し、ポート 5000 を公開して、[次へ] をクリックします。

    2. [詳細設定] ページで、[サービス] セクションの [作成] をクリックしてサービスを構成します。

      [サービスタイプ] を SLB に設定し、[ポートマッピング] を構成します。サービスラベルを追加します。たとえば、ラベルキーを app に設定し、ラベル値を custom-metrics-pindex に設定します。このラベルは、ServiceMonitors によってセレクターとして使用されます。

  3. カスタムメトリクスを構成します。Managed Service for Prometheus がスクレイピングするエンドポイントを使用します。

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

    2. 左側のナビゲーションウィンドウで、[統合管理] をクリックします。

    3. [統合環境] タブで、[Container Service] タブの環境リストを表示します。ACK 環境インスタンスを見つけて、[アクション] 列の [メトリクスのスクレイピング] をクリックします。[メトリクスのスクレイピング] タブが表示されます。

    4. [メトリクスのスクレイピング] タブで、[サービスモニター] をクリックし、[作成] をクリックします。画面の指示に従って ServiceMonitor を構成し、[作成] をクリックします。

      カスタムメトリクスの構成方法の詳細については、「ACK サービスディスカバリ」をご参照ください。

      YAML コンテンツを表示

      apiVersion: monitoring.coreos.com/v1
      kind: ServiceMonitor
      metadata:
        # 一意の名前を指定します。
        name: custom-metrics-pindex
        # 名前空間を指定します。
        namespace: default
      spec:
        endpoints:
        - interval: 30s
          # service.yaml ファイルで指定されたポートの名前を指定します。
          port: web
          # サービスのパスを指定します。
          path: /access
        namespaceSelector:
          any: true
          # NGINX デモアプリケーションが属する名前空間。
        selector:
          matchLabels:
            # service.yaml ファイルで指定されたラベルを指定します。
            app: custom-metrics-pindex
    5. [統合管理] ページの [自己監視] タブで、[ターゲット] をクリックして、Managed Service for Prometheus がスクレイピングするエンドポイントが表示されているかどうかを確認します。

      Scape Endpioint

      説明

      アノテーションを追加してカスタムメトリクスを作成する方法と比較して、この方法では、サービスの名前空間と名前など、より多くの情報が提供されます。

  4. メトリックを選択し、[エンドポイント] 列のハイパーリンクをクリックして、メトリック値を増やします。

    メトリクスの構成方法の詳細については、「DATA MODEL」をご参照ください。

    image

    image

  5. カスタムメトリクスを表示します。

    [統合管理] ページの [メトリクスエクスプローラー] タブで、表示するカスタムメトリクスを選択するか、PromQL ステートメントを指定してカスタムメトリクスを表示および検証できます。詳細については、「メトリクス探索」をご参照ください。

  6. [統合管理] ページの [自己監視] タブで、[監視] をクリックして、Grafana ダッシュボードのカスタムメトリクスを表示します。

FAQ

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

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

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

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

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

    説明

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

Managed Service For Prometheus が GPU アクセラレーションノードを監視できないのはなぜですか?

説明

この問題は、アンマネージド Prometheus エージェントのみに関連しています。

Managed Service for Prometheus は、汚染が構成されている GPU アクセラレーションノードを監視できない場合があります。次の手順を実行して、GPU アクセラレーションノードの汚染を表示できます。

  1. 次のコマンドを実行して、GPU アクセラレーションノードの汚染を表示します。

    GPU アクセラレーションノードにカスタムの汚染を追加した場合、カスタムの汚染に関する情報を表示できます。この例では、keytest-key に設定され、valuetest-value に設定され、effectNoSchedule に設定されている汚染がノードに追加されます。

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

    予想される出力:

    Taints:test-key=test-value:NoSchedule
  2. 次のいずれかの方法を使用して、汚染を処理します。

    • 次のコマンドを実行して、GPU アクセラレーションノードから汚染を削除します。

      kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-
    • 汚染のある CPU アクセラレーションノードにポッドをスケジュールできるようにする許容ルールを追加します。

      # 1 次のコマンドを実行して ack-prometheus-gpu-exporter を変更します。
      kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter
      
      # 2. 汚染を許容するために、YAML ファイルに次のフィールドを追加します。
      #その他のフィールドは省略されています。
      # tolerations フィールドは containers フィールドの上に追加する必要があり、両方のフィールドは同じレベルである必要があります。
      tolerations:
      - key: "test-key"
        operator: "Equal"
        value: "test-value"
        effect: "NoSchedule"
      containers:
       # 無関係なフィールドは表示されません。

ack-arms-prometheus の残留リソース構成が原因で ack-arms-prometheus を再インストールできない場合はどうすればよいですか?

説明

この問題は、アンマネージド Prometheus エージェントのみに関連しています。

Managed Service for Prometheus の名前空間のみを削除すると、リソース構成は保持されます。この場合、ack-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
  • 次のコマンドを実行して、関連する 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 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