Microsoft Entra ID を使って、Azure Monitor の Prometheus 用マネージド サービスを使うようにセルフマネージド Grafana を構成します。

Prometheus 用 Azure Monitor マネージド サービスを使用すると、Prometheus と互換性のある監視ソリューションを使って大規模にメトリックを収集および分析できます。 Prometheus データを分析して表示する最も一般的な方法は、Grafana ダッシュボードを使用することです。 この記事では、Microsoft Entra ID を使って、セルフホステッド Grafana 用のデータ ソースとして Prometheus を構成する方法について説明します。

マネージド システム ID と共に Grafana を使用する方法については、マネージド システム ID を使用した Grafana の構成に関する記事を参照してください。

Microsoft Entra 認証

Microsoft Entra 認証を設定するには、次の手順を実行します。

  1. アプリを Microsoft Entra ID に登録します。
  2. Azure Monitor ワークスペースへのアプリのアクセスを許可します。
  3. アプリの資格情報を使用してセルフホステッド Grafana を構成します。

アプリを Microsoft Entra ID に登録する

  1. アプリを登録するには、Azure portal で [Active Directory の概要] ページを開きます。

  2. [新規登録] を選択します。

  3. [アプリケーションの登録] ページで、アプリケーションの名前を入力します。

  4. [登録] を選択します。

  5. [アプリケーション (クライアント) ID][ディレクトリ (テナント) ID] をメモします。 これらは、Grafana 認証設定で使用されます。 A screenshot showing the App registration overview page.

  6. アプリの概要ページで、[証明書とシークレット] を選択します。

  7. [クライアント シークレット] タブで、[新しいクライアント シークレット] を選択します。

  8. [Description](説明) を入力します。

  9. ドロップダウンから有効期限の期間を選択し、[追加] を選択します。

    Note

    シークレットを更新するプロセスを作成して、シークレットの有効期限が切れる前に Grafana データ ソースの設定を更新します。 シークレットの有効期限が切れると、Grafana は Azure Monitor ワークスペースのデータに対してクエリを実行できなくなります。

    A screenshot showing the Add client secret page.

  10. クライアント シークレットの [値] をコピーして保存します。

    Note

    クライアント シークレットの値を表示できるのは、作成直後のみです。 ページを離れる前にシークレットを保存してください。

    A screenshot showing the client secret page with generated secret value.

ワークスペースへのアプリのアクセスを許可する

アプリが Azure Monitor ワークスペースのデータに対してクエリを実行できるようにします。

  1. Azure portal で Azure Monitor ワークスペースを開きます。

  2. [概要] ページで、クエリ エンドポイントをメモします。 クエリ エンドポイントは、Grafana データ ソースを設定するときに使用されます。

  3. [アクセス制御 (IAM)] を選択します。 A screenshot showing the Azure Monitor workspace overview page

  4. [追加] を選択してから、[アクセス制御 (IAM)] ページで [ロールの割り当てを追加] を選択します。

  5. [ロールの割り当ての追加] ページで、[監視] を検索します。

  6. [Monitoring data reader] (監視データ閲覧者) を選択し、次に [メンバー] タブを選択します。

    A screenshot showing the Add role assignment page

  7. [メンバーの選択] を選びます。

  8. Microsoft Entra ID にアプリを登録する」セクションで登録したアプリを検索して選びます。

  9. [選択] をクリックします。

  10. [レビューと割り当て] を選択します。 A screenshot showing the Add role assignment, select members page.

アプリの登録を作成し、Azure Monitor ワークスペースのらデータを照会するためのアクセス権をそれに割り当てました。 次の手順では、Grafana で Prometheus データ ソースを設定します。

Azure 認証を有効にするようにセルフマネージド Grafana を設定します。

Grafana では、Prometheus データ ソースを使用した Azure Monitor マネージド Prometheus への接続がサポートされるようになりました。 セルフホステッド Grafana では、Grafana で Azure 認証オプションを使用するために構成の変更が必要になります。 セルフホステッド Grafana または Azure によって管理されていない他の Grafana インスタンスの場合は、次の変更を行います。

  1. Grafana 構成ファイルを見つけます。 詳細については、Grafana の構成に関するドキュメントを参照してください。

  2. Grafana のバージョンを識別します。

  3. Grafana 構成ファイルを更新します。

    Grafana 9.0 の場合:

        [feature_toggles] 
        # Azure authentication for Prometheus (<=9.0) 
        prometheus_azure_auth = true 
    

    Grafana 9.1 以降のバージョンの場合:

        [auth] 
        # Azure authentication for Prometheus (>=9.1) 
        azure_auth_enabled = true 
    

Azure Managed Grafana の場合は、構成を変更する必要はありません。 マネージド ID も既定で有効になっています。

Grafana で Prometheus データ ソースを構成する

  1. Grafana インスタンスにサインインします。

  2. 構成ページで、[Data sources] (データ ソース) タブを選択します。

  3. [Add data source (データ ソースの追加)]を選択します。

  4. [Prometheus] を選択します。

  5. お使いの Prometheus データ ソースの [Name] (名前) を入力します。

  6. [URL] フィールドに、Azure Monitor ワークスペースの概要ページにあるクエリ エンドポイントの値を貼り付けます。

  7. [Auth] (認証) で、[Azure Authentication] (Azure 認証) を有効にします。

  8. [Azure Authentication] (Azure 認証) セクションで、[Authentication] (認証) ドロップダウンから [App Registration] (アプリの登録) を選択します。

  9. Microsoft Entra ID にアプリを登録する」セクションの [ディレクトリ (テナント) ID][アプリケーション (クライアント) ID][クライアント シークレット] を入力します。

  10. [保存 & テスト] を選びます A screenshot showing the Grafana settings page for adding a data source.

よく寄せられる質問

このセクションでは、一般的な質問への回答を示します。

メトリックのすべてまたは一部が欠落しています。 トラブルシューティングをどのように行えばよいですか?

マネージド エージェントから Prometheus メトリックを取り込むためのトラブルシューティング ガイドは、こちらで参照できます。

同じ名前で大文字と小文字が異なる 2 つのラベルを持つメトリックが見つからないのはなぜですか?

Azure マネージド Prometheus は、大文字と小文字を区別しないシステムです。 メトリック名、ラベル名、ラベル値などの文字列が、文字列の大文字と小文字が異なるだけで別の時系列と異なる場合、それらの文字列は同じ時系列として扱われます。 詳細については、Prometheus のメトリックの概要に関する記事を参照してください。

メトリック データにギャップが表示されますが、これはなぜ発生するのですか?

ノードの更新中に、クラスター レベルのコレクターから収集されたメトリックのメトリック データに 1 分から 2 分のギャップが表示される場合があります。 このギャップは、データが実行されているノードが通常の更新プロセスの一環として更新されているために発生します。 この更新プロセスにより、指定された kube-state-metrics やカスタム アプリケーション ターゲットなどのクラスター全体のターゲットが影響を受けます。 これは、クラスターが手動または自動更新によって更新されるときに発生します。 この動作は想定されているものであり、実行されているノードが更新されるために発生します。 この動作は、いずれも推奨される警告ルールの影響を受けません。

次のステップ