Partilhar via


Monitoramento nos Serviços Kubernetes do Azure

Gorjeta

Este conteúdo é um excerto do eBook, Architecting Cloud Native .NET Applications for Azure, disponível no .NET Docs ou como um PDF transferível gratuito que pode ser lido offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

O registro interno no Kubernetes é primitivo. No entanto, existem algumas ótimas opções para tirar os logs do Kubernetes e colocá-los em um lugar onde eles possam ser devidamente analisados. Se você precisa monitorar seus clusters AKS, configurar o Elastic Stack para Kubernetes é uma ótima solução.

Azure Monitor para Contentores

O Azure Monitor for Containers 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 containersFigura 7-10. Consumindo logs de vários contêineres

Prometheus é uma solução popular de monitoramento de métricas de código aberto. Faz parte da Cloud Native Compute Foundation. Normalmente, o uso do Prometheus requer o gerenciamento de um servidor Prometheus com sua própria loja. No entanto, o Azure Monitor for Containers fornece integração direta com pontos de extremidade de métricas Prometheus, portanto, um servidor separado não é necessário.

As informações de log e métricas são coletadas não apenas dos contêineres em execução no cluster, mas também dos próprios hosts do cluster. Ele permite correlacionar informações de log dos dois, tornando muito mais fácil rastrear um erro.

A instalação dos coletores de log difere em clusters Windows e Linux . Mas, em ambos os casos, a coleção de logs é implementada como um Kubernetes DaemonSet, 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 painel de exemplo mostrando informações de log e métricas de muitos contêineres em execução.

Log.Finalize()

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