Cloud Monitoring

Esta página explica como usar o Cloud Monitoring para monitorar os clusters do seu Google Kubernetes Engine (GKE).

Visão geral

É possível usar o Monitoring para monitorar sinais e criar operações nos clusters do GKE.

O Cloud Monitoring monitora métricas do sistema e métricas personalizadas. As métricas do sistema são medidas da infraestrutura do cluster, como o uso da CPU ou da memória. As personalizadas são métricas específicas do aplicativo que você mesmo define, como o número total de sessões de usuários ativos ou de páginas renderizadas.

Para métricas do sistema, o Cloud Monitoring cria uma implantação que se conecta periodicamente a cada node e coleta métricas sobre seus pods e contêineres e, em seguida, envia as métricas para o Monitoring.

As métricas para uso dos recursos do sistema são coletadas das seguintes fontes:

  • CPU: container/cpu/usage_time
  • Memória: container/memory/bytes_used, coletada de memory.usage_in_bytes no cgroup
  • Memória despejável: container/memory/bytes_used, coletada do campo total_inactive_file de memory.stat
  • Memória não despejável: medida por memory.usage_in_bytes - memory.total_inactive_file
  • Disco: container/disk/bytes_used

Para obter uma lista de outras métricas do sistema coletadas do GKE, consulte a Lista de métricas.

Para saber como configurar métricas personalizadas, consulte Como usar métricas personalizadas ou siga o tutorial Como fazer escalonamento automático de implantações com métricas personalizadas.

Antes de começar

Prepare-se para a tarefa seguindo essas etapas:

  • Verifique se você ativou a API do Google Kubernetes Engine.
  • Ativar a API do Google Kubernetes Engine
  • Verifique se o SDK do Cloud está instalado.
  • Defina o ID do projeto padrão:
    gcloud config set project [PROJECT_ID]
  • Se você estiver trabalhando com clusters zonais, defina a zona do Compute padrão:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Se você estiver trabalhando com clusters regionais, defina a região do Compute padrão:
    gcloud config set compute/region [COMPUTE_REGION]
  • Atualize gcloud para a versão mais recente:
    gcloud components update

Como ativar o Monitoring

É possível criar um cluster com o Monitoring ativado ou ativá-lo em um cluster atual.

