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

Container Service for Kubernetes:Managed Service for Prometheusでアラートルールを構成し、パフォーマンス指標を表示する

最終更新日:Mar 06, 2025

Container Service for Kubernetes (ACK) クラスターのManaged Service for Prometheusを有効にして、クラスターとクラスター内のコンテナーをリアルタイムでモニタリングできます。 Managed Service for Prometheusを有効にすると、Grafanaダッシュボードに表示されるメトリックを表示できます。 カスタム連絡先を指定してアラート通知を受信し、カスタムメトリックを設定することもできます。

マネージドサービスfor Prometheusの概要

Managed Service for Prometheusは、オープンソースのPrometheusエコシステムと連動する完全マネージド型モニタリングサービスです。 Managed Service for Prometheusは、さまざまなコンポーネントを監視し、複数の定義済みダッシュボードを提供します。 Managed Service for Prometheusでは、データストレージ、データ表示、システムメンテナンスなどの基盤となるサービスを管理する手間を省きます。

Managed Service for Prometheusには、Basic EditionとPro Editionの2つのコンテナーモニタリングエディションがあります。 Container Monitoring Basic Editionと比較して、Container Monitoring Pro Editionは、さまざまなGrafanaモニタリングダッシュボード、Container Service for Kubernetes (ACK) のコンポーネントのデフォルトのアラートルール、リモート書き込みおよびEventBridgeベースのデータ配信機能を提供します。 Container Monitoring Pro Editionの利点の詳細については、「Basic EditionとPro Editionの機能と課金ルールの比較」をご参照ください。

課金

  • 基本メトリック

    Managed Service for Prometheusを有効にすると、ACKはコンテナーからメトリックを収集します。 ACKが収集するデフォルトのメトリックは基本的なメトリックです。 デフォルトでは、基本メトリックは無料です。 Managed Service For Prometheusでサポートされている基本的なメトリックの詳細については、「メトリック」をご参照ください。

    デフォルトで収集される基本メトリック

    他の機能を有効にした後に収集される基本的なメトリクス

    • コンテナリソースに関連するメトリック (kubelet)

    • アプリケーションのステータスに関連するメトリック (kube-state-Metrics)

    • ノードリソースに関連するメトリック (node-exporter)

    • gpuに関連するメトリック (ack-gpu-exporter)

    • API server、etcd、kube-scheduler、kube-controller-manager、cloud-controller-managerなど、ACK管理クラスター内の制御プレーンコンポーネントに関連するメトリック。

    • CoreDNSに関連するメトリクス

    • Ingressコントローラーに関連するメトリック

    重要

    収集したメトリクスの保持期間を変更したり、カスタムメトリクスを収集したりすると、追加料金が発生します。 メトリックの保持期間を変更する方法の詳細については、メトリックのデータサンプルの保存期間を変更するにはどうすればよいですか? Prometheusのマネージドサービスの課金ルールの詳細については、「課金」をご参照ください。

  • Grafanaのマネージドサービス

    Managed Service for Prometheusを有効にすると、Managed Service for Prometheusによって収集されたメトリックを表示するために、Managed Service for Grafana Shared Editionが使用されます。 Managed Service For Grafanaの課金ルールの詳細については、「課金ルール」をご参照ください。

手順1: Prometheusのマネージドサービスの有効化

クラスター作成時にPrometheusのマネージドサービスを有効にする

  • ACK Proクラスター:

    ACKコンソールの [コンポーネント設定] ウィザードページで、[ACK Cluster Monitoring Pro Edition] または [ACK Cluster Monitoring Basic Edition] を選択します。 詳細については、「ACK管理クラスターの作成」をご参照ください。

    image

  • その他のクラスタタイプまたは仕様:

    ACKコンソールの [コンポーネント設定] ウィザードページで、[Prometheusのマネージドサービスの有効化] を選択します。 詳細については、「ACK管理クラスターの作成」をご参照ください。

    image.png

    デフォルトでは、クラスターの作成時にEnable Managed Service for Prometheusが選択されています。 クラスターの作成後、システムは自動的にManaged Service for Prometheusを設定します。

既存のクラスターに対するPrometheusのマネージドサービスの有効化

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [Prometheusモニタリング] を選択します。

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

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

