Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Sugestão
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.
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.
Figura 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 endpoints de métricas do Prometheus, portanto, um servidor separado não precisa.
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.
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 acesso a logs de alta qualidade facilita muito a depuração e transforma-a de "quase impossível" para "uma experiência agradável".