Configurar a geração de registros e o monitoramento para o GKE


O Google Kubernetes Engine (GKE) inclui a integração com o Cloud Logging e o Cloud Monitoring, incluindo o serviço gerenciado do Google Cloud para o Prometheus.

Essa integração permite monitorar os clusters do GKE em execução, gerenciar o sistema e depurar registros, além de analisar o desempenho do sistema usando recursos avançados de criação de perfil e traces.

Essa integração também fornece um painel para observar seus clusters do GKE.

Os registros de segurança, incluindo registros de auditoria básicos, estão disponíveis para o GKE e a maioria dos outros serviços do Google Cloud mesmo quando o Cloud Logging não está ativado em um cluster do GKE. Saiba mais em Registros de auditoria do Cloud.

Esta página explica como fazer o seguinte:

  • Crie um novo cluster e configure o Cloud Logging, o Cloud Monitoring e o Google Cloud Managed Service para Prometheus.

  • Selecione os registros e as métricas a serem coletados.

  • Desative o Cloud Logging, o Cloud Monitoring e o Google Cloud Managed Service para Prometheus em um cluster.

Em clusters do GKE Autopilot, não é possível desativar a integração do Cloud Logging e Cloud Monitoring.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.
  • Certifique-se de que você é um proprietário do projeto que contém o cluster.

  • Verifique se você ativou a API Cloud Logging. Verifique o status da API Cloud Logging na página Visão geral.

Registros e métricas

Você tem a opção de enviar ou não registros e métricas do cluster do GKE para o Cloud Logging e o Cloud Monitoring. As seções a seguir descrevem quais registros e métricas estão disponíveis e quais são ativados por padrão no momento da criação do cluster.

Registros disponíveis

Se você optar por enviar registros ao Cloud Logging, será necessário enviar registros do sistema e, opcionalmente, enviar registros de outras fontes.

Saiba mais sobre os preços do Cloud Logging.

A tabela a seguir indica os valores compatíveis com a sinalização --logging para os comandos criar e atualizar.

Origem do registro valor --logging Registros coletados
Nenhuma NONE Nenhum registro enviado ao Cloud Logging, nenhum agente de coleta de registros instalado no cluster. Esse valor não é compatível com clusters do Autopilot do GKE.
Sistema SYSTEM Coleta registros dos seguintes itens:
  • Todos os pods em execução nos namespaces kube-system, istio-system, knative-serving, gke-system e config-management-system.
  • Os principais serviços não conteinerizados, incluindo ambiente de execução docker/containerd, kubelet, kubelet-monitor, node-problem-detector e kube-container-runtime-monitor.
  • A saída das portas seriais do nó, se os metadados da instância de VM serial-port-logging-enable estiverem definidos como verdadeiro.

Além disso, coleta eventos do Kubernetes. Esse valor é obrigatório para todos os tipos de cluster.

Cargas de trabalho WORKLOAD Todos os registros gerados por contêineres que não são do sistema em execução nos nós do usuário. Esse valor é ativado por padrão, mas opcional para todos os tipos de cluster.
Servidor de API API_SERVER Todos os registros gerados por kube-apiserver. Esse valor é opcional para todos os tipos de cluster.
Programador SCHEDULER Todos os registros gerados por kube-scheduler. Esse valor é opcional para todos os tipos de cluster.
Controller Manager CONTROLLER_MANAGER Todos os registros gerados por kube-controller-manager. Esse valor é opcional para todos os tipos de cluster.

Métricas disponíveis

Se você decidir enviar métricas ao Cloud Monitoring, será necessário enviar métricas do sistema e, opcionalmente, enviar métricas adicionais.

Saiba mais sobre os preços do Cloud Monitoring, incluindo a lista de métricas que não são cobradas.

A tabela a seguir indica os valores compatíveis com a sinalização --monitoring para os comandos criar e atualizar.

