Registro e monitoramento

O GKE On-Prem inclui várias opções de geração de registros e monitoramento de cluster, incluindo serviços gerenciados baseados em nuvem, ferramentas de código aberto e compatibilidade validada com soluções comerciais de terceiros. Nesta página, explicamos essas opções e fornecemos algumas orientações básicas sobre como selecionar a solução adequada para seu ambiente.

Opções do GKE On-Prem

Há várias opções de geração de registros e monitoramento dos clusters do GKE On-Prem:

  • Cloud Logging e Cloud Monitoring, ativados por agentes no cluster implantados com o GKE On-Prem
  • Prometheus e Grafana, desativados por padrão
  • Configurações validadas com soluções de terceiros

Cloud Logging e Cloud Monitoring

O pacote de operações do Google Cloud é a solução de observabilidade integrada do Google Cloud. Ele oferece uma solução de geração de registros totalmente gerenciada, coleta de métricas, monitoramento, uso de painéis e emissão de alertas. O Cloud Monitoring monitora os clusters do GKE On-Prem de maneira semelhante aos clusters do GKE baseados na nuvem.

Os agentes no cluster podem ser configurados para o escopo do monitoramento e da geração de registros, bem como o nível das métricas coletadas:

  • O escopo de geração de registros e monitoramento só pode ser definido como componentes do sistema (padrão) ou para componentes e aplicativos do sistema.
  • O nível das métricas coletadas pode ser configurado para um conjunto otimizado de métricas ou para métricas completas.

Consulte Como configurar agentes do Stackdriver para clusters do Anthos no VMware nesta página para mais informações.

O Logging e o Monitoring são ideais para os clientes que querem uma solução de observabilidade única, eficiente, fácil de configurar e baseada na nuvem. Recomendamos o Logging e o Monitoring ao executar cargas de trabalho somente no GKE On-Prem ou ao usar também o GKE. Em aplicativos com componentes em execução no GKE On-Prem e na infraestrutura local tradicional, considere outras soluções para uma visão completa desses aplicativos.

Prometheus e Grafana

O Prometheus e o Grafana são dois produtos de monitoramento de código aberto conhecidos:

  • O Prometheus coleta métricas de aplicativo e sistema.

  • O Alertmanager manipula o envio de alertas com vários mecanismos de alerta diferentes.

  • Grafana é uma ferramenta de painéis.

É possível ativar o Prometheus e o Grafana em cada cluster de administrador e cluster de usuário. Ambos são recomendados para equipes de aplicativos que tenham experiência anterior com esses produtos ou equipes operacionais que preferem manter as métricas de aplicativo dentro do cluster, bem como para solucionar problemas em caso de perda de conectividade da rede.

Soluções de terceiros

O Google trabalhou com vários provedores de solução de monitoramento e geração de registros de terceiros para ajudar os produtos a funcionarem bem com o GKE On-Prem. Entre eles, Datadog, Elastic e Splunk. Outros terceiros validados serão adicionados no futuro.

Os guias de solução a seguir estão disponíveis para o uso de soluções de terceiros com o GKE On-Prem:

Como funcionam o Logging e o Monitoring para GKE On-Prem

Os agentes do Logging e de métricas são instalados e ativados em cada cluster quando você cria um novo cluster de administrador ou usuário.

