次の方法で共有


Azure Kubernetes Service の監視

Kubernetes プラットフォームは、複雑な分散システムです。 Kubernetes のデプロイを複数のレベルで監視する必要があります。 Azure Kubernetes Service (AKS) はマネージド Kubernetes サービスですが、複数のレベルでデプロイを監視するには、同じ厳しさが必要です。 この記事では、AKS クラスターを監視するための概要情報とベスト プラクティスについて説明します。

ヒント

Azure で Microsoft Copilot を使用して、Azure portal で AKS クラスターの監視を構成できます。 詳細については、「 Azure で Microsoft Copilot を使用して AKS クラスターを効率的に操作する」を参照してください。

洞察

Azure の一部のサービスについては、サービスを監視するための開始点となる監視ダッシュボードが Azure portal に組み込まれています。 これらのダッシュボードは、"分析情報" と呼ばれており、Azure portal の Azure Monitor の [分析情報ハブ] にあります。

Azure Monitor の Container Insights は、ノード、ポッド、コンテナー、永続ボリュームのカスタム メトリックを収集します。 詳細については、「Container Insights によって収集されるメトリック」を参照してください。

Application Insights は、アプリケーションの パフォーマンスを監視するのに役立ちます。 コードを変更して Application Insights を有効にするには、Azure Monitor での OpenTelemetry の有効化に関する記事をご覧ください。 コードを変更しないで Application Insights を有効にするには、AKS の自動インストルメンテーションに関する記事をご覧ください。 インストルメンテーションの詳細については、 データ収集の基本について説明します。

データの監視

AKS では、「Azure リソースからのデータの監視」で説明されているように、他の Azure リソースと同じ種類の 監視データが生成されます。 AKS によって作成されたメトリックとログの詳細については、 AKS 監視データのリファレンスを参照してください

他の Azure サービスと機能は、他のデータを収集し、次の図と表に示すように他の分析オプションを有効にします。

AKS から収集される監視データの図。

source 説明
プラットフォームのメトリック AKS クラスターのプラットフォームのメトリックは、コストなしで自動的に収集されます。 これらのメトリックは、 メトリック ス エクスプローラー を使用して分析することも、 メトリック アラートを作成するために使用することもできます。
Prometheus のメトリック クラスターの メトリック スクレイピングを有効 にすると、Azure Monitor の Prometheus のマネージド サービス によって Prometheus メトリック が収集され、 Azure Monitor ワークスペースに格納されます。 Azure Managed Grafana事前構築済みダッシュボードPrometheus アラートを使用して、これらのメトリックを分析します。
アクティビティ ログ Azure Monitor アクティビティ ログ は、AKS クラスターの一部のデータをコストなしで自動的に収集します。 これらのログ ファイルは、クラスターの作成時やクラスター構成の変更などの情報を追跡します。 アクティビティ ログ データを他のログ データと共に分析するには、 アクティビティ ログ データを Log Analytics ワークスペースに送信します
リソース ログ AKS のコントロール プレーンのログは、リソース ログとして実装されています。 Log Analytics ワークスペースにログを送信する診断設定を作成します。 ワークスペースでは、クエリを使用してログを分析し、ログ情報に基づいてアラートを設定できます。
コンテナーの分析情報 Container Insights は、クラスターからさまざまなログとパフォーマンス データを収集し、 Log Analytics ワークスペースAzure Monitor メトリックに格納します。 Container insights のビューやワークブック、または Log Analyticsメトリック エクスプローラー を使用して、stdout ストリームや stderr ストリームなどのデータを分析します。
Application Insights Azure Monitor の機能である Application Insights は、ログ、メトリック、および分散トレースを収集します。 テレメトリは、Azure portal で分析するために Log Analytics ワークスペース に格納されます。

リソースの種類

Azure では、リソースの種類と ID の概念を使用して、サブスクリプション中のすべての内容を識別します。 リソースの種類は、Azure で実行されているすべてのリソースのリソース ID の一部でもあります。 たとえば、Microsoft.Compute/virtualMachines は、仮想マシンのリソースの種類の 1 つです。 サービスとそれに関連付けられるリソースの種類の一覧については、リソース プロバイダーに関するページを参照してください。

Azure Monitor でも同様に、リソースの種類 ("名前空間" とも呼ばれます) に基づいてコア監視データをメトリックとログに整理します。 リソースの種類に応じてさまざまなメトリックとログが使用できます。 サービスは、複数のリソースの種類に関連付けられる可能性があります。

AKS のリソースの種類の詳細については、 AKS 監視データのリファレンスを参照してください

データ ストレージ

Azure Monitor の場合:

  • メトリック データは、Azure Monitor メトリック データベースに保存されます。
  • ログ データは、Azure Monitor ログ ストアに保存されます。 Log Analytics は、Azure portal のツールの 1 つであり、このストアに対してクエリを実行することができます。
  • Azure アクティビティ ログは、Azure portal に独自のインターフェイスを持つ別のストアです。

