Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Métricas de rede de contentores no Advanced Container Networking Services for Azure Kubernetes Service (AKS) ajudam-no a identificar quedas de pacotes, rastrear a atividade da rede e investigar o comportamento do DNS. Comece com métricas ao nível dos nós para encontrar um problema de saúde da rede, depois use métricas ao nível dos pods para identificar as cargas de trabalho envolvidas.
A recolha de métricas está disponível nos planos de dados Cilium e não Cilium suportados. Métricas ao nível dos pods requerem Linux; as tabelas de referência mostram quais métricas ao nível dos nós também estão disponíveis no Windows.
Recolha de métricas: visão geral
Utilize esta tabela para verificar o suporte à recolha de métricas entre planos de dados:
| Capacidade | Aglomerados de cílio | Aglomerados não-cílios |
|---|---|---|
| Coleção de métricas ao nível dos nós | ✅ | ✅ |
| Recolha de métricas ao nível do pod | ✅ (Linux) | ✅ (Linux) |
Para a recolha inicial, siga Configurar métricas de rede de contentores. Para registos de detalhes individuais de tráfego em vez de contadores, use registos de rede do contentor.
Important
A partir de 30 de novembro de 2025, o Azure Kubernetes Service (AKS) deixou de suportar nem fornecer atualizações de segurança para o Azure Linux 2.0. A imagem do nó Azure Linux 2.0 está congelada no 202512.06.0 lançamento. A partir de 31 de outubro de 2026, as imagens dos nós são removidas e não pode escalar os seus pools de nós. Migre para uma versão Azure Linux suportada atualizando os seus pools de nós para uma versão Kubernetes suportada ou migrando para o osSku AzureLinux3. Para mais informações, consulte a edição do Retirement GitHub e o anúncio de reforma do Azure Updates. Para se manter informado sobre anúncios e atualizações, siga as notas de lançamento do AKS.
Principais benefícios
Granularidade ao nível de nós e de pods. Acompanhe o volume de tráfego, as taxas de queda e os estados de ligação ao nível do nó para a saúde da infraestrutura. Analisa cada pod individual com etiquetas de origem e destino para identificar exatamente a carga de trabalho que está a causar o problema.
Resolução de problemas mais rápida. Quando um serviço começa a perder pacotes ou as consultas DNS falham, métricas ao nível do pod ajudam a isolar o problema num pod, namespace ou protocolo específico.
Visualização incorporada. Armazene métricas no serviço gerido Azure Monitor para Prometheus e abra dashboards de rede diretamente no portal Azure com Dashboards com Grafana. A experiência do dashboard é gratuita e não requer uma instância Azure Managed Grafana; ACNS e taxas de ingestão e armazenamento de métricas continuam a aplicar-se. Também podes usar uma implantação separada do Grafana.
Como funciona
A pilha de agentes em cada nó depende do plano de dados, como mostrado no diagrama.
Os nós Cilium do Linux usam uma pilha em camadas baseada em eBPF: os hooks do kernel eBPF capturam dados de tráfego brutos, o Cilium processa-os e o Hubble expõe-os como métricas no formato Prometheus.
Nós não-Cilium do Linux usam ganchos de kernel eBPF que alimentam o Microsoft Retina, com uma camada Hubble por cima para inspeção de fluxo. O Microsoft Retina gere a recolha de métricas e exporta métricas ao nível dos nós e pods no formato Prometheus.
De todos os caminhos, recolhe métricas no formato Prometheus e ingere-as no serviço gerido Azure Monitor para Prometheus ou no seu próprio backend Prometheus. Para o caminho gerido, abra o seu cluster AKS no portal Azure e selecione Monitorização> para visualizar os painéis de rede. Azure Managed Grafana e a sua própria implementação de Grafana são alternativas opcionais. Veja Utilizar dashboards com o Grafana no AKS.
Para começar, configure métricas de rede de contentores.
Quando usar métricas de rede de contentores
As métricas de redes de contentores são concebidas para equipas que necessitam de dados de rede focados e acionáveis, em vez de telemetria bruta. Cenários comuns incluem:
- Depurar uma carga de trabalho específica. Use métricas ao nível do pod para isolar quedas de pacotes, resets TCP ou falhas DNS para um serviço específico.
- Monitorização de clusters multitenant. Use métricas ao nível dos pods para acompanhar a saúde da rede por namespace e compreender os padrões de tráfego de cada equipa.
- Planeamento de capacidade. Rastreie as contagens de bytes encaminhados e perdidos por nó para identificar ligações saturadas ou colocação desequilibrada da carga de trabalho.
- Monitorização da saúde do DNS. Falhas nas consultas DNS do Surface e tempos lentos de resolução para detetar problemas antes que se transformem em erros de aplicação.
Antes de rever as tabelas de métricas
Tenha em consideração estes pontos:
- Métricas ao nível dos nós estão disponíveis em planos de dados Cilium e não-Cilium suportados.
- Métricas ao nível dos pods estão disponíveis no Linux.
- Nos clusters Cilium, as métricas DNS requerem uma política de rede Cilium FQDN.
Referência de métricas
Métricas no nível do nó
Métricas ao nível do nó fornecem estatísticas agregadas de tráfego por nó — pacotes encaminhados e perdidos, contagem de bytes e estados de ligação. Estas métricas estão armazenadas no formato Prometheus e podem ser visualizadas no Grafana.
As métricas a seguir são agregadas por nó. Todas as métricas incluem estes rótulos:
cluster-
instance(nome do nó)
Cilium
Para clusters de planos de dados Cilium, métricas ao nível dos nós estão disponíveis apenas no Linux. O Cilium expõe as seguintes métricas utilizadas pelas métricas de redes de contentores:
| Nome da métrica | Description | Rótulos extras | Linux | Windows |
|---|---|---|---|---|
| cilium_forward_count_total | Contagem total de pacotes encaminhados | direction |
✅ | ❌ |
| cilium_forward_bytes_total | Contagem total de bytes encaminhados | direction |
✅ | ❌ |
| cilium_drop_count_total | Contagem total de pacotes descartados |
direction, reason |
✅ | ❌ |
| cilium_drop_bytes_total | Total de bytes perdidos |
direction, reason |
✅ | ❌ |
Não-Cílio
Para cenários de planos de dados não relacionados com Cilium, métricas de rede de contentores estão disponíveis tanto para Linux como para Windows.
| Nome da métrica | Description | Rótulos extras | Linux | Windows |
|---|---|---|---|---|
| networkobservability_conntrack_bytes_rx | Contagem de bytes RX do Conntrack | ✅ | ❌ | |
| networkobservability_conntrack_bytes_tx | contagem de bytes TX do Conntrack | ✅ | ❌ | |
| networkobservability_conntrack_packets_rx | Contagem de pacotes RX do Conntrack | ✅ | ❌ | |
| networkobservability_conntrack_packets_tx | Contagem de pacotes Conntrack TX | ✅ | ❌ | |
| networkobservability_conntrack_total_connections | Ligações totais ao conntrack | ✅ | ❌ | |
| networkobservability_dns_request_count | Contagem de pedidos DNS | ✅ | ❌ | |
| networkobservability_dns_response_count | Contagem de respostas DNS | ✅ | ❌ | |
| networkobservability_drop_bytes | Total de bytes perdidos |
reason, direction |
✅ | ❌ |
| networkobservability_drop_count | Contagem total de pacotes descartados |
reason, direction |
✅ | ✅ |
| networkobservability_forward_bytes | Contagem total de bytes encaminhados | direction |
✅ | ✅ |
| networkobservability_forward_count | Contagem total de pacotes encaminhados | direction |
✅ | ✅ |
| networkobservability_infiniband_counter_stats | Estatísticas do contador InfiniBand |
statistic_name, device, port |
✅ | ❌ |
| networkobservability_infiniband_status_params | Parâmetros de estado do InfiniBand |
statistic_name, interface_name |
✅ | ❌ |
| networkobservability_interface_stats | Estatísticas da interface (pacotes rx/tx, perdas e mais) |
interface_name, statistic_name |
✅ | ❌ |
| networkobservability_ip_connection_stats | Estatísticas de conexão IP | statistic_name |
✅ | ❌ |
| networkobservability_node_apiserver_handshake_latency | Latência do handshake TCP para o servidor da API | ✅ | ❌ | |
| networkobservability_node_apiserver_latency | Latência entre o nó e o servidor da API | ✅ | ❌ | |
| networkobservability_node_apiserver_no_response | Sem resposta do número de servidores API | ✅ | ❌ | |
| networkobservability_node_connectivity_latency_seconds | Latência de conectividade entre nós |
source_node_name, target_node_name |
✅ | ✅ |
| networkobservability_node_connectivity_status | Estado da conectividade entre nós (ICMP/HTTP) |
source_node_name, target_node_name |
✅ | ✅ |
| networkobservability_tcp_connection_remote | Número de sockets TCP ativos por IP remoto | address |
✅ | ❌ |
| networkobservability_tcp_connection_stats | Estatísticas de ligação TCP (por exemplo, DelayedACKs, TCPKeepAlive, TCPSackFailures) | statistic_name |
✅ | ✅ |
| networkobservability_tcp_flag_gauges | Contagem de pacotes TCP por sinalizador |
direction, flag |
❌ | ✅ |
| networkobservability_tcp_retransmission_count | Contagem de retransmissões TCP | ✅ | ❌ | |
| networkobservability_tcp_state | Contagem de sockets ativos TCP por estado | state |
✅ | ❌ |
| networkobservability_udp_connection_stats | Estatísticas de conexão UDP | statistic_name |
✅ | ❌ |
| networkobservability_windows_hns_stats | Estatísticas do Windows HNS (pacotes enviados e recebidos) | direction |
❌ | ✅ |
Métricas no nível do pod (métricas do Hubble)
Métricas ao nível do pod incluem informação de origem e de destino do pod, para que possa identificar problemas de rede ao nível da carga de trabalho individual. Estas métricas abrangem volume de tráfego, pacotes perdidos, resets TCP e fluxos da Camada 4/Camada 7.
Métricas DNS (contagens de consultas, códigos de resposta e erros) são recolhidas por defeito em planos de dados que não são Cilium. Nos planos de dados Cilium, as métricas DNS requerem uma política de rede Cilium FQDN. Também podes resolver problemas de DNS em tempo real usando a CLI do Hubble.
A tabela seguinte descreve as métricas que são agregadas por pod (as informações do nó são preservadas).
Todas as métricas incluem rótulos:
clusterinstance(nome do nó)sourceoudestinationPara o tráfego de saída, um
sourcerótulo indica o namespace e o nome do pod de origem.Para o tráfego recebido, uma
destinationetiqueta indica o espaço de nomes e o nome do pod de destino.
| Nome da métrica | Description | Rótulos extras | Linux | Windows |
|---|---|---|---|---|
| hubble_dns_queries_total | Total de solicitações DNS por consulta |
source ou destination, query, qtypes (tipo de consulta) |
✅ | ❌ |
| hubble_dns_responses_total | Total de respostas DNS por consulta/resposta |
source ou destination, query, qtypes (tipo de consulta), rcode (código de retorno), ips_returned (número de IPs) |
✅ | ❌ |
| hubble_drop_total | Contagem total de pacotes descartados |
source ou destination, protocol, reason |
✅ | ❌ |
| hubble_tcp_flags_total | Total de pacotes TCP por flag |
source ou destination, flag |
✅ | ❌ |
| hubble_flows_processed_total | Total de fluxos de rede processados (tráfego de Camada 4/Camada 7) |
source ou destination, protocol, verdict, type, subtype |
✅ | ❌ |
Escolha quais métricas recolher nos clusters de Cilium
Nos clusters Cilium, utilize filtragem ao nível da fonte para selecionar que observações contribuem para métricas individuais do Hubble antes de chegarem ao seu backend de monitorização. Esta filtragem é diferente de filtrar um dashboard do Grafana, que muda apenas o que vês. Restrinja a recolha a uma aplicação e, depois, ative seletivamente métricas de IP externo ou de porta de destino quando uma investigação precisar desse detalhe.
A filtragem pode reduzir a recolha desnecessária e ajudar a controlar os custos de ingestão. Métricas adicionais podem aumentar a contagem de séries temporais e o custo, por isso verifique o seu valor e volume antes de as expandir. Séries e amostras históricas criadas anteriormente podem permanecer visíveis; a redução de custos depende do seu tráfego e configuração.
Quando ativa a Observabilidade da Rede de Contentores, os agentes expõem as métricas de rede padrão do serviço. Nos clusters Cilium, utilize um ContainerNetworkMetric recurso personalizado para selecionar tráfego para tipos de métricas individuais.
Disponibilizar uma métrica no cluster não a torna automaticamente disponível no serviço gerido do Azure Monitor para Prometheus. Por defeito, os agentes do cluster expõem hubble_flows_processed_total, mas o Prometheus gerido exclui-o da coleção porque pode produzir um grande número de séries temporais. O Prometheus gerido também exclui hubble_flows_to_world_total e hubble_port_distribution_total por defeito, mesmo quando os ativa no cluster. Para recolher e consultar qualquer uma destas métricas, adicione o seu nome à lista de permissão do Hubble no ama-metrics-settings-configmap ConfigMap.
Para ver os passos, consulte Permitir as famílias de métricas no Prometheus gerido.
Existe um recurso partilhado ContainerNetworkMetric por cluster, chamado container-network-metric. Coordenar atualizações com outros administradores e preservar as definições de métricas usadas por outras equipas.
Comece por filtros de inclusão para selecionar tráfego para uma aplicação ou destino. Os filtros de exclusão são opcionais: utilize-os para omitir um subconjunto do tráfego selecionado, ou utilize filtros apenas de exclusão para manter uma recolha ampla com exceções específicas. Uma exclusão tem precedência sobre uma inclusão correspondente.
A filtragem não se limita às métricas opcionais de mundo e de porta de destino. Use os seguintes nomes de configuração para métricas existentes:
| Tipo de métrica | spec.filters[].metric |
Exemplo de tarefa de filtragem |
|---|---|---|
| DNS | dns |
Selecione observações DNS de ou para um cliente de aplicação. |
| TCP | tcp |
Selecione observações TCP para pods com um rótulo específico. |
| HTTP | httpV2 |
Selecione observações HTTP envolvendo uma aplicação. |
| Flow | flow |
Selecione observações de fluxo por carga de trabalho ou identidade de segurança. |
| Drop | drop |
Selecionar observações de drop para uma aplicação; opcionalmente, excluir observações de teste de carga da coleção ampla. |
Estes filtros aplicam-se quando a métrica está presente na configuração base do serviço. A configuração do filtro e a geração de observações são separadas: as observações de métricas DNS requerem uma política de inspeção DNS aplicada e tráfego DNS.
As observações métricas HTTP requerem a habilitação L7 ao nível do cluster, uma política de inspeção HTTP aplicada à carga de trabalho e tráfego HTTP através dessa política.
O estado do filtro não confirma estes pré-requisitos. A filtragem não permite a inspeção nem a desencriptação do tráfego HTTPS.
Para HTTP, use o nome sensível a maiúsculas e minúsculas httpV2, não http.
Para exemplos, veja DNS, TCP, HTTP e drop filtering.
Por exemplo, use filtros de inclusão para selecionar métricas de fluxo para tráfego TCP do namespace production para os endpoints que a Cilium classifica como world. Isto altera a recolha de métricas de fluxo sem alterar a recolha para outros tipos de métricas. Os filtros suportam nomes de namespace e pods, rótulos, endereços IP, identidades de segurança Cilium, protocolos e vereditos.
O filtragem controla quais as observações que contribuem para uma métrica. Não adiciona nem remove etiquetas métricas. Ao contrário dos campos adicionais de agregação para registos, as dimensões métricas continuam geridas pelo serviço.
A filtragem afeta novas observações métricas na origem. Selecionar uma carga de trabalho no Grafana altera os resultados apresentados, não a configuração da coleção. Os dados previamente recolhidos permanecem no backend das suas métricas.
Métricas adicionais
Para recolher qualquer uma das métricas seguintes, adicione uma entrada ao recurso do ContainerNetworkMetric cluster com filtros de inclusão que selecionam o tráfego que pretende monitorizar. Se a métrica ainda não estiver ativada, a entrada ativa-a para o tráfego selecionado. Se já estiver ativado, a entrada filtra qual o tráfego que contribui para ela sem alterar os rótulos ou opções existentes.
| Métrico | Use | O que conta |
|---|---|---|
hubble_flows_to_world_total |
Identificar endereços IP de destino para tráfego TCP selecionado para endpoints que a Cilium classifica como world. Configurar como flows-to-world. |
Observações de TCP SYN sem resposta. Com a configuração apenas SYN do serviço, o tráfego UDP não é contabilizado. |
hubble_port_distribution_total |
Analise o tráfego selecionado por protocolo e porta de destino. Configurar como port-distribution. |
Observações encaminhadas ou redirecionadas identificadas como tráfego sem resposta. Tráfego perdido e tráfego com estado de resposta desconhecido não são contabilizados. |
Para métricas recentemente ativadas através deste recurso, o serviço configura as etiquetas do pod de origem e do IP de destino para flows-to-world. Para port-distribution, configura os rótulos dos pods de origem e destino e a direção do tráfego. Os rótulos do protocolo e do veredicto estão incluídos para flows-to-world; os rótulos do protocolo e da porta de destino estão incluídos para port-distribution. Com estas opções fornecidas pelo serviço, a métrica global não conta o tráfego UDP nem as quedas não relacionadas com políticas.
Estas métricas contam eventos de rede observados, não ligações únicas ou pedidos de aplicação. Por exemplo, se um cliente enviar um pacote TCP SYN e depois o retransmitir enquanto tenta ligar-se, hubble_flows_to_world_total pode contar ambas as observações mesmo que pertençam à mesma tentativa de ligação. Rótulos, como nomes de pods, só são preenchidos quando essa informação está disponível para o tráfego observado.
Para um recurso personalizado completo e capturas de ecrã de ambas as métricas recolhidas a partir de uma carga de trabalho de teste, consulte Exemplo de configuração e resultados capturados.
Gerir a relevância e o ruído dos dados
Utilize a filtragem para focar métricas nas cargas de trabalho e no tráfego relevantes para a sua monitorização ou investigação. Excluir tráfego não relacionado reduz o ruído dos dados e ajuda-o a focar-se nos sinais de rede que importam.
Endereços IP de destino, nomes de pods e portas podem produzir muitas séries temporais. Este detalhe pode ser útil, mas recolhê-lo para tráfego não relacionado adiciona ruído e pode aumentar os custos de ingestão. Comece com uma carga de trabalho ou namespace específico, veja se as métricas respondem às suas perguntas e verifique o volume de dados resultante antes de expandir a coleção.
O recurso personalizado reporta um aviso para cada métrica extra ativada. O aviso identifica um potencial aumento de custo; não estima a sua fatura nem indica que um limite foi ultrapassado. O serviço gere etiquetas métricas e não podes alterá-las através deste recurso.
Remover uma entrada só desativa a métrica se essa entrada for a que a habilitou. Se o serviço disponibilizar a métrica, continuará ativo sem os filtros dessa entrada. Eliminar o recurso partilhado remove todos os seus filtros e restaura a recolha fornecida pelo serviço, o que pode alargar o tráfego incluído nessas métricas e aumentar o ruído dos dados e o volume de ingestão.
Para exemplos de YAML, consultas de verificação e passos de limpeza, consulte Configurar filtragem de métricas de rede de contentores.
Limitations
Plataforma e plano de dados:
- As métricas de nível de pod estão disponíveis apenas no Linux.
- O plano de dados Cilium é suportado a partir do Kubernetes versão 1.29.
- A filtragem de métricas ao nível da fonte está disponível apenas em clusters Cilium.
- As entradas de filtro podem ativar
flows-to-worldeport-distributionquando o serviço ainda não as fornece. O serviço gere as suas etiquetas; este recurso não expõe dimensões métricas personalizadas. - Os rótulos métricos têm diferenças sutis entre clusters de Cilium e não-Cilium.
Métricas DNS:
- Nos clusters Cilium, métricas DNS requerem uma política de rede Cilium FQDN, ou pode usar a CLI do Hubble para resolução de problemas DNS em tempo real.
Problemas conhecidos:
- Se um agente de nó do Hubble falhar, o relé do Hubble pode falhar, o que pode interromper as sessões de CLI do Hubble.
Suporte FIPS (apenas planos de dados não-Cilium):
- O FIPS não está disponível nos nós Ubuntu 20.04 devido a restrições do kernel. Em vez disso, utilize um conjunto de nós do Azure Linux ou do Ubuntu 22.04. Esta limitação não se aplica aos planos de dados Cilium.
| Sistema Operativo | Suporte FIPS |
|---|---|
| Azure Linux 3.0 | Yes |
| Azure Linux 2.0 | Yes |
| Ubuntu 20,04 | No |
| Ubuntu 22,04 | Yes |
Dimensionamento:
- O serviço gerenciado do Prometheus no Azure Monitor e no Azure Managed Grafana impõe limitações de escala específicas do serviço. Para obter mais informações, consulte Coletar métricas do Prometheus em escala no Azure Monitor.
Pricing
Important
Advanced Container Networking Services é uma oferta paga.
Para obter mais informações sobre preços, consulte Advanced Container Networking Services - Pricing.
Conteúdo relacionado
- Configurar métricas de rede de contentores
- Configurar a filtragem de métricas de rede de contentores
- Serviços Avançados de Rede de Contentores para AKS
- Observabilidade de Redes de Contentores em Serviços Avançados de Redes de Contentores
- Segurança de Redes de Contentores em Serviços Avançados de Redes de Contentores