Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Habilitar o Federador Prometheus

Requisitos

Por padrão, o Federador Prometheus é configurado e destinado a ser implantado junto com monitoramento-rancher, que implanta o Operador Prometheus junto com um Prometheus de Cluster que cada Pilha de Monitoramento de Projeto é configurada para federar métricas com escopo de namespace por padrão.

Para instruções sobre como instalar o monitoramento-rancher, consulte esta página.

A configuração padrão já deve ser compatível com sua pilha de monitoramento-rancher. No entanto, para otimizar a segurança e a usabilidade do Federador Prometheus em seu cluster, recomendamos fazer essas configurações adicionais no monitoramento-rancher:

Assegure-se de que o namespace cattle-monitoring-system esteja colocado no Projeto do Sistema (ou em um Projeto com restrições semelhantes que tenha acesso a outros Projetos no cluster)

Selecionar Projetos-Namespaces

O modelo de segurança do Operador Prometheus espera que o namespace em que ele é implantado (por exemplo, cattle-monitoring-system) tenha acesso limitado para qualquer pessoa, exceto Administradores de Cluster, para evitar escalonamento de privilégios por meio da execução em Pods (como os Jobs que executam operações Helm). Além disso, implantar o Federador Prometheus e todas as pilhas Prometheus de Projeto no Projeto do Sistema garante que cada Prometheus de Projeto consiga acessar e coletar cargas de trabalho em todos os Projetos, mesmo que Políticas de Rede sejam definidas por meio da Isolação de Rede do Projeto. Isso também fornece acesso limitado para Proprietários de Projetos, Membros de Projetos e outros usuários, de modo que eles não consigam acessar dados aos quais não deveriam ter acesso (ou seja, ser autorizados a executar em pods, configurar a capacidade de coletar namespaces fora de um determinado Projeto, etc.).

  1. Abra o projeto System para verificar seus namespaces:

    Clique em Cluster  Projetos/Namespaces na interface do Rancher. Isso exibirá todos os namespaces no projeto System:

    Selecionar Projetos-Namespaces
  2. Se você tiver uma instalação existente do Monitoring V2 dentro do namespace cattle-monitoring-system, mas esse namespace não estiver no projeto System, você pode mover o namespace cattle-monitoring-system para o projeto System ou para outro projeto de acesso limitado. Para fazer isso, você pode optar por:

    • Arrastar e soltar o namespace no projeto System ou

    • Selecionar à direita do namespace, clicar em Mover, e então escolher System no menu suspenso Projeto Alvo

      Mover para um Novo Projeto

Configurar o monitoramento-rancher para observar apenas os recursos criados pelo próprio Helm Chart

Como cada Pilha de Monitoramento de Projeto observará os outros namespaces e coletará métricas ou painéis de carga de trabalho personalizados adicionais, é recomendável configurar as seguintes definições em todos os seletores para garantir que a Pilha Cluster Prometheus monitore apenas os recursos criados pelo próprio Helm Chart:

matchLabels:
  release: "rancher-monitoring"

Os seguintes campos de seletor são recomendados para ter este valor:

  • .Values.alertmanager.alertmanagerSpec.alertmanagerConfigSelector

  • .Values.prometheus.prometheusSpec.serviceMonitorSelector

  • .Values.prometheus.prometheusSpec.podMonitorSelector

  • .Values.prometheus.prometheusSpec.ruleSelector

  • .Values.prometheus.prometheusSpec.probeSelector

Uma vez que esta configuração esteja ativada, você sempre pode criar ServiceMonitors ou PodMonitors que serão capturados pelo Cluster Prometheus adicionando o rótulo release: "rancher-monitoring" a eles, caso em que eles serão ignorados automaticamente pelas Pilhas de Monitoramento de Projeto por padrão, mesmo que o namespace em que esses ServiceMonitors ou PodMonitors residam não sejam namespaces de sistema.

Se você não quiser permitir que os usuários criem ServiceMonitors e PodMonitors que se agreguem ao Cluster Prometheus em namespaces de Projeto, você pode definir adicionalmente os namespaceSelectors no chart para direcionar apenas namespaces de sistema (que devem conter cattle-monitoring-system e cattle-dashboards, onde os recursos são implantados por padrão pelo rancher-monitoring; você também precisará monitorar o namespace default para obter métricas do apiserver ou criar um ServiceMonitor personalizado para coletar métricas do apiserver do Serviço que reside no namespace padrão) para limitar seu Cluster Prometheus de capturar outros CRs do Prometheus Operator. Nesse caso, seria recomendável ativar .Values.prometheus.prometheusSpec.ignoreNamespaceSelectors=true para permitir que você defina ServiceMonitors que possam monitorar namespaces não-sistema a partir de um namespace de sistema.

Aumentar os limites de CPU/memória do Cluster Prometheus

Dependendo da configuração de um cluster, geralmente é recomendável fornecer uma grande quantidade de memória dedicada ao Cluster Prometheus para evitar reinicializações devido a erros de falta de memória (OOMKilled) geralmente causados por churn criado no cluster que gera um grande número de métricas de alta cardinalidade que são geradas e ingeridas pelo Prometheus dentro de um bloco de tempo. Esta é uma das razões pelas quais a pilha de Monitoramento padrão do Rancher espera cerca de 4GB de RAM para poder operar em um cluster de tamanho normal. No entanto, ao introduzir Pilhas de Monitoramento de Projeto que estão todas enviando /federate solicitações para o mesmo Cluster Prometheus e dependem do Cluster Prometheus estar "ativo" para federar esses dados do sistema em seus namespaces, é ainda mais importante que o Cluster Prometheus tenha uma quantidade adequada de CPU/memória atribuída a ele para evitar uma interrupção que pode causar lacunas de dados em todos os Prometheis de Projeto no cluster.

Não há recomendações específicas sobre quanta memória o Cluster Prometheus deve ser configurado, pois depende inteiramente da configuração do usuário (nomeadamente a probabilidade de encontrar uma alta taxa de churn e a escala de métricas que poderiam ser geradas naquele momento); geralmente varia por configuração.

Instalar o Aplicativo Prometheus Federator

  1. Clique em ☰ > Gerenciamento de Cluster.

  2. Vá para o cluster onde você deseja instalar o Prometheus Federator e clique em Explorar.

  3. Clique em Apps -> Charts.

  4. Clique no gráfico Prometheus Federator.

  5. Clique em Instalar.

  6. Na página Metadados, clique em Próximo.

  7. No campo Namespaces > ID do Projeto de Liberação do Namespace do Projeto, o System Project é usado como padrão, mas pode ser substituído por outro projeto com acesso igualmente limitado. Os IDs dos projetos podem ser encontrados com o seguinte comando executado no cluster upstream local:

  kubectl get projects -A -o custom-columns="NAMESPACE":.metadata.namespace,"ID":.metadata.name,"NAME":.spec.displayName
  1. Clique em Instalar.

Resultado: O Aplicativo Prometheus Federator foi implantado no namespace cattle-monitoring-system.