Monitorizar Azure Kubernetes Service (AKS) com o Azure Monitor

Este cenário descreve como utilizar o Azure Monitor para monitorizar o estado de funcionamento e o desempenho do Azure Kubernetes Service (AKS). Inclui uma coleção de telemetria crítica para monitorização, análise e visualização de dados recolhidos para identificar tendências e como configurar alertas para serem notificados proativamente de problemas críticos.

O Guia de Monitorização da Cloud define os principais objetivos de monitorização nos quais deve concentrar-se nos seus recursos do Azure. Este cenário centra-se na monitorização do Estado de Funcionamento e do Estado com o Azure Monitor.

Âmbito do cenário

Este cenário destina-se a clientes que utilizam o Azure Monitor para monitorizar o AKS. Não inclui o seguinte, embora este conteúdo possa ser adicionado em atualizações subsequentes ao cenário.

  • Monitorização de clusters do Kubernetes fora do Azure, exceto para consultar conteúdos existentes do Kubernetes compatível com o Azure Arc.
  • Monitorização do AKS com ferramentas que não o Azure Monitor, exceto para preencher lacunas no Azure Monitor e no Container Insights.

Nota

O Azure Monitor foi concebido para monitorizar a disponibilidade e o desempenho dos recursos da cloud. Embora os dados operacionais armazenados no Azure Monitor possam ser úteis para investigar incidentes de segurança, outros serviços no Azure foram concebidos para monitorizar a segurança. A monitorização de segurança do AKS é feita com o Microsoft Sentinel e Microsoft Defender para a Cloud. Veja Monitorizar máquinas virtuais com o Azure Monitor – Monitorização de segurança para obter uma descrição das ferramentas de monitorização de segurança no Azure e a respetiva relação com o Azure Monitor.

Para obter informações sobre como utilizar os serviços de segurança para monitorizar o AKS, veja Microsoft Defender do Kubernetes – os benefícios e funcionalidades e os registos de diagnósticos do Connect Azure Kubernetes Service (AKS) no Microsoft Sentinel.

Informações do contentor

O AKS gera métricas de plataforma e registos de recursos, como qualquer outro recurso do Azure, que pode utilizar para monitorizar o estado de funcionamento e o desempenho básicos. Ative as Informações do contentor para expandir nesta monitorização. As informações de contentores são uma funcionalidade no Azure Monitor que monitoriza o estado de funcionamento e o desempenho dos clusters do Kubernetes geridos alojados no AKS, além de outras configurações de cluster. As informações de contentor fornecem vistas interativas e livros que analisam os dados recolhidos para uma variedade de cenários de monitorização.

O Prometheus e o Grafana são ferramentas de open source muito populares suportadas pela CNCF para a monitorização do kubernetes. O AKS expõe muitas métricas no formato Prometheus, o que faz do Prometheus uma escolha popular para monitorização. As informações de contentor têm integração nativa com o AKS, recolha de métricas e registos críticos, alertas sobre problemas identificados e fornecimento de visualização com livros. Também recolhe determinadas métricas do Prometheus e muitas informações nativas do Azure Monitor são criadas com base nas métricas do Prometheus. As informações de contentor complementam e completam a monitorização E2E do AKS, incluindo a recolha de registos que o Prometheus como ferramenta autónoma não fornece. Muitos clientes utilizam a integração do Prometheus e o Azure Monitor em conjunto para monitorização E2E.

Saiba mais sobre a utilização das Informações de contentor na Descrição geral das Informações do contentor. Monitorizar camadas do AKS com informações de Contentor abaixo apresenta várias funcionalidades das Informações do contentor e os cenários de monitorização que suportam.

Informações do contentor

Configurar a monitorização

As secções seguintes descrevem os passos necessários para configurar a monitorização completa do cluster do AKS com o Azure Monitor.

Criar uma área de trabalho do Log Analytics

Precisa de, pelo menos, uma área de trabalho do Log Analytics para suportar as Informações do contentor e recolher e analisar outras telemetrias sobre o cluster do AKS. Não há nenhum custo para a área de trabalho, mas incorre em custos de ingestão e retenção quando recolhe dados. Veja Detalhes de preços dos Registos do Azure Monitor para obter detalhes.

Se estiver apenas a começar a utilizar o Azure Monitor, comece com uma única área de trabalho e considere criar áreas de trabalho adicionais à medida que os seus requisitos evoluem. Muitos ambientes utilizarão uma única área de trabalho para todos os recursos do Azure que monitorizam. Pode até partilhar uma área de trabalho utilizada pelo Microsoft Defender para a Cloud e o Microsoft Sentinel, embora muitos clientes optem por segregar a sua disponibilidade e telemetria de desempenho dos dados de segurança.

