Compartilhar via


Coleta de logs em grande escala no Container Insights (pré-visualização)

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 As 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 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 daemon set do contêiner ama-logs não corresponderem às suas necessidades de escala de log, entre em contato com o canal de suporte da Microsoft para aumentar esses limites de recursos.

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 Porto
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.

Captura de tela do endpoint de ingestão de logs para DCE.

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 habilitados para o 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.

  1. Siga as diretrizes em Configurar e implantar o ConfigMap para baixar e atualizar o ConfigMap para o cluster.

  2. Habilite o modo de alta escala com a seguinte configuração em agent-settings.

    [agent_settings.high_log_scale] 
      enabled = true 
    
  3. Habilite a coleta de métricas internas para preencher o painel Grafana de QoS descrito abaixo com a seguinte configuração em agent-settings.

    [agent_settings.fbit_config]
      enable_internal_metrics = "true"
    
  4. Aplique o ConfigMap ao cluster com os comandos a seguir.

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    

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 Container 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 cluster, você precisará desabilitá-lo e habilitá-lo novamente 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 do pipeline de dados não sejam bloqueados por um firewall ou por 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 qualquer DCR que use Microsoft.ContainerLogV2, você deve substituí-lo por Microsoft.ContainerLogV2-HighScale, ou esses dados serão duplicados. Você também deve criar um DCE para ingestão e vinculá-lo ao DCR, caso o DCR ainda não esteja utilizando um. Consulte a integração do Container Insights por meio do Azure Resource Manager para obter referência para as dependências.

Monitorar métricas de QoS com Prometheus e Grafana

Quando o volume de logs gerados é substancial, ele pode levar à limitação e à perda de log. Consulte o artigo Configurar limitação para o Container Insights para obter diretrizes sobre como configurar parâmetros de limitação e monitoramento para perda de log.

Próximas etapas