Os agentes do Stackdriver incluem vários componentes em cada cluster:

  • Operador do Stackdriver (stackdriver-operator-*). Gerencia o ciclo de vida de todos os outros agentes do Stackdriver implantados no cluster.

  • Recurso personalizado do Stackdriver. Um recurso criado automaticamente como parte do processo de instalação do GKE On-Prem. Os usuários podem alterar o recurso personalizado para atualizar, a qualquer momento, valores como ID do projeto, nome do cluster e local do cluster.

  • Agregador de registros do Stackdriver (stackdriver-log-aggregator-*). Um StatefulSet do Fluentd que envia registros à API Cloud Logging. Se não for possível enviar os registros, o agregador de registros armazenará as entradas (até o limite de 200 GB) e tentará reenviá-las em até 24 horas. Se o buffer ficar cheio ou se o agregador de registros não conseguir acessar a API Logging por mais de 24 horas, os registros serão descartados.

  • Encaminhador de registros do Stackdriver (stackdriver-log-forwarder-*). Um daemonset do Fluentbit que encaminha registros de cada máquina para o agregador de registros do Stackdriver.

  • Coletor de métricas do Stackdriver (stackdriver-prometheus-k8s-). Um StatefulSet do Prometheus e do Stackdriver Prometheus Sidecar que envia métricas do Prometheus para a API Cloud Logging.

  • Coletor de metadados do Stackdriver (stackdriver-metadata-agent-). Uma implantação que envia metadados de recursos do Kubernetes (como pods, implantações ou nós) para a API Stackdriver Resource Metadata. Esses dados são usados para enriquecer consultas de métricas, permitindo que você consulte por nome da implantação, nome do nó ou até pelo nome do serviço do Kubernetes.

Para ver todos os agentes instalados pelo Stackdriver, execute o seguinte comando:

  kubectl -n kube-system get pods | grep stackdriver

A saída deste comando é semelhante a:

stackdriver-log-aggregator-0                  1/1     Running   0   4h31m
stackdriver-log-aggregator-1                  1/1     Running   0   4h28m
stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m
stackdriver-prometheus-k8s-0                  2/2     Running   0   4h31m

Como configurar agentes do Stackdriver para o GKE On-Prem

Os agentes do Stackdriver instalados com o GKE On-Prem coletam dados sobre componentes do sistema, sujeitos às suas definições e configurações, para manter e solucionar problemas com os clusters do GKE On-Prem.

Somente componentes do sistema (escopo padrão)

Após a instalação, os agentes do Stackdriver coletam registros e métricas, incluindo detalhes de desempenho (por exemplo, uso da CPU e da memória) e metadados semelhantes, para os componentes do sistema fornecidos pelo Google. Isso inclui todas as cargas de trabalho no cluster de administrador e, para clusters de usuário, as cargas de trabalho nos namespaces kube-system, gke-system, gke-connect, istio-system e config-management-system. Os agentes do Stackdriver podem ser configurados ou desativados conforme descrito nas seções a seguir.

O escopo dos registros e das métricas coletadas também pode ser expandido para incluir aplicativos. Para instruções sobre como ativar a geração de registros e o monitoramento de aplicativos, consulte Como ativar a geração de registros e o monitoramento para aplicativos do usuário.

Métricas otimizadas (métricas padrão)

Por padrão, os agentes de métricas em execução coletam no cluster coletam e informam um conjunto otimizado de métricas de contêiner e kubelet ao conjunto de operações do Google Cloud (antigo Stackdriver). Menos recursos são necessários para coletar esse conjunto otimizado de métricas, o que melhora o desempenho e a escalonabilidade geral. Isso é especialmente importante para métricas no nível do contêiner, devido à grande quantidade de objetos a serem monitorados.

Para desativar as métricas otimizadas (não recomendado), defina o campo optimizedMetrics como false no recurso personalizado do Stackdriver. Para mais informações sobre como alterar o recurso personalizado do Stackdriver, consulte Como configurar recursos de componentes do Stackdriver. Todas as métricas, incluindo aquelas excluídas por padrão, são descritas nas métricas do Anthos.

Stackdriver desativado

Os agentes do Stackdriver podem ser completamente desativados, exceto o recurso Stackdriver personalizado. Antes de desativar o Stackdriver, consulte a página de suporte para detalhes sobre como isso afeta os SLAs de suporte do Google Cloud.

Para desativar o Stackdriver para GKE On-Prem:

kubectl -n kube-system delete stackdriver stackdriver