必要に応じて、メトリックおよびアクティビティ ログ データを Azure Monitor ログ ストアにルーティングできます。 次に、Log Analytics を使用してデータのクエリを実行し、他のログ データと関連付けることができます。

多くのサービスで診断設定を使用して、メトリックとログ データを Azure Monitor の外部の他のストレージの場所に送信できます。 たとえば、Azure Storage、ホステッド パートナー システムEvent Hubs を使用する Azure 以外のパートナー システムなどがあります。

Azure Monitor によるデータの保存方法の詳細については、「Azure Monitor データ プラットフォーム」を参照してください。

Azure Monitor プラットフォームのメトリック

Azure Monitor により、ほとんどのサービスに関するプラットフォーム メトリックが提供されます。 これらのメトリックは次のとおりです。

  • 名前空間ごとに個別に定義されます。
  • Azure Monitor 時系列メトリック データベースに保存されます。
  • 軽量であり、凖リアルタイムのアラートをサポートできます。
  • リソースのパフォーマンスを時間の経過と共に追跡するために使用されます。

収集: Azure Monitor では、プラットフォーム メトリックを自動的に収集します。 構成は必要ありません。

ルーティング: また、いくつかのプラットフォーム メトリックを Azure Monitor ログまたは Log Analytics にルーティングして、他のログ データを使用してクエリを実行することもできます。 各メトリックの DS エクスポート設定を確認して、診断設定を使用してメトリックを Azure Monitor ログまたは Log Analytics にルーティングできるかどうかを確認します。

Azure Monitor ですべてのリソースに対して収集できるすべてのメトリックの一覧については、Azure Monitor でサポートされているメトリックに関するページを参照してください。

AKS 用に収集できるメトリックの一覧については、 AKS 監視データのリファレンスを参照してください

メトリックは、クラスターの監視、問題の特定、AKS クラスターでのパフォーマンスの最適化において重要な役割を果たします。 プラットフォーム メトリックは、 kube-system 名前空間にインストールされている既定のメトリック サーバーを使用してキャプチャされます。これは、kubelet によって提供されるすべての AKS ノードから定期的にメトリックをスクレイピングします。 また、Prometheus メトリックのマネージド サービスを有効にして、コンテナー メトリックと Kubernetes オブジェクト メトリック (オブジェクトのデプロイ状態を含む) を収集する必要があります。

Prometheus メトリックの既定のマネージド サービスの一覧を表示できます。

詳細については、「 AKS クラスターから Prometheus メトリックのマネージド サービスを収集する」を参照してください

AKS は、API サーバーなどの重要なコントロール プレーン コンポーネントや、Prometheus のマネージド サービスを介したスケジューラからのメトリックも公開します。 現在、この機能はプレビュー段階です。 詳細については、「 AKS コントロール プレーン メトリックの監視 (プレビュー)」を参照してください。 API サーバーおよび etcd のコントロール プレーン メトリックのサブセットは、 Azure Monitor プラットフォーム メトリックを通じて無料で利用できます。 メトリックは既定で収集され、メトリックを使用してメトリックベースのアラートを作成できます。

Azure Monitor ベース以外のメトリック

このサービスは、Azure Monitor メトリック データベースに含まれていない他のメトリックを提供します。

次の Azure サービスと Azure Monitor 機能を使用して、AKS クラスターを監視できます。 これらの機能は、AKS クラスターを作成するときに有効にします。

Azure portal で 、[ 統合 ] タブを使用するか、Azure CLI、Terraform、または Azure Policy を使用します。 クラスターの作成後に、クラスターを監視サービスまたは機能にオンボードできる場合があります。 各サービスまたは機能にはコストが発生する可能性があるため、有効にする前に各コンポーネントの価格情報を参照してください。

サービスまたは機能 説明
コンテナーの分析情報 コンテナー化されたバージョンの Azure Monitor エージェント を使用して、クラスター内の各ノードから stdout および stderr ログと Kubernetes イベントを収集します。 この機能は、AKS クラスターのさまざまな監視シナリオをサポートしています。 AKS クラスターの作成時に、 Azure CLIAzure Policy、Azure portal、または Terraform を使用して監視を有効にすることができます。 クラスターの作成時に Container insights を有効にしない場合は、「 AKS クラスターの Container insights を有効にする 」を参照して、それを有効にする他のオプションを確認してください。