Origem valor --monitoring Métricas coletadas
Nenhuma NONE Nenhuma métrica enviada ao Cloud Monitoring, nenhum agente de coleta de métricas instalado no cluster Esse valor não é compatível com clusters do Autopilot do GKE.
Sistema SYSTEM Métricas de componentes essenciais do sistema necessárias ao Kubernetes. Veja uma lista completa dessas métricas do Kubernetes.
Servidor de API API_SERVER Métricas de kube-apiserver. Veja uma lista completa de métricas do servidor de API.
Programador SCHEDULER Métricas de kube-scheduler. Veja uma lista completa das métricas do programador.
Controller Manager CONTROLLER_MANAGER Métricas de kube-controller-manager. Veja uma lista completa de métricas do Gerenciador de Controladores.
Volume permanente (armazenamento) STORAGE Métricas de armazenamento de kube-state-metrics. Inclui métricas para de volume permanente e de declarações de volume permanente. Veja uma lista completa de métricas de armazenamento.
Pod POD Métricas do pod de kube-state-metrics. Veja uma lista completa de métricas de pods.
Implantação DEPLOYMENT Métricas de implantação de kube-state-metrics. Veja a lista completa das Métricas de implantação.
StatefulSet STATEFULSET Métricas de StatefulSet de kube-state-metrics. Veja uma lista completa de métricas StatefulSet.
DaemonSet DAEMONSET Métricas de DaemonSet de kube-state-metrics. Veja uma lista completa de métricas de DaemonSet.
HorizonalPodAutoscaler HPA Métricas de HPA de kube-state-metrics. Consulte uma lista completa de métricas do HorizonalPodAutoscaler.

Além disso, é possível coletar métricas no estilo do Prometheus expostas por qualquer carga de trabalho do GKE usando o Google Cloud Managed Service para Prometheus, que permite monitorar e alertar sobre suas cargas de trabalho com o Prometheus sem precisar gerenciar e operar manualmente o Prometheus em grande escala.

Registros e métricas ativados por padrão

Quando você cria um novo cluster do GKE no Google Cloud, alguns registros e métricas são ativados por padrão durante a criação do cluster.

  • Os registros e as métricas do sistema estão ativados para todos os tipos de clusters e não podem ser desativados.
  • Os registros de carga de trabalho são ativados por padrão para todos os clusters do Autopilot, mas podem ser desativados. Não recomendamos desativar os registros de carga de trabalho devido ao impacto no suporte.
  • Para projetos da edição GKE Enterprise, outros registros e métricas úteis serão ativados por padrão se você se registrar em uma frota durante a criação do cluster. Se você quiser ativar esses registros e métricas após a criação de um cluster, consulte Modificar o cluster.

Na tabela a seguir, uma marca de seleção ) indica quais registros e métricas são ativados por padrão quando você cria e registra um novo cluster em um projeto com o GKE Enterprise ativado:

Registros

Nome do registro Autopilot Standard
Sistema
Cargas de trabalho -
Servidor de API
Programador
Controller Manager

Os registros do plano de controle (servidor de API, programador e gerenciador do controlador) geram cobranças do Cloud Logging.

Métricas

Nome da métrica Autopilot Standard
Sistema
Servidor de API
Programador
Controller Manager
Volume permanente (armazenamento)
Pods
Deployment
StatefulState
DaemonSet
HorizonalPodAutoscaler

Todos os clusters registrados em um projeto com o GKE Enterprise ativado podem usar métricas do plano de controle e Kube State Metrics sem outras cobranças. Caso contrário, essas métricas geram cobranças do Cloud Monitoring.

É possível desativar os registros e as métricas padrão durante a criação do cluster ou após a criação do cluster.

Configurar o monitoramento e a geração de registros para um novo cluster

Nas instruções de criação de cluster desta seção, são abordadas apenas as opções relevantes para o Cloud Logging e o Cloud Monitoring. Para instruções completas sobre como criar um cluster do GKE, consulte a documentação sobre como criar um cluster do Standard ou Autopilot.

Para configurar manualmente a geração de registros e o monitoramento durante a criação de um cluster do GKE, conclua as seguintes etapas:

Console