Veja Estruturar a implementação de Registos do Azure Monitor para obter detalhes sobre a lógica que deve considerar para conceber uma configuração de área de trabalho.

Ativar as informações do contentor

Quando ativa as Informações de contentor para o cluster do AKS, esta implementa uma versão em contentores do agente do Log Analytics que envia dados para o Azure Monitor. Existem vários métodos para o ativar consoante esteja a trabalhar com um cluster do AKS novo ou existente. Veja Ativar informações de contentor para obter pré-requisitos e opções de configuração.

Configurar a coleção a partir do Prometheus

As informações de contentor permitem-lhe enviar métricas do Prometheus para o serviço gerido do Azure Monitor para o Prometheus ou para a área de trabalho do Log Analytics sem precisar de um servidor Prometheus local. Pode analisar estes dados com as funcionalidades do Azure Monitor, juntamente com outros dados recolhidos pelas Informações do contentor. Veja Recolher métricas do Prometheus com as Informações do contentor para obter detalhes sobre esta configuração.

Recolher registos de recursos

Os registos dos componentes do plano de controlo do AKS são implementados no Azure como registos de recursos. Atualmente, as informações do contentor não utilizam estes registos, pelo que tem de criar as suas próprias consultas de registo para as ver e analisar. Veja Como consultar registos das Informações do contentor para obter detalhes sobre a estrutura destes registos e como escrever consultas para os mesmos.

Tem de criar uma definição de diagnóstico para recolher registos de recursos. Crie várias definições de diagnóstico para enviar diferentes conjuntos de registos para diferentes localizações. Veja Criar definições de diagnóstico para enviar registos e métricas da plataforma para diferentes destinos para criar definições de diagnóstico para o cluster do AKS.

Existe um custo para enviar registos de recursos para uma área de trabalho, pelo que só deve recolher as categorias de registo que pretende utilizar. Envie registos para uma conta de armazenamento do Azure para reduzir os custos se precisar de manter as informações, mas não exigir que estejam prontamente disponíveis para análise. Veja Registos de recursos para obter uma descrição das categorias disponíveis para o AKS e Veja Detalhes de preços dos Registos do Azure Monitor para obter detalhes sobre o custo de ingestão e retenção de dados de registo. Comece por recolher um número mínimo de categorias e, em seguida, modifique a definição de diagnóstico para recolher categorias adicionais à medida que as suas necessidades aumentam e à medida que compreende os custos associados.

Se não tiver a certeza sobre quais os registos de recursos a ativar inicialmente, utilize as recomendações na tabela seguinte que se baseiam nos requisitos mais comuns do cliente. Ative as outras categorias se, posteriormente, descobrir que precisa destas informações.

Categoria Ativar? Destino
cluster-autoscaler Ativar se o dimensionamento automático estiver ativado Área de trabalho do Log Analytics
guardar Ativar se o Azure Active Directory estiver ativado Área de trabalho do Log Analytics
kube-apiserver Ativar Área de trabalho do Log Analytics
kube-audit Ativar Armazenamento do Azure. Isto mantém os custos no mínimo, mas mantém os registos de auditoria se forem exigidos por um auditor.
kube-audit-admin Ativar Área de trabalho do Log Analytics
kube-controller-manager Ativar Área de trabalho do Log Analytics
kube-scheduler Desativar
AllMetrics Ativar Área de trabalho do Log Analytics

Aceder às funcionalidades do Azure Monitor

Aceda às funcionalidades do Azure Monitor para todos os clusters do AKS na sua subscrição a partir do menu Monitorização no portal do Azure ou para um único cluster do AKS a partir da secção Monitorizar do menu de serviços do Kubernetes. A captura de ecrã abaixo mostra o menu Monitor do cluster.

Menu Monitorização do AKS

Opção de menu Description
Informações Abre as informações do contentor para o cluster atual. Selecione Contentores no menu Monitorizar para abrir informações de contentor para todos os clusters.
Alertas Visualiza alertas para o cluster atual.
Métricas Abra o explorador de métricas com o âmbito definido como o cluster atual.
Definições de diagnóstico Crie definições de diagnóstico para o cluster recolher registos de recursos.
Assistente Recomendações para o cluster atual do Assistente do Azure.
Registos Abra o Log Analytics com o âmbito definido para o cluster atual para analisar dados de registo e aceder a consultas pré-criadas.
Livros Abra a galeria de livros do serviço Kubernetes.

