arrow_back

Cloud Logging no Kubernetes Engine

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Cloud Logging no Kubernetes Engine

Lab 1 hora universal_currency_alt 1 crédito show_chart Introdutório
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP483

Laboratórios autoguiados do Google Cloud

Informações gerais

O Cloud Logging pode ser usado para agregar registros de todos os recursos do Google Cloud e de recursos personalizados em outras plataformas, possibilitando o armazenamento centralizado de todos os registros e métricas. Os registros são agregados e mostrados na interface do Cloud Logging. Eles também podem ser exportados para coletores com o intuito de oferecer suporte a casos de uso mais especializados. Atualmente, é possível fazer exportações do Cloud Logging para estes coletores:

  • Cloud Storage
  • Pub/Sub
  • BigQuery

Neste laboratório, você vai implantar um aplicativo de amostra no Kubernetes Engine que encaminha eventos de registro para o Cloud Logging usando o Terraform (link em inglês). Com essa ferramenta declarativa de infraestrutura como código, é possível usar arquivos de configuração para automatizar a implantação e a evolução da infraestrutura na nuvem. A configuração vai criar um bucket do Cloud Storage e um conjunto de dados do BigQuery para exportar os dados de registro.

O laboratório foi criado por engenheiros do GKE Helmsman para explicar melhor o funcionamento do Cloud Logging. Para conferir esta demonstração, execute os comandos gsutil cp -r gs://spls/gke-binary-auth/* . e cd gke-binary-auth-demo no Cloud Shell. Incentivamos todas as pessoas a contribuir com nossos recursos.

Arquitetura

As configurações do Terraform criarão um cluster do Kubernetes Engine, que gera registros e métricas para consumo pelo Stackdriver. Os scripts também criarão coletores de exportação de registro para o Cloud Storage, o BigQuery e o Cloud Pub/Sub.

Confira o diagrama e o fluxo de dados neste gráfico:

Gráfico de arquitetura do Cloud Logging

Configuração

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Tarefa 1: clonagem da demonstração

  1. Na barra de cima do Cloud Shell, clique em Abrir em uma nova janela:

Barra do Cloud Shell com o ícone &quot;Abrir em uma nova janela&quot; destacado

  1. Execute o comando abaixo para configurar seu ID do projeto do Google Cloud, substituindo <YOUR_PROJECT_ID> pelo ID do projeto do Qwiklabs:
gcloud config set project <YOUR_PROJECT_ID>
  1. Agora, clone os recursos necessários para este laboratório:
git clone https://github.com/GoogleCloudPlatform/gke-logging-sinks-demo
  1. Mude seu diretório para esta demonstração:
cd gke-logging-sinks-demo

Configure sua região e zona

Alguns recursos do Compute Engine estão em regiões e zonas. As regiões são localizações geográficas específicas onde você executa seus recursos. Todas elas têm uma ou mais zonas.

Para saber mais sobre regiões e zonas, além de conferir uma lista completa com todas elas, acesse a página Regiões e zonas da documentação.

Execute o comando a seguir para configurar a região e a zona do seu laboratório (use a região/zona mais adequada para você):

gcloud config set compute/region {{{ project_0.default_region | REGION }}} gcloud config set compute/zone {{{ project_0.default_zone | ZONE }}}

Tarefa 2: implantação

Seguindo os princípios de infraestrutura como código e de infraestrutura imutável (link em inglês), o Terraform possibilita gravar descrições declarativas do estado de infraestrutura desejado. Quando o descritor é aplicado, o Terraform usa as APIs do Google Cloud para provisionar e atualizar os recursos.

O Terraform compara o estado desejado com o atual para que mudanças incrementais possam ser feitas sem excluir tudo e começar de novo. Por exemplo, o Terraform pode criar projetos do Google Cloud e instâncias de computação etc., e até mesmo configurar um cluster do Kubernetes Engine e implantar aplicativos nele. Quando os requisitos mudam, o descritor pode ser atualizado para o Terraform fazer as devidas alterações na infraestrutura em nuvem.

