Fazer análises históricas com o Cloud Logging

Quando um pod falha ou um serviço não funciona como esperado no Google Kubernetes Engine (GKE), é fundamental entender a sequência de eventos que levaram ao problema. A inspeção do estado atual nem sempre é suficiente para encontrar a causa raiz, o que torna os dados de registro históricos inestimáveis.

Use esta página para aprender a usar o Cloud Logging para investigar falhas anteriores (por exemplo, por que um pod não foi iniciado ou quem excluiu uma implantação crítica) consultando e analisando os registros do GKE.

Essas informações são importantes para administradores e operadores de plataforma que precisam realizar análises de causa raiz em problemas de cluster, auditar mudanças e entender as tendências de comportamento do sistema. Elas também são essenciais para desenvolvedores de aplicativos para depurar erros específicos do aplicativo, rastrear caminhos de solicitação e entender como o código se comporta no ambiente do GKE ao longo do tempo. Para mais informações sobre os papéis comuns e os exemplos de tarefas que referenciamos no Google Cloud content, consulte Papéis e tarefas de usuário comuns do GKE.

Entender os principais tipos de registro para solução de problemas

Para ajudar na solução de problemas, o Cloud Logging coleta e agrega automaticamente vários tipos de registro importantes dos clusters do GKE, apps conteinerizados e outros Google Cloud serviços:

  • Registros de nós e de ambiente de execução (kubelet, containerd): os registros dos serviços de nós subjacentes. Como o kubelet gerencia o ciclo de vida de todos os pods no nó, os registros dele são essenciais para solucionar problemas como inicializações de contêineres, eventos de falta de memória (OOM, na sigla em inglês), falhas de investigação e erros de montagem de volume. Esses registros também são essenciais para diagnosticar problemas no nível do nó, como um nó com o status NotReady.

    Como o containerd gerencia o ciclo de vida dos contêineres, incluindo o extração de imagens, os registros dele são essenciais para solucionar problemas que acontecem antes que o kubelet possa iniciar o contêiner. Os registros do containerd ajudam a diagnosticar problemas no nível do nó no GKE, porque documentam as atividades específicas e os possíveis erros do ambiente de execução do contêiner.

  • Registros de apps (stdout, stderr): a saída padrão e os streams de erro dos processos conteinerizados. Esses registros são essenciais para depurar problemas específicos do app, como falhas, erros ou comportamento inesperado.

  • Registros de auditoria: esses registros respondem a perguntas como "quem fez o quê, onde e quando?" para o cluster. Eles rastreiam ações administrativas e chamadas de API feitas para o servidor da API Kubernetes, o que é útil para diagnosticar problemas causados por mudanças de configuração ou acesso não autorizado.

Cenários comuns de solução de problemas

Depois de identificar um problema, você pode consultar esses registros para descobrir o que aconteceu. Para começar, a revisão dos registros pode ajudar com estes problemas:

  • Se um nó tiver o status NotReady, revise os registros dele. Os registros kubelet e containerd geralmente revelam a causa subjacente, como problemas de rede ou restrições de recursos.
  • Se um novo nó não for provisionado e não entrar no cluster, revise os registros da porta serial do nó . Esses registros capturam a inicialização antecipada e a atividade de inicialização do kubelet antes que os agentes de registro do nó estejam totalmente ativos.
  • Se um pod não foi iniciado no passado, revise os registros do app desse pod para verificar se há falhas. Se os registros estiverem vazios ou o pod não puder ser programado, verifique os registros de auditoria para eventos relevantes ou os registros de nós no nó de destino para encontrar pistas sobre pressão de recursos ou erros de extração de imagem.
  • Se uma implantação crítica foi excluída e ninguém sabe o motivo, consulte os registros de auditoria da atividade do administrador. Esses registros podem ajudar a identificar qual usuário ou conta de serviço emitiu a chamada de API de exclusão, fornecendo um ponto de partida claro para a investigação.

Como acessar registros

Use a Análise de registros para consultar, visualizar e analisar os registros do GKE no Google Cloud console. A Análise de registros oferece opções de filtragem avançadas que ajudam a isolar o problema.

Para acessar e usar a Análise de registros, siga estas etapas:

  1. No Google Cloud console do, acesse a página Análise de registros.

    Acessar a Análise de registros

  2. No painel de consulta, insira uma consulta. Use a linguagem de consulta do Logging para escrever consultas direcionadas. Confira alguns filtros comuns para começar:

    Tipo de filtro Descrição Valor de exemplo
    resource.type O tipo de recurso do Kubernetes. k8s_cluster, k8s_node, k8s_pod, k8s_container
    log_id O stream de registro do recurso. stdout, stderr
    resource.labels.RESOURCE_TYPE.name Filtrar recursos com um nome específico.
    Substitua RESOURCE_TYPE pelo nome do recurso que você quer consultar. Por exemplo, namespace ou pod.
    example-namespace-name, example-pod-name
    severity O nível de gravidade do registro. DEFAULT, INFO, WARNING, ERROR, CRITICAL
    jsonPayload.message=~ Uma pesquisa de expressão regular para texto na mensagem de registro. scale.down.error.failed.to.delete.node.min.size.reached

    Por exemplo, para solucionar problemas de um pod específico, talvez você queira isolar os registros de erros dele. Para ver apenas os registros com uma gravidade ERROR para esse pod, use a seguinte consulta:

    resource.type="k8s_container"
    resource.labels.pod_name="POD_NAME"
    resource.labels.namespace_name="NAMESPACE_NAME"
    severity=ERROR
    

    Substitua:

    • POD_NAME: o nome do pod que está com problemas.
    • NAMESPACE_NAME: o namespace em que o pod está. Se você não tiver certeza do namespace, revise a coluna Namespace na saída do comando kubectl get pods.

    Para mais exemplos, consulte Consultas relacionadas ao Kubernetes na documentação do Google Cloud Observability.

  3. Clique em Executar consulta.

  4. Para ver a mensagem de registro completa, incluindo o payload JSON, os metadados e o carimbo de data/hora, clique na entrada de registro.

Para mais informações sobre os registros do GKE, consulte Sobre os registros do GKE.

A seguir