Container Insights では、そのデータの大部分が Log Analytics ワークスペースに格納されます。 通常、クラスターの リソース ログ と同じ Log Analytics ワークスペースを使用します。 使用する必要があるワークスペースの数と場所のガイダンスについては、 Log Analytics ワークスペース アーキテクチャの設計に関するページを参照してください。
Azure Monitor での Prometheus のマネージド サービス Prometheus は、Cloud Native Computing Foundation のクラウドネイティブ メトリック ソリューションです。 これは、Kubernetes クラスターからメトリック データを収集および分析するために使用する最も一般的なツールです。 Azure Monitor での Prometheus のマネージド サービスは、フル マネージドの Prometheus と互換性のある監視ソリューションです。 クラスターの作成時に Prometheus のマネージド サービスを有効にしない場合は、 AKS クラスターから Prometheus メトリックを収集 する方法に関する他のオプションを参照してください。

Azure Monitor の Prometheus のマネージド サービスは、Grafana ワークスペースにリンクされている Azure Monitor ワークスペースにそのデータを格納します。 Azure Managed Grafana を使用してデータを分析できます。
Azure Managed Grafana Grafana のフル マネージド実装。 Grafana は、Prometheus データを表示するために一般的に使用されるオープンソースのデータ視覚化プラットフォームです。 Kubernetes の監視とフル スタックのトラブルシューティングのために、複数の定義済みの Grafana ダッシュボードを使用できます。 クラスターの作成時に Azure Managed Grafana を有効にしない場合は、「 Grafana ワークスペースのリンク」を参照してください。 Azure Monitor ワークスペースにリンクして、クラスターから Prometheus メトリックにアクセスできるようにします。

AKS コントロール プレーン メトリックの監視 (プレビュー)

AKS では、API サーバーなどの重要なコントロール プレーン コンポーネントや、Azure Monitor の Prometheus のマネージド サービスを介したスケジューラからのメトリックも公開されます。 現在、この機能はプレビュー段階です。 詳細については、「 AKS コントロール プレーン メトリックの監視」を参照してください。 API サーバーおよび etcd のコントロール プレーン メトリックのサブセットは、 Azure Monitor プラットフォーム メトリックを通じて無料で利用できます。 これらのメトリックは既定で収集されます。 メトリックを使用してアラートを作成できます。

Azure Monitor リソース ログ

リソース ログでは、Azure リソースによって実行された操作に関する分析情報を提供します。 ログは自動的に生成されますが、保存するかクエリを実行するには、Azure Monitor ログにルーティングする必要があります。 ログはカテゴリに分類されています。 特定の名前空間に複数のリソース ログ カテゴリが含まれる場合があります。

収集: リソース ログは、"診断設定" を作成してログを 1 つ以上の場所にルーティングするまでは収集および保存されません。 診断設定を作成するときは、収集するログのカテゴリを指定します。 診断設定を作成して管理するには、Azure portal、プログラム、Azure Policy など、複数の方法があります。

ルーティング: 既定で推奨されるのは、リソース ログを Azure Monitor ログにルーティングして、他のログ データを使用してクエリを実行できるようにすることです。 Azure Storage、Azure Event Hubs、特定の Microsoft 監視パートナーなど、その他の場所も利用できます。 詳細については、「Azure リソース ログ」およびリソース ログの送信先に関するページを参照してください。

リソース ログの収集、保存、ルーティングの詳細については、「Azure Monitor の診断設定」を参照してください。

Azure Monitor で使用可能なすべてのリソース ログ カテゴリの一覧については、Azure Monitor でサポートされているリソース ログに関するページを参照してください。

Azure Monitor 内のすべてのリソース ログには、同じヘッダー フィールドの後にサービス固有のフィールドがあります。 共通のスキーマの概要については、Azure Monitor リソース ログのスキーマに関する記事をご覧ください。

使用可能なリソース ログ カテゴリ、関連する Log Analytics テーブル、および AKS のログ スキーマについては、 AKS 監視データのリファレンスを参照してください

AKS コントロール プレーン リソース ログ

AKS クラスターのコントロール プレーンのログは、Azure Monitor のリソース ログとして実装されています。 リソース ログは、少なくとも 1 つの場所にルーティングする診断設定を作成するまで収集および保存されません。 通常、リソース ログは Log Analytics ワークスペースに送信されます。このワークスペースには、Container insights のほとんどのデータが格納されます。

Azure portal、Azure CLI、または Azure PowerShell を使用して診断設定を作成する方法については、「 診断設定の作成」を参照してください。 診断設定を作成するときは、収集するログのカテゴリを指定します。 AKS のカテゴリは、 AKS 監視データ リファレンスに記載されています。

Warnung

AKS のリソース ログ (特に kube-audit ログ) を収集すると、大幅なコストが発生する可能性があります。 収集されるデータの量を減らすために、次の推奨事項を検討してください。

  • 不要な場合 kube-audit ログ記録を無効にします。
  • getおよびlist監査イベントを除外する、kube-audit-adminからの収集を有効にします。
  • この記事の説明に従ってリソース固有のログを有効にし、 AKSAudit テーブルを Basic ログとして構成します。

