Young Leaves

Container Insights とManaged Prometheus + Grafana を使いAzure Kubernetes Service (AKS) クラスターを監視する

Kubernetes のクラスターやNode、Pod の監視にPrometheus、Grafana を使うことがあります。今回はAzure のContainer Insights とManaged Prometheus、Managed Grafana を使いAzure Kubernetes Service クラスターの状態を監視するところまでを説明します。

実施環境

Azure CLI

2.68.0

k8s-extension

1.6.3

Kubernetes (AKS)

1.31.3

前提条件

  • Azure CLI の実行環境があること
  • Azure CLI にk8s-extension がインストールされていること
  • Azure CLI にaks-preview 拡張機能がアンインストールされていること

Container Insights とは

Azure Monitor の Container Insights は、Azure Kubernetes Service (AKS) や Azure Arc 対応 Kubernetes クラスターからコンテナーのログとメトリックデータを収集し、分析するための機能です。これにより、クラスター内のさまざまなコンポーネントのパフォーマンスや状態を監視できます。

Container Insights は主にコンテナのログやメトリクスデータの収集や収集したデータの分析と可視化、特定の条件に基づいたアラート設定を行います。Container Insights は、Azure Monitor の一部として、Kubernetes クラスターの包括的な監視を提供し、運用の効率化と問題の早期発見に役立ちます。

Azure のManaged Prometheus とManaged Grafana

Prometheus はコンテナの監視でよく利用されるオープンソースの監視ツールです。Azure では Prometheus をフルマネージドサービスとして提供し、Azure Kubernetes Service (AKS) や Azure Arc 対応の Kubernetes クラスター、Azure 仮想マシン、Azure 仮想マシンスケールセットから Prometheus メトリクスを取得できます。フルマネージドのサービスとなるためKubernetes でPrometheus 用のコンテナを準備したり運用・管理が不要となります。Managed Prometheus ではAKS と関連付けることでCPU やメモリ、ネットワークなどの基本的なメトリクスを容易に取得できます。Prometheus のメトリクスはAzure Monitor ワークスペースに格納され、統合的なデータ管理を行うことができます。

Azure Managed Grafana はAzure でマネージドの Grafana を提供するサービスです。マネージドサービスのため、AKS で Grafana 用のPod を作成することなく、Azure Monitor やManaged Prometheus のメトリクスをGrafana のダッシュボードで可視化できます。Grafana に慣れているユーザーはそのままのUI でAzure のメトリクスを設定できます。また、Managed Grafana ではMicrosoft Entra ID の認証やアクセス制御もサポートしており、Entra ID を利用したセキュリティ対策もAzure 上で容易に行えます。

Azure Managed Grafana ではEssential とStandard の価格レベルがあり、それぞれ利用可能な機能が異なります。Essential は2025年2月8日現在でプレビュー機能となっており、利用するにはAzure Portal から作成する必要があります。Managed Grafana の詳細な料金は以下ページを参照してください。

Azure Managed Grafana の価格

Azure の Managed Prometheus と Managed Grafana を活用することで、Kubernetes クラスターの監視と可視化が大幅に簡素化され、運用の効率化ができます。

今回の構成

今回はAKS にManaged Prometheus とManaged Grafana を関連付け、ダッシュボードで情報を確認するところまでを実施します。

リソースプロバイダーの登録

初めにManaged Grafana ワークスペースを利用するために Microsoft.Dashboard をリソースプロバイダーに登録します。

# リソースプロバイダーでMicrosoft.Dashboardを登録する 
az provider register --namespace Microsoft.Dashboard

Managed Grafana ワークスペース、AKS の作成

初めにContainer Insights を有効にするAKS クラスターを作成します。今回はクラスター作成時にManaged Prometheusの有効化、Managed Grafanaの関連付けを行います。

# リソースグループを作成する
az group create --name rg-aksmonitoring --location japaneast

# Managed Grafanaワークスペースを作成する
# Azure CLIでamg、monitor-control-serviceの拡張機能インストールを求められたらYを入力する
az grafana create \
    --resource-group rg-aksmonitoring \
    --name amg-aksmonitoring

# Managed GrafanaのリソースIDを取得する
GRAFANA_ID=$(az grafana show \
    --resource-group rg-aksmonitoring \
    --name amg-aksmonitoring \
    --query id -o tsv)

# AKSクラスターを作成する
az aks create \
    --resource-group rg-aksmonitoring \
    --name aks-monitoringtest \
    --kubernetes-version 1.31.3 \
    --grafana-resource-id $GRAFANA_ID \
    --enable-azure-monitor-metrics \
    --enable-managed-identity \
    --generate-ssh-keys

AKS クラスター作成後、Container Insights を有効化します。

# Container Insightsを有効化する
az aks enable-addons \
    --resource-group rg-aksmonitoring \
    --name aks-monitoringtest \
    --addon monitoring

Grafana ワークスペースの確認

Container Insights の有効化後、Azure Potral からManaged Grafana を選択します。概要画面にManaged Grafana のURL が表示されるため、URL からGrafana の画面に遷移します。認証はEntra ID にて認証され、認証後にGrafana の管理コンソールが表示されます。

Grafana の画面遷移後、左上ペインからDashboard を選択します。選択後、メトリクスの種類に Azure Managed Prometheus があることを確認します。

Azure Managed Prometheus を選択し、Kubernetes / Compute Resources / Cluster を選択するとAKS クラスターのリソース状態を確認できます。画面では海外の時間帯となっているため、時間帯を変更したい場合はGrafana 側で設定変更を行ってください。

ダッシュボードをカスタマイズしたい場合、Grafana 上でAzure Monitor やManaged Prometheus をデータソースに指定してクエリを追加できます。

リソースのクリーンアップ

各種確認を完了後、リソースをクリーンアップします。

# リソースをクリーンアップする
az group delete --name rg-aksmonitoring

まとめ

  • Azure Kubernetes Service の監視にはAzure Monitor のContainer Insights やManaged Prometheus、Grafana がある
  • AKS で監視するにはManaged Prometheus、Grafana を関連付けることでAKS の各種情報を即座に取得できる
  • Managed Grafana でもAzure Monitor やManaged Prometheus のメトリクスからクエリを発行し、独自のダッシュボードを作成できる

参考資料