Os agentes do Stackdriver capturam dados armazenados localmente, dependendo da configuração de armazenamento e retenção. A replicação dos dados no projeto do Google Cloud especificado na instalação é feita com uma conta de serviço autorizada a gravar dados nesse projeto. Os agentes do Stackdriver podem ser desativados a qualquer momento, conforme descrito anteriormente. Os dados coletados pelos agentes do Stackdriver podem ser gerenciados e excluídos como qualquer outra métrica e dados de registro, conforme descrito na documentação do Cloud Monitoring.

Requisitos de configuração do Logging e do Monitoring

Para usar o Logging e o Monitoring com um cluster, configure o projeto do Cloud em que você quer visualizar registros e métricas. Esse projeto do Cloud é chamado de projeto de geração de registros.

  1. Ative as seguintes APIs em seu projeto de monitoramento de registros:

  2. Conceda os papéis do IAM a sua conta de serviço de monitoramento de registros no projeto de monitoramento de registros.

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Preços

Não há cobrança para registros e métricas do sistema do Anthos.

Em clusters do Anthos no cluster do VMware, os registros e as métricas de sistema do Anthos incluem o seguinte:

  • Registros e métricas de todos os componentes em um cluster de administrador
  • Registros e métricas de componentes nesses namespaces em um cluster de usuário: kube-system, gke-system, gke-connect, knative-serving, istio-system, monitoring-system, config-management-system, gatekeeper-system, cnrm-system

Para mais informações, consulte Preços do pacote de operações do Google Cloud.

Para saber mais sobre o crédito para métricas do Cloud Logging, entre em contato com a equipe de vendas e receba mais informações sobre preços.

Como funcionam o Prometheus e o Grafana para o GKE On-Prem

Cada cluster do GKE On-Prem é criado com o Prometheus e o Grafana desativados por padrão. Siga o guia de instalação para ativá-los.

O servidor Prometheus é configurado com alta disponibilidade, tendo duas réplicas em execução em dois nós separados. Os requisitos de recursos são ajustados para aceitar clusters que executam até cinco nós, cada um manipulando até 30 pods que exibem métricas personalizadas. O Prometheus tem um PersistentVolume dedicado com espaço em disco pré-alocado para ajustar os dados por um período de armazenamento de quatro dias, além de um buffer de segurança extra.

O plano de controle do administrador e cada cluster de usuário têm uma pilha de monitoramento dedicada que pode ser configurada de modo independente. Cada cluster de administrador e usuário inclui uma pilha de monitoramento que oferece um conjunto completo de recursos: servidor Prometheus para monitoramento, Grafana para observabilidade e Prometheus Alertmanager para alertas.

Todos os endpoints de monitoramento, dados de métricas transferidos e APIs de monitoramento são protegidos com componentes do Istio, usando regras mTLS e RBAC. O acesso aos dados de monitoramento é restrito apenas aos administradores do cluster.

Métricas coletadas pelo Prometheus

O Prometheus coleta as métricas e os metadados a seguir do plano de controle do administrador e dos clusters de usuário:

  • Uso de recursos, como CPU, em pods e nós
  • Métricas do plano de controle do Kubernetes
  • Métricas de complementos e componentes de sistema do Kubernetes em execução nos nós, como kubelet
  • Estado do cluster, como integridade dos pods em uma implantação
  • Métricas de aplicação
  • Métricas de máquina, como rede, entropia e inodes

Monitoramento de vários clusters

A instância do Prometheus e do Grafana, instalada no cluster de administrador, é configurada especialmente para fornecer insight em toda a instância do GKE On-Prem, incluindo o cluster de administração e cada cluster de usuário. Isso permite:

  • usar um painel do Grafana para acessar métricas de todos os clusters de usuário e de administrador;
  • ver as métricas de clusters de usuário individuais nos painéis do Grafana (métricas disponíveis para consultas diretas em resolução total);
  • acessar métricas de carga de trabalho e nível de nó dos clusters de usuário para consultas, painéis e alertas agregados (as métricas de carga de trabalho são limitadas a cargas de trabalho em execução no namespace kube-system);
  • configurar alertas de clusters específicos.

A seguir