監視に関するその他の推奨事項については、 Azure サービスとクラウドネイティブ ツールを使用した AKS クラスターの監視に関するページを参照してください。 監視コストを削減する方法については、 コストの最適化と Azure Monitor に関するページを参照してください。

AKS では、リソース ログに対して Azure 診断モードまたはリソース固有モードがサポートされています。 Azure 診断モードでは、すべてのデータが AzureDiagnostics テーブルに送信されます。 リソース固有モードでは、データが送信される Log Analytics ワークスペース内のテーブルを指定します。 また、リソース ログの表に示すように、データをAKSAuditAKSAuditAdmin、およびAKSControlPlaneに送信します。

次の理由から、AKS にはリソース固有のモードを使用することをお勧めします。

  • データは、AKS 専用の個々のテーブル内にあるため、クエリが簡単です。
  • リソース固有モードでは、コストを大幅に削減するために 、基本ログ としての構成がサポートされています。

既存の設定を変更する方法など、コレクション モードの違いの詳細については、「 コレクション モードの選択」を参照してください。

診断設定は、Azure CLI を使用して構成できます。 この方法は、クラスターのプロビジョニング状態をチェックしないため、成功するとは限りません。 診断設定を変更した後、クラスターに設定の変更が反映されていることを確認します。

az monitor diagnostic-settings create --name AKS-Diagnostics --resource /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.ContainerService/managedClusters/my-cluster --logs '[{"category": "kube-audit","enabled": true}, {"category": "kube-audit-admin", "enabled": true}, {"category": "kube-apiserver", "enabled": true}, {"category": "kube-controller-manager", "enabled": true}, {"category": "kube-scheduler", "enabled": true}, {"category": "cluster-autoscaler", "enabled": true}, {"category": "cloud-controller-manager", "enabled": true}, {"category": "guard", "enabled": true}, {"category": "csi-azuredisk-controller", "enabled": true}, {"category": "csi-azurefile-controller", "enabled": true}, {"category": "csi-snapshot-controller", "enabled": true}]'  --workspace /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/microsoft.operationalinsights/workspaces/myworkspace --export-to-resource-specific true

サンプル ログ クエリ

重要

AKS クラスター メニューで [ログ ] を選択すると、クエリ スコープが現在のクラスターに設定された状態で Log Analytics が開きます。 ログ クエリには、そのリソースからのデータのみが含まれます。 他のクラスターからのデータまたは他の Azure サービスのデータを含むクエリを実行するには、 Azure Monitor メニューで [ログ] を選択 します。 詳細については、 Log Analytics のログ クエリのスコープと時間範囲に関するページを参照してください。

クラスターの 診断設定 で Azure 診断モードが使用されている場合、AKS のリソース ログは AzureDiagnostics テーブルに格納されます。 [カテゴリ] 列を使用してログを識別します。 各カテゴリの説明については、「AKS リファレンス リソース ログを」参照してください。

説明 ログクエリ
各カテゴリのログをカウントする
(Azure 診断モード)
AzureDiagnostics
| where ResourceType == "MANAGEDCLUSTERS"
| summarize count() by Category
すべての API サーバー ログ
(Azure 診断モード)
AzureDiagnostics
| where Category == "kube-apiserver"
時間範囲内のすべての kube-audit ログ
(Azure 診断モード)
let starttime = datetime("2023-02-23");
let endtime = datetime("2023-02-24");
AzureDiagnostics
| where TimeGenerated between(starttime..endtime)
| where Category == "kube-audit"
| extend event = parse_json(log_s)
| extend HttpMethod = tostring(event.verb)
| extend User = tostring(event.user.username)
| extend Apiserver = pod_s
| extend SourceIP = tostring(event.sourceIPs[0])
| project TimeGenerated, Category, HttpMethod, User, Apiserver, SourceIP, OperationName, event
すべての監査ログ
(リソース固有モード)
AKSAudit
getおよびlist監査イベントを除くすべての監査ログ
(リソース固有モード)
AKSAuditAdmin
すべての API サーバー ログ
(リソース固有モード)
AKSControlPlane
| where Category == "kube-apiserver"

Log Analytics ワークスペース内の事前構築済みクエリのセットにアクセスするには、 Log Analytics クエリ インターフェイスを参照し、 Kubernetes Services リソースの種類を選択します。 コンテナー分析情報の一般的なクエリの一覧については、コンテナー分析情報クエリに関するページを参照してください。

AKS データ プレーン コンテナー分析情報ログ

Container Insights は、コンテナーと AKS クラスターからさまざまな種類のテレメトリ データを収集し、AKS クラスターで実行されているコンテナー化されたアプリケーションの監視、トラブルシューティング、分析情報の取得に役立ちます。 コンテナーの分析情報で使用されるテーブルの一覧と詳細な説明については、「Azure Monitor のテーブル リファレンス」を参照してください。 ログ クエリでは、すべてのテーブルを使用できます。