Neste laboratório, um cluster do Kubernetes Engine será iniciado, e um aplicativo de amostra simples será implantado nele. Por padrão, os clusters do Kubernetes Engine no Google Cloud têm um coletor baseado no Fluentd (link em inglês) pré-configurado que encaminha os registros para o Cloud Logging. A interação com o app de amostra produz registros que são mostrados no Cloud Logging e em outros coletores de eventos de registro.

Atualizar o arquivo provider.tf

  1. Remova a versão do provedor do Terraform do arquivo de script provider.tf.

  2. Na guia "Editor do Cloud Shell", selecione Arquivo>Abrir e clique em Abrir. No menu à esquerda, abra o arquivo /gke-logging-sinks-demo/terraform/provider.tf.

  3. Defina a versão como ~> 2.19.0. Após as modificações, o arquivo de script provider.tf terá esta aparência:

.... provider "google" { project = var.project version = "~> 2.19.0" }
  1. Salve e feche o arquivo.

Implantar o cluster

Este exemplo inclui três arquivos do Terraform.

O primeiro, main.tf, é o ponto de partida do Terraform. Ele descreve as funcionalidades que serão usadas, os recursos que serão manipulados e as saídas resultantes.

O segundo arquivo, provider.tf, indica o provedor de nuvem e a versão de destino dos comandos do Terraform, neste caso, o Google Cloud.

O último arquivo, variables.tf, contém uma lista das variáveis usadas como entradas no Terraform. Quando main.tf contém uma referência a uma variável que não tem padrões configurados em variables.tf, o sistema solicita a variável ao usuário no ambiente de execução.

  1. Você vai fazer uma pequena mudança em main.tf. No menu à esquerda, abra o arquivo /gke-logging-sinks-demo/terraform/main.tf.

  2. Role para baixo até a linha 110 e encontre a seção "Create the Stackdriver Export Sink for Cloud Storage GKE Notifications".

  3. Altere o resource.type do filtro de container para k8s_container.

  4. Faça o mesmo para o bigquery-sink na linha 119. Antes de continuar, confirme que as duas seções de sincronização da exportação têm esta aparência:

Exemplo de snippet de código com o &quot;k8s_container&quot; destacado

  1. Salve e feche o arquivo.

  2. Agora, para criar o ambiente executável usando o comando make, execute:

make create Observação: se aparecer um aviso de descontinuação sobre a variável da zona, ignore e prossiga com o laboratório.

Testar a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se você tiver implantado a infraestrutura necessária com o Terraform, uma pontuação de avaliação vai aparecer.

Usar o Terraform para configurar a infraestrutura necessária

Tarefa 3: validação

Se não houver erros durante a implantação, o cluster do Kubernetes Engine vai aparecer no console do Cloud após alguns minutos.

  1. Acesse Menu de navegação > Kubernetes Engine > Clusters para conferir o cluster com o aplicativo de amostra implantado.

  2. Para verificar se a demonstração foi implantada sem erros, execute:

make validate

A saída será semelhante a esta:

Tela de saída da validação

Agora que o aplicativo foi implantado no Kubernetes Engine, é possível gerar dados de registro que podem ser visualizados com o Cloud Logging ou outras ferramentas.

Tarefa 4: como gerar registros

O aplicativo de amostra que o Terraform implantou disponibiliza uma página da Web simples.

Cada vez que você abre o app no seu navegador, o aplicativo publica eventos de registro no Cloud Logging. Quando você atualiza a página algumas vezes, isso produz vários eventos de registro.

Para acessar o URL da página do aplicativo:

  1. No Menu de navegação do console do Cloud, acesse a seção "Rede" e clique em Serviços de rede.
  2. Na página Balanceamento de carga padrão, clique no nome do balanceador de carga TCP configurado.
  3. Na página Detalhes do balanceador de carga, acesse a seção Front-end na parte de cima.
  4. Em "Front-end", copie o valor do URL IP:Port. Abra um novo navegador e cole o URL. O navegador vai abrir uma tela semelhante e esta:

Tela do aplicativo de amostra exibindo uma mensagem &quot;Hello, World!&quot;, o número da versão e o nome do host

Observação: atualize a página algumas vezes para criar vários eventos de registro.

Tarefa 5: registros no Cloud Logging

O Cloud Logging tem uma interface para acessar os eventos de registro. Ele conta com recursos básicos de pesquisa e filtragem, que são úteis para depurar problemas no sistema.

