Marcio Cunha

Como monitorar containers Docker com Prometheus e alertas

Descubra como extrair métricas de CPU, memória e I/O de disco em containers Docker usando o Prometheus e configurar alertas no Alertmanager.

Marcio Cunha•3 min
Também disponível em:EnglishEspañol
Resumo
  • A coleta eficiente de métricas do Docker exige ferramentas capazes de mapear o consumo real de recursos isolados por container.
  • O ecossistema do Prometheus utiliza o cAdvisor integrado para expor estatísticas detalhadas de uso de hardware diretamente ao coletor.
  • Configurar regras de alerta no Alertmanager evita surpresas operacionais ao disparar notificações imediatas diante de gargalos críticos.
  • A análise precisa de I/O de disco e memória ajuda a identificar vazamentos de dados e processos travados antes que afetem a aplicação.
  • Manter um ambiente de containers monitorado garante maior estabilidade e previsibilidade para sistemas em produção.

Por que monitorar containers Docker em produção

Quando rodamos aplicações isoladas dentro de containers, temos a falsa ilusão de que os recursos são infinitos ou que o sistema operacional cuida de tudo sozinho. Na prática, um único container mal configurado pode consumir toda a memória disponível na máquina hospedeira e derrubar serviços vizinhos. Para evitar esse tipo de surpresa desagradável, precisamos de ferramentas de observabilidade capazes de olhar para dentro do ecossistema de virtualização leve e nos contar exatamente o que está acontecendo. Assim como fazemos ao monitorar a saúde de discos rígidos mecânicos com análise preditiva, precisamos de dados claros e constantes para agir antes que o problema vire indisponibilidade.

Entendendo o papel do cAdvisor e do Prometheus

O Prometheus é um sistema de monitoramento de código aberto que coleta métricas de várias origens em formato de texto e as armazena em um banco de dados temporal altamente otimizado. No entanto, o próprio Docker não expõe suas estatísticas internas em um formato nativo que o Prometheus entenda diretamente por padrão. É aí que entra o cAdvisor (Container Advisor), uma ferramenta desenvolvida pelo Google que roda como um container leve, lê o uso de recursos diretamente do kernel do Linux e traduz tudo isso para o formato que o Prometheus sabe coletar e analisar com facilidade.

Configurando a coleta de métricas de CPU e memória

Para começar a coletar os dados, precisamos configurar o arquivo de configuração do Prometheus, conhecido como prometheus.yml, adicionando um trabalho (job) que aponta para o endereço onde o cAdvisor está expondo as métricas dos containers. Na prática, o Prometheus vai até esse endereço periodicamente, faz uma varredura rápida e guarda o histórico de consumo de processamento e uso de RAM de cada container ativo na máquina. Isso nos dá uma visão cirúrgica de qual serviço está exigindo mais esforço do processador e quais deles estão prestes a estourar o limite de memória alocada.

Extraindo métricas de I/O de disco em tempo real

Além do processamento e da memória, a leitura e a escrita em disco (I/O) costumam ser os maiores gargalos em aplicações modernas baseadas em bancos de dados ou filas de mensagens. O cAdvisor expõe métricas específicas que mostram quantos bytes foram lidos e escritos por segundo em cada container em execução na infraestrutura. Acompanhar essas métricas evita que discos fiquem saturados por operações excessivas de gravação, permitindo que você redimensione volumes ou otimize consultas antes que o armazenamento fique totalmente comprometido. Para complementar essa implementação em produção, vale conferir também nossas análises técnicas sobre Como calibrar osciloscópios e sondas para circuitos rápidos e Como reduzir jitter em redes industriais com switches e QoS.

Criando regras de alerta personalizadas no Alertmanager

Coletar dados bonitos em gráficos coloridos não adianta muita coisa se ninguém estiver olhando para eles no momento em que a falha acontece. É por isso que combinamos o Prometheus com o Alertmanager, um componente responsável por gerenciar, agrupar e disparar notificações por canais como e-mail, Slack ou Telegram. Definimos regras lógicas no Prometheus — por exemplo, disparar um aviso se o uso de memória de um container passar de oitenta porcento por mais de cinco minutos — e o Alertmanager garante que o engenheiro de plantão receba o alerta imediatamente.

Monitorar a infraestrutura de containers com Prometheus e Alertmanager transforma a gestão de sistemas de uma postura reativa para uma abordagem totalmente preventiva. Ao mapear o comportamento de CPU, memória e disco, sua equipe ganha a tranquilidade necessária para escalar serviços com segurança e manter o ambiente estável sob qualquer volume de tráfego.