コスト最適化設定を使用して、Container insights エージェントを使用して収集されたメトリック データをカスタマイズおよび制御します。 この機能では、個々のテーブル選択、データ収集間隔、および名前空間のデータ収集設定をサポートし、 Azure Monitor データ収集規則 (DCR) を使用してデータ収集を除外します。 これらの設定は、インジェストの量を制御し、Container Insights の監視コストを削減します。 次のオプションを使用して、Azure portal で収集された Container insights データをカスタマイズできます。 [すべて] (既定値) 以外のオプションを選択すると、Container insights エクスペリエンスは使用できなくなります。

グループ化 テーブル 注記
すべて (既定値) すべての標準コンテナー分析情報テーブル 既定の Container Insights の視覚化を有効にするために必要です。
パフォーマンス PerfInsightsMetrics
ログとイベント ContainerLog または ContainerLogV2KubeEventsKubePodInventory Prometheus メトリックに対してマネージド サービスを有効にした場合に推奨されます。
ワークロード、デプロイメント、および HPA InsightsMetricsKubePodInventoryKubeEventsContainerInventoryContainerNodeInventoryKubeNodeInventoryKubeServices
永続ボリューム InsightsMetricsKubePVInventory

ログとイベントのグループ化では、ContainerLog または ContainerLogV2KubeEventsおよび KubePodInventory テーブルのログがキャプチャされますが、メトリックはキャプチャされません。 メトリックを収集するための推奨パスは、AKS クラスターから Prometheus のマネージド サービス を有効にし、データの視覚化に Azure Managed Grafana を使用することです。 詳細については、「Azure Monitor ワークスペースの管理」を参照してください。

ContainerLogV2 スキーマ

Azure Monitor の Container Insights には、コンテナー ログの推奨スキーマ ContainerLogV2 が用意されています。 この形式には、AKS および Azure Arc 対応 Kubernetes クラスターに関連するデータを表示するための一般的なクエリ用の次のフィールドが含まれています。

  • ContainerName
  • PodName
  • PodNamespace

このスキーマは、標準の分析ログに代わる低コストの代替手段を提供する Basic ログ テーブル データ プランと互換性があります。 基本的なログ テーブル データ プランを使用すると、デバッグ、トラブルシューティング、監査のために、大量の詳細なログを Log Analytics ワークスペースに取り込んで格納するコストを節約できます。 分析とアラートのコストには影響しません。 詳細については、「Log Analytics ワークスペースのテーブルを管理する」を参照してください。

Azure Resource Manager テンプレート (ARM テンプレート)、Bicep、Terraform、Azure Policy、または Azure portal を使用してマネージド ID 認証を使用して Container Insights をオンボードする場合は、既定の ContainerLogV2 スキーマを使用することをお勧めします。 クラスターの DCR または configmap を使用して ContainerLogV2 を有効にする方法の詳細については、「 ContainerLogV2 スキーマを有効にする」を参照してください。

Azure 活動ログ

アクティビティ ログには、各 Azure リソースの操作を、そのリソースの外部から見た視点で追跡するサブスクリプション レベルのイベント (新しいリソースの作成や仮想マシンの起動など) が含まれています。

収集: アクティビティ ログ イベントは、Azure portal で表示するために、個別のストアに自動的に生成および収集されます。

ルーティング: アクティビティ ログ データを Azure Monitor ログに送信すると、他のログ データと共に分析することができます。 Azure Storage、Azure Event Hubs、特定の Microsoft 監視パートナーなど、その他の場所も利用できます。 アクティビティ ログをルーティングする方法の詳細については、Azure アクティビティ ログの概要に関するページを参照してください。

AKS コンテナーのログ、イベント、ポッドのメトリックをリアルタイムで表示する

Container insights の ライブ データ 機能を使用して、AKS コンテナーのログ、イベント、ポッドのメトリックを表示します。 kubectl logs -ckubectl getイベント、kubectl top podsに直接アクセスして、問題のトラブルシューティングをリアルタイムで行うことができます。

AKS では 、Kubernetes クラスター レベルのログ アーキテクチャが使用されます。 コンテナー ログは、ノードの /var/log/containers にあります。 ノードにアクセスするには、「 AKS クラスター ノードへの接続」を参照してください。

この機能を設定する方法については、「 Container insights でライブ データを構成する」を参照してください。 この機能は、Kubernetes API に直接アクセスします。 認証モデルの詳細については、 Kubernetes API を参照してください。

AKS リソース ライブ ログを表示する

