このトピックでは、セルフマネージド Web アプリケーションに Grafana ダッシュボードを埋め込む方法について説明します。この方法を使用すると、システムを切り替えたり、Grafana にログインしたりすることなく、アプリケーションで Grafana ダッシュボードを表示できます。
背景情報
セルフマネージド Web アプリケーションに Grafana ダッシュボードを埋め込む操作には、次の利点があります。
独自のシステムにログインして、埋め込まれた Grafana ダッシュボードを参照できます。
Grafana の上部ナビゲーションバーと左側のナビゲーションウィンドウを非表示にできます。詳細については、「手順 5」をご参照ください。
ワークフロー
次の図は、外部システムが Grafana にアクセスする方法を示しています。
手順 1:RAM ユーザーを作成し、RAM ユーザーに権限を付与する
Alibaba Cloud アカウントを使用して RAM ユーザーを作成し、RAM ユーザーが セキュリティトークンサービス (STS) を呼び出して RAM ロールをアサインする権限を付与します。
管理者権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーを使用して、RAM コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ユーザー] ページで、[ユーザーの作成] をクリックします。
[ユーザーの作成] ページで、ログオン名表示名[ユーザーアカウント情報] セクションの コンソールアクセスアクセスモードOK パラメーターと パラメーターを設定し、 セクションで を選択し、 をクリックします。
重要RAM は RAM ユーザーの AccessKey ペアを自動的に生成します。これにより、RAM ユーザーは必要な API 操作を呼び出すことによって STS にアクセスできます。セキュリティ上の理由から、RAM コンソールでは、AccessKey シークレットを 1 回だけ表示またはダウンロードできます。そのため、AccessKey ペアを作成する際は、関連する AccessKey シークレットを厳重に管理する必要があります。
[ユーザー] ページで、必要な RAM ユーザーを見つけ、権限を追加[アクション] 列の をクリックします。
複数の RAM ユーザーを選択し、ページ下部の [権限の追加] をクリックして、一度に複数の RAM ユーザーに権限を付与することもできます。
[ポリシー] セクションの [権限の付与] パネルで、AliyunSTSAssumeRoleAccess を追加し、[権限を付与] をクリックします。
[閉じる] をクリックします。
手順 2:RAM ロールを作成し、RAM ロールに権限を付与する
RAM ロールを作成し、Application Real-Time Monitoring Service (ARMS) コンソールにアクセスするための権限を RAM ロールに付与します。その後、RAM ユーザーは RAM ロールをアサインして ARMS コンソールにアクセスできます。
AliyunARMSFullAccess: ARMS へのフルアクセス権限
AliyunARMSReadOnlyAccess: ARMS への読み取り専用権限
手順 3:一時的な AccessKey ペアと STS トークンを取得する
セルフマネージド Web アプリケーションにログインし、Web サーバーで STS の AssumeRole 操作を呼び出して、一時的な AccessKey ペアと STS トークンを取得します。これらは一時的な認証情報として使用されます。AssumeRole 操作の詳細については、「AssumeRole」をご参照ください。
次のいずれかの方法を使用して、AssumeRole 操作を呼び出すことができます。
OpenAPI Explorer を使用する
RAM SDKの概要 を使用する
Java 用 RAM SDK を例として使用します。
Java 用 SDK を使用する場合、次のパラメーターを設定します。
String accessKey = "<accessKeyId>"; // RAM ユーザーの AccessKey ID。
String accessSecret = "<accessKeySecret>"; // RAM ユーザーの AccessKey シークレット。
String roleArn = "<roleArn>"; // RAM ロールの Alibaba Cloud リソースネーム (ARN)。
RAM ユーザーの AccessKey ID と AccessKey シークレットは、RAM ユーザーの作成時に提供されます。詳細については、「AccessKey ペアを作成する」をご参照ください。
RAM ロールの ARN を取得するには、次の手順を実行します。
RAM コンソール の左側のナビゲーションウィンドウで、 を選択します。[ロール] ページの下部で、ARN を取得する RAM ロールの名前をクリックします。
表示されるページで、ARN[基本情報] セクションの パラメーターの値をコピーします。
手順 4:ログイントークンを取得する
STS の AssumeRole 操作を呼び出して一時的な AccessKey ペアと STS トークンを取得した後、GetSigninToken 操作を呼び出してログイントークンを取得します。
一時的な STS トークンには、特殊文字が含まれている場合があります。トークンを使用する前に、URL エンコード方式を使用して特殊文字をエンコードする必要があります。
リクエスト例:
https://signin.alibabacloud.com/federation?Action=GetSigninToken
&AccessKeyId=<STS が返した一時的な AccessKey ID>
&AccessKeySecret=<STS が返した一時的な AccessKey シークレット>
&SecurityToken=<STS が返したトークン>
セルフマネージド Web アプリケーションが仮想ネットワークオペレーターによってデプロイされている場合は、&TicketType=mini
パラメーターを追加する必要があります。
手順 5:ログイン不要の URL を生成する
取得したログイントークンと、埋め込む Grafana ダッシュボードの URL を使用して、ログイン不要の URL を生成します。この URL を使用すると、Grafana にログインすることなく、セルフマネージド Web アプリケーションから Grafana ダッシュボードにアクセスできます。
ログイントークンは 3 時間有効です。セルフマネージド Web アプリケーションで URL を構成して、リクエストごとに新しいログイントークンを生成することをお勧めします。
Grafana から埋め込みたいダッシュボードの URL を取得します。
説明左側のナビゲーションウィンドウを非表示にするには、URL の検索セクションに
kiosk=tv
を追加します。上部のナビゲーションバーと左側のナビゲーションウィンドウを非表示にするには、URL の検索セクションに
kiosk
を追加します。上部のナビゲーションバーと左側のナビゲーションウィンドウを非表示にし、右上隅のタイムセレクターは保持するには、URL の検索セクションに
kiosk=tv2
を追加します。
ログイン トークンと Grafana ダッシュボードの URL を使用して、ログイン不要の URL を生成します。
http://signin.alibabacloud.com/federation?Action=Login &LoginUrl=<セルフマネージド Web サイトでログインに失敗し、302 HTTP ステータスコードが返された場合にリダイレクトされる URL> &Destination=<Grafana ダッシュボードの URL> &SigninToken=<取得したログイントークン>
ログイン不要の URL を使用して、ブラウザで ARMS コンソールページにアクセスします。