Share via


Virtual Machines から Azure Monitor ワークスペースに Prometheus メトリックを送信する

Prometheus は、Kubernetes クラスターの監視に限定されません。 Prometheus を使用して、サーバー上で実行されているアプリケーションとサービスを、実行している場所を問わず監視します。 たとえば、Virtual Machines、Virtual Machine Scale Sets、さらにはオンプレミス サーバーで実行されているアプリケーションを監視できます。 サーバーに Prometheus をインストールし、Azure Monitor ワークスペースにメトリックを送信するようにリモート書き込みを構成します。

この記事では、セルフマネージド Prometheus インスタンスから Azure Monitor ワークスペースにデータを送信するように、リモート書き込みを構成する方法について説明します。

リモート書き込みオプション

セルフマネージド Prometheus は、Azure 環境と Azure 以外の環境で実行できます。 Prometheus が実行されている環境に基づく Azure Monitor ワークスペースへのリモート書き込みの認証オプションを次に示します。

Azure マネージド Virtual Machines と Virtual Machine Scale Sets

Azure 環境でセルフ マネージド Prometheus を実行するサービスには、ユーザー割り当てマネージド ID 認証を使用します。 Azure マネージド サービスには、次のものが含まれます。

  • Azure Virtual Machines
  • Azure Virtual Machine Scale Sets
  • Azure Arc 対応仮想マシン

Azure 管理対象リソースのリモート書き込みを設定するには、「ユーザー割り当てマネージド ID を使用したリモート書き込み」を参照してください。

Azure 以外の環境で実行されている仮想マシン。

Azure Arc 対応サービスにオンボードすると、Azure で Azure 以外の仮想マシンを管理および構成できます。 オンボードしたら、ユーザー割り当てマネージド ID を使用したリモート書き込みの認証を構成します。 Azure Arc 対応サーバーへの Virtual Machines のオンボードの詳細については、Azure Arc 対応サーバーに関するページを参照してください。

Azure 以外の環境に仮想マシンがあり、Azure Arc にオンボードしない場合は、セルフマネージド Prometheus をインストールし、Microsoft Entra ID アプリケーション認証を使用してリモート書き込みを構成します。 詳細については、Microsoft Entra ID アプリケーション認証を使用したリモート書き込みの説明を参照してください。

前提条件

サポートされているバージョン

  • マネージド ID 認証には、v2.45 より大きい Prometheus バージョンが必要です。
  • Microsoft Entra ID アプリケーション認証には、v2.48 より大きい Prometheus バージョンが必要です。

Azure Monitor ワークスペース

この記事では、Prometheus メトリックを Azure Monitor ワークスペースに送信する方法について説明します。 Azure Monitor ワークスペースを作成するには、Azure Monitor ワークスペースの管理に関するページを参照してください。

アクセス許可

この記事の手順を完了するには、クラスターまたはリソースの管理者アクセス許可が必要です。

リモート書き込みの認証を設定する

Prometheus が実行されている環境に応じて、ユーザー割り当てマネージド ID または Microsoft Entra ID アプリケーション認証を使用して Azure Monitor ワークスペースにデータを送信するようにリモート書き込みを構成できます。

Azure portal または CLI を使用して、ユーザー割り当てマネージド ID または Microsoft Entra ID アプリケーションを作成します。

ユーザー割り当てマネージド ID 認証を使用したリモート書き込み

Azure Monitor ワークスペースへのリモート書き込み用にユーザー割り当てマネージド ID を構成するには、次の手順を実行します。

ユーザー割り当てマネージド ID を作成する

リモート書き込み構成で使用するユーザーマネージド ID を作成するには、「ユーザー割り当てマネージド ID の管理」を参照してください。

作成したマネージド ID の clientId の値をメモします。 この ID は、Prometheus のリモート書き込み構成で使用されます。

監視メトリック発行者ロールをアプリケーションに割り当てる

ワークスペースのデータ収集ルールの Monitoring Metrics Publisher ロールをマネージド ID に割り当てます。

  1. Azure Monitor ワークスペースの [概要] ページで、[データ収集ルール] リンクを選択します。

    Azure Monitor ワークスペース ページのデータ収集ルールのリンクを示すスクリーンショット。

  2. データ収集ルールのページで、[アクセス制御 (IAM)] を選択します。

  3. [追加] および [ロールの割り当ての追加] を選択します。 データ収集ルールを示すスクリーンショット。

  4. [監視メトリック発行者] を検索して選択し、[次へ] を選択します。 データ収集ルールのロールの割り当てメニューを示すスクリーンショット。

  5. [マネージド ID] を選択します。

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

  7. [マネージド エンティティ] ドロップダウンで、[ユーザー割り当てマネージド ID] を選択します。

  8. 使用するユーザー割り当て ID を選択し、[選択] をクリックします。

  9. [確認と割り当て] を選択して、ロールの割り当てを完了します。

    データ収集ルールのメンバーの選択メニューを示すスクリーンショット。