Para um cluster do Autopilot:

  1. Na página de criação do cluster do Autopilot, clique em Configurações avançadas no painel de navegação.

    Criar um cluster do Autopilot

  2. Na lista Operações, selecione quais registros e métricas você quer coletar.

    • Na lista Componentes do Cloud Logging, selecione os componentes de que você quer coletar registros.

    • Na lista Componentes do Cloud Monitoring, selecione os componentes de que você quer coletar métricas.

    Observação: os clusters do Autopilot do GKE sempre usam as práticas recomendadas do Google para a coleta de telemetria. Isso significa que a geração de registros do sistema e de cargas de trabalho está sempre ativada e o monitoramento do sistema está sempre ativado.

  3. Clique em Criar.

Para um cluster padrão:

  1. Na página de criação do cluster Standard, clique em Recursos no painel de navegação em Cluster.

    crie um cluster do Kubernetes

  2. Na lista Operações, selecione quais registros e métricas você quer coletar.

    • Na lista Componentes do Cloud Logging, selecione os componentes de que você quer coletar registros.

    • Na lista Componentes do Cloud Monitoring, selecione os componentes de que você quer coletar métricas.

    • Para desativar o Cloud Logging (exceto para registros de auditoria), desmarque a caixa de seleção Ativar o Cloud Logging.

    • Para desativar o Cloud Monitoring, desmarque a caixa de seleção Ativar o Cloud Monitoring.

    • Para desativar o Google Cloud Managed Service para Prometheus, desmarque a caixa de seleção Ativar o Google Cloud Managed Service para Prometheus.

gcloud

  1. Para novos clusters, o Cloud Logging e o Cloud Monitoring são ativados por padrão. Para criar o cluster, execute o comando a seguir:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION
    

    Substitua:

    1. Como alternativa, é possível configurar quais registros serão enviados para o Cloud Logging transmitindo uma lista de valores separados por vírgula para a sinalização --logging do comando create. Para não coletar registros, transmita --logging=NONE. Para coletar registros do sistema, do servidor de API, do programador e do Gerenciador de controladores, transmita --logging=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER. Para coletar os registros do sistema e de carga de trabalho, transmita --logging=SYSTEM,WORKLOAD. Exemplo:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --logging=SYSTEM,WORKLOAD
      
    2. Da mesma forma, é possível configurar quais métricas serão enviadas ao Cloud Monitoring transmitindo uma lista de valores separados por vírgulas para a flag --monitoring. Para não coletar métricas, transmita --monitoring=NONE. Para coletar métricas do sistema, transmita --monitoring=SYSTEM. Para coletar todas as métricas, transmita --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET, DAEMONSET,HPA. Por exemplo:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA
      
    3. Separadamente, é possível ativar o Google Cloud Managed Service para Prometheus usando a flag --enable-managed-prometheus. Exemplo:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --enable-managed-prometheus
      

      A sinalização --enable-managed-prometheus ativa o coletor gerenciado, que precisa ser configurado.

Terraform

  • Para configurar a coleta de registros e métricas usando o Terraform, consulte os blocos logging_config e monitoring_config no registro do Terraform para google_container_cluster. Para ativar a coleta de registros do servidor da API, do programador e do gerenciador do controlador, é necessário ter a versão 4.44.0 ou mais recente do provedor do Google Cloud para Terraform.

  • Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte Terraform com o Google Cloud.

Como configurar o monitoramento e a geração de registros para um cluster já existente

A seção a seguir detalha como modificar a integração do Cloud Logging e do Cloud Monitoring em um cluster do GKE existente.

Alterar o suporte de monitoramento e geração de registros e alterar a versão do cluster do Kubernetes são ações distintas. Alterar a versão do cluster do Kubernetes não altera o suporte de monitoramento e geração de registros configurados.

Qual suporte de monitoramento e geração de registros meu cluster usa?

Para ver as configurações de integração do Cloud Logging e do Cloud Monitoring para o seu cluster, siga estes passos:

  1. No painel de navegação do console do Google Cloud, selecione Kubernetes Engine e, depois, Clusters:

    Acessar os clusters do Kubernetes

  2. No painel Detalhes do cluster, consulte o status do Cloud Logging, Cloud Monitoring e do Google Cloud Managed Service para Prometheus.

