Compartilhar via


Como monitorar nos Serviços de Kubernetes do Azure

Dica

Esse conteúdo é um trecho do livro eletrônico, para Projetar os Aplicativos .NET nativos de nuvem para o Azure, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

O registro em log interno no Kubernetes é primitivo. No entanto, há algumas ótimas opções para retirar os logs do Kubernetes e mandá-los para um local em que possam ser analisados corretamente. Se você precisar monitorar seus clusters do AKS, configurar o Elastic Stack para Kubernetes é uma ótima solução.

Azure Monitor para Contêineres

O Azure Monitor para Contêineres dá suporte ao consumo de logs não apenas do Kubernetes, mas também de outros mecanismos de orquestração, como DC/OS, Docker Swarm e Red Hat OpenShift.

Consuming logs from various containersFiguras 7–10. Consumindo logs de vários contêineres

O Prometheus é uma solução popular de monitoramento de métricas de código aberto. Ele faz parte da Cloud Native Compute Foundation. Normalmente, o uso do Prometheus requer o gerenciamento de um servidor Prometheus com o próprio repositório. No entanto, o Azure Monitor para Contêineres fornece integração direta com pontos de extremidade de métricas do Prometheus, portanto, um servidor separado não é necessário.

As informações de log e de métrica são coletadas não apenas dos contêineres em execução no cluster, mas também dos próprios hosts do cluster. Elas permitem correlacionar informações de log dos dois, facilitando o rastreamento de um erro.

A instalação dos coletores de log é diferente nos clusters Windows e Linux. Mas, em ambos os casos, a coleção de logs é implementada como um DaemonSet do Kubernetes, o que significa que o coletor de logs é executado como um contêiner em cada um dos nós.

Não importa qual orquestrador ou sistema operacional esteja executando o daemon do Azure Monitor, as informações de log são encaminhadas para as mesmas ferramentas do Azure Monitor com as quais os usuários estão familiarizados. Essa abordagem garante uma experiência paralela em ambientes que misturam diferentes fontes de log, como um ambiente híbrido do Kubernetes/Azure Functions.

A sample dashboard showing logging and metric information from a number of running containers.Figura 7-11. Um exemplo de painel mostrando informações de registro em log e de métrica de muitos contêineres em execução.

Log.Finalize()

O registro em log é uma das partes mais negligenciadas porém mais importantes da implantação de qualquer aplicativo em escala. À medida que o tamanho e a complexidade dos aplicativos aumentam, a dificuldade de depurá-los também aumenta. Ter logs de alta qualidade disponíveis torna a depuração muito mais fácil e a move da esfera do "quase impossível" para a de "uma experiência agradável".