マネージド ID を Virtual Machines または Virtual Machine Scale Sets に割り当てます。

重要

このセクションの手順を完了するには、Virtual Machines または Virtual Machine Scale Sets の所有者またはユーザー アクセス管理者のアクセス許可が必要です。

  1. Azure portal で、クラスター、Virtual Machines、または Virtual Machine Scale Sets のページに移動します。

  2. [ID] を選択します。

  3. [ユーザー割り当て] を選びます。

  4. [追加] を選択します。

  5. 作成したユーザー割り当てマネージド ID を選択し、[追加] を選択します。

    [ユーザー割り当てマネージド ID の追加] ページのスクリーンショット。

リモート書き込みを構成する

リモート書き込みは Prometheus 構成ファイル prometheus.yml で構成されます。

リモート書き込みの構成の詳細については、Prometheus.io の構成の記事を参照してください。 リモート書き込み構成のチューニングの詳細については、リモート書き込みのチューニングのページを参照してください。

Azure Monitor ワークスペースにデータを送信するには、セルフマネージド Prometheus インスタンスの構成ファイルに次のセクションを追加します。

remote_write:   
  - url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
# AzureAD configuration.
# The Azure Cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
  azuread:
    cloud: 'AzurePublic'
    managed_identity:
      client_id: "<client-id of the managed identity>"
    oauth:
      client_id: "<client-id from the Entra app>"
      client_secret: "<client secret from the Entra app>"
      tenant_id: "<Azure subscription tenant Id>"

url パラメーターは、Azure Monitor ワークスペースのメトリック インジェスト エンドポイントを指定します。 これは、Azure portal の Azure Monitor ワークスペースの [概要] ページにあります。

Azure Monitor ワークスペースのメトリック インジェスト エンドポイントを示すスクリーンショット。

実装に応じて、managed_identity、または Microsoft Entra ID アプリケーション認証の oauth を使用します。 使用していないオブジェクトを削除します。

次の Azure CLI コマンドを使用して、マネージド ID のクライアント ID を見つけます。

az identity list --resource-group <resource group name>

詳細については、「az identity list」を参照してください。

ポータルでマネージド ID 認証用のクライアントを見つけるには、Azure portal の [マネージド ID] ページに移動し、関連する ID 名を選択します。 ID の概要ページから [クライアント ID] の値をコピーします。

ID の概要ページのクライアント ID を示すスクリーンショット。

Microsoft Entra ID アプリケーションのクライアント ID を見つけるには、次の CLI を使用するか、Azure portal を使用して Microsoft Entra ID アプリケーションを作成する方法を説明するセクションの最初の手順を参照してください。

$ az ad app list --display-name < application name>

詳細については、「az ad app list」を参照してください。

Note

構成ファイルを編集した後、Prometheus を再起動して変更を適用します。

リモート書き込みデータが送信されていることを確認する

Prometheus のデータが Azure Monitor ワークスペースに送信されていることを確認するには、次の方法を使用します。

PromQL を使用した Azure Monitor メトリックス エクスプローラー

メトリックが Azure Monitor ワークスペースに送信されているかどうかを確認するには、Azure portal の Azure Monitor ワークスペースから [メトリック] を選択します。 メトリックス エクスプローラーを使用して、セルフマネージド Prometheus 環境から予想されるメトリックに対してクエリを実行します。 詳細については、メトリックス エクスプローラーの説明を参照してください。

Azure Monitor ワークスペース内の Prometheus エクスプローラー

Prometheus エクスプローラーは、Azure 環境内で Prometheus メトリックを操作して、監視とトラブルシューティングをより効率的にする便利な方法を提供します。 Prometheus エクスプローラーを使用するには、Azure portal 内でご利用の Azure Monitor ワークスペースに移動し、[Prometheus Explorer]\(Prometheus エクスプローラー\) を選択して、セルフマネージド Prometheus 環境に対して求めるメトリックのクエリを実行します。 詳しくは、Prometheus エクスプローラーの説明を参照してください。

Grafana

Grafana で PromQL クエリを使用し、結果から期待されるデータが返されることを確認します。 Grafana を構成するには、マネージド Prometheus で Grafana をセットアップするをご参照ください。

リモート書き込みのトラブルシューティング

Azure Monitor ワークスペースにリモート データが表示されない場合は、「リモート書き込みのトラブルシューティング」で一般的な問題と解決策を確認してください。

次のステップ