プライベート クラスターからログにアクセスするには、クラスターと同じプライベート ネットワーク内にあるコンピューターを使用する必要があります。

  1. Azure portal で、AKS クラスターに移動します。
  2. [Kubernetes リソース] で、[ワークロード] を選択します。
  3. [デプロイ]、[ポッド]、[レプリカ セット]、[ステートフル セット]、[ジョブ]、または [Cron ジョブ] で値を選択し、[ライブ ログ] を選択します。
  4. 表示するリソース ログを選択します。

次の例は、ポッド リソースのログを示しています。

ライブ ログのデプロイを示すスクリーンショット。

ライブ ログを表示する

コンテナー エンジンが クラスターノードコントローラー、またはコンテナー タブで生成するときに、リアルタイムのログ データ 表示できます。

  1. Azure portal で、AKS クラスターに移動します。
  2. [監視] で、[分析情報] を選択します。
  3. [ クラスター]、[ ノード]、[ コントローラー]、または [コンテナー ] タブで、値を選択します。
  4. リソースの [概要 ] ウィンドウで、[ ライブ ログ] を選択します。

Log Analytics ワークスペースのデータを表示するには、[Log Analytics のログの表示] を選択します。 履歴ログ、イベント、メトリックの表示の詳細については、「 Container insights からのログのクエリ」を参照してください。

認証が成功すると、データを取得できる場合は、[ ライブ ログ ] タブへのストリーミングが開始されます。ログ データは、連続ストリームでここに表示されます。

次の図は、コンテナー リソースのログを示しています。

データを表示するコンテナーの [ライブ ログ] オプションを示すスクリーンショット。

ライブ イベントを表示する

コンテナー エンジンが クラスターノードコントローラー、またはコンテナー タブで生成するときに、リアルタイムのイベント データ 表示できます。

  1. Azure portal で、AKS クラスターに移動します。
  2. [監視] で、[分析情報] を選択します。
  3. [ クラスター]、[ ノード]、[ コントローラー]、または [コンテナー] タブを選択し、オブジェクトを選択します。
  4. リソースの [概要 ] ウィンドウで、[ ライブ イベント] を選択します。

Log Analytics ワークスペースのデータを表示するには、[Log Analytics のイベントの表示] を選択します。 履歴ログ、イベント、メトリックの表示の詳細については、「 Container insights からのログのクエリ」を参照してください。

認証が成功すると、データを取得できる場合は、[ ライブ イベント ] タブへのストリーミングが開始されます。次の図は、コンテナー リソースのイベントを示しています。

データを表示するコンテナーの [ライブ イベント] オプションを示すスクリーンショット。

メトリックを表示する

ポッド リソースを選択すると、コンテナー エンジンによって [ノード または コントローラー ] タブで生成されるメトリック データをリアルタイムで表示できます。

  1. Azure portal で、AKS クラスターに移動します。
  2. [監視] で、[分析情報] を選択します。
  3. [ ノード ] タブまたは [ コントローラー ] タブを選択し、ポッド オブジェクトを選択します。
  4. リソースの [概要 ] ウィンドウで、[ ライブ メトリック] を選択します。

Log Analytics ワークスペースのデータを表示するには、[Log Analytics のイベントの表示] を選択します。 履歴ログ、イベント、メトリックの表示の詳細については、「 Container insights からのログのクエリ」を参照してください。

認証が成功すると、データを取得できる場合は、[ ライブ メトリック] タブへのストリーミングが開始されます。次の図は、ポッド リソースのメトリックを示しています。

データを表示するためのPodライブメトリックオプションを示すスクリーンショット。

監視データを分析する

監視データを分析するための多くのツールがあります。

Azure Monitor ツール

Azure Monitor では、次の基本的なツールがサポートされています。

より複雑な視覚化を可能にするツールは次のとおりです。

  • ダッシュボードを使用すると、さまざまな種類のデータを組み合わせて、Azure portal 内の 1 つのペインに表示できます。
  • ブック。Azure portal で作成できるカスタマイズ可能なレポート。 ブックには、テキスト、メトリック、ログ クエリを含めることができます。
  • Grafana。運用ダッシュボードに優れたオープン プラットフォーム ツール。 Grafana を使用して、Azure Monitor 以外の複数のソースからのデータを含むダッシュボードを作成できます。
  • Power BI。さまざまなデータ ソースにわたって対話型の視覚化を提供するビジネス分析サービス。 Azure Monitor からログ データを自動的にインポートするように Power BI を構成して、これらの視覚化を利用できます。

Azure Monitor エクスポート ツール

次の方法を使用して、Azure Monitor から他のツールにデータを取得できます。

Azure Monitor 用 REST API の使用を開始するには、「Azure 監視 REST API のチュートリアル」を参照してください。

Azure portal の [概要] ウィンドウを使用して監視する

