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.

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 podem ser configurados em dois níveis diferentes de geração de registros e monitoramento:

  • Somente componentes do sistema (padrão)
  • Logging e Monitoring desativados (antes de desativar, consulte a página de suporte para saber como eles são usados para fins de compatibilidade)

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 (em inglês) coleta métricas de aplicativo e sistema.

  • O Alertmanager (em inglês) manipula o envio de alertas com vários mecanismos de alerta diferentes.

  • Grafana (em inglês) é 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

O Cloud Logging e o Cloud Monitoring são instalados e ativados em cada cluster quando você cria um novo cluster de administrador ou de 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 os 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, uso de CPU e memória) e metadados semelhantes dos componentes de 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.

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 stackdrivers 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

Há vários requisitos de configuração para ativar o Cloud Logging e o Cloud Monitoring no GKE On-Prem. Essas etapas estão incluídas na visão geral de instalação do GKE On-Prem e na lista a seguir:

  1. É preciso criar um espaço de trabalho do Cloud Monitoring no projeto do Cloud. Para isso, clique em Monitoramento no Console do Cloud e siga o fluxo de trabalho.
  2. Você precisa ativar as seguintes APIs do Stackdriver:

  3. Você precisa atribuir os seguintes papéis de IAM à conta de serviço usada pelos agentes do Stackdriver:

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

Preços

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

Para mais informações e para saber mais 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 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 kubele
  • 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