Os pools de nós do cluster, inclusive o pool padrão, precisam ter o escopo do Google Cloud necessário para interagir com o Monitoring (o escopo https://www.googleapis.com/auth/monitoring). Quando você cria um novo cluster com monitoramento, o GKE define esse escopo automaticamente. No entanto, os clusters existentes podem não ter as permissões necessárias.

Como criar um cluster com o Monitoring

gcloud

Quando você cria um cluster, a sinalização --enable-cloud-monitoring é definida automaticamente. Isso ativa o Monitoring no cluster.

Para desativar esse comportamento padrão, defina a sinalização --no-enable-cloud-monitoring.

Console

  1. No Console do Cloud, acesse a página Kubernetes Engine > Clusters do Kubernetes:

    Acessar os clusters do Kubernetes

  2. Clique em Criar cluster.

  3. Configure o cluster conforme necessário.

  4. Clique em Opções avançadas. Certifique-se de que o serviço Ativar o Stackdriver Monitoring esteja selecionado.

  5. Clique em Criar.

Como ativar o monitoramento para um cluster atual

gcloud

Para ativar o Monitoring para um cluster atual, execute o comando abaixo, em que [CLUSTER_NAME] é o nome do cluster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

Se você criou inicialmente o cluster sem o Monitoring e quer ativá-lo posteriormente, talvez os pools de nós do cluster não tenham o escopo do Google Cloud necessário. Como solução alternativa, crie um novo pool de nós com o mesmo número de nós e o escopo necessário da seguinte maneira:

gcloud container node-pools create adjust-scope \
        --cluster [CLUSTER_NAME] \
        --num-nodes [NUM_NODES] \
        --scopes https://www.googleapis.com/auth/monitoring

Depois de criar o novo pool de nós, mova seus Pods atuais para o novo pool de nós de escopo correto para usar o Monitoring. Para mais informações, consulte "Como atualizar escopos de VM sem tempo de inatividade".

Console

Se você criou inicialmente o cluster sem o Monitoring e quer ativá-lo posteriormente, talvez os pools de nós do cluster não tenham o escopo do Google Cloud necessário. Veja a seção gcloud antes desta para uma solução alternativa.

  1. No Console do Cloud, acesse a página Kubernetes Engine > Clusters do Kubernetes:

    Acessar os clusters do Kubernetes

  2. Clique em Editar .

  3. Defina o valor da lista suspensa do Stackdriver Monitoring como Ativado.

  4. Clique em Salvar.

Como estender métricas de infraestrutura

Além das métricas do aplicativo, as métricas personalizadas do Cloud Monitoring também podem usar medidas da infraestrutura do seu cluster não incluídas nas métricas do sistema, como E/S de disco do contêiner. Você pode implantar seus próprios agentes de monitoramento de infraestrutura para coletar e enviar essas métricas ao Cloud Monitoring.

cAdvisor

É possível coletar métricas usando o cAdvisor, o agente de monitoramento de código aberto usado no Kubernetes. Você pode usar prometheus-to-sd para enviar essas métricas ao Cloud Monitoring.

Para executar o cAdvisor em seu próprio cluster, execute estas etapas:

  1. Clone cAdvisor:

    git clone https://github.com/google/cadvisor.git
        cd cadvisor
        
  2. Siga as instruções do cAdvisor DaemonSet (em inglês) para instalar o kustomize. Se você estiver usando o Cloud Shell, execute:

    go get github.com/kubernetes-sigs/kustomize
        
  3. Crie o namespace cAdvisor de exemplo e DaemonSet, que exporta todas as métricas de contêiner:

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
        

    Agora você deve ver métricas do Prometheus no Cloud Monitoring no recurso gke_container.

  4. Siga as instruções de personalização do cAdvisor para fazer alterações no exemplo fornecido para atender às suas necessidades. Aplique suas alterações com:

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
        

Como ver métricas

Você pode ver as métricas no Console do Google Cloud.

Visão geral do cluster

O Monitoring fornece um menu de visão geral para o GKE. Esse menu exibe informações úteis sobre seus clusters em painéis úteis.

Para acessar o menu de visão geral, execute estas etapas:

  1. No Console do Cloud, acesse Monitoring:

    Acessar Monitoring

  2. Passe o cursor sobre Recursos e, em seguida, selecione Kubernetes Engine.

  3. Selecione o cluster.

O menu de visão geral fornece os painéis padrão abaixo:

  • Incidentes: violações de políticas de alertas.
  • Eventos: lista cronológica de anomalias, incidentes, ciclo de vida, tags, políticas do IAM, implantações, observações, atualizações de provedores de nuvem e de gerenciamento de usuários que ocorrem na suas contas da nuvem.
  • Uso da CPU: exibe porcentagens de uso de CPU por cluster.
  • E/S de disco: exibe as taxas de E/S do disco por cluster em KB/s.
  • Tráfego de rede: exibe o tráfego de rede por cluster em KB/s.
  • Pods: lista de pods e nodes (instâncias de VM do Compute Engine) em todos os namespaces. Selecionar qualquer pod ou nó abre a visão geral desse recurso.

Para saber mais sobre como visualizar métricas, consulte a documentação do Monitoring e a página Filtros do Monitoring.

Painéis

É possível criar painéis personalizados para nós e contêineres do GKE.

Para criar um painel, execute estas etapas:

  1. No Console do Cloud, acesse Monitoring:

    Acessar Monitoring

  2. Passe o cursor sobre Painéis, depois selecione Criar painel.

  3. Para criar um novo painel, clique em Adicionar gráfico.

  4. Preencha o campo Título com um nome para o painel.

  5. No campo Localizar tipo de recurso e métrica, pesquise instance e/ou container e selecione as métricas que você quer.

  6. No campo Tipo de métrica, digite ou selecione no menu de preenchimento automático a métrica que você quer.

  7. Opcionalmente, use o Filtro para filtrar por um valor específico, como aplicativo, nome ou versão.

  8. Configure o painel conforme necessário. Para criar o painel, clique em Salvar.

Metrics Explorer

O Metrics Explorer permite selecionar uma métrica específica sobre os clusters e executar várias agregações.

Para usar o Metrics Explorer, realize estas etapas:

  1. No Console do Cloud, acesse Monitoring:

    Acessar Monitoring

  2. Passe o cursor sobre Recursos e, em seguida, selecione Metrics Explorer.

  3. No menu de pesquisa Localizar tipo de recurso e métrica, digite gke_container para Tipo de recurso.

  4. Para a Métrica, selecione as métricas que você quer.

  5. Opcionalmente, use o menu Filtrar para filtrar por recurso.

  6. Use as opções Agregação para realizar uma agregação.

Práticas recomendadas

  • Alerta: é possível configurar políticas de alertas que informam se algo suspeito ocorre em seu cluster.

Como desativar o monitoramento

gcloud

Para desativar o monitoramento de um cluster atual, execute o comando abaixo, em que [CLUSTER_NAME] é o nome do cluster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

Se você estiver executando o Kubernetes Engine Monitoring no cluster, desative o monitoramento e o registro usando gcloud beta para definir as seguintes sinalizações no cluster:

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

  1. No Console do Cloud, acesse a página Kubernetes Engine > Clusters do Kubernetes:

    Acessar os clusters do Kubernetes

  2. Clique em Editar .

  3. Defina o valor da lista suspensa do Stackdriver Monitoring como Desativado.

  4. Clique em Salvar.

A seguir