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

関連操作
グローバル集約インスタンスの編集
インスタンスリスト ページで、変更する グローバル集約インスタンス を見つけ、Operation 列の 編集 をクリックします。作成後はエンドポイントを変更しないでください。変更すると、元のエンドポイント用に設定されたアラートルールが無効になります。
グローバル集約インスタンスのアンインストール
グローバル集約インスタンスが不要になった場合は、アンインストールできます。
[インスタンス] ページで、[Prometheusインスタンス] を見つけ、[操作] 列の [アンインストール] をクリックします。 表示されるメッセージで、[OK] をクリックします。 Prometheusインスタンスがアンインストールされると、[インスタンス] ページに表示されなくなります。
よくある質問
グローバル集約インスタンスには追加料金が発生しますか?
グローバル集約インスタンスは現在パブリックプレビューで、無料で利用できます。
グローバル集約インスタンスは、集約したすべてのインスタンスのデータを 1 つのインスタンスに統合しますか?
グローバル集約インスタンスは、集約対象インスタンスのデータのコピーを保存しません。代わりに、クエリプロキシとして機能し、リクエストをソースインスタンスにリアルタイムで転送します。