Como gerar registros e monitorar

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.

Visão geral

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, ativados por padrão em novos clusters
  • Configurações validadas com soluções de terceiros

Cloud Logging e Monitoring

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

Os agentes do Stackdriver podem ser configurados com dois níveis diferentes de registro e monitoramento:

  • Somente componentes do sistema (padrão)
  • Stackdriver desativado (antes de desativar, consulte a página de suporte para saber como o Stackdriver é usado para fins de suporte)

O Stackdriver é ideal para clientes que querem uma solução de observabilidade baseada em nuvem eficiente e fácil de configurar. O Stackdriver é altamente recomendado ao executar cargas de trabalho somente no GKE On-Prem ou no GKE e no GKE On-Prem. Em aplicativos com componentes em execução no GKE On-Prem e na infraestrutura local tradicional, considere outras soluções para uma visualização completa desses aplicativos.

  • Consulte a seção do Stackdriver para ver detalhes sobre arquitetura, configuração e quais dados são replicados para seu projeto do Google Cloud por padrão para o GKE On-Prem.
  • Consulte as seções Cloud Logging e Cloud Monitoring para mais detalhes sobre esses serviços.

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.

O Prometheus e o Grafana são executados em cada cluster de administrador e cluster de usuário por padrão. 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.

O guia de solução a seguir está disponível para o uso de soluções de terceiros com o GKE On-Prem:

Como funciona o Stackdriver para GKE On-Prem

O Cloud Logging e o Cloud Monitoring 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-*), que gerencia o ciclo de vida de todos os outros agentes do Stackdriver implantados no cluster.
  • Recurso personalizado do Stackdriver, criado automaticamente como parte do processo de instalação do GKE On-Prem. Os usuários podem alterar o recurso personalizado para atualizar valores como ID do projeto, nome do cluster e local do cluster a qualquer momento.
  • Agregador de registros do Stackdriver (stackdriver-log-aggregator-*), um StatefulSet que envia registros para a API Cloud Logging.
  • 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 para recursos do Kubernetes, como pods, implantações, nós etc., para a API Stackdriver Resource Metadata. Esses dados são usados para enriquecer consultas de métricas, permitindo que você consulte por nome de implantação, nome de nó ou até mesmo nome de 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, dependendo de suas configurações, com a finalidade de manter e resolver problemas dos clusters do GKE On-Prem, usando um dos modos a seguir.

Somente componentes do sistema (modo padrão)

Após a instalação, os agentes do Stackdriver são configurados por padrão para coletar registros e métricas, incluindo detalhes de desempenho (por exemplo, utilização de CPU e memória) e metadados semelhantes, para componentes do sistema fornecidos pelo Google, incluindo todas as cargas de trabalho no cluster de administrador e, para clusters de usuários, cargas de trabalho nos namespaces kube-system, gke-system, gkeconnect, istio-system e config-management-system.

Stackdriver desativado

Os agentes do Stackdriver podem ser desativados completamente excluindo o recurso personalizado do Stackdriver. Antes de desativar o Stackdriver, consulte a página de suporte para ver detalhes sobre como isso afeta os SLAs do 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 acima, e 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 Stackdriver.

Requisitos de configuração do Stackdriver

Há vários requisitos de configuração para ativar o Stackdriver com o GKE On-Prem. Essas etapas estão incluídas no guia de instalação e listadas abaixo.

  1. Um espaço de trabalho do Cloud Logging precisa ser criado no projeto do Google Cloud. Para isso, clique em Monitoramento no console do Google Cloud e siga o fluxo de trabalho.
  2. Você precisa ativar as seguintes APIs do Stackdriver:
    1. API Stackdriver
    2. API Cloud Monitoring
    3. API Cloud Logging
  3. Você precisa atribuir os seguintes papéis de IAM à conta de serviço usada pelos agentes do Stackdriver:
    1. logging.logWriter
    2. monitoring.metricWriter
    3. stackdriver.resourceMetadata.writer

Preço

O Anthos inclui cota gratuita extra do Cloud Logging acima da cota gratuita padrão do Cloud Logging.

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

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

Cada cluster do GKE On-Prem é criado com uma instância do Prometheus e do Grafana implantada por padrão.

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.