Monitorizar camadas do AKS com informações de Contentor

Devido à grande variação nas implementações do Kubernetes, cada cliente terá requisitos exclusivos para a monitorização do AKS. A abordagem que adotar deve basear-se em fatores como dimensionamento, topologia, funções organizacionais e inquilinos de vários clusters. Esta secção apresenta uma estratégia comum que é uma abordagem de baixo para cima a partir da infraestrutura para cima através de aplicações. Cada camada tem requisitos de monitorização distintos. Estas camadas são ilustradas no diagrama seguinte e abordadas mais detalhadamente nas secções seguintes.

Camadas do AKS

Nível 1 - Componentes ao nível do cluster

O nível de cluster inclui os seguintes componentes.

Componente Requisitos de monitorização
Compreenda o estado de preparação e o desempenho da utilização de CPU, memória, disco e IP para cada nó e monitorize proativamente as tendências de utilização antes de implementar cargas de trabalho.

Utilize vistas e relatórios existentes no Container Insights para monitorizar os componentes ao nível do cluster. A vista Cluster dá-lhe uma vista rápida do desempenho dos nós no cluster, incluindo a utilização da CPU e da memória. Utilize a vista Nós para ver o estado de funcionamento de cada nó, para além do estado de funcionamento e desempenho dos pods em execução em cada um. Veja Monitorizar o desempenho do cluster do Kubernetes com as Informações do contentor para obter detalhes sobre como utilizar esta vista e analisar o estado de funcionamento e o desempenho dos nós. Utilize a vista Utilização de IP da Sub-rede em livros para obter uma vista rápida da atribuição e atribuição de IP em cada nó para um intervalo de tempo selecionado.

Vista de cluster do Container Insights

Utilize livros do Node no Container Insights para analisar a capacidade do disco e a E/S, além da utilização da GPU. Veja Livros de Monitorização de Nós para obter uma descrição destes livros.

Livros de nós do Container Insights

