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

:登録済みクラスターに対するPrometheusのマネージドサービスの有効化

最終更新日:Dec 25, 2024

Managed Service for Prometheusを使用して、さまざまなジオロケーションにデプロイされている登録済みのKubernetesクラスターを一元管理できます。 このトピックでは、登録済みクラスターに対してManaged Service for Prometheusを有効にする方法について説明します。

前提条件

ステップ1: ack-arms-prometheusコンポーネントのRAM権限を設定する

onectlの使用

  1. オンプレミスマシンにonectlをインストールします。 詳細については、「onectlを使用した登録済みクラスターの管理」をご参照ください。

  2. 次のコマンドを実行して、ack-arms-prometheusコンポーネントのRAMアクセス許可を設定します。

    onectl ram-user grant --addon arms-prometheus

    期待される出力:

    Ram policy ack-one-registered-cluster-policy-arms-prometheus granted to ram user ack-one-user-ce313528c3 successfully.

コンソールの使用

  1. RAM ユーザーを作成します。 詳細については、「RAM ユーザーの作成」をご参照ください。

  2. カスタムポリシーを作成します。 詳細については、「カスタムポリシーの作成」をご参照ください。 次のポリシーコンテンツには、ack-arms-prometheusに必要な権限が含まれています。

    {
        "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"
            }
        ]
    }
  3. カスタムポリシーをRAMユーザーにアタッチします。 詳細については、「RAMユーザーへの権限付与」をご参照ください。

  4. RAMユーザーのAccessKeyペアを作成します。 詳細については、「AccessKey の作成」をご参照ください。

  5. AccessKeyペアを使用して、登録済みクラスターにalibaba-addon-Secretという名前のシークレットを作成します。

    次のコマンドを実行して、ack-arms-prometheusのシークレットを作成します。

    kubectl -n arms-prom create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'
    説明

    <your AccessKey ID><your AccessKey Secret> を、前の手順で作成したAccessKeyペアに置き換えます。

ステップ2: ack-arms-prometheusコンポーネントをインストールする

onectlの使用

次のコマンドを実行して、ack-arms-prometheusコンポーネントをインストールします。

onectl addon install arms-prometheus

期待される出力:

Addon arms-prometheus, version **** installed.

コンソールの使用

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

  2. On theクラスターページで、クラスターの名前をクリックし、アプリケーション > ヘルム左側のナビゲーションウィンドウに表示されます。

    arms-prometheusおよびarms-prom HelmリリースがHelmページに表示されている場合は、Helmリリースを削除します。 次に、次の手順を実行してarms-prometheusとarms-promを再インストールします。

  3. 詳細ページの左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

  4. On theアドオンページをクリックし、ログとモニタリングタブをクリックします。

  5. ack-arms-prometheusコンポーネントを見つけて、右下隅の [インストール] をクリックします。 [OK] をクリックします。

コンポーネントがインストールされたら、

Prometheusコンソールのマネージドサービス。 登録済みクラスターにちなんで名前が付けられたPrometheusインスタンスをクリックします。 Prometheusインスタンスの詳細ページで、モニタリングデータを表示し、アラートルールを作成できます。 詳細については、「Prometheusのマネージドサービス」および「Prometheusアラートルールの作成」をご参照ください。

cAdvisorのポート10250からメトリックを収集するようにack-arms-prometheusを設定する

既定では、ack-arms-prometheusはcAdvisorのポート10255からメトリックを収集します。 登録済みクラスターのkubeletのポート10250が開いている場合は、次の手順を実行して、cAdvisor (Container Advisor) のポート10250からメトリックを収集するようにack-arms-prometheusを設定できます。

  1. 次のYAMLテンプレートに基づいて、登録済みクラスターにServiceMonitorを作成します。

    YAMLファイルの内容を表示する

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      annotations:
        arms.prometheus.io/discovery: 'true'
      name: arms-prom-cadvisor-10250
      namespace: arms-prom
    spec:
      endpoints:
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          path: /metrics/cadvisor
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          path: /metrics/probes
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
      jobLabel: k8s-app
      namespaceSelector:
        matchNames:
          - kube-system
      selector:
        matchLabels:
          k8s-app: kubelet

    メトリック収集を開始する前に、15秒から1分待ちます。

  2. メトリクスが収集されているかどうかを確認します。

    1. 最初に

      ARMSコンソールを使用します。

    2. 左側のナビゲーションウィンドウで、Prometheusのマネージドサービス > インスタンス.

    3. [インスタンス] ページの上部のナビゲーションバーで、クラスターがデプロイされているリージョンを選択します。

    4. 表示するPrometheusインスタンスの名前をクリックして、統合の詳細ページに移動します。 左側のナビゲーションウィンドウで、[サービスの検出] をクリックします。 表示されるページで、[ターゲット] タブをクリックします。

      arms-prom/arms-prom-cadvisor-10250という名前の収集タスクが存在し、期待どおりに実行されるかどうかを確認します。采集数据