AKS クラスター リソースの [概要] ウィンドウの [監視] タブでは、Azure portal で監視データの表示をすばやく開始できます。 このタブには、ノード プールごとに分割されたクラスターの一般的なメトリックが表示されるグラフが含まれます。 これらのグラフのいずれかを選択して、メトリックス エクスプローラーでデータをさらに分析します。

[監視] タブには、クラスターの Prometheus と Container Insights 用の Azure マネージド サービスへのリンクも含まれています。 これらのツールは、[ 監視 ] タブで有効にすることができます。また、クラスターの監視を改善するために他の機能を推奨するバナーがウィンドウの上部に表示される場合もあります。

ヒント

サブスクリプション内のすべての AKS クラスターの監視機能にアクセスするには、Azure portal のホーム ページで Azure Monitor を選択します。

Kusto クエリ

Azure Monitor ログまたは Log Analytics ストアにある監視データは、Kusto 照会言語 (KQL) を使用して分析できます。

重要

ポータルでサービスのメニューから [ログ] を選択すると、クエリ スコープが現在のサービスに設定された状態で Log Analytics が開きます。 このスコープは、ログ クエリにその種類のリソースのデータのみが含まれることを意味します。 他の Azure サービスのデータを含むクエリを実行する場合は、[Azure Monitor] メニューから [ログ] を選択します。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照してください。

いずれかのサービスに関する一般的なクエリの一覧については、Log Analytics クエリ インターフェイスに関するページを参照してください。

警告

Azure Monitor のアラートにより、監視データで特定の状態が見つかったときに事前に通知を受け取ります。 アラートにより、ユーザーが気付く前に、管理者が問題を識別して対処できます。 詳細については、Azure Monitor アラートに関するページを参照してください。

Azure リソースに関する一般的なアラートのソースは数多くあります。 Azure リソースに関する一般的なアラートの例については、ログ アラート クエリのサンプルに関するページを参照してください。 Azure Monitor ベースライン アラート (AMBA) サイトには、重要なプラットフォーム メトリックのアラート、ダッシュボード、ガイドラインを実装するための半自動化された方法が用意されています。 このサイトは、Azure ランディング ゾーン (ALZ) の一部であるすべてのサービスを含む、Azure サービスの継続的に拡張されるサブセットに適用されます。

共通アラート スキーマを使用すると、Azure Monitor のアラート通知の使用を標準化できます。 詳細については、「共通アラート スキーマ」を参照してください。

アラートの種類

Azure Monitor データ プラットフォームでは、任意のメトリックまたはログ データ ソースに対してアラートを生成できます。 監視するサービスと収集する監視データに応じて、さまざまな種類のアラートがあります。 アラートの種類に応じて、さまざまな利点と欠点があります。 詳細については、適切な種類の監視アラートの選択に関するページをご覧ください。

次の一覧では、作成できる Azure Monitor アラートの種類について説明します。

  • メトリック アラートでは、リソース メトリックを定期的に評価します。 メトリックはプラットフォーム メトリック、カスタム メトリック、メトリックに変換された Azure Monitor からのログまたは Application Insights メトリックにすることができます。 メトリック警告では、複数の条件と動的しきい値を適用することもできます。
  • ログ アラートでは、ユーザーは Log Analytics クエリを使用して、定義済みの頻度でリソース ログを評価できます。
  • アクティビティ ログ アラートは、定義された条件と一致する新しいアクティビティ ログ イベントが発生したときにトリガーされます。 Resource Health アラートと Service Health アラートは、サービスとリソースの正常性を報告するアクティビティ ログ アラートです。

一部の Azure サービスでは、スマート検出アラートPrometheus アラート推奨されるアラート ルールもサポートされています。

一部のサービスでは、同じ Azure リージョン内に存在する同じ種類の複数のリソースに同じメトリック アラート ルールを適用することで、大規模に監視することができます。 監視対象リソースごとに個別の通知が送信されます。 サポートされている Azure サービスとクラウドについては、「1 つのアラート ルールで複数のリソースを監視する」を参照してください。

一部の Azure サービスでは、推奨される既定の警告ルールを有効にすることができます。

次に基づいて、推奨されるアラートルールの一覧がシステムによってコンパイルされます。

  • リソースを監視するための重要なシグナルとしきい値についてのリソース プロバイダーの知識。
  • 顧客が一般的に、このリソースの警告を何に対して行っているかを示すデータ。

推奨されるアラート ルールは、次の場合に使用できます。

  • 仮想マシン
  • Azure Kubernetes Service (AKS) リソース
  • Log Analytics ワークスペース

Prometheus メトリックベースのアラート

クラスター の Prometheus メトリックに対してマネージド サービスの収集を有効 にすると、 Prometheus アラート ルールに対して推奨されるマネージド サービスのコレクションをダウンロードできます。

ダウンロードには、次の規則が含まれています。

