次の方法で共有


Prometheus のマネージド サービスを使用して Istio メトリックを収集する

Istio は、既存の分散アプリケーションに透過的にレイヤー化するオープンソース サービス メッシュです。 特に分散アプリケーション アーキテクチャでは、サービスをセキュリティで保護、接続、監視するための統一された効率的な方法が提供されます。

Istio は、アプリケーション コードを変更することなく、トラフィック管理、可観測性、セキュリティ、ポリシーの適用などの機能を提供することで、開発者がサービス間の対話を処理するのに役立ちます。 これは、最新のクラウドネイティブ アプリケーション (特に Kubernetes) で広く使用されています。

Azure Kubernetes Service (AKS) では、AKS および Azure Arc 対応 Kubernetes との統合について公式にサポートおよびテストされている Istio ベースのサービス メッシュ アドオン が提供されるようになりました。

Prometheus 用の Azure Monitor マネージド サービスを使用すると、メトリックを大規模に収集して分析できます。 Prometheus メトリックは、Azure Monitor ワークスペースに格納されます。 ワークスペースでは、Azure Managed Grafana、PromQL を使用した Azure Monitor メトリック ス エクスプローラー、PromQL や Grafana などのオープンソース ツールなどの分析ツールがサポートされています。

この記事では、Prometheus 用の Azure Monitor マネージド サービスを使用して、AKS または Azure Arc 対応 Kubernetes 用の Istio ベースのサービス メッシュ アドオンを使用して Istio メトリックを収集する手順について説明します。 その後、Azure Managed Grafana でメトリックを視覚化できます。

[前提条件]

  • インストールされて構成されている Azure CLI。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。

    AKS 用の Istio ベースのサービス メッシュ アドオンを使用している場合は、Azure CLI バージョン 2.57.0 以降がインストールされている必要があります。 az --versionを実行してバージョンを確認できます。

  • Kubernetes クラスターと対話するためにインストールされた Kubectl。

制限事項

  • AKS 用の Istio ベースのサービス メッシュ アドオンの使用に関する制限事項の一覧については、 アドオンに関する概要記事を参照してください。
  • 現時点では、相互 TLS 認証を使用して Istio セットアップからメトリックを収集することはできません。
  • 現時点では、Prometheus のマネージド サービスで Kiali サービス メッシュ視覚化を使用するためのサポートはありません。

Istio、Prometheus のマネージド サービス、Azure Managed Grafana を設定する

Prometheus のマネージド サービスが有効になっている AKS クラスターを作成する

まず、AKS クラスターを作成 (または既存のものを使用) し、Prometheus と Azure Managed Grafana のマネージド サービスを有効にする必要があります。 手順については、「 AKS クラスターで Prometheus と Grafana を有効にする」を参照してください

Azure CLI を使用して新しい AKS クラスターを作成する場合は、次のコマンドを使用できます。

az group create --name myResourceGroup --___location eastus
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2  --enable-azure-monitor-metrics --generate-ssh-keys

Istio を設定する

Prometheus のマネージド サービスを使用して、AKS 用のオープンソースの Istio と Istio ベースのサービス メッシュ アドオンの両方からメトリックを収集できます。

AKS 資格情報を取得する

az account set --subscription <subscription id>
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Istio メトリックを収集するように Prometheus のマネージド サービスを設定する

Prometheus のマネージド サービスを使用して Istio セットアップからメトリックを収集するには、ポッドの注釈を使用できます。 これらの注釈は、Istio で自動的に設定されます。 Prometheus のマネージド サービスでポッド注釈ベースのスクレイピングを有効にする必要があります。

スクレイピングを有効にするには、Prometheus (ama-metrics-settings-configmap.yaml) のマネージド サービスの構成マップをカスタマイズして、 istio-system 名前空間と Istio サイドカーセットアップの名前空間を含めます。 たとえば、サイドカーを my-namespaceに挿入するように Istio を設定した場合は、次のように構成マップを更新します。

pod-annotation-based-scraping: |-
    podannotationnamespaceregex = "aks-istio-system|my-namespace"

警告

多くの名前空間からポッドの注釈を取得すると、注釈を持つポッドの数に応じて大量のメトリックが生成される可能性があります。

詳細については、「 ポッド注釈ベースのスクレーピングを有効にする」を参照してください。

更新された構成マップを AKS クラスターに適用します。

kubectl apply -f ama-metrics-settings-configmap.yaml

Istio メトリックのクエリ

Istio から収集されたメトリックは、Prometheus のマネージド サービスに関連付けられている Azure Monitor ワークスペースに格納されます。 ワークスペースから直接メトリクスを照会することも、ワークスペースに接続されたAzure Managed Grafanaインスタンスを通じて照会することもできます。

Azure Monitor ワークスペースで Istio メトリックを表示するには:

  1. Azure portal で、AKS クラスターに移動します。

  2. [ 監視] で、[ Insights>Monitor の設定] を選択します。

    Azure Monitor ワークスペースの表示選択を示す図です。

  3. Azure Monitor のワークスペースインスタンスを選択します。 インスタンスの概要ページで、[ メトリック] セクションを選択して 、istio_requests_totalのメトリックを照会します。

    代わりに、Azure Managed Grafana インスタンスを選択することができます。 次に、インスタンス概要ページでエンドポイントURLを選択します。 このアクションにより、Grafana ポータルが開き、Azure Container Storage メトリックに対してクエリを実行できます。 データ ソースは、自動的に構成されているため、関連する Azure Monitor ワークスペースからメトリクスを照会できます。

Azure Monitor ワークスペースから Prometheus メトリクスをクエリする方法の詳細については、Grafana を Azure Monitor の Prometheus メトリクスに接続する を参照してください。

Istio の Grafana ダッシュボードをインポートする

ID または JSON を使用して次の Grafana ダッシュボードをインポートするには、「 Grafana でのダッシュボードのインポート」の手順に従います。

概要

この記事では、Istio ベースのサービス メッシュ アドオンからメトリックを収集するために Prometheus のマネージド サービスを構成する方法を示しました。 その後、Azure Monitor で収集されたメトリックに対してクエリを実行する方法を示しました。

この記事の手順に従うことで、Azure 上の Prometheus のマネージド サービスを使用して Istio を効果的に監視できます。 この監視により、アプリケーションのパフォーマンスと動作に関する貴重な分析情報を得ることができます。

トラブルシューティング

問題が発生した場合は、Prometheus インターフェースに関するトラブルシューティング情報を参照してください。