ACK専用クラスターを使用する場合、認証を完了するには次の操作を実行する必要があります

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

  3. [基本情報] タブで、Worker RAMロールの右側にある [Kubernetes WorkerRole-***] をクリックします。 [権限] タブで、[ポリシー] 列の [k8sWorkerRole ****] をクリックします。

  4. ポリシー詳細ページの [ポリシードキュメント] タブで、[ポリシードキュメントの変更] をクリックします。

  5. ポリシーコンテンツエディターの [ステートメント] フィールドに次の権限付与ルールを追加し、[次へ] をクリックして [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"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
    
    説明

    複数のアクションを指定するには、次のアクションの内容を入力する前に、各アクションの内容の末尾にコンマ (,) を追加します。

ステップ2: マネージドサービスfor Prometheusが提供するGrafanaダッシュボードを表示する

ACKコンソール[Prometheusモニタリング] ページで、異なるGrafanaダッシュボードをクリックして、異なるモニタリングデータを表示できます。

手順3: (オプション) PrometheusのManaged Serviceでアラートルールを設定する

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

1. 通知オブジェクトの作成

  1. 最初にARMSコンソール

    を使用します。 左側のナビゲーションウィンドウで、[アラート管理] > [通知オブジェクト] を選択します。

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

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

2: アラートルールの設定

  1. 最初にARMSコンソール

    を使用します。 左側のナビゲーションウィンドウで、Prometheusのマネージドサービス > インスタンス.

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

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

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

(オプション) 手順4: カスタムメトリクスを作成し、Grafanaを使用してメトリクスを表示する

ポッド注釈を追加して、既定のサービス検出機能に基づいてカスタムメトリックを指定できます。 サービスラベルを追加して、ServiceMonitorsに基づいてカスタムメトリックを指定することもできます。 ポッドのアノテーションとサービスラベルを同時に追加すると、同じデータソースから重複したメトリックが収集される可能性があります。

  • ポッド注釈: 特定の注釈をポッドに追加すると、Managed Service for Kubernetesは自動的にポッドを検出し、ポッドからメトリクスを収集できます。

  • サービスラベル: サービスを作成し、特定のラベルをサービスに追加します。 次に、ServiceMonitorを作成して、Serviceのバックエンドポッドを監視する方法を指定します。

ポッド注釈

配置のテンプレートに注釈を追加して、カスタムメトリックを定義できます。

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

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

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

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

    2. [詳細] ウィザードページで、サービスを作成し、ポッドの注釈を追加します。 [作成] をクリックします。

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

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

      • [注釈] セクションで、次の注釈を追加します。

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

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

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

  3. カスタムメトリックを設定します。

    1. 最初にARMSコンソール

      を使用します。

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

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

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

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

    5. 上記の操作が完了したら、[統合管理] ページの [セルフモニタリング] タブをクリックし、[ターゲット] をクリックして、カスタムメトリックが設定されているかどうかを確認します。 [エンドポイント] 列のハイパーリンクをクリックして、メトリック値を増やすことができます。

      メトリクスの設定方法の詳細については、「データモデル」をご参照ください。

      image

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

    [Integration Management] ページの [Metrics Explorer] タブで、表示するカスタムメトリックを選択するか、カスタムメトリックを表示および検証するPromQLステートメントを指定できます。 詳細については、「メトリック探索」をご参照ください。

  5. [Integration Management] ページの [Self-Monitoring] タブで、[Monitoring] をクリックしてGrafanaダッシュボードのカスタムメトリクスを表示します。

サービスラベル

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

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

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

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

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

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

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

  3. カスタムメトリックを設定します。 Prometheusのマネージドサービスがスクレイピングするエンドポイントを使用します。

    1. 最初にARMSコンソール

      を使用します。

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

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

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

      カスタムメトリクスの設定方法の詳細については、「ACKサービスの検出」をご参照ください。

      YAMLコンテンツの表示

      apiVersion: monitoring.coreos.com/v1
      kind: ServiceMonitor
      metadata:
        # Specify a unique name. 
        name: custom-metrics-pindex
        # Specify a namespace. 
        namespace: default
      spec:
        endpoints:
        - interval: 30s
          # Specify the name of the port specified in the service.yaml file. 
          port: web
          # Specify the path of the Service. 
          path: /access
        namespaceSelector:
          any: true
          # The namespace to which the NGINX demo application belongs. 
        selector:
          matchLabels:
            # Specify the label specified in the service.yaml file. 
            app: custom-metrics-pindex
    5. [Integration Management] ページの [Self-Monitoring] タブで、[Targets] をクリックして、PrometheusのManaged Serviceがスクレイピングするエンドポイントが表示されているかどうかを確認します。

      Scape Endpioint

      説明

      注釈を追加してカスタムメトリックを作成する方法と比較して、この方法は、サービスの名前空間と名前を含むより多くの情報を提供します。

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

    メトリクスの設定方法の詳細については、「データモデル」をご参照ください。

    image

    image

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

    [Integration Management] ページの [Metrics Explorer] タブで、表示するカスタムメトリックを選択するか、カスタムメトリックを表示および検証するPromQLステートメントを指定できます。 詳細については、「メトリック探索」をご参照ください。

  6. [Integration Management] ページの [Self-Monitoring] タブで、[Monitoring] をクリックしてGrafanaダッシュボードのカスタムメトリクスを表示します。

よくある質問

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

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

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

  3. On theアドオンページをクリックし、ログとモニタリングタブを検索し、ack-arms-プロメテウスコンポーネントを使用します。

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

    説明

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

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

Managed Service for Prometheusは、テイントで構成されているGPU高速化ノードを監視できない場合があります。 次の手順を実行して、GPU高速化ノードの汚染を表示できます。

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

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

    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 Run the following command to modify ack-prometheus-gpu-exporter: 
      kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter
      
      # 2. Add the following fields to the YAML file to tolerate the taint: 
      #Other fields are omitted. 
      # The tolerations field must be added above the containers field and both fields must be of the same level. 
      tolerations:
      - key: "test-key"
        operator: "Equal"
        value: "test-value"
        effect: "NoSchedule"
      containers:
       # Irrelevant fields are not shown.

ack-arms-prometheusのリソース構成が残っているためにack-arms-prometheusの再インストールに失敗した場合はどうすればよいですか?

Managed Service for Prometheusの名前空間のみを削除した場合、リソース設定は保持されます。 この場合、ack-arms-prometheusの再インストールに失敗する可能性があります。 残りのリソース設定を削除するには、次の操作を実行します。

  • arms-prom名前空間を削除するには、次のコマンドを実行します。

    kubectl delete namespace arms-prom
  • 次のコマンドを実行して、関連するClusterRolesを削除します。

    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
  • 次のコマンドを実行して、関連する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
  • 次のコマンドを実行して、関連するロールとRoleBindingsを削除します。

    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コンポーネントを再インストールします。

ack-arms-prometheusをインストールするときに「xxx in use」エラーが表示された場合はどうすればよいですか?

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

  2. [クラスター] ページで、管理するクラスターを見つけます。 次に、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。

  3. クラスターの詳細ページの左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。 Helmページで、ack-arms-prometheusアプリケーションが表示されているかどうかを確認します。

    • Helmページにack-arms-prometheusアプリケーションが表示されている場合は、ack-arms-prometheusアプリケーションを削除してから、アドオンページにack-arms-prometheusをインストールします。 ack-arms-prometheusのインストール方法の詳細については、「コンポーネントの管理」をご参照ください。

    • ack-arms-prometheusアプリケーションがHelmページに表示されている場合は、次の手順を実行します。

      1. ack-arms-prometheusアプリケーションがHelmページに表示されていない場合は、ack-arms-prometheusアプリケーションが削除された後に残りのデータが存在することを示します。 残りのデータを手動で削除する必要があります。 ack-arms-prometheusに関連する残留データを削除する方法の詳細については、「Prometheusのマネージドサービスに関するFAQ」をご参照ください。

      2. アドオンページにack-arms-prometheusをインストールします。 ack-arms-prometheusのインストール方法の詳細については、「コンポーネントの管理」をご参照ください。

      3. 問題が解決しない場合は、 チケットを起票

        してサポートセンターにお問い合わせくださいしてサポートセンターにお問い合わせください。

システムが「コンポーネントがインストールされていません」と表示された後、ack-arms-prometheusのインストールが失敗した場合はどうすればよいですか?

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

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

    2. [クラスター] ページで、管理するクラスターを見つけます。 次に、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。

    3. ACKコンソールのクラスター詳細ページに移動し、左側のナビゲーションウィンドウで [アプリケーション] > [ヘルム] を選択します。

      ack-arms-prometheusアプリケーションがHelmページに表示されているかどうかを確認します。

      • Helmページにack-arms-prometheusアプリケーションが表示されている場合は、Helmページでack-arms-prometheusアプリケーションを削除し、アドオンページからack-arms-prometheusをインストールします。 ack-arms-prometheusのインストール方法の詳細については、「コンポーネントの管理」をご参照ください。

      • ack-arms-prometheusアプリケーションがHelmページに表示されていない場合は、次の操作を実行します。

        1. ack-arms-prometheusアプリケーションがHelmページに表示されていない場合は、ack-arms-prometheusアプリケーションが削除された後に残りのデータが存在することを示します。 残りのデータを手動で削除する必要があります。 ack-arms-prometheusに関連する残留データを削除する方法の詳細については、「Prometheusのマネージドサービスに関するFAQ」をご参照ください。

        2. アドオンページにack-arms-prometheusをインストールします。 ack-arms-prometheusのインストール方法の詳細については、「コンポーネントの管理」をご参照ください。

        3. 問題が解決しない場合は、 チケットを起票

          してサポートセンターにお問い合わせくださいしてサポートセンターにお問い合わせください。

  • ack-arms-prometheusのログにエラーが報告されているかどうかを確認します。

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

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

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

    4. [ログ] タブをクリックし、ログにエラーが報告されているかどうかを確認します。

      ログでエラーが報告された場合、 チケットを起票

      してください。

  • インストールエラーがPrometheusエージェントによって報告されているかどうかを確認します。

    1. ARMSコンソール

      を使用します。

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

    3. [統合環境] タブで、[Container Service] タブの環境リストを表示します。 ACK環境インスタンスを見つけ、[操作] 列の [エージェントの設定] をクリックします。 [エージェントの設定] ページが表示されます。

    4. インストールされたエージェントが正常に実行されるかどうかを確認します。 エラーが報告された場合、 チケットを起票

      してください。