Marcio Cunha

Como criar um alerta de CPU alta no Prometheus passo a passo

Aprenda a configurar regras de alerta no Prometheus usando PromQL para detectar picos de consumo de CPU e integrar os avisos com o Alertmanager.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • O Prometheus coleta métricas de forma contínua usando raspagem de dados via protocolo HTTP.
  • A linguagem PromQL permite calcular taxas de uso de CPU comparando dados passados e presentes.
  • Regras de alerta definem condições lógicas que acionam notificações quando o limite é excedido.
  • O Alertmanager centraliza, agrupa e despacha os alertas para canais como Slack ou e-mail.
  • Ajustar o tempo de persistência dos disparos evita falsos positivos causados por picos breves.

Por que monitorar o uso de CPU com o Prometheus?

Manter servidores funcionando sem surpresas exige vigilância constante sobre os recursos de hardware. O consumo de energia de servidores via IPMI mostra o custo elétrico, mas o comportamento lógico da máquina depende de métricas de software. O Prometheus se tornou a ferramenta padrão de mercado para monitoramento por coletar informações de forma contínua em formato de séries temporais. Na prática, isso significa que ele armazena números acompanhados por carimbos de data e hora, permitindo olhar para trás e entender o comportamento de uma aplicação ao longo dos dias.

Quando a CPU de uma máquina atinge o limite máximo, processos começam a atrasar, requisições HTTP demoram a responder e os usuários percebem lentidão generalizada. O grande desafio da engenharia moderna não é apenas descobrir que o sistema travou, mas ser avisado antes que o problema afete o usuário final. Para alcançar esse objetivo, criamos regras automatizadas que vigiam os indicadores de desempenho e disparam avisos quando o processador fica sobrecarregado por muito tempo.

Como a linguagem PromQL calcula o consumo de CPU

Para criar um alerta eficiente, precisamos entender como o Prometheus enxerga o trabalho do processador. O sistema de monitoramento não lê porcentagens prontas diretamente do sistema operacional, mas sim contadores cumulativos de tempo que a CPU passou executando diferentes tarefas. Cada núcleo gasta ciclos em modo de usuário, modo de sistema, aguardando E/S de disco ou simplesmente ocioso.

A linguagem de consulta do Prometheus, chamada PromQL, permite transformar esses contadores brutos em taxas percentuais fáceis de analisar. Usamos funções como rate() combinada com o seletor node_cpu_seconds_total para calcular o quanto o processador foi exigido nos últimos minutos. Da mesma forma que diagnosticamos gargalos em servidores físicos, entender o uso do processador evita falhas em cascata, assim como liberar espaço em disco no Linux quando o Docker enche o cache previne quedas repentinas por falta de armazenamento.

Passo a passo para configurar a regra de alerta no arquivo YAML

As regras de alerta no Prometheus ficam armazenadas em arquivos de configuração no formato YAML, lidos pelo servidor durante a inicialização. Precisamos definir um arquivo específico, geralmente chamado de alert.rules.yml, onde especificamos a expressão matemática, a gravidade do problema e o tempo de espera antes de disparar o aviso.

Para configurar a regra de forma prática e segura, siga o procedimento abaixo em seu ambiente de monitoramento:

  1. Abra o terminal do seu servidor e acesse o diretório onde ficam os arquivos de configuração do Prometheus, tipicamente localizado em /etc/prometheus/.
  2. Crie um novo arquivo de texto chamado cpu_alerts.yml usando um editor como o nano ou o vim.
  3. Insira a estrutura da regra de alerta utilizando PromQL para detectar quando o uso da CPU ultrapassar o limite seguro de oitenta por cento por mais de cinco minutos.
groups:
- name: cpu_alerts
  rules:
  - alert: HighCpuUsage
    expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode='idle'}[5m])) * 100) > 80
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: 'Uso alto de CPU detectado na instancia {{ $labels.instance }}'
      description: 'O consumo de processador esta acima de 80% nos ultimos 5 minutos.'

O parâmetro for: 5m presente no código acima funciona como um filtro de paciência para o sistema. Na prática, ele garante que o Prometheus espere o processador ficar sobrecarregado por cinco minutos contínuos antes de acionar o alarme, evitando disparos falsos causados por picos instantâneos que duram poucos segundos.

Integrando o Prometheus com o Alertmanager

Criar a regra no Prometheus é apenas a primeira etapa do processo de monitoramento inteligente. O servidor Prometheus detecta que a condição foi atingida, mas quem realmente entrega a mensagem para a equipe humana é o Alertmanager, um componente complementar projetado especificamente para gerenciar notificações.

O Alertmanager recebe os alertas brutos gerados, elimina duplicatas quando vários servidores falham ao mesmo tempo, agrupa eventos correlacionados e os envia para canais externos. Podemos configurá-lo para enviar mensagens instantâneas para o Slack, disparar e-mails para a equipe de plantão ou até acionar robôs de ligação em casos de emergência crítica na madrugada.

Considerações finais sobre monitoramento proativo

Configurar alertas de CPU bem calibrados transforma a operação de uma infraestrutura tecnológica, mudando a equipe de uma postura reativa para uma atuação preventiva. O segredo de um bom monitoramento não é gerar centenas de avisos barulhentos que acabam sendo ignorados, mas sim criar regras assertivas baseadas em dados reais de uso. Ajustar os limites de tolerância e integrar ferramentas como o Prometheus e o Alertmanager garante estabilidade e tranquilidade para sustentar aplicações em crescimento contínuo.