Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-11-28 GMT+08:00

Prometheus (EOM)

Introdução

Prometheus é uma estrutura de monitoramento e alerta de sistema de código aberto. Ele é derivado do sistema de monitoramento borgmon do Google, que foi criado por ex-funcionários do Google que trabalhavam na SoundCloud em 2012. O Prometheus foi desenvolvido como um projeto comunitário de código aberto e lançado oficialmente em 2015. Em 2016, o Prometheus juntou-se oficialmente à Cloud Native Computing Foundation, depois do Kubernetes.

O CCE permite que você instale rapidamente o Prometheus como um complemento.

Site oficial do Prometheus https://prometheus.io/

Comunidade de código aberto: https://github.com/prometheus/prometheus

Restrições

O complemento Prometheus é suportado apenas em clusters v1.21 e anteriores.

Recursos

Como uma estrutura de monitoramento de última geração, o Prometheus possui os seguintes recursos:

  • Modelo de dados multidimensional poderoso
    1. Os dados de séries temporais são identificados pelo nome da métrica e pelo par chave-valor.
    2. Os rótulos multidimensionais podem ser definidos para todas as métricas.
    3. Os modelos de dados não requerem cadeias de caracteres separadas por pontos.
    4. Os modelos de dados podem ser agregados, cortados e fatiados.
    5. O formato de ponto flutuante duplo é suportado. Os rótulos podem ser todos definidos para unicode.
  • Instrução de consulta flexível e poderosa (PromQL): uma instrução de consulta suporta adição, multiplicação e conexão para várias métricas.
  • Gerenciamento fácil: o Prometheus server é um arquivo binário separado que pode funcionar localmente. Não depende de armazenamento distribuído.
  • Eficiente: cada ponto de amostragem ocupa apenas 3,5 bytes, e um servidor de Prometheus pode processar milhões de métricas.
  • O modo pull é usado para coletar dados de séries temporais, o que facilita testes locais e evita que servidores defeituosos enviem métricas ruins.
  • Os dados de séries temporais podem ser enviados para o Prometheus server no modo push gateway.
  • Os usuários podem obter os alvos monitorados por meio da descoberta de serviço ou da configuração estática.
  • Várias GUIs visuais estão disponíveis.
  • Dimensionamento fácil

Instalar o complemento

  1. Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster. Escolha Add-ons no painel de navegação, localize Prometheus à direita e clique em Install.
  2. Na etapa Configuration, defina os seguintes parâmetros:

    Tabela 1 Parâmetros adicionais do Prometheus

    Parâmetro

    Descrição

    Add-on Specifications

    Selecione uma especificação de complemento com base nos requisitos de serviço. As opções são as seguintes:

    • Demo(<= 100 contêineres): o tipo de especificação aplica-se ao ambiente de demonstração de experiência e função. Nesta especificação, o Prometheus ocupa poucos recursos, mas tem capacidades limitadas de processamento. É aconselhável usar esta especificação quando o número de contêineres no cluster não exceder 100.
    • Small(<= 2000 contêineres): é aconselhável usar esta especificação quando o número de contêineres no cluster não exceder 2.000.
    • Medium(<= 5000 contêineres): é aconselhável usar esta especificação quando o número de contêineres no cluster não exceder 5.000.
    • Large(> 5000 contêineres): é aconselhável usar esta especificação quando o número de contêineres no cluster exceder 5 000.

    Instances

    Número de pods que serão criados para corresponder às especificações do complemento selecionado. O múmero não pode ser modificado.

    Container

    As cotas de CPU e memória do contêiner permitidas para as especificações adicionais selecionadas. As cotas não podem ser modificadas.

    Data Retention (days)

    Número de dias para armazenar dados de monitoramento personalizados. O valor padrão é 15 dias.

    Storage

    Os discos rígidos na nuvem podem ser usados como armazenamento. Defina os seguintes parâmetros conforme solicitado:

    • AZ: defina este parâmetro com base nos requisitos do site. Uma AZ é uma região física onde os recursos usam fontes de alimentação e redes independentes. As AZs são fisicamente isoladas, mas interconectadas por meio de uma rede interna.
    • Disk Type: I/O comum, I/O alta e I/O ultra-alta são suportadas.
    • Capacity: insira a capacidade de armazenamento com base nos requisitos de serviço. O valor padrão é 10 GB.
    NOTA:

    Se já existir uma PVC no monitoramento de namespace, o armazenamento configurado será usado como a origem do armazenamento.

  3. Clique em Install. Após a instalação, o complemento implementa as seguintes instâncias no cluster.

    • prometheus-operator: implementa e gerencia o Prometheus Server baseado em CustomResourceDefinitions (CRDs) e monitora e processa os eventos relacionados a esses CRDs. É o centro de controle de todo o sistema.
    • prometheus (server): um cluster de Prometheus Server implementado pelo operador com base nos CRDs de Prometheus que podem ser considerados StatefulSets.
    • prometheus-kube-state-metrics: converte os dados de métrica do Prometheus em um formato que pode ser identificado pelas APIs do Kubernetes.
    • custom-metrics-apiserver: agrega métricas personalizadas ao servidor nativo da API do Kubernetes.
    • prometheus-node-exporter: implementado em cada nó para coletar dados de monitoramento de nó.
    • grafana: visualiza dados de monitoramento.

Fornecer métricas de recursos por meio de Metrics API

Métricas de recursos de contêineres e nós, como uso de CPU e memória, podem ser obtidas por meio da Metrics API do Kubernetes. As métricas de recursos podem ser acessadas diretamente, por exemplo, usando o comando kubectl top ou usadas pelas políticas HPA ou CustomedHPA para dimensionamento automático.

O complemento pode fornecer a Metrics API ao Kubernetes que está desativada por padrão. Para ativar a API, crie o seguinte objeto de APIService:

apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
  labels:
    app: custom-metrics-apiserver
    release: cceaddon-prometheus
  name: v1beta1.metrics.k8s.io
spec:
  group: metrics.k8s.io
  groupPriorityMinimum: 100
  insecureSkipTLSVerify: true
  service:
    name: custom-metrics-apiserver
    namespace: monitoring
    port: 443
  version: v1beta1
  versionPriority: 100

Você pode salvar o objeto como um arquivo, nomeá-lo como metrics-apiservice.yaml e executar o seguinte comando:

kubectl create -f metrics-apiservice.yaml

Execute o comando de monitoramento kubectl top pod -n monitoring. Se as seguintes informações forem exibidas, a Metrics API poderá ser acessada:

# kubectl top pod -n monitoring
NAME                                                      CPU(cores)   MEMORY(bytes)
......
custom-metrics-apiserver-d4f556ff9-l2j2m                  38m          44Mi
......

Para desinstalar o complemento, execute o seguinte comando kubectl e exclua o objeto de APIService. Caso contrário, o complemento metrics-server não pode ser instalado devido a recursos residuais do APIService.

kubectl delete APIService v1beta1.metrics.k8s.io

Referência