高スケール モードは、Azure Kubernetes Service (AKS) のクラスター ノードからコンテナー コンソール (stdout と stderr) のログを高スループットで収集できる Container Insights の機能です。 この機能により、1 ノードあたり最大 50,000 ログ/秒を収集できます。
Overview
高スケール モードが有効な場合、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
Prerequisites
- Azure CLI バージョン 2.74.0 以降。
- Azure Arc 対応 Kubernetes を管理している場合の Azure CLI k8s-extension バージョン 1.6.7 以降。
- クラスター スキーマは、ContainerLogV2 用に構成する必要があります。
- ama-logs デーモン セット コンテナーの既定のリソース制限 (CPU とメモリ) がログ スケール要件を満たしていない場合は、Microsoft サポート チャネルに問い合わせて、ama-logs コンテナーのリソース制限を増やしてください。
ネットワーク ファイアウォールの要件
Kubernetes クラスターを監視するためのネットワーク ファイアウォール要件に加えて、クラウドに応じた高スケール モードを有効にするには、次のテーブルの追加構成が必要です。
| Cloud | Endpoint | Port |
|---|---|---|
| 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で始まるときに作成されます。
Limitations
以下のシナリオはサポートされていません。
- 信頼できる証明書を使用した HTTP プロキシ
- Azure portal を使用したオンボード
- AKS Insights ポータル エクスペリエンスの監視設定を通じた構成
- 既存の Container Insights からの自動移行
- Bicep、Terraform、および Azure Policy を使用した Azure Arc 対応 Kubernetes のオンボーディング
大規模なログ収集を有効にする
次のセクションの 2 つの手順に従って、クラスターの高スケール モードを有効にします。
Note
高ログ スケール モードでは、インジェスト用にデータ収集エンドポイント (DCE) が必要です。 インジェスト DCE は、クラスターにオンボードする場合に、各クラスターに対してプレフィックス MSCI-ingest 付きで作成されます。 Azure Monitor プライベート リンク スコープが構成されている場合、プレフィックス MSCI-config を含む構成 DCE も作成されます。
configmap を更新する
最初の手順では、クラスターの configmap を更新して、Container Insights ama-logs deamonset ポッドを高スケール モードで実行するように指示します。
「ConfigMap の構成と展開」のガイダンスに従って、クラスターの ConfigMap をダウンロードして更新します。
agent-settingsで次の設定を使用して、高スケール モードを有効にします。[agent_settings.high_log_scale] enabled = true内部メトリックの収集を有効にして、以下で説明する QoS Grafana ダッシュボードに
agent-settingsの下の次の設定を設定します。[agent_settings.fbit_config] enable_internal_metrics = "true"次のコマンドを使用して、ConfigMap をクラスターに適用します。
kubectl config set-context <cluster-name> kubectl apply -f <configmap_yaml_file.yaml>
この configmap を適用すると、ama-logs-* ポッドが自動的に再起動され、ama-logs daemonset pods が高スケール モードで実行されるように構成されます。
監視アドオンの高スケール モードを有効にする
次の Azure CLI コマンドを使用して、高スケール モードで監視アドオンを有効にし、AKS 構成に応じて監視アドオンの高スケール ログ モードを有効にします。
Note
ARM、Bicep、Terraform などの他の方法で Container Insights を有効にする方法については、「Container Insights を有効にする 」を参照してください。 高スケール モードを有効にするには、「Microsoft-ContainerLogV2-HighScale」の説明に従って、Microsoft-ContainerLogV2 パラメーターにstreamsするのではなく、を使用します。
既存の 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 <resource-group-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 で高ログ スケール モードを構成します。
ARC 対応クラスター
az k8s-extension create --name azuremonitor-containers --resource-group <resource-group-name> --cluster-name <cluster-name> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.enableHighLogScaleMode=true logAnalyticsWorkspaceResourceID=<workspace-resource-id>
Migration
クラスターに対して Container Insights が既に有効になっている場合は、それを無効にしてから、高スケール モードで再度有効にする必要があります。
- 高スケール モードでは別のデータ パイプラインが使用されるため、パイプライン エンドポイントがファイアウォールやその他のネットワーク接続によってブロックされないようにする必要があります。
- 高スケール モードでは、データ収集のための標準的な DCR に加えて、インジェストのためのデータ収集エンドポイント (DCE) が必要です。
Microsoft-ContainerLogV2を使用する DCR を作成した場合、これをMicrosoft-ContainerLogV2-HighScaleに置き換えなければ、データが重複します。 また、DCR でまだ DCE を使用していない場合は、インジェスト用に DCE を作成し、DCR にリンクする必要があります。 依存関係については、Azure Resource Manager 経由の Container Insights のオンボーディングを参照してください。
Prometheus と Grafana を使用して QoS メトリックを監視する
生成されるログの量が多い場合は、制限やログの損失につながる可能性があります。 スロットリング パラメーターの設定やログ損失の監視についてのガイダンスは、Container Insightsに関するスロットリングの設定に関する記事を参照してください。
次のステップ
- 高スケール モードに関するフィードバックや問題がある場合は、https://aka.ms/cihsfeedback で共有してください。