Managed Service for Prometheus は、異なる Alibaba Cloud アカウントにある Prometheus インスタンスからデータを集約できるカスタム認証を提供します。これにより、すべてのクロスアカウントインスタンスからのメトリクスについて、統合モニタリング、Grafana での可視化、およびアラート管理が可能になります。
背景情報
複数のManaged Service for Prometheusを管理する企業では、運用が複雑になりがちです。Managed Service for Prometheusは、モニタリングデータを一元化するためのManaged Service for Prometheus機能を提供します。この機能は、データのクエリとアラート管理のための統一ビューを提供することで、アカウント全体の運用とメンテナンスを簡素化します。
制限事項
-
グローバル集約インスタンスは、異なるスーパーリージョンにまたがるインスタンスのデータを集約できません。スーパーリージョンは、中国、東南アジアおよび中東、日本および韓国、ヨーロッパおよびロシア、南北アメリカです。
-
V2 Prometheus インスタンスでは、クロスアカウント集約はサポートされていません。
前提条件
-
お客様は、アカウント A とアカウント B という 2 つのAlibaba Cloud アカウントをお持ちです。Managed Service for Prometheus が両方のアカウントで有効化されています。詳細については、「課金」をご参照ください。
-
アカウント A とアカウント B の監視データが、それぞれの Prometheus インスタンスに統合されていること。詳細については、「Integration overview」をご参照ください。
使用方法
このトピックでは、2 つの Alibaba Cloud アカウント (アカウント A とアカウント B) を例に説明します。Prometheus のグローバル集約インスタンスを使用して、アカウント B の監視データをアカウント A に統合する方法を説明します。これにより、アカウント A 内の1つの場所から両アカウントのデータをクエリし、アラートを管理できます。
手順1:グローバル集約インスタンスの作成
Managed Service for Prometheus は、クロスアカウントデータ集約のための 2 つの方法をサポートしています:
Resource Directory
-
Resource Directory を使用して、企業向けのマルチアカウント構成を設定済みであること。Resource Directory の詳細については、「What is Resource Directory?」をご参照ください。
-
次のいずれかの方法で、信頼されたサービスの委任管理者アカウントを設定します。
方法1
-
管理アカウントで Resource Management コンソール にログインします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
信頼できるサービス ページで、目的の信頼できるサービスを見つけ、操作 列の 管理 をクリックします。
-
[Delegated Administrator Accounts] セクションで、Add をクリックします。Prometheus のグローバル集約インスタンスをホストする Alibaba Cloud アカウントを選択し、委任管理者として指定します。
説明この例では、Alibaba Cloud アカウント A です。
-
OK をクリックします。
これで、信頼できるサービスのマルチアカウント管理モジュールにアクセスし、組織全体で管理操作を実行できるようになります。
方法2
-
メンバーアカウントを委任管理者として指定するには、リソースディレクトリの管理アカウント、または管理権限を持つ RAM ロールを使用して、必要な API オペレーションを呼び出します。その後、委任管理者はクロスアカウントのグローバル集約インスタンスを作成できます。次の表に従ってパラメータを設定します。
パラメータ
説明
[サービスアドレス]
-
中国本土: 中国 (上海) を選択します。
-
その他の地域: シンガポールを選択します。
Account ID
クロスアカウントのグローバル集約インスタンスを作成するメンバーアカウントの ID を入力します。
サービスプリンシパル
prometheus.aliyuncs.comを入力します。 -
-
Initiate Call をクリックします。
-
-
データを集約します。
-
Alibaba Cloud アカウント A を使用して、ARMS console にログインします。
左側のナビゲーションウィンドウで、.
-
Prometheus インスタンスの作成 をクリックします。新規インスタンスの作成 ページで、次の表に従ってパラメータを設定し、今すぐ作成 をクリックします。
パラメータ
説明
[インスタンスタイプ]
グローバル集約インスタンス を選択します。
[Instance Name]
グローバル集約インスタンスの名前を任意に入力します。
[属するリソースグループ]
リソースグループを選択します。
[タグ]
タグは大文字と小文字が区別されるキーと値のペアです。最大 20 個のタグを追加できます。
Access endpoint
エンドポイントは、API リクエストおよびアラートルールの設定に使用するリージョンを指定します。インスタンスが最も多いリージョンを選択してください。別のリージョンを選択するとレイテンシが増加し、安定性に影響する可能性があります。
[集約するインスタンスの選択]
その他のアカウント (リソースディレクトリ) を選択します。リソースディレクトリメンバーのアカウント リストから、対象の Prometheus インスタンスを選択して追加します。
説明-
[その他のアカウント (リソースディレクトリ)] を選択すると、Managed Service for Prometheus がお客様のリソースディレクトリで信頼されたサービスとして自動的に有効になります。
-
異なるリージョンのインスタンスを選択して、リージョン間でデータを集約できます。インスタンスを選択する前に、[Access Endpoint] を指定する必要があります。
説明作成済みのグローバル集約インスタンスは、Operation 列の [Edit] をクリックして設定を変更できます。エンドポイントを設定した後に変更すると既存のアラートルールが無効になるため、変更は避けてください。
-
-
RAMを使用したカスタム認証
-
Alibaba Cloud アカウント B に RAM ロールを作成します。
-
Alibaba Cloud アカウント B を使用して RAM console にログインします。
-
左側のナビゲーションペインで、 の順に選択します。
-
ロール ページで、ロール作成 をクリックします。
-
ロール作成 ページの Principal Type で、アカウント を選択します。次に、信頼できる Alibaba Cloud アカウントを指定し、OK をクリックします。
-
RAM ロールの設定 ステップで、ロール名 を
AliyunPrometheusQueryRoleに設定します。信頼できる Alibaba Cloud アカウントを選択 では、他の Alibaba Cloud アカウント を選択し、Alibaba Cloud アカウント A の ID を入力します。次に、Finish をクリックします。 -
新規作成したロールの名前をクリックします。トラスト規則 タブで 編集トラスト規則 をクリックし、Alibaba Cloud アカウント A に権限を付与するようにポリシーを変更します。
Actionがsts:AssumeRole、EffectがAllowであること、およびPrincipalに信頼する Alibaba Cloud アカウントの ARN が含まれていることを確認します。説明Principalは配列にでき、複数のアカウントに信頼を付与できます。
-
-
AliyunPrometheusQueryRoleロールにAliyunRAMReadOnlyAccessとAliyunARMSReadOnlyAccessの権限を付与します。-
ナビゲーションペインで、アイデンティティ > Role を選択します。対象のロールを見つけ、Operation 列の 権限を新規付与する をクリックします。
-
権限を新規付与する パネルの 権限ポリシー セクションで、検索ボックスに
AliyunRAMReadOnlyAccessとAliyunARMSReadOnlyAccessを入力し、これらの権限を選択してから、Grant permissions をクリックします。
-
-
(オプション) Alibaba Cloud アカウント A に RAM ユーザーを作成します。
説明-
アカウント A を集約側アカウントとして使用する場合は、アカウント A に RAM ユーザーを作成して、Alibaba Cloud アカウント B のデータを集約する必要があります。
-
集約主体がすでに RAM ユーザーの場合は、この手順をスキップしてください。
-
Alibaba Cloud アカウント A を使用して RAM console にログインします。
-
ナビゲーションペインで、[Identities] > [Users] を選択します。[Users] ページで、[Create User] をクリックします。
-
ユーザーの作成 ページで、ユーザー情報を設定します。
-
ログイン名:英字、数字、ピリオド (.)、ハイフン (-)、アンダースコア (_) を使用できます。名前は最大 64 文字です。
-
Display name:最大 128 文字です。
説明ユーザーの追加 をクリックすると、複数の RAM ユーザーを一度に作成できます。
-
アクセス方法:セキュリティのため、人のユーザーとアプリケーションユーザーを分離する目的で、アクセス方法は1つのみ選択することを推奨します。
-
コンソールへのアクセス
人のユーザーの場合は、コンソールアクセスを有効にすることを推奨します。ユーザーはユーザー名とパスワードで Alibaba Cloud コンソールにログインできます。次のパラメータを設定する必要があります。
-
[Console Password]:自動生成またはカスタムを選択します。カスタムパスワードは、パスワードの複雑性ルールを満たす必要があります。詳細については、「Set a password policy for RAM users」をご参照ください。
-
[Password Reset]:次回ログイン時に RAM ユーザーにパスワードリセットを要求するかどうかを選択します。
-
多要素認証 (MFA):RAM ユーザーに MFA を有効化するかどうかを選択します。MFA を有効化する場合は、MFA デバイスをバインドする必要があります。詳細については、「Bind an MFA device for a RAM user」をご参照ください。
-
-
Using permanent AccessKey to access
アプリケーションユーザーの場合は、このオプションを選択して API アクセス用の AccessKey ペアを生成します。このオプションを有効にすると、システムが RAM ユーザーの AccessKey ID とシークレットを自動生成します。詳細については、「Create an AccessKey pair」をご参照ください。
重要-
AccessKey シークレットは作成時に1回だけ表示され、後から取得できません。安全な場所に保存してください。
-
AccessKey ペアは長期的な認証情報です。ペアが漏えいすると、アカウント内のすべてのリソースがリスクにさらされます。このリスクを軽減するために、Security Token Service (STS) トークンなどの一時的な認証情報を使用して、認証情報漏えいのリスクを低減できます。詳細については、「Best practices for using access credentials to call Alibaba Cloud APIs」をご参照ください。
-
-
-
-
[OK] をクリックします。
-
画面の指示に従ってセキュリティ検証を完了します。
-
-
Alibaba Cloud アカウント A の RAM ユーザーに権限を付与します。
-
対象の RAM ユーザーの名前をクリックし、権限管理 タブをクリックします。
-
権限を新規付与する をクリックします。 表示されるパネルの 権限ポリシー エリアで、検索ボックスに
AliyunSTSAssumeRoleAccessとAliyunARMSFullAccessを入力します。 権限を選択し、右側のエリアに追加します。 次に、Grant permissions をクリックします。
-
-
Prometheus インスタンスのデータを集約します。
-
Alibaba Cloud アカウント A の RAM ユーザーとして、ARMS console にログインします。
-
左側のナビゲーションウィンドウで、.
-
対象のグローバル集約インスタンスを見つけ、Operation 列の 編集 をクリックします。[Step 3] セクションの 選択 [instances to aggregate] で、その他のアカウント (カスタム認証) を選択します。
-
Alibaba Cloud アカウント の横にある検索ボックスで、Alibaba Cloud アカウント B を検索し、Confirm をクリックします。システムがアカウント B のすべての Prometheus インスタンスを一覧表示します。集約するインスタンスを選択し、集約インスタンスの編集 をクリックします。
説明カスタム認証を使用するクロスアカウントインスタンスの設定を変更して保存できるのは、権限を付与された RAM ユーザーのみです。ルートの Alibaba Cloud アカウントではこの操作を実行できません。
-
手順2:クロスアカウントデータのクエリ
アカウント A のグローバル集約インスタンスでアカウント B の Prometheus インスタンスのデータを集約した後、組み込みの Grafana ダッシュボードでパフォーマンスメトリクスを確認できます。
独自の Grafana ワークスペースでグローバル集約インスタンスをカスタムのデータソースとして使用するには、共有エディションはサポートされないため、Grafana Pro 以上のエディションが必要です。
インスタンスリスト ページで、対象の Prometheus インスタンスの名前をクリックします。 左側のナビゲーションペインで、ダッシュボードリスト をクリックします。
手順3:アラートルールの作成
-
インスタンスリスト ページで、対象の Prometheus インスタンスの名前をクリックします。左側のナビゲーションペインで、Alarm Rules をクリックします。
-
Prometheus アラートルール ページで、Prometheus アラートルールの作成 をクリックします。プロンプトに従って、アラートルールのパラメーターを設定します。詳細については、「Prometheus アラートルールを作成する」をご参照ください。
説明Prometheus アラートルールの作成 ページの データプレビュー セクションでは、グローバル集約インスタンスは、unique_cluster_id (インスタンスの一意の ID) および unique_cluster_name (インスタンスの名前) ラベルを提供します。 これらのラベルは、アラートをトリガーした インスタンスをすばやく特定するのに役立ちます。

関連操作
グローバル集約インスタンスの編集
インスタンスリスト ページで、変更する グローバル集約インスタンス を探し、Operation 列の 編集 をクリックします。 重要: 初期設定後にエンドポイントを変更すると、既存の アラートルール が無効になるため、この変更は避けてください。
グローバル集約インスタンスのアンインストール
グローバルアグリゲーションインスタンスが不要になった場合は、アンインストールできます。
[インスタンス] ページで、[Prometheusインスタンス] を見つけ、[操作] 列の [アンインストール] をクリックします。 表示されるメッセージで、[OK] をクリックします。 Prometheusインスタンスがアンインストールされると、[インスタンス] ページに表示されなくなります。
よくある質問
グローバル集約インスタンスに追加料金はかかりますか?
グローバル集約インスタンスはパブリックプレビューであり、現在は無料です。
グローバル集約インスタンスはデータを統合しますか?
いいえ。集約対象インスタンスのデータはグローバル集約インスタンスに書き込まれません。グローバル集約インスタンスはクエリのフェデレーション層として機能し、リクエストを基盤となるインスタンスに転送します。