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
- Os dados de séries temporais são identificados pelo nome da métrica e pelo par chave-valor.
- Os rótulos multidimensionais podem ser definidos para todas as métricas.
- Os modelos de dados não requerem cadeias de caracteres separadas por pontos.
- Os modelos de dados podem ser agregados, cortados e fatiados.
- 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
- 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.
- 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.
- 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
- Para obter detalhes sobre os conceitos e configurações do Prometheus, consulte a Documentação oficial do Prometheus.
- Para obter detalhes sobre como instalar o Node Exporter, consulte o node_exporter GitHub.