レベル 警告
クラスター レベル KubeCPUQuotaOvercommit
KubeMemoryQuotaOvercommit
KubeContainerOOMKilledCount
KubeClientErrors
KubePersistentVolumeFillingUp
KubePersistentVolumeInodesFillingUp
KubePersistentVolumeErrors
KubeContainerWaiting
KubeDaemonSetNotScheduled
KubeDaemonSetMisScheduled
KubeQuotaAlmostFull
Node レベル KubeNodeUnreachable
KubeNodeReadinessFlapping
ポッド レベル KubePVUsageHigh
KubeDeploymentReplicasMismatch
KubeStatefulSetReplicasMismatch
KubeHpaReplicasMismatch
KubeHpaMaxedOut
KubePodCrashLooping
KubeJobStale
KubePodContainerRestart
KubePodReadyStateLow
KubePodFailedState
KubePodNotReadyByController
KubeStatefulSetGenerationMismatch
KubeJobFailed
KubeContainerAverageCPUHigh
KubeContainerAverageMemoryHigh
KubeletPodStartUpLatencyHigh

詳細については、「 Container insights からのログ アラートの作成 」および「 Container insights からのログのクエリ」を参照してください。

ログ アラートは、 次の 2 種類の情報を測定して、さまざまなシナリオを監視するのに役立ちます。

  • 結果数: クエリによって返された行数をカウントします。 この情報を使用して、Windows イベント ログ、syslog イベント、アプリケーション例外などのイベントを処理します。
  • 値の計算: 数値列に基づいて計算を行います。 この情報を使用して、さまざまなリソースを含めます。 たとえば、CPU の割合です。

ほとんどのログ クエリでは、now 演算子を使用して 1 時間前に戻ることで、DateTime値を現在の時刻と比較します。 ログ ベースのアラートを作成する方法については、「Container insights からログ アラートを作成する」を参照してください。

AKS アラート ルール

次の表に、AKS に推奨されるアラート ルールをいくつか示します。 これらのアラートは、単に例です。 AKS 監視データリファレンスに記載されているメトリック、ログ エントリ、またはアクティビティ ログ エントリに対してアラートを設定できます。

条件 説明
CPU 使用率>95 すべてのノードの平均 CPU 使用率がしきい値を超えたときにアラートを生成します。
メモリ ワーキング セットの割合>100 すべてのノードの平均ワーキング セットがしきい値を超えたときにアラートを生成します。

Advisor の推奨事項

一部のサービスでは、リソースの操作中にクリティカルな条件や差し迫った変更が発生した場合は、ポータルのサービス [概要] ページにアラートが表示されます。 アラートの詳細と推奨される修正は、左側のメニューの [監視] の下の [アドバイザーのレコメンデーション] に表示されます。 通常の操作中、アドバイザーのレコメンデーションは表示されません。

Azure Advisor の詳細については、Azure Advisor の概要に関するページをご覧ください。

サービスで実行されるアプリケーションを作成または実行している場合、Azure Monitor Application Insights は他の種類のアラートを表示する場合があります。

ノード ネットワーク メトリック

ノード ネットワーク メトリックは、正常でパフォーマンスの高い Kubernetes クラスターを維持するために重要です。 ネットワーク トラフィックに関するデータを収集して分析することで、クラスターの操作に関する貴重な分析情報を取得し、障害やパフォーマンスの損失につながる前に潜在的な問題を特定できます。

Kubernetes バージョン 1.29 以降では、Azure Monitor が有効になっているすべてのクラスターでノード ネットワーク メトリックが既定で有効になっています。

次のノード ネットワーク メトリックは、既定で有効になっており、ノードごとに集計されます。 すべてのメトリックには、ラベル クラスターとインスタンス (ノード名) が含まれます。 Azure Managed Prometheus>Kubernetes>Networking>Clusters の下にある Managed Grafana ダッシュボードを使用すると、これらのメトリックを簡単に表示できます。

ノード レベルのメトリック

次のメトリックがノードごとに集計されます。

すべてのメトリックには、次のラベルが含まれます。

  • cluster
  • instance (ノード名)

Cilium データ プレーンシナリオの場合、Container Network Observability 機能は Linux に対してのみメトリックを提供します。 現時点では、Windows は Container Network Observability メトリックではサポートされていません。

Cilium は、Container Network Observability で使用されるいくつかのメトリックを公開します。

指標名 説明 追加のラベル Linux ウィンドウズ
cilium_forward_count_total 転送されたパケット数の合計 direction
cilium_forward_bytes_total 転送されたバイト数の合計 direction
cilium_drop_count_total 破棄されたパケット数の合計 directionreason
cilium_drop_bytes_total 破棄されたバイト数の合計 directionreason

ポッド レベルと DNS メトリックの詳細については、「 Advanced Container Networking Services」を参照してください。