Prometheus 用 Azure Monitor マネージド サービスでのリモート書き込み

Prometheus 用 Azure Monitor マネージド サービスは、自己管理型 Prometheus の代わりになることを目的としています。そのため、お客様は Kubernetes クラスターで Prometheus サーバーを管理する必要がありません。 また、このマネージド サービスを使用して、長期的なデータ保持のためにセルフマネージド Prometheus クラスターのデータを一元化し、クラスター全体の一元化されたビューを作成することもできます。 その場合、remote_write を使用して、セルフマネージド Prometheus から Microsoft のマネージド サービスにデータを送信できます。

アーキテクチャ

Azure Monitor には、リバース プロキシ コンテナー (Azure Monitor サイド カー コンテナー) が用意されています。これは、Prometheus リモート書き込みメトリックを取り込むための抽象化を提供し、パケットの認証を支援するものです。 現在、Azure Monitor サイド カー コンテナーでは、Prometheus リモート書き込みメトリックを Azure Monitor ワークスペースに取り込むために、ユーザー割り当て ID と Microsoft Entra ID ベースの認証がサポートされています。

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

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

リモート書き込みの構成

リモート書き込みの構成は、クラスターの構成と、使用する認証の種類によって異なります。

  • マネージド ID は、Azure Kubernetes サービス (AKS) と Azure Arc 対応 Kubernetes クラスターに推奨されています。
  • Microsoft Entra ID は、Azure Kubernetes サービス (AKS) と Azure Arc 対応 Kubernetes クラスターに使用でき、別のクラウドまたはオンプレミスで実行されている Kubernetes クラスターに必要です。

Kubernetes クラスターのリモート書き込みを構成する方法の詳細については、次の記事を参照してください。

Virtual Machines と仮想マシン スケール セットからのリモート書き込み

Prometheus データは、リモート書き込みを使用し、Virtual Machines と仮想マシン スケール セットから Azure Monitor ワークスペースに送信できます。 サーバーは、Azure で管理することも、他の任意の環境に置くこともできます。 詳細については、「Virtual Machines から Azure Monitor ワークスペースに Prometheus メトリックを送信する」を参照してください。

リモート書き込みが正しく動作していることを確認する

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

Kubectl コマンド

サイド カー コンテナーからログを表示するには、次のコマンドを使用します。 出力値が avgBytesPerRequest および avgRequestDuration で 0 以外の場合、リモート書き込みデータが流れています。

kubectl logs <Prometheus-Pod-Name> <Azure-Monitor-Side-Car-Container-Name> --namespace <namespace-where-Prometheus-is-running>
# example: kubectl logs prometheus-prometheus-kube-prometheus-prometheus-0 prom-remotewrite --namespace monitoring

このコマンドからの出力は次の形式になります。

time="2022-11-02T21:32:59Z" level=info msg="Metric packets published in last 1 minute" avgBytesPerRequest=19713 avgRequestDurationInSec=0.023 failedPublishing=0 successfullyPublished=122

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

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

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

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

Grafana

Grafana で PromQL クエリを使用し、結果から期待されるデータが返されることを確認します。 Azure の Prometheus 用マネージド サービス向けに Grafana を構成する方法について詳しくは、「管理システム ID を使用して Grafana のデータ ソースとして Prometheus 用 Azure Monitor マネージド サービスを使用する」をご覧ください

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

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

次のステップ