Coletar logs em alta escala no Container Insights (versão prévia)
O modo de alta escala é um recurso no Container Insights que permite coletar logs de console (stdout &stderr) dos contêineres com alta taxa de transferência dos nós do seu cluster do AKS (Serviço de Kubernetes do Azure). Esse recurso permite coletar até 50.000 logs/s por nó.
Observação
Esse recurso está atualmente em visualização pública. Para obter informações adicionais, leia os Termos de Uso Complementares para Visualizações do Microsoft Azure.
Visão geral
Quando o modo de alta escala está habilitado, o Container Insights executa várias alterações de configuração, resultando em uma taxa de transferência geral mais alta. Isso inclui o uso de um agente atualizado e o pipeline de dados do Azure Monitor com melhorias de escala. Todas essas alterações são feitas em segundo plano pelo Azure Monitor e não exigem entrada ou configuração depois que o recurso é habilitado.
O modo de alta escala afeta apenas a camada de coleta de dados. O restante da experiência do Contêiner Insights permanece o mesmo, com os logs sendo ingeridos na mesma tabela ContainerLogV2
. As consultas e alertas existentes continuam funcionando, pois os mesmos dados estão sendo coletados.
Para alcançar a maior taxa de transferência de logs suportada, você deve usar SKUs de VM de alto desempenho com 16 núcleos de CPU ou mais para os nós do seu cluster do AKS. O uso de SKUs de VM de baixo desempenho afetará a taxa de transferência dos seus logs.
Meu cluster se qualifica?
A coleta de logs em alta escala é adequada para ambientes que enviam mais de 2.000 logs/seg (ou 2 MB/seg) por nó em seus clusters Kubernetes e foi projetada e testada para enviar até 50.000 logs/seg por nó. Use as consultas de log a seguir para determinar se seu cluster é adequado para coletar logs em alta escala.
Logs por segundo e por nó
ContainerLogV2
| where _ResourceId = "<cluster-resource-id>"
| summarize count() by bin(TimeGenerated, 1s), Computer
| render timechart
Tamanho do log (em MB) por segundo por nó
ContainerLogV2
| where _ResourceId = "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer
| render timechart
Pré-requisitos
- Versão 2.63.0 ou posterior da CLI do Azure.
- A versão da extensão da CLI do AKS-preview deve ser 7.0.0b4 ou superior se uma extensão da CLI do aks-preview estiver instalada.
- O esquema de cluster deve ser configurado para ContainerLogV2.
- Se os limites de recursos padrão (CPU e memória) no contêiner do conjunto de daemon ama-logs não atenderem aos seus requisitos de escala de logs, entre em contato com o canal de suporte da Microsoft para aumentar os limites de recursos do seu contêiner ama-logs.
Requisitos de firewall de rede
Além dos requisitos de firewall de rede para monitorar um cluster do Kubernetes, são necessárias configurações adicionais na tabela a seguir para habilitar o modo de alta escala, dependendo do seu provedor de nuvem.
Nuvem | Ponto de extremidade | Porta |
---|---|---|
Nuvem Pública do Azure | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.com |
443 |
Microsoft Azure operado pela nuvem da 21Vianet | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn |
443 |
Nuvem do Azure Governamental | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us |
443 |
O ponto de extremidade é o de Ingestão de Logs do ponto de extremidade de coleta de dados (DCE) para a regra de coleta de dados (DCR) usada pelo cluster. Esse DCE é criado quando você habilita o modo de alta escala para o cluster e começa com o prefixo MSCI-ingest
.
Limitações
Não há suporte para os cenários a seguir durante a versão prévia. Elas serão abordadas quando o recurso entrar em disponibilidade geral.
- Clusters do AKS com nós Arm64
- Kubernetes habilitado para Azure Arc
- Proxy HTTP com certificado confiável
- Integração por meio do portal do Azure, Azure Policy, Terraform e Bicep
- Configurar por meio das Configurações do Monitor na experiência do portal do AKS Insights
- Migração automática do Container Insights existente
Habilitar a coleta de logs em alta escala
Siga as duas etapas nas seções a seguir para habilitar o modo de alta escala para o cluster.
Observação
O modo de alta escala do log requer um DCE (ponto de extremidade de coleta de dados) para ingestão. Um DCE de ingestão é criado com o prefixo MSCI-ingest
para cada cluster quando você os integra. Se o escopo do link privado do Azure Monitor estiver configurado, haverá também a configuração de DCE criada com o prefixo MSCI-config
.
Atualizar o configmap
A primeira etapa é atualizar o configmap do cluster para instruir os pods do daemonset ama-logs do Container Insights a executar no modo de alta escala.
Siga as diretrizes em Configurar e implantar o ConfigMap para baixar e atualizar o ConfigMap para o cluster. A única alteração que você precisa fazer para os logs de alta escala é habilitar agent_settings.high_log_scale
como agent-settings
no seguinte:
[agent_settings.high_log_scale]
enabled = true
Após aplicar este configmap, os pods ama-logs-*
serão reiniciados automaticamente e os pods do daemonset ama-logs serão configurados para executar no modo de alta escala.
Habilitar o modo de alta escala para o complemento de monitoramento
Habilite o complemento de monitoramento com o modo de alta escala usando os seguintes comandos da CLI do Azure para ativar o modo de alta escala para o complemento de Monitoramento, dependendo da configuração do seu AKS.
Observação
Em vez da CLI, você pode usar um modelo do ARM para habilitar o modo de alta escala para o complemento de monitoramento. Consulte Habilitar o Contêiner Insights para obter diretrizes sobre como habilitar o Container Insights usando um modelo do ARM. Para habilitar o modo de alta escala, use Microsoft-ContainerLogV2-HighScale
em vez de Microsoft-ContainerLogV2
no parâmetro streams
, conforme descrito em Configurar a DCR com modelos do ARM.
Cluster do AKS existente
az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-log-scale-mode
Cluster privado do AKS existente
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>
Novo cluster do AKS
az aks create -g <cluster-name> -n <cluster-name> enable-addons -a monitoring --enable-high-log-scale-mode
Novo cluster privado do AKS
Consulte Criar um cluster privado do AKS (Serviço de Kubernetes do Azure) para obter detalhes sobre como criar um cluster privado do AKS. Use os parâmetros adicionais --enable-high-scale-mode
e --ampls-resource-id
para configurar o modo de alta escala de logs com a ID do recurso de escopo de link privado do Azure Monitor.
Migração
Se o Container Insights já estiver habilitado para o seu cluster, você precisará desabilitá-lo e, em seguida, reabilitá-lo com o modo de alta escala.
- Como o modo de alta escala usa um pipeline de dados diferente, você deve garantir que os pontos de extremidade de pipeline não sejam bloqueados por um firewall ou outras conexões de rede.
- O modo de alta escala requer um ponto de extremidade de coleta de dados (DCE) para ingestão, além da DCR padrão para coleta de dados. Se você criou as DCRs que usam
Microsoft.ContainerLogV2
, você deve substituir porMicrosoft.ContainerLogV2-HighScale
ou os dados serão duplicados. Você também deve criar um DCE para ingestão e vinculá-lo à DCR se a DCR ainda não estiver usando um. Consulte a integração do Container Insights por meio do Azure Resource Manager para obter referência para as dependências.
Próximas etapas
- Compartilhe comentários ou problemas com o modo de alta escala em https://aka.ms/cihsfeedback.