Container Insights (プレビュー) での大規模なログの収集

高スケール モードは、Azure Kubernetes Service (AKS) のクラスター ノードからコンテナー コンソール (stdout と stderr) のログを高スループットで収集できる Container Insights の機能です。 この機能により、1 ノードあたり最大 50,000 ログ/秒を収集できます。

Note

現在、この機能はパブリック プレビュー段階にあります。 詳細については、「Microsoft Azure プレビューの追加の使用条件」をお読みください。

概要

高スケール モードが有効な場合、Container Insights は複数の構成変更を実行し、全体的なスループットが向上します。 これには、アップグレードされたエージェントと、スケールが改善された Azure Monitor データ パイプラインの使用が含まれます。 これらの変更はすべて Azure Monitor によってバックグラウンドで行われ、機能を有効にした後に入力や構成を行う必要はありません。

高スケール モードはデータ収集レイヤーのみに影響します。 その他の Container insights 環境は同じままで、ログは同じ ContainerLogV2 テーブルに取り込まれます。 同じデータが収集されているため、既存のクエリやアラートは引き続き機能します。

サポートされるログ スループットを最大にするには、AKS クラスター ノードに 16 CPU コア以上のハイエンドVM SKU を使用する必要があります。 ロー エンド VM SKU を使用すると、ログ スループットに影響を与えます。

クラスターは適合していますか?

高スケール ログ収集は、Kubernetes クラスターのノードあたり 2,000 ログ/秒 (または 2 MB/秒) を超えるログを送信する環境に適しており、ノードあたり最大 50,000 ログ/秒を送信できるように設計およびテストされています。 次のログ クエリを使用して、クラスターが大規模なログ収集に適しているかどうかを判断します。

1 秒あたりとノードあたりのログ

ContainerLogV2 
| where _ResourceId = "<cluster-resource-id>" 
| summarize count() by bin(TimeGenerated, 1s), Computer 
| render timechart 

1 秒あたりとノードあたりのログ サイズ (MB)

 ContainerLogV2 
| where _ResourceId = "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer 
| render timechart 

前提条件

  • Azure CLI バージョン 2.63.0 以上。
  • AKS プレビュー CLI 拡張機能がインストールされている場合、aks-preview CLI 拡張機能のバージョンは 7.0.0b4 以降である必要があります。
  • クラスター スキーマは、ContainerLogV2 用に構成する必要があります。
  • ama-logs デーモン セット コンテナーの既定のリソース制限 (CPU とメモリ) がログ スケール要件を満たさない場合は、Microsoft サポート チャネルに連絡して、ama-logs コンテナーのリソース上限を増やしてください。

ネットワーク ファイアウォールの要件

Kubernetes クラスターを監視するためのネットワーク ファイアウォール要件に加えて、クラウドに応じた高スケール モードを有効にするには、次のテーブルの追加構成が必要です。

クラウド エンドポイント ポート
Azure パブリック クラウド <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.com 443
21Vianet によって運営される Microsoft Azure クラウド <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn 443
Azure Government クラウド <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us 443

このエンドポイントは、クラスターで使用されるデータ収集ルール (DCR) のデータ収集エンドポイント(DCE) からのログ インジェスト エンドポイントです。 この DCE はクラスターの高スケール モードを有効にすると作成され、プレフィックス MSCI-ingest で始まります。

DCE のログ インジェスト エンドポイントのスクリーンショット。

制限事項

プレビュー リリース期間中、次のシナリオはサポートされていません。 これらは、機能の一般公開時に対応される予定です。

  • Arm64 ノードを使用した AKS クラスター
  • Azure Arc 対応 Kubernetes
  • 信頼できる証明書を使用した HTTP プロキシ
  • Azure portal、Azure Policy、Terraform、Bicep を通じたオンボーディング
  • AKS Insights ポータル エクスペリエンスの監視設定を通じた構成
  • 既存の Container Insights からの自動移行

大規模なログ収集を有効にする

次のセクションの 2 つの手順に従って、クラスターの高スケール モードを有効にします。

Note

高ログ スケール モードでは、インジェスト用にデータ収集エンドポイント (DCE) が必要です。 インジェスト DCE は、クラスターにオンボードする場合に、各クラスターに対してプレフィックス MSCI-ingest 付きで作成されます。 Azure Monitor プライベート リンク スコープが構成されている場合、プレフィックス MSCI-config を含む構成 DCE も作成されます。

configmap を更新する

最初の手順は、Container Insights の ama-logs deamonset pods を高スケール モードで実行するよう指示するために、クラスターの configmap を更新することです。

ConfigMap の構成と展開」のガイダンスに従って、クラスターの ConfigMap をダウンロードして更新します。 大規模なログに行う必要がある唯一の変更は、次のように agent-settings の下に agent_settings.high_log_scale を有効にすることです。

[agent_settings.high_log_scale] 
  enabled = true 

この configmap を適用すると、ama-logs-* ポッドが自動的に再起動され、ama-logs daemonset pods が高スケール モードで実行されるように構成されます。

監視アドオンの高スケール モードを有効にする

次の Azure CLI コマンドを使用して、高スケール モードで監視アドオンを有効にし、AKS 構成に応じて監視アドオンの高スケール ログ モードを有効にします。

Note

CLI の代わりに ARM テンプレートを使用して、監視アドオンの高スケール モードを有効にすることができます。 ARM テンプレートを使用して Container Insights を有効にするためのガイダンスについては、「Container insights を有効にする」 を参照してください。 高スケール モードを有効にするには、「ARM テンプレートを使用して DCR を構成する」の説明に従って、streams パラメーターで Microsoft-ContainerLogV2 の代わりに Microsoft-ContainerLogV2-HighScale を使用します。

既存の AKS クラスター

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-log-scale-mode  

既存の AKS プライベート クラスター

az aks enable-addons -a monitoring -g  <resource-group-name> -n <cluster-name> --enable-high-scale-mode --ampls-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/privatelinkscopes/<resourceName> 

新しい AKS クラスター

az aks create -g <cluster-name> -n <cluster-name> enable-addons -a monitoring --enable-high-log-scale-mode  

新しい AKS プライベート クラスター

AKS プライベート クラスターの作成に関する詳細については、「プライベート Azure Kubernetes Service (AKS) クラスターを作成する」を参照してください。 追加のパラメーター --enable-high-scale-mode--ampls-resource-id を使用して、Azure Monitor プライベート リンク スコープ リソース ID で高ログ スケール モードを構成します。

移行

Container insights がクラスターに対して既に有効になっている場合は、それを無効にしてから、高スケール モードで再度有効にする必要があります。

  • 高スケール モードでは別のデータ パイプラインを使用するため、パイプライン エンドポイントがファイアウォールや他のネットワーク接続によってブロックされていないことを確認する必要があります。
  • 高スケール モードでは、データ収集のための標準的な DCR に加えて、インジェストのためのデータ収集エンドポイント (DCE) が必要です。 Microsoft.ContainerLogV2 を使用する DCR を作成した場合は、これを Microsoft.ContainerLogV2-HighScale または重複するデータに置き換える必要があります。 また、DCR でまだ DCE を使用していない場合は、インジェスト用に DCE を作成し、DCR にリンクする必要があります。 依存関係については、Azure Resource Manager 経由の Container Insights のオンボーディングを参照してください。

次のステップ

  • 高スケール モードに関するフィードバックや問題がある場合は、https://aka.ms/cihsfeedback で共有してください。