Neste codelab, você vai aprender a usar o Stackdriver para monitorar e analisar métricas e registros de desempenho de serviços e VMs do Google Cloud Platform.
Neste codelab, você vai:
- Conheça a página inicial do Stackdriver.
- Entender painéis e gráficos.
- Criar uma verificação de tempo de atividade.
- Crie uma política de alertas simples.
- Trabalhar com incidentes de alerta.
- Navegue pelo Visualizador de registros.
Qual é sua experiência com o Stackdriver?
Configuração de ambiente autoguiada
Se você ainda não tem uma Conta do Google (Gmail ou Google Apps), crie uma.
Faça login no Console do Google Cloud Platform (console.developers.google.com) e crie um projeto:
Lembre-se do ID do projeto, um nome exclusivo em todos os projetos do Google Cloud. Faremos referência a ele mais adiante neste codelab como PROJECT_ID
.
Muito importante: acesse a página do Compute Engine para começar a ativar a API Compute Engine:
Em seguida, clique em: Compute → Compute Engine → Instâncias de VM
Na primeira vez que você fizer isso, uma tela vai aparecer com a mensagem "O Compute Engine está sendo preparado. Isso pode levar um minuto ou mais". Você pode continuar fazendo login no Google Cloud Shell abaixo, mas não é possível criar VMs até que essa operação seja concluída.
A maioria das tarefas será realizada no Google Cloud Shell, um ambiente de linha de comando executado na nuvem. O Cloud Shell é uma máquina virtual com base em Debian que contém todas as ferramentas de desenvolvimento necessárias e oferece um diretório principal permanente de 5 GB. Clique no ícone no canto superior direito da tela para abrir o Google Cloud Shell:
Por fim, com o Cloud Shell, defina a zona padrão e a configuração do projeto:
$ gcloud config set compute/zone us-central1-b $ gcloud config set compute/region us-central
Você também pode escolher zonas diferentes. Leia a seção Regiões e zonas da documentação para saber mais.
Nesta seção, você vai criar instâncias do Compute Engine executando nginx+ usando o Cloud Launcher. Precisamos dessas instâncias para demonstrar o monitoramento e os alertas. É possível criar uma instância do Compute Engine no console gráfico ou na linha de comando. Neste laboratório, você vai conhecer as linhas de comando.
Agora vamos começar.
Use a gcloud para definir o ID do projeto:
$ gcloud config set project PROJECT_ID
Em seguida, copie e cole este texto:
$ for i in {1..3}; do \ gcloud compute instances create "nginx-plus-$i" \ --machine-type "n1-standard-1" \ --metadata "google-cloud-marketplace-solution-key=nginx-public:nginx-plus" \ --maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/cloud-platform" \ --tags "http-server","google-cloud-marketplace" \ --image "https://www.googleapis.com/compute/v1/projects/nginx-public/global/images/nginx-plus-ubuntu1404-v20150916-final" \ --boot-disk-size "10" --boot-disk-type "pd-standard" \ --boot-disk-device-name "nginx-plus-$i"; done
Você vai receber mensagens de aviso sobre o tamanho do disco e, em seguida, a seguinte saída à medida que cada VM é criada:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS nginx-plus-1 us-central1-b n1-standard-2 X.X.X.X X.X.X.X RUNNING ...
Anote o EXTERNAL_IP
, porque isso é importante mais tarde.
Essas operações podem levar alguns minutos para serem concluídas.
Por padrão, o Google Cloud Platform permite apenas alguns acessos de porta. Como vamos acessar o Nginx em breve, vamos ativar a porta 80 na configuração do firewall:
$ gcloud compute firewall-rules create allow-80 --allow tcp:80 --target-tags "http-server" Created [...]. NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS allow-80 default 0.0.0.0/0 tcp:80 http-server
Isso vai criar uma regra de firewall chamada "allow-80" com os seguintes valores padrão:
- A lista de blocos de endereços IP que podem fazer conexões de entrada (
--source-ranges
) é definida como0.0.0.0/0
(Em qualquer lugar). - A lista de tags de instância que indicam o conjunto de instâncias na rede que podem aceitar conexões de entrada está definida como "nenhuma", o que significa que a regra de firewall é aplicável a todas as instâncias.
Execute gcloud compute firewall-rules create --help
para conferir todos os padrões.
Depois que a primeira instância for criada, teste se o nginx está em execução e acessível navegando até http://EXTERNAL_IP/, em que EXTERNAL_IP
é o IP público de nginx-plus-1. A página do Nginx vai aparecer:
Também é possível ver as instâncias em execução digitando:
$ gcloud compute instances list
O Google Stackdriver é uma solução de monitoramento eficiente que integra várias ferramentas para facilitar o monitoramento e a análise dos seus aplicativos baseados na nuvem. É possível usar o Stackdriver para ver métricas de desempenho, definir e receber alertas, adicionar seus próprios painéis e métricas personalizados, visualizar registros e rastreamentos, configurar painéis integrados, tudo em um só lugar.
As próximas etapas vão mostrar como ativar o Stackdriver e trabalhar com o console.
Por padrão, o Google Stackdriver está na versão Beta e não está ativado para novos projetos. Para ativar, acesse a barra de navegação à esquerda e clique em "Monitoramento" (talvez seja necessário rolar para baixo para encontrar essa opção).
Na próxima tela, clique em "Ativar monitoramento" e aguarde um minuto para que ele seja ativado.
Depois de ativado, o conteúdo vai mudar e o texto abaixo vai aparecer. Clique em "Acessar o Monitoring" para começar a explorar. Faça login com o Google e acesse o console do Stackdriver para seu projeto. É lá que você vai realizar e analisar tarefas relacionadas ao monitoramento.
Vamos conhecer a página inicial.
- O menu na parte de cima: use para selecionar diferentes visualizações / contextos e acessar todas as ações disponíveis do Stackdriver.
- Painéis: são painéis de métricas e eventos monitorados. Inicialmente, esses são painéis predefinidos do sistema com base nos recursos do seu projeto, mas você também pode criar painéis personalizados.
- Verificações de tempo de atividade: verificam periodicamente a disponibilidade dos recursos voltados ao usuário e ativam alertas quando eles ficam indisponíveis.
- Lista de grupos: os grupos são usados para agrupar recursos que compartilham propriedades e características para que possam ser tratados como um grupo ou cluster para tarefas como monitoramento e alertas. Elas podem ser descobertas automaticamente ou definidas pelo usuário.
- Painel de incidentes: rastreia incidentes de alerta. Nada vai aparecer aqui até que você defina políticas de alerta.
- O registro de eventos lista eventos relacionados aos recursos monitorados, como mudanças de instâncias, eventos de incidentes etc.
Antes de analisarmos os gráficos, observe que a maioria das linhas ficou plana após a inicialização da instância. Vamos ver se conseguimos "descompactar" alguns deles gerando uma carga em uma das instâncias.
Para fazer SSH na instância pela linha de comando do Cloud Shell:
$ gcloud compute ssh nginx-plus-1 ... Do you want to continue (Y/n)? Y ... Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): [Hit Enter] Enter same passphrase again: [Hit Enter] ... yourusername@nginx-plus-1:~$
É isso! Bem fácil. Em produção, insira uma senha longa. Além disso, talvez não seja necessário adicionar uma senha longa.
Também é possível fazer SSH na instância diretamente do console. Para isso, navegue até Compute Engine > Instâncias de VM e clique em SSH.
In the SSH window, type:
yourusername@nginx-plus-1:~$ sudo apt-get install rand yourusername@nginx-plus-1:~$ for i in {1..10}; do dd if=/dev/zero of=/dev/null count=$(rand -M 80)M; sleep 60; done &
Agora a CPU da instância nginx-plus-1 está sendo carregada. Podemos voltar à guia do painel do Stackdriver e começar a explorar. Mas, antes de voltar à página de painéis do Stackdriver, vamos aproveitar para instalar o agente do Cloud Logging.
Fetch and install the script:
yourusername@nginx-plus-1:~$ curl -sS https://dl.google.com/cloudagents/add-logging-agent-repo.sh | sudo bash /dev/stdin --also-install
Ao instalar em produção, verifique o hash SHA-256. Saiba mais sobre o processo de instalação neste link.
Agora é hora de voltar para o console do Google Stackdriver.
Reserve um tempo para se familiarizar com a navegação e o uso de painéis e gráficos. Passe o cursor do mouse sobre as linhas do gráfico para ver o que acontece. Mude a duração dos gráficos (os controles estão no canto superior direito). Para voltar à visualização da página inicial, clique no logotipo do Stackdriver no canto superior esquerdo do console.
Vamos analisar o gráfico de utilização da CPU:
Alguns elementos do gráfico são:
- A linha destacada é a métrica selecionada no momento. Um gráfico pode mostrar várias métricas.
- A linha horizontal cinza representa o ponto no tempo para que o cursor do mouse está apontando.
- Na parte de baixo, há o nome do recurso e o valor no ponto no tempo selecionado.
- Na parte de cima do gráfico, há pontos coloridos que representam eventos detalhados no log de eventos. Clique neles para ver uma lista de eventos. Observação: talvez você não veja nada se ainda não tiver eventos.
- No canto superior direito do gráfico, há três controles (da esquerda para a direita):
- Alternar para ocultar/mostrar uma lista de métricas abaixo do gráfico
- Alternar para o modo tela cheia
- Menu com várias opções (você PRECISA testar o modo de raio-x quando tiver um gráfico muito detalhado). Observe a opção "Ver registros". Vamos falar sobre ela mais tarde.
Essas verificações permitem confirmar rapidamente a integridade de qualquer página da Web, instância ou grupo de recursos. Cada verificação configurada é regularmente realizada a partir de vários locais ao redor do mundo. As verificações de tempo de atividade podem ser usadas como condições nas definições de política de alertas.
Para mostrar as verificações e o status delas, selecione Alertas > Verificações de tempo de atividade no menu superior. Você também encontra seções de Verificações de tempo de atividade no painel do Google Stackdriver e em páginas dedicadas a recursos específicos. Para verificações de tempo de atividade que abrangem um grupo de recursos, é possível expandir a verificação para mostrar o status dos membros individuais do grupo.
Vamos criar uma verificação de tempo de atividade. Encontre o widget de verificações de tempo de atividade na tela inicial do Stackdriver:
Um novo pop-up vai aparecer. É possível configurar verificações de tempo de atividade para um único recurso ou grupo de recursos, usar cabeçalhos e payloads personalizados, adicionar autenticação e outras opções. Por enquanto, vamos usar apenas uma verificação HTTP padrão que vai verificar o grupo nginx criado automaticamente a cada minuto.
Use a captura de tela abaixo para preencher as diferentes opções:
Clique no botão "Test" para garantir que os endpoints estejam acessíveis (você vai receber três "ok" verdes) e clique em "Save". Observação: se você não receber respostas positivas, ainda poderá continuar com o laboratório, já que pode ser apenas um problema de tempo de verificação do teste.
Em seguida, você vai receber uma caixa "Verificação de tempo de atividade criada" e uma pergunta sobre se quer criar uma política de alertas para essa verificação. Vamos fazer isso na próxima seção. Não clique em nada ainda.
É possível configurar políticas de alerta para definir condições que determinam se os serviços e plataformas de nuvem estão operando normalmente. O Cloud Monitoring oferece vários tipos diferentes de métricas e verificações de integridade que podem ser usadas nas políticas.
Quando as condições de uma política de alertas são violadas, um incidente é criado e exibido no console do Stackdriver na seção "Incidente". Os responsáveis pelas respostas poderão confirmar o recebimento da notificação e encerrar o incidente assim que ele for solucionado.
Clique em "Criar política de alertas" e vamos configurar a política.
Agora você vai ver esta tela:
Insira um nome para a política: "Verificação de tempo de atividade para o grupo nginx".
Agora, na seção "Método de notificação", clique em "Adicionar notificação".
Digite o endereço de e-mail associado à sua conta do Google Cloud. Role até a parte de baixo da tela e clique em "Salvar política".
Volte à página inicial do Stackdriver (clicando no logotipo no canto superior esquerdo).
Agora, a verificação de tempo de atividade criada vai aparecer na seção "Verificações de tempo de atividade" do painel. Por enquanto, o status deve ser verde.
Role a tela para baixo até o registro de eventos. Lá, você vai encontrar o evento de criação de uma política de alertas.
Agora, vamos criar alguns problemas :)
Vamos ver o que acontece quando interrompemos o serviço Nginx.
Use o SSH novamente para acessar a instância na linha de comando do Cloud Shell:
$ gcloud compute ssh nginx-plus-1
e digite:
yourusername@nginx-plus-1:~$ sudo service nginx stop
Agora, a verificação de tempo de atividade que criamos vai falhar. Como resultado, um incidente será criado e um e-mail de notificação de alerta será enviado para o endereço inserido acima. Leva um minuto para que a condição seja detectada. Por isso, vamos examinar a página do grupo nginx.
Há várias maneiras de navegar até o painel de um grupo de recursos específico:
- Clique no nome do grupo na página inicial. Isso muda para um painel criado especificamente para monitorar os recursos do grupo. Também é possível personalizar esse painel.
- No menu de nível superior, selecione "Grupos" e encontre seu grupo específico.
Agora, clique no botão de atualização automática para garantir que os painéis sejam atualizados automaticamente. O ícone vai ficar vermelho.
Agora você está vendo um painel específico do grupo nginx criado automaticamente. À direita, há gráficos de várias métricas principais relacionadas ao grupo. Em outras palavras, esses gráficos mostram métricas relacionadas a todos os recursos do grupo nginx (as três VMs nginx+ que criamos anteriormente).
No lado esquerdo, você encontra várias informações relacionadas ao grupo:
- Status do incidente
- Verificações de tempo de atividade
- Log de eventos
- Uma lista de recursos (instâncias, volumes etc.)
Esses eventos se relacionam apenas ao grupo, e o registro de eventos lista apenas os eventos do grupo.
Clique em diferentes recursos ou subgrupos para acessar os painéis específicos deles. Por exemplo, clicar em "nginx-plus-1" vai abrir um painel que consiste apenas em métricas e verificações relacionadas a essa instância. Experimente agora:
Os incidentes do Stackdriver são abertos quando um conjunto de condições de alerta atende a um determinado critério. No nosso caso, definimos um alerta para a verificação de tempo de atividade do nginx, que está falhando no nginx-plus-1. Os incidentes ajudam você a acompanhar as condições atuais e a colaborar com outros membros da equipe ao trabalhar em problemas.
Vamos confirmar o incidente, informando aos outros membros da equipe que estamos investigando:
Isso muda o estado do incidente de "Aberto" para "Reconhecido". A situação ainda está em andamento (as condições da política de alertas ainda estão sendo violadas), mas você está sinalizando aos membros da equipe que está cuidando disso. Isso também será registrado no registro de eventos.
Os incidentes podem ser resolvidos manualmente ou de forma automática. Para ver o último, faça SSH em nginx-plus-1 e corrija o problema:
yourusername@nginx-plus-1:~$ sudo service nginx start
Agora, o incidente será resolvido automaticamente quando a verificação de tempo de atividade voltar ao normal. Você também pode resolver o problema selecionando o item de menu "Resolver".
O Cloud Logging é uma solução de geração de registros como serviço que oferece um local central e conveniente para visualizar e consultar registros de várias fontes. Também é possível usar os registros para exportá-los para outros destinos (Google Cloud Storage, Google BigQuery ou Google Cloud Pub/Sub).
Para acessar o Visualizador de registros do Cloud, escolha essa opção no menu à esquerda do Console do Cloud:
Você vai acessar o visualizador de registros, onde é possível usar consultas predefinidas ou criar e salvar suas próprias consultas personalizadas, receber um fluxo de registros em tempo real de vários recursos na implantação na nuvem, criar métricas com base em registros, exportar e muito mais.
Há alguns controles úteis para filtrar rapidamente as informações relevantes:
- Filtrar por tipos de recursos
- Filtrar por tipos de registros específicos dos recursos selecionados
- Filtrar níveis de registro específicos
- Filtre por datas específicas para examinar problemas anteriores
- Alternar a transmissão contínua
- Uma caixa de pesquisa para texto, rótulo ou pesquisa de expressão regular
Agora vamos praticar a redução para registros específicos.
No seletor de tipo de recurso (1 na captura de tela), selecione Compute Engine -> Todos os tipos de recursos.
Em seguida, no seletor de tipo de registro (2 na captura de tela), selecione "nginx-access" para ver todos os registros de acesso.
Agora, ative o streaming contínuo (5) para assistir os registros conforme eles chegam. Se nenhum novo registro aparecer, tente inserir o endereço IP externo de uma das VMs do nginx-plus no navegador.
Embora este codelab não se concentre muito em registros, fique à vontade para explorar depois antes de limpar. Saiba mais sobre como navegar no player aqui. Se você quiser mais informações sobre o que pode usar o Cloud Logging, clique aqui para acessar o diretório de nível superior da documentação relevante.
Vamos liberar os recursos de computação criados durante o codelab. Execute os seguintes comandos no Cloud Shell:
$ for i in {1..3}; do \ gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done
Em seguida, acesse o console do Google Stackdriver ("Monitoramento" no menu do painel esquerdo do console do Cloud) e remova a verificação de tempo de atividade e as políticas de alerta criadas. Para isso, acesse os itens de menu de nível superior "Alertas" -> "Visão geral das políticas" e "Alertas" -> "Verificações de tempo de atividade".
Agora você pode monitorar seus aplicativos com tecnologia de nuvem.
O que vimos
- Conhecer a página inicial do Stackdriver.
- Noções básicas sobre painéis e gráficos.
- Como criar uma verificação de tempo de atividade.
- Como criar uma política de alertas simples.
- Como trabalhar com incidentes de alerta.
- Como navegar no Visualizador de registros.
Próximas etapas
- Crie um painel personalizado.
- Conheça as diferentes opções ao criar uma política de alertas.
- Conhecer as diferentes opções disponíveis ao usar o Cloud Logging.
Saiba mais
- Saiba mais sobre como usar a API Monitoring.
- Use métricas personalizadas.
Envie um feedback
- Reserve um momento para responder nossa pesquisa curta