Para cenários de resolução de problemas, poderá ter de aceder diretamente aos nós do AKS para manutenção ou recolha de registos imediata. Para fins de segurança, os nós do AKS não estão expostos à Internet, mas pode kubectl debug utilizar o SSH para os nós do AKS. Veja Connect with SSH to Azure Kubernetes Service (AKS) cluster nodes for maintenance or troubleshooting (Ligar com SSH a Azure Kubernetes Service nós de cluster (AKS) para manutenção ou resolução de problemas para obter detalhes sobre este processo.

Nível 2 - Componentes do AKS geridos

O nível do AKS gerido inclui os seguintes componentes.

Componente Monitorização
Servidor de API Monitorize o estado do servidor de API, identificando qualquer aumento na carga do pedido e estrangulamentos se o serviço estiver inativo.
Kubelet A monitorização do Kubelet ajuda na resolução de problemas de gestão de pods, pods não iniciados, nós não prontos ou pods a serem eliminados.

As informações do Azure Monitor e do contentor ainda não fornecem monitorização completa para o servidor de API. Pode utilizar o explorador de métricas para ver o contador Pedidos de Voo, mas deve consultar as métricas no Prometheus para obter uma vista completa do desempenho do Servidor de API. Isto inclui valores como a latência do pedido e o tempo de processamento da fila de trabalho. Um dashboard do Grafana que fornece vistas das métricas críticas para o servidor de API está disponível no Grafana Labs. Utilizar este dashboard no servidor Grafana existente ou configurar um novo servidor Grafana no Azure com o Monitor dos seus serviços do Azure no Grafana

Servidor da API do Grafana

Utilize o livro do Kubelet para ver o estado de funcionamento e o desempenho de cada kubelet. Veja Livros de Monitorização de Recursos para obter detalhes sobre este livro. Para cenários de resolução de problemas, pode aceder aos registos do kubelet com o processo descrito em Obter registos kubelet de nós de cluster do Azure Kubernetes Service (AKS).

Livro do kubelet das informações de contentor

Registos do recurso

Utilize consultas de registo com registos de recursos para analisar os registos do plano de controlo gerados pelos componentes do AKS.

Nível 3 – Objetos e cargas de trabalho do Kubernetes

Os objetos do Kubernetes e o nível de cargas de trabalho incluem os seguintes componentes.

Componente Requisitos de monitorização
Implementações Monitorize o estado real vs. pretendido da implementação e o estado e a utilização de recursos dos pods em execução nos mesmos.
Pods Monitorize o estado e a utilização de recursos, incluindo a CPU e a memória, dos pods em execução no cluster do AKS.
Contentores Monitorize a utilização de recursos, incluindo a CPU e a memória, dos contentores em execução no cluster do AKS.

Utilize vistas e relatórios existentes no Container Insights para monitorizar contentores e pods. Utilize as vistas Nós e Controladores para ver o estado de funcionamento e o desempenho dos pods em execução nos mesmos e desagregar o estado de funcionamento e o desempenho dos contentores. Veja o estado de funcionamento e o desempenho dos contentores diretamente a partir da vista Contentores . Veja Monitorizar o desempenho do cluster do Kubernetes com as Informações do contentor para obter detalhes sobre como utilizar esta vista e analisar o estado de funcionamento e o desempenho dos contentores.

Vista de contentores de informações de contentor

Utilize o livro Implementação no Container Insights para ver as métricas recolhidas para implementações. Veja Deployment HPA metrics with Container insights (Métricas do HPA de implementação & com Informações de contentores ) para obter detalhes.

Nota

A vista Implementações no Container Insights está atualmente em pré-visualização pública.

Livro de implementações do Container Insights

Dados dinâmicos

Em cenários de resolução de problemas, o Container Insights fornece acesso a registos de contentor do AKS em direto (stdout/stderror), eventos e métricas de pods. Veja How to view Kubernetes logs, events, and pod metrics in real-time (Como ver registos, eventos e métricas de pods do Kubernetes em tempo real ) para obter detalhes sobre a utilização desta funcionalidade.

Dados dinâmicos das informações do contentor

Nível 4 - Aplicações

O nível da aplicação inclui as cargas de trabalho da aplicação em execução no cluster do AKS.

Componente Requisitos de monitorização
Aplicações Monitorize as implementações de aplicações de microsserviços para identificar falhas de aplicações e problemas de latência. Inclui informações como taxas de pedido, tempos de resposta e exceções.

O Application Insights fornece monitorização completa das aplicações em execução no AKS e noutros ambientes. Se tiver uma aplicação Java, pode fornecer monitorização sem instrumentar o código após a monitorização de aplicações de instrumentação Zero para o Kubernetes – Azure Monitor Application Insights. No entanto, para uma monitorização completa, deve configurar a monitorização baseada em código consoante a sua aplicação.

Veja O que é o Application Insights?

Nível 5 - Componentes externos

Os componentes externos ao AKS incluem o seguinte.

Componente Requisitos de monitorização
Service Mesh, Entrada, Saída Métricas baseadas no componente.
Bases de dados e filas de trabalho Métricas baseadas no componente.

Monitorize componentes externos, como o Service Mesh, a Entrada, a Saída com o Prometheus e o Grafana ou outras ferramentas proprietárias. Monitorize bases de dados e outros recursos do Azure com outras funcionalidades do Azure Monitor.

Analisar dados de métricas com o explorador de métricas

Utilize o explorador de métricas quando quiser efetuar uma análise personalizada dos dados de métricas recolhidos para os seus contentores. O explorador de métricas permite-lhe desenhar gráficos, correlacionar visualmente tendências e investigar picos e quedas nos valores das métricas. Crie um alerta de métricas para notificá-lo proativamente quando um valor de métrica ultrapassa um limiar e afixar gráficos a dashboards para utilização por diferentes membros da sua organização.

Veja Introdução ao Explorador de Métricas do Azure para obter detalhes sobre como utilizar esta funcionalidade. Para obter uma lista das métricas de plataforma recolhidas para o AKS, veja Monitorizar métricas de referência de dados do AKS. Quando o Container Insights está ativado para um cluster, estão disponíveis valores de métricas de adição .

Explorador de métricas

Analisar dados de registo com o Log Analytics

Utilize o Log Analytics quando quiser analisar os registos de recursos ou aprofundar os dados utilizados para criar as vistas no Container Insights. O Log Analytics permite-lhe efetuar uma análise personalizada dos seus dados de registo.

Veja How to query logs from Container insights (Como consultar registos das Informações do contentor ) para obter detalhes sobre a utilização de consultas de registo para analisar os dados recolhidos pelas Informações do contentor. Veja Utilizar consultas no Log Analytics do Azure Monitor para obter informações sobre como utilizar estas consultas e o tutorial do Log Analytics para obter um tutorial completo sobre como utilizar o Log Analytics para executar consultas e trabalhar com os resultados.

Para obter uma lista das tabelas recolhidas para o AKS que pode analisar no explorador de métricas, veja Monitorizar registos de referência de dados do AKS.

Consultas do Log Analytics para o Kubernetes

Além dos dados do Container Insights, pode utilizar consultas de registo para analisar os registos de recursos do AKS. Para obter uma lista das categorias de registo disponíveis, veja Registos de recursos de referência de dados do AKS. Tem de criar uma definição de diagnóstico para recolher cada categoria, conforme descrito em Configurar a monitorização antes de os dados serem recolhidos.

Alertas

Os alertas no Azure Monitor notificam-no proativamente de dados e padrões interessantes nos seus dados de monitorização. Permitem-lhe identificar e resolver problemas no seu sistema antes que os seus clientes os observem. Não existem regras de alerta pré-configuradas para clusters do AKS, mas pode criar as suas próprias com base nos dados recolhidos pelas Informações do contentor.

Importante

A maioria das regras de alertas tem um custo que depende do tipo de regra, quantas dimensões inclui e com que frequência é executada. Veja Regras de alerta nos preços do Azure Monitor antes de criar regras de alerta.

Escolher o tipo de alerta

Os tipos mais comuns de regras de alerta no Azure Monitor são alertas de métricas e alertas de consulta de registo. O tipo de regra de alerta que criar para um cenário específico dependerá da localização dos dados nos quais está a alertar. No entanto, pode ter casos em que os dados de um determinado cenário de alerta estão disponíveis em Métricas e Registos e tem de determinar que tipo de regra deve utilizar.

Normalmente, é a melhor estratégia para utilizar alertas de métricas em vez de alertas de registo sempre que possível, uma vez que são mais reativos e com monitorização de estado. Pode criar um alerta de métrica em quaisquer valores que possa analisar no explorador de métricas. Se a lógica da regra de alerta necessitar de dados nos Registos ou se precisar de uma lógica mais complexa, pode utilizar uma regra de alerta de consulta de registo.

Por exemplo, se quiser alertar quando uma carga de trabalho de aplicação está a consumir CPU excessiva, pode criar um alerta de métrica com a métrica da CPU. Se precisar de um alerta quando for encontrada uma mensagem específica num registo do plano de controlo, precisará de um alerta de registo.

Regras de alerta de métricas

As regras de alerta de métricas utilizam os mesmos valores de métricas que o explorador de métricas. Na verdade, pode criar uma regra de alerta diretamente a partir do explorador de métricas com os dados que está atualmente a analisar. Pode utilizar qualquer um dos valores nas métricas de referência de dados do AKS para regras de alerta de métricas.

As informações de contentor incluem uma funcionalidade na pré-visualização pública que cria um conjunto recomendado de regras de alerta de métricas para o cluster do AKS. Esta funcionalidade cria novos valores de métricas (também em pré-visualização) utilizados pelas regras de alerta que também pode utilizar no explorador de métricas. Veja Alertas de métricas recomendados (pré-visualização) das Informações do contentor para obter detalhes sobre esta funcionalidade e sobre como criar alertas de métricas para o AKS.

Regras de alertas de registo

Utilize regras de alerta de registo para gerar um alerta a partir dos resultados de uma consulta de registo. Estes podem ser dados recolhidos pelas Informações do contentor ou pelos registos de recursos do AKS. Veja Como criar alertas de registo a partir das Informações do contentor para obter detalhes sobre as regras de alerta de registo do AKS e um conjunto de consultas de exemplo concebidas para regras de alerta. Também pode consultar How to query logs from Container insights (Como consultar registos a partir das Informações do contentor ) para obter detalhes sobre as consultas de registo que podem ser modificadas para regras de alerta.

Alertas de máquinas virtuais

O AKS baseia-se num Conjunto de Dimensionamento de Máquinas Virtuais que tem de estar em bom estado de funcionamento para executar cargas de trabalho do AKS. Pode alertar sobre métricas críticas, como CPU, memória e armazenamento para as máquinas virtuais, com a documentação de orientação em Monitorizar máquinas virtuais com o Azure Monitor: Alertas.

Alertas do Prometheus

Para as condições em que o Azure Monitor não tem os dados necessários para uma condição de alerta ou em que os alertas podem não ser suficientemente reativos, deve configurar alertas no Prometheus. Um exemplo é alertas para o servidor de API. O Azure Monitor não recolhe informações críticas para o servidor de API, incluindo se está disponível ou está a sofrer um estrangulamento. Pode criar um alerta de consulta de registo com os dados da categoria de registo de recursos kube-apiserver, mas isto pode demorar vários minutos até receber um alerta que pode não ser suficiente para os seus requisitos.

Passos seguintes