Prometheus モニタリングを使用して、登録済みクラスターのステータスをリアルタイムで監視し、可視化されたモニタリングダッシュボードを表示し、リアルタイムでアラートを受信できます。このトピックでは、Prometheus モニタリングと登録済みクラスターを連携させる方法について説明します。
前提条件
-
お客様のデータセンター内のセルフマネージド Kubernetes クラスターに ACK One 登録済みクラスターが接続されていること。詳細については、「ACK One 登録済みクラスターの作成」をご参照ください。
-
専用線を使用してクラウド VPC に接続されている登録済みクラスターについては、「登録済みクラスターが内部ネットワーク経由でクラウド製品にアクセスするためのルートの設定」をご参照の上、設定を完了してください。これにより、クラスターが内部ネットワーク経経由で ACK アドオンのイメージアドレスにアクセスできるようになり、Prometheus モニタリングにモニタリングデータをレポートするためのネットワークパスが確立されます。
手順 1:ack-arms-prometheus アドオンへの RAM 権限の付与
onectl
-
ローカルマシンに onectl をインストールおよび設定します。詳細については、「onectl を使用した登録済みクラスターの管理」をご参照ください。
-
次のコマンドを実行して、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.
コンソール
-
カスタムポリシーを作成します。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", "cms:GetIntegrationVersionForCS", "cms:CreateIntegrationPolicy", "cms:ListAddonReleases", "cms:UpdateAddonRelease", "cms:CreateAddonRelease", "cms:GetPrometheusInstance", "cms:ListIntegrationPolicyStorageRequirements", "log:PostLogStoreLogs" ], "Resource": "*", "Effect": "Allow" } ] } - 警告
AccessKey のセキュリティを強化するために、ネットワークアクセス制御用に AccessKey ペアベースのポリシーを構成し、AccessKey の呼び出し元を信頼できるネットワーク環境に制限することをお勧めします。
-
AccessKey を使用して、登録済みクラスターに alibaba-addon-secret という名前の Secret リソースを作成します。
次のコマンドを実行して Secret を作成します。
kubectl create namespace arms-prom 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 ID と AccessKey Secret に置き換えてください。
手順 2:ack-arms-prometheus アドオンのインストール
onectl
次のコマンドを実行して、ack-arms-prometheus アドオンをインストールします。
onectl addon install arms-prometheus
期待される出力:
Addon arms-prometheus, version **** installed.
コンソール
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
-
クラスターリスト ページで、目的のクラスターの名前をクリックします。左側のナビゲーションペインで、 を選択します。
Helm ページに arms-prometheus と arms-prom のインストール記録が含まれている場合は、次に進む前にそれらを削除してください。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
-
アドオン管理 ページで、ログとモニタリング タブをクリックします。
-
ack-arms-prometheus カードを見つけ、右下隅にあるインストールをクリックし、次に OK をクリックします。
インストールが完了したら、Prometheus モニタリングコンソールにログインして、クラスターインスタンスのモニタリングデータを表示し、アラートルールを定義します。詳細については、「Prometheus モニタリングの接続と設定」および 「Prometheus アラートルールの作成」をご参照ください。
CAdvisor ポート 10250 への切り替え
デフォルトでは、ack-arms-prometheus アドオンは CAdvisor ポート 10255 からデータを収集します。登録済みクラスターで kubelet ポート 10250 のみが開いている場合は、次の手順に従ってデータ収集ポートを切り替えてください。
-
次の YAML 内容を使用して、登録済みクラスターに ServiceMonitor をデプロイおよび設定します。
15〜60 秒待ってから、収集されたデータを確認してください。
-
ポートを切り替えた後、収集されたデータを確認してください。
にログインします。 ARMSコンソールを使用します。
左側のナビゲーションウィンドウで、.
-
Prometheus 監視 ページの上部のナビゲーションバーで、クラスターがデプロイされている リージョン を選択します。
-
インスタンス ページで、対象インスタンスの名前をクリックして統合センターページを開きます。 左側のナビゲーションペインで、[メトリクス収集] をクリックし、次に セルフモニタリング タブをクリックします。
[arms-prom/arms-prom-cadvisor-10250] 収集ジョブが存在し、そのステータスが正常であることを確認します。