O Cloud Logging é indicado para analisar eventos de registro mais recentes. Os usuários que precisam armazenar os eventos por períodos mais longos podem usar uma das ferramentas que conheceremos nas próximas seções.

Para acessar o console do Cloud Logging, siga estas etapas:

  1. No console do Cloud, acesse o Menu de navegação, a seção "Operações" e clique em Geração de registros.
  2. Nessa página, defina Resource type como Contêiner do Kubernetes e cluster_name como stackdriver-logging.

Página dos campos de registro com as opções &quot;Tipo de recurso&quot;, &quot;Nome do cluster&quot; e &quot;Nome do namespace&quot; selecionadas

  1. Clique em Executar consulta.

Guia &quot;Criador de consultas&quot;

  1. Em "Resultados da consulta", abra os itens do registro listados com marcadores para acessar mais detalhes sobre uma entrada.

No console do Cloud Logging, é possível fazer consultas no Criador de consultas ou testar vários recursos, como campos de registro, fuso horário etc.

Tarefa 6: como acessar os registros exportados

A configuração do Terraform criou dois coletores de exportação de registro. Para acessar os coletores, siga estas etapas:

  1. Você ainda deve estar na página Geração de registros.
  2. No menu de navegação à esquerda, clique em Roteador de registros.
  3. A lista de exportações de registros deve conter quatro coletores.
  4. Eles podem ser editados ou visualizados. Para fazer isso, clique no menu de contexto (três pontos) à direita do coletor e selecione a opção Editar coletor.
  5. Também é possível criar outros coletores de exportação personalizados com a opção Criar coletor, na parte de cima da janela de navegação.

Tarefa 7: registros no Cloud Storage

É possível armazenar eventos de registro no Cloud Storage, um sistema de armazenamento de objetos adequado para arquivamento de dados.

Você pode configurar políticas nos buckets do Cloud Storage para, por exemplo, excluir dados antigos e armazenar dados recentes com diversas classes de armazenamento que afetam preço e disponibilidade.

A configuração do Terraform criou um bucket do Cloud Storage chamado stackdriver-gke-logging-, para onde os registros serão exportados para arquivamento de médio e longo prazo.

Neste exemplo, a classe de armazenamento do bucket foi definida como "Nearline", porque o acesso aos registros não é frequente em um ambiente de produção normal (isso ajuda a controlar os custos de armazenamento de médio prazo). Em uma situação de produção, o bucket também poderia incluir uma política de ciclo de vida para mover o conteúdo para o Coldline Storage e reduzir o custo do armazenamento de longo prazo.

Para acessar os registros no Cloud Storage, siga estas etapas:

  1. No console do Cloud, no Menu de navegação, clique em Cloud Storage.
  2. Encontre o bucket com o nome stackdriver-gke-logging-<random-Id> e clique nele.
  3. Infelizmente, a propagação dos coletores para o Cloud Storage leva um tempo. Por isso, é provável que os detalhes do registro não apareçam no seu bucket.

Se você acessar o bucket novamente no fim do laboratório, talvez seja possível acessar pastas correspondentes aos pods executados no cluster (por exemplo, autoscaler, dnsmasq etc.).

Janela &quot;Detalhes do bucket&quot; mostrando uma lista de pastas na página com guias &quot;Objetos&quot;

Clique em qualquer uma das pastas para procurar detalhes específicos do registro, como heapster, kubedns, sidecar etc.

Tarefa 8: registros no BigQuery

É possível configurar os eventos de registro para publicação no BigQuery, uma ferramenta de armazenamento em data warehouse que permite realizar consultas rápidas e sofisticadas em grandes conjuntos de dados.

A configuração do Terraform vai criar um conjunto de dados (link em inglês) do BigQuery chamado gke_logs_dataset. Ele será configurado para incluir todos os registros relacionados do Kubernetes Engine de até uma hora atrás (para isso, definimos a "Expiração da tabela padrão" do conjunto de dados). Os registros do contêiner do Kubernetes Engine serão enviados para o conjunto de dados.

Para acessar os registros no BigQuery, siga estas etapas:

Observação: a exportação do BigQuery não é preenchida imediatamente. Pode levar algum tempo para os registros aparecerem.
  1. No Menu de navegação, na seção "Big Data", clique em BigQuery se a caixa de mensagem Welcome to BigQuery in the Cloud Console for aberta. Clique em Concluído.
  2. No menu à esquerda, clique no nome do seu projeto. Um conjunto de dados chamado gke_logs_dataset vai aparecer. Abra esse conjunto de dados para conferir as tabelas. Observação: o conjunto de dados é criado imediatamente, mas as tabelas são geradas conforme os registros são gravados e de acordo com a necessidade.
  3. Clique em uma das tabelas para conferir os detalhes.
  4. No esquema da tabela, observe os nomes e os tipos de dados das colunas. Você vai usar essas informações na próxima etapa para consultar os dados na tabela.

Página com guias do esquema da tabela &quot;stderr&quot; em &quot;gke_logs_dataset&quot;

  1. Clique em Consulta > Em uma nova guia no canto superior direito para fazer uma consulta personalizada na tabela.
  2. Uma consulta é adicionada ao editor de consultas, mas ela contém um erro de sintaxe.
  3. Na consulta, adicione um asterisco (*) após Select para extrair todos os detalhes da tabela atual. Observação: em geral, não recomendamos usar a consulta Select * por ser muito cara. Neste laboratório, o conjunto de dados é limitado apenas a uma hora de registros, por isso é relativamente pequeno.
  4. Clique em Executar para executar a consulta e recuperar alguns resultados da tabela.

A janela de resultados deve exibir algumas linhas e colunas. Role pelas várias linhas de dados retornados. Se preferir, faça algumas consultas personalizadas que filtram dados específicos com base nos resultados da consulta original.

Testar a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se o coletor do BigQuery tiver gravado registros no conjunto de dados do BigQuery, uma pontuação de avaliação vai aparecer.

Acessar registros no BigQuery

Tarefa 9: eliminação

  • Embora o Qwiklabs se encarregue de desativar todos os recursos usados no laboratório, saiba como limpar seu ambiente para reduzir o custo e ser um bom usuário da nuvem:
make teardown

Como o Terraform monitora todos os recursos que criou, ele pode eliminar tudo.

Tarefa 10: solução de problemas no seu ambiente de produção

Ocorre uma falha no script de instalação com a mensagem Permission denied na execução do Terraform.

As credenciais que o Terraform está usando não concedem as permissões necessárias para criar recursos nos projetos selecionados.

  1. Verifique se a conta listada em gcloud config list tem as permissões necessárias para criar recursos.

  2. Se tiver, gere novamente as credenciais padrão do aplicativo usando gcloud auth application-default login.

O bucket do Cloud Storage não foi preenchido

Quando a configuração do Terraform é concluída, o bucket do Cloud Storage é criado, mas talvez ele não seja preenchido imediatamente com dados de registro do cluster do Kubernetes Engine.

Aguarde um pouco. Pode levar de 2 a 3 horas para as primeiras entradas aparecerem. Saiba mais sobre o Cloud Storage na documentação sobre a visualização de registros em destinos dos coletores.

Nenhuma tabela foi criada no conjunto de dados do BigQuery

Quando a configuração do Terraform é concluída, o conjunto de dados do BigQuery é criado, mas talvez ele não contenha nenhuma tabela no momento em que você conferir os resultados.
É raro as tabelas serem preenchidas imediatamente.

Aguarde um pouco (no mínimo 5 minutos) antes de considerar que algum erro ocorreu.

Parabéns

Terminar a Quest

Este laboratório autoguiado faz parte das Quests Google Cloud's Operations Suite on GKE e Google Cloud Logging. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Caso você já tenha feito este laboratório, faça sua inscrição em uma Quest para ganhar os créditos de conclusão imediatamente. Consulte o catálogo do Google Cloud Ensina para conferir todas as Quests disponíveis.

Próximas etapas / Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 18 de outubro de 2023
Laboratório testado em 20 de outubro de 2023

Copyright 2024 Google LLC. Este software é fornecido no estado em que se encontra, sem declarações nem garantias para qualquer uso ou finalidade. O uso do software está sujeito ao seu contrato com o Google.