Modificar o cluster

Para alterar as configurações de integração do Cloud Logging ou do Cloud Monitoring em um cluster existente, siga estas etapas:

Console

  1. No painel de navegação do console do Google Cloud, selecione Kubernetes Engine e, depois, Clusters:

    Acessar os clusters do Kubernetes

  2. Clique no nome do cluster.

  3. Para modificar quais registros serão enviados para o Cloud Logging, quais métricas serão enviadas para o Cloud Monitoring ou se o Google Cloud Managed Service para Prometheus será ativado, clique em Editar ao lado do Cloud Logging, Cloud Monitoring ou do Google Cloud Managed Service para Prometheus.

  4. Clique em Save.

gcloud

As seguintes instruções do gcloud abrangem o upgrade do suporte a monitoramento e registro do cluster usando o comando gcloud container clusters update. Observe que você usa o comando update, não o comando upgrade.

  • Configure quais registros serão enviados para o Cloud Logging transmitindo uma lista de valores separados por vírgula para a sinalização --logging do comando gcloud container clusters update. Veja uma lista completa das origens de registros disponíveis. Por exemplo, para coletar registros de sistema e carga de trabalho, transmita --logging=SYSTEM,WORKLOAD. Para coletar apenas registros do sistema, transmita --logging=SYSTEM. Ou, para não coletar registros, transmita --logging=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --logging=NONE
    
  • Configure quais métricas são enviadas para o Cloud Monitoring transmitindo uma lista de valores separados por vírgula para a sinalização --monitoring do comando gcloud container clusters update. Veja uma lista completa das origens de métricas disponíveis. Por exemplo, para coletar métricas do sistema, transmita --monitoring=SYSTEM. Ou, para não coletar métricas, transmita --monitoring=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --monitoring=NONE
    
  • Configure se o Google Cloud Managed Service para Prometheus será ativado usando a flag --enable-managed-prometheus ou --disable-managed-prometheus. Exemplo:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus
    

Terraform

  • Para configurar a coleta de registros e métricas usando o Terraform, consulte os blocos logging_config e monitoring_config no registro do Terraform para google_container_cluster. Para ativar a coleta de registros do servidor da API, do programador e do gerenciador do controlador, é necessário ter a versão 4.44.0 ou mais recente do provedor do Google Cloud para Terraform.

  • Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte Terraform com o Google Cloud.

Parâmetros de configuração descontinuados

Se você estiver usando os parâmetros de configuração antigos para configurar a compatibilidade com geração de registros e monitoramento do cluster do GKE, esses parâmetros estão descontinuados. A tabela a seguir mostra os parâmetros de configuração equivalentes para substituir as flags descontinuadas.

Configuração antiga Argumentos create antigos Argumentos update antigos Novos argumentos create e update
Desativado --no-enable-stackdriver-kubernetes --no-enable-stackdriver-kubernetes --logging=NONE
--monitoring=NONE
Somente monitoramento do sistema (Logging desativado) --enable-stackdriver-kubernetes
--no-enable-cloud-logging
--logging-service=none
--monitoring-service=monitoring.googleapis.com/kubernetes
--logging=NONE
--monitoring=SYSTEM
Somente sistema e registro de carga de trabalho (Monitoring desativado) --enable-stackdriver-kubernetes
--no-enable-cloud-monitoring
--logging-service=logging.googleapis.com/kubernetes
--monitoring-service=none
--logging=SYSTEM,WORKLOAD
--monitoring=NONE
Apenas monitoramento e geração de registros do sistema (Beta) --enable-logging-monitoring-system-only --enable-logging-monitoring-system-only --logging=SYSTEM
--monitoring=SYSTEM
Geração de registros e monitoramento do sistema e de cargas de trabalho --enable-stackdriver-kubernetes --enable-stackdriver-kubernetes --logging=SYSTEM,WORKLOAD
--monitoring=SYSTEM

A seguir

  • Saiba mais sobre os custos associados ao Cloud Logging, Cloud Monitoring e ao Google Cloud Managed Service para Prometheus na página Preços.