仮想マシン、スケール セット、または Kubernetes クラスターから Azure Monitor ワークスペースに Prometheus メトリックを送信する
Prometheus は、Kubernetes クラスターの監視に限定されません。 Prometheus を使用して、サーバー上で実行されているアプリケーションとサービスを、実行している場所を問わず監視します。 たとえば、Virtual Machines、Virtual Machine Scale Sets、さらにはオンプレミス サーバーで実行されているアプリケーションを監視できます。 また、セルフマネージド クラスターと Prometheus サーバーから Azure Monitor ワークスペースに Prometheus メトリックを送信することもできます。 サーバーに Prometheus をインストールし、Azure Monitor ワークスペースにメトリックを送信するようにリモート書き込みを構成します。
この記事では、セルフマネージド Prometheus インスタンスから Azure Monitor ワークスペースにデータを送信するように、リモート書き込みを構成する方法について説明します。
リモート書き込みオプション
セルフマネージド Prometheus は、Azure 環境と Azure 以外の環境で実行できます。 Prometheus が実行されている環境に基づく Azure Monitor ワークスペースへのリモート書き込みの認証オプションを次に示します。
Azure マネージド Virtual Machines、Virtual Machine Scale Sets、および Kubernetes クラスター
Azure 環境でセルフ マネージド Prometheus を実行するサービスには、ユーザー割り当てマネージド ID 認証を使用します。 Azure マネージド サービスには、次のものが含まれます。
- Azure Virtual Machines
- Azure Virtual Machine Scale Sets
- Azure Arc 対応仮想マシン
- Azure Kubernetes Service (AKS)
Azure マネージド リソースのリモート書き込みを設定するには、「ユーザー割り当てマネージド ID を使用したリモート書き込み」を参照してください。
Azure 以外の環境で実行されている仮想マシンと Kubernetes クラスター。
Azure 以外の環境に仮想マシンまたは Kubernetes クラスターがあり、Azure Arc にオンボードしない場合は、セルフマネージド Prometheus をインストールし、Microsoft Entra ID アプリケーション認証を使用してリモート書き込みを構成します。 詳細については、Microsoft Entra ID アプリケーション認証を使用したリモート書き込みの説明を参照してください。
Azure Arc 対応サービスにオンボードすると、Azure で Azure 以外の仮想マシンを管理および構成できます。 オンボードしたら、ユーザー割り当てマネージド ID を使用したリモート書き込みの認証を構成します。 Azure Arc 対応サーバーへの Virtual Machines のオンボードの詳細については、Azure Arc 対応サーバーおよび Azure Arc 対応 Kubernetes に関するページを参照してください。
前提条件
サポートされているバージョン
- マネージド 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 認証を使用したリモート書き込み
ユーザー割り当てマネージド ID 認証は、すべての Azure マネージド環境で使用できます。 Prometheus サービスが Azure 以外の環境で実行されている場合は、Entra ID アプリケーション認証を使用できます。
Azure Monitor ワークスペースへのリモート書き込み用にユーザー割り当てマネージド ID を構成するには、次の手順を実行します。
ユーザー割り当てマネージド ID を作成する
リモート書き込み構成で使用するユーザーマネージド ID を作成するには、「ユーザー割り当てマネージド ID の管理」を参照してください。
作成したマネージド ID の clientId
の値をメモします。 この ID は、Prometheus のリモート書き込み構成で使用されます。
監視メトリック発行者ロールをアプリケーションに割り当てる
ワークスペースのデータ収集ルールで、Monitoring Metrics Publisher
ロールをマネージド ID に割り当てます。
Azure Monitor ワークスペースの [概要] ページで、[データ収集ルール] リンクを選択します。
データ収集ルールのページで、[アクセス制御 (IAM)] を選択します。
[マネージド ID] を選択します。
[メンバーの選択] を選びます。
[マネージド エンティティ] ドロップダウンで、[ユーザー割り当てマネージド ID] を選択します。
使用するユーザー割り当て ID を選択し、[選択] をクリックします。
[確認と割り当て] を選択して、ロールの割り当てを完了します。
マネージド ID を仮想マシンまたは仮想マシン スケール セットに割り当てる
重要
このセクションの手順を完了するには、Virtual Machines または Virtual Machine Scale Sets の所有者またはユーザー アクセス管理者のアクセス許可が必要です。
Azure portal で、クラスター、Virtual Machines、または Virtual Machine Scale Sets のページに移動します。
[ID] を選択します。
[ユーザー割り当て] を選びます。
[追加] を選択します。
作成したユーザー割り当てマネージド ID を選択し、[追加] を選択します。
Azure Kubernetes Service のマネージド ID を割り当てる
Azure Kubernetes サービス (AKS) の場合、マネージド ID を仮想マシン スケール セットに割り当てる必要があります。
AKS は、仮想マシン スケール セットを含むリソース グループを作成します。 リソース グループ名の形式は MC_<resource group name>_<AKS cluster name>_<region>
です。
リソース グループ内の仮想マシン スケール セットごとに、前のセクションの「マネージド ID を仮想マシンまたは仮想マシン スケール セットに割り当てる」の手順に従ってマネージド ID を割り当てます。
リモート書き込みを構成する
リモート書き込みは、Prometheus 構成ファイル prometheus.yml
または Prometheus Operator で構成されます。
リモート書き込みの構成の詳細については、Prometheus.io の構成の記事を参照してください。 リモート書き込み構成のチューニングの詳細については、リモート書き込みのチューニングのページを参照してください。
Kubernetes クラスターで Prometheus Operator を実行している場合は、次の手順に従って Azure Monitor ワークスペースにデータを送信します。
- Microsoft Entra ID 認証を使用している場合は、base64 エンコードを使用してシークレットを変換し、そのシークレットを Kubernetes クラスターに適用します。 次を yaml ファイルに保存します。 マネージド ID 認証を使用している場合は、この手順をスキップします。
apiVersion: v1
kind: Secret
metadata:
name: remote-write-secret
namespace: monitoring # Replace with namespace where Prometheus Operator is deployed.
type: Opaque
data:
password: <base64-encoded-secret>
シークレットを適用します。
# set context to your cluster
az aks get-credentials -g <aks-rg-name> -n <aks-cluster-name>
kubectl apply -f <remote-write-secret.yaml>
- Prometheus Operator でリモート書き込みセクションの値を更新する必要があります。 次のコードをコピーし、yaml ファイルとして保存します。 yaml ファイルの値については、以下のセクションを参照してください。 Prometheus Operator での Azure Monitor ワークスペースのリモート書き込み仕様の詳細については、Prometheus Operator のドキュメントを参照してください。
prometheus:
prometheusSpec:
remoteWrite:
- url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
azureAd:
# AzureAD configuration.
# The Azure Cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
cloud: 'AzurePublic'
managedIdentity:
clientId: "<clientId of the managed identity>"
oauth:
clientId: "<clientId of the Entra app>"
clientSecret:
name: remote-write-secret
key: password
tenantId: "<Azure subscription tenant Id>"
- helm を使用し、上記の yaml ファイルを使用してリモート書き込み構成を更新します。
helm upgrade -f <YAML-FILENAME>.yml prometheus prometheus-community/kube-prometheus-stack --namespace <namespace where Prometheus Operator is deployed>
url
パラメーターは、Azure Monitor ワークスペースのメトリック インジェスト エンドポイントを指定します。 これは、Azure portal の 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] の値をコピーします。
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 ワークスペースにリモート データが表示されない場合は、「リモート書き込みのトラブルシューティング」で一般的な問題と解決策を確認してください。
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示