Alibaba Cloud Managed Service for Prometheus が提供するカスタム認証を使用して、異なるAlibaba Cloudアカウントが所有する複数のPrometheusインスタンスのデータを集約できます。 この方法で、Prometheusインスタンスメトリックを監視し、Grafanaダッシュボードで視覚化し、それらに対してアラートを一元的に設定できます。
背景情報
一般的に、企業で複数のAlibaba Cloudアカウントを作成すると、O&Mの複雑さが増します。 Managed Service for Prometheus は、Alibaba Cloudアカウント全体の監視データを一元的に管理するのに役立つグローバル集約インスタンスを提供します。 これにより、アラートのクエリと管理、および複数のアカウントのO&Mを一元的に実装できます。
前提条件
2つのAlibaba Cloudアカウント(アカウントAとアカウントB)が作成されています。 アカウントAとアカウントBは、Managed Service for Prometheus をアクティブ化するために使用されています。 詳細については、「請求」をご参照ください。
Prometheusインスタンスは、アカウントAとアカウントBで作成されます。 詳細については、「統合センターを使用してデータ統合する」をご参照ください。
使用方法
このトピックでは、アカウントAとアカウントBを例として使用して、グローバル集約インスタンスを使用して複数のPrometheusインスタンスのデータを集約する方法について説明します。 この方法で、アカウントAを使用して2つのアカウントの監視データをクエリし、それらに対してアラートルールを管理できます。
手順 1:グローバル集約インスタンスを作成する
Managed Service for Prometheus では、次のいずれかの方法を使用してデータを集約できます。
方法 1:リソースディレクトリを使用する
リソースディレクトリを使用して、企業のマルチアカウントアーキテクチャが構築されます。 リソースディレクトリの詳細については、「リソースディレクトリの概要」をご参照ください。
次のいずれかの方法で、信頼済みサービスの委任管理者を設定します。
方法 1
リソースディレクトリの管理アカウントを使用して、[リソース管理コンソール] にログオンします。
左側のナビゲーションペインで、 を選択します。
[信頼済みサービス] ページで、委任管理者アカウントを追加する信頼済みサービスを見つけ、管理[アクション] 列の をクリックします。
[委任管理者アカウント] セクションで、[追加] をクリックし、グローバル集約インスタンスを作成するAlibaba Cloudアカウントを委任管理者として設定します。
説明このトピックでは、アカウントAが委任管理者として設定されています。
[OK] をクリックします。
その後、委任管理者アカウントを使用して、信頼済みサービスのマルチアカウント管理モジュールにアクセスし、リソースディレクトリ内で管理操作を実行できます。
方法 2
リソースディレクトリの管理アカウント、または管理者権限を持つRAMロールを使用して、[OpenAPI Explorer] の RegisterDelegatedAdministrator オペレーションを呼び出し、グローバル集約インスタンスを作成するAlibaba Cloudアカウントを委任管理者として設定します。 次のパラメータを指定します。
パラメータ
説明
リージョン
中国本土:中国(上海) を選択します。
その他のリージョン:シンガポール を選択します。
アカウントID
グローバル集約インスタンスを作成するAlibaba CloudアカウントのIDを入力します。 このトピックでは、アカウントAが委任管理者として設定されています。
サービスプリンシパル
prometheus.aliyuncs.com と入力します。
[呼び出しを開始] をクリックします。
データを集約します。
アカウントAを使用して、[ARMSコンソール] にログオンします。
左側のナビゲーションペインで、 を選択します。
[prometheus インスタンスの作成] をクリックします。 [インスタンスの作成] ページで、プロンプトに従ってパラメータを設定し、[作成] をクリックします。
パラメータ
説明
インスタンスタイプ
[グローバル集約インスタンス] を選択します。
インスタンス名
グローバル集約インスタンスの名前を入力します。
リソースグループ
リソースグループを選択します。
タグ
各タグは大文字と小文字を区別するキーと値のペアです。 最大 20 個のタグを追加できます。
エンドポイント
アラートルールを設定するリージョンを選択します。 Prometheus インスタンス数が最も多いリージョンを選択することをお勧めします。 そうしないと、リクエスト時間とシステムの安定性に影響を与える可能性があります。
集約するインスタンスを選択
[他のアカウント(リソースディレクトリ)] を選択します。 [リソースディレクトリメンバーアカウント] パラメータを指定し、アカウント B で作成された Prometheus インスタンスを選択します。
説明アカウント B を選択すると、Managed Service for Prometheus は、リソースディレクトリ内の信頼済みサービスのステータスを [有効] に変更します。
異なるリージョンの Prometheus インスタンスを選択して、リージョン間でデータを集約できます。 まず、[エンドポイント] パラメータを目的のリージョンに設定する必要があります。
説明グローバル集約インスタンスの情報を変更するには、[アクション] 列の [編集] をクリックします。 グローバル集約インスタンスを作成した後は、リージョンを変更しないことをお勧めします。 そうしないと、アラートルールが無効になります。
方法 2:RAMロールを使用する
アカウント B を使用して RAM ロールを作成します。
アカウント B を使用して、[Resource Access Management (RAM) コンソール] にログオンします。
左側のナビゲーションペインで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] ページで、[ロールタイプの選択] セクションの [alibaba Cloudアカウント] を選択し、[次へ] をクリックします。
[ロールの設定] ステップで、[RAMロール名] を
AliyunPrometheusQueryRole
に設定し、[信頼済みalibaba Cloudアカウントの選択] を [他のalibaba Cloudアカウント] に設定し、アカウント A の ID を入力して、[OK] をクリックします。ロールをクリックします。 表示されるページで、[信頼ポリシー] タブをクリックし、[信頼ポリシーの編集] をクリックします。 エディターで、信頼ポリシーを変更して、アカウント A に権限を付与します。
説明信頼ポリシーにAlibaba Cloudアカウントの配列を入力して、それらに権限を付与できます。
AliyunRAMReadOnlyAccess
ポリシーとAliyunARMSReadOnlyAccess
ポリシーをAliyunPrometheusQueryRole
にアタッチします。左側のナビゲーションペインで、[ID] > [ロール] を選択します。 [ロール] ページで、ロールを見つけ、[権限の付与] を [アクション] 列でクリックします。
[権限の付与] パネルの [ポリシー] セクションで、検索ボックスで
AliyunRAMReadOnlyAccess
ポリシーとAliyunARMSReadOnlyAccess
ポリシーを検索し、それらを選択して、[権限の付与] をクリックします。
(オプション)アカウント A の RAM ユーザーを作成します。
説明アカウント B からアカウント A に Prometheus インスタンスデータを集約する場合は、アカウント A の RAM ユーザーを作成する必要があります。
アカウント B からアカウント A の既存の RAM ユーザーに Prometheus インスタンスデータを集約する場合は、次の手順に進みます。
アカウント A を使用して、[RAMコンソール] にログオンします。
左側のナビゲーションペインで、 を選択します。
[ユーザー] ページで、[ユーザーの作成] をクリックします。
[ユーザーの作成] ページで、次のパラメータを設定します。
ログオン名:ログオン名は最大 64 文字で、文字、数字、ピリオド(.)、ハイフン(-)、アンダースコア(_)を含めることができます。
表示名:表示名は最大 128 文字です。
説明[ユーザーの追加] をクリックすると、複数の RAM ユーザーを一度に作成できます。
アクセスモード:Alibaba Cloudアカウントのセキュリティを確保するために、RAMユーザーには1つのアクセスモードのみを選択することをお勧めします。 このようにして、個人のRAMユーザーはプログラムのRAMユーザーから分離されます。
コンソールアクセス
RAMユーザーが個人を表す場合は、RAMユーザーにコンソールアクセスを選択することをお勧めします。 このようにして、RAMユーザーはユーザー名とパスワードを使用してAlibaba Cloudにアクセスできます。 コンソールアクセスを選択した場合は、次のパラメータを設定する必要があります。
コンソールパスワードの設定:[デフォルトパスワードを自動的に再生成する] または [カスタムパスワードをリセットする] を選択できます。 [カスタムパスワードをリセットする] を選択した場合は、パスワードを指定する必要があります。 パスワードは複雑さの要件を満たしている必要があります。 詳細については、「RAMユーザーのパスワードポリシーを設定する」をご参照ください。
パスワードのリセット:次回のログオン時にRAMユーザーがパスワードをリセットする必要があるかどうかを指定します。
MAFを有効にする:RAMユーザーに対して多要素認証(MFA)を有効にするかどうかを指定します。 MFAを有効にした後、MFAデバイスをRAMユーザーにバインドする必要があります。 詳細については、「MFAデバイスをRAMユーザーにバインドする」をご参照ください。
永続的なaccesskeyを使用してアクセスする
RAMユーザーがプログラムを表す場合は、RAMユーザーに[永続的なAccessKeyを使用してアクセスする] を選択できます。 このようにして、RAMユーザーはAccessKeyペアを使用してAlibaba Cloudにアクセスできます。 OpenAPIアクセスを選択すると、システムはRAMユーザーのAccessKey IDとAccessKeyシークレットを自動的に生成します。 詳細については、「永続的な AccessKey を使用したアクセスAccessKeyペアを取得する」をご参照ください。
重要RAMユーザーのAccessKeyシークレットは、AccessKeyペアを作成するときにのみ表示されます。 後続の操作でAccessKeyシークレットをクエリすることはできません。 したがって、AccessKeyシークレットをバックアップする必要があります。
AccessKeyペアは、アプリケーションアクセスのための永続的な資格情報です。 Alibaba CloudアカウントのAccessKeyペアがリークされた場合、アカウントに属するリソースは潜在的なリスクにさらされます。 資格情報のリークのリスクを防ぐために、Security Token Service(STS)トークンを使用することをお勧めします。 詳細については、「アクセスクレダencialを使用してAPIオペレーションを呼び出すためのベストプラクティス」をご参照ください。
[OK] をクリックします。
プロンプトに従ってセキュリティ検証を完了します。
RAMユーザーに権限を付与します。
RAMユーザーの名前をクリックします。 表示されるページで、[権限] タブをクリックします。
[権限の付与] をクリックします。 表示されるパネルの [ポリシー] セクションで、検索ボックスで
AliyunSTSAssumeRoleAccess
ポリシーとAliyunARMSFullAccess
ポリシーを検索し、それらを右側のセクションに追加して、[権限の付与] をクリックします。
データを集約します。
RAMユーザーとして [ARMSコンソール] にログオンします。
左側のナビゲーションペインで、 を選択します。
グローバル集約インスタンスを見つけ、[編集] を [アクション] 列でクリックします。 [手順3] の [集約する][ インスタンスを選択] セクションで、[他のアカウント(カスタム認証)] を選択します。
[alibaba Cloudアカウント] の横にある検索ボックスに、アカウント B の ID を入力し、[OK] をクリックします。 アカウント B に属するすべての Prometheus インスタンスが表示されます。Prometheus インスタンスを選択し、[集約インスタンスの編集] をクリックします。
説明別の Alibaba Cloud アカウントに対する権限を持つ RAM ユーザーのみが、そのアカウント内の Prometheus インスタンスを変更できますが、RAM ユーザーを所有する Alibaba Cloud アカウントは変更できません。
手順 2:グローバル集約インスタンスのデータをクエリする
グローバル集約インスタンスを作成した後、組み込みの Grafana ダッシュボードでグローバル集約インスタンスのパフォーマンスメトリックデータを表示できます。
[インスタンス] ページで、グローバル集約インスタンスの名前をクリックします。 左側のナビゲーションペインで、[ダッシュボード] をクリックします。
手順 3:グローバル集約インスタンスのアラートルールを作成する
[インスタンス] ページで、グローバル集約インスタンスの名前をクリックします。 左側のナビゲーションペインで、[アラートルール] をクリックします。
[prometheus アラートルール] ページで、[prometheus アラートルールの作成] をクリックし、プロンプトに従ってアラートルールを作成します。 詳細については、「Prometheus インスタンスのアラートルールを作成する」をご参照ください。
説明[prometheus アラートルールの作成] ページの [データプレビュー] セクションには、グローバル集約インスタンス の unique_cluster_id と unique_cluster_name が表示されます。 この機能は、アラートをトリガーするインスタンスを特定するのに役立ちます。
その他の操作
グローバル集約インスタンスを編集する
[インスタンス] ページで、グローバル集約インスタンス を見つけ、[アクション] 列の [編集] をクリックします。 エンドポイントパラメータを変更すると、現在のリージョンで設定されているアラートルールが無効になります。 したがって、必要な場合を除き、エンドポイントパラメータを変更しないことをお勧めします。
グローバル集約インスタンスをアンインストールする
グローバル集約インスタンス を使用しなくなった場合は、インスタンスをアンインストールできます。
[インスタンス] ページで、Prometheus インスタンス を見つけ、[アクション] 列の [アンインストール] をクリックします。 表示されるメッセージで、[OK] をクリックします。 Prometheus インスタンス がアンインストールされると、[インスタンス] ページには表示されなくなります。
FAQ
グローバル集約インスタンスは課金されますか?
グローバル集約インスタンスはパブリックプレビュー中で無料で利用できます。
グローバル集約インスタンスは他の Prometheus インスタンスからデータを同期しますか?
グローバル集約インスタンスは他の Prometheus インスタンスからデータを同期しません。 代わりに、データクエリのエントリを提供します。