Close
Log in to Zabbix Blog
Email
Password
Show password Hide password
Forgot password?
Incorrect e-mail and/or password
or
By creating an account or logging in with an existing account, you agree to our Terms of Service
TécnicoIntegraçõesComoEstudo de CasoEventosNotíciasComunidadeEntrar

Zabbix FinOps Toolkit: Identifique servidores superdimensionados com dados do Zabbix

Descubra como o Zabbix FinOps Toolkit identifica servidores superdimensionados e gera recomendações de right-sizing com dados já coletados.

O Zabbix FinOps Toolkit utiliza métricas já coletadas pelo Zabbix para identificar servidores superdimensionados e gerar recomendações de right-sizing. Assim, equipes de infraestrutura podem avaliar desperdício de CPU, memória, disco e rede sem depender de uma plataforma externa.

Na prática, o módulo transforma dados de monitoramento em informações úteis para decisões de capacidade e custo. Além disso, ele funciona diretamente na interface do Zabbix e utiliza o histórico armazenado nas tabelas de trends.

O desperdício que ninguém vê

Toda empresa que opera infraestrutura, seja on-premises, em cloud ou em ambiente híbrido, enfrenta um problema recorrente: servidores dimensionados para picos que não acontecem mais.

Em outros casos, as máquinas foram provisionadas com capacidade adicional “por segurança”. No entanto, essa capacidade permaneceu alocada mesmo depois de a necessidade desaparecer.

O servidor continua ligado, monitorado e funcionando. Ele não gera alertas e não aparece nos dashboards como um problema. Ainda assim, pode permanecer durante meses utilizando apenas 5% de CPU e 15% de memória.

Em cloud, esse desperdício representa cobrança recorrente. Já em ambientes on-premises, representa capacidade imobilizada que poderia atender outras cargas ou que talvez nem precisasse ter sido adquirida.

Os dados já estão disponíveis

Quem utiliza o Zabbix normalmente já coleta CPU, memória, disco e rede de todos os hosts monitorados. Além disso, essas métricas são armazenadas continuamente e podem ser analisadas ao longo do tempo.

Portanto, o problema não é a falta de dados. O desafio é transformar telemetria operacional em informação útil para decisões de capacidade e custo.

Foi dessa necessidade que surgiu o Zabbix FinOps Toolkit. O módulo usa dados já coletados pelo Zabbix para identificar possíveis excessos de capacidade e gerar recomendações de right-sizing.

O que é FinOps

FinOps, ou Financial Operations, é uma prática que aproxima engenharia, finanças e áreas de negócio.

O objetivo não é simplesmente reduzir gastos. Em vez disso, a proposta é tomar decisões de infraestrutura com base em consumo, custo, risco e necessidade real.

A prática normalmente se apoia em três pilares:

  • Visibilidade: saber quais recursos existem, quanto custam e quanto são utilizados;
  • Otimização: agir sobre recursos ociosos ou mal dimensionados;
  • Cultura: fazer com que as equipes considerem eficiência, e não apenas disponibilidade.

Por que FinOps faz sentido no monitoramento

O Zabbix já atende parte importante do primeiro pilar. Ele coleta métricas de CPU, memória, disco, rede, carga e vários outros indicadores.

Além disso, esses dados podem permanecer armazenados por semanas ou meses. Nas tabelas de trends, eles são consolidados em intervalos de uma hora.

Entretanto, o Zabbix não interpreta essas métricas automaticamente sob a perspectiva financeira.

Ele informa, por exemplo, que um servidor utiliza 5% de CPU. Porém, do ponto de vista do monitoramento, isso não representa uma falha.

Sob a perspectiva de capacidade e custo, por outro lado, essa baixa utilização pode indicar superdimensionamento.

O Zabbix FinOps Toolkit fecha essa lacuna ao fazer uma pergunta objetiva:

Este servidor realmente precisa de toda a capacidade que recebeu?

Como funciona o Zabbix FinOps Toolkit

O módulo analisa os últimos 30 dias de métricas de cada host monitorado.

Esse período ajuda a capturar ciclos semanais, rotinas de backup, processamentos em lote e fechamentos mensais. Ao mesmo tempo, reduz a influência de eventos isolados.

Métricas analisadas

Métrica Item key do Zabbix
CPU system.cpu.util
Memória vm.memory.utilization ou vm.memory.size[pavailable]
Disco vfs.fs.size[/,pused]
Rede de entrada net.if.in
Rede de saída net.if.out
Load average system.cpu.load

Com base nessas métricas, o módulo calcula indicadores para cada host.

Waste Score

O Waste Score representa um índice simplificado de possível desperdício.

waste_score = 100 - ((media_cpu + media_ram) / 2)
Considere um servidor com CPU média de 5% e memória média de 15%.
waste_score = 100 - ((5 + 15) / 2)
waste_score = 90
Nesse caso, o servidor apresenta baixa utilização média em relação à capacidade provisionada.

Entretanto, esse resultado não significa, literalmente, que 90% de todos os recursos podem ser removidos. O indicador funciona como um sinal de priorização para análise.

Classificação do Waste Score

Score Classificação
80 ou mais Alto desperdício potencial
60 a 79 Médio desperdício potencial
40 a 59 Baixo desperdício potencial
Abaixo de 40 Utilização considerada saudável

Imagem do módulo de FinOps.

Efficiency Score

O Efficiency Score apresenta os mesmos dados pela perspectiva oposta.

efficiency_score = (media_cpu + media_ram) / 2

Enquanto o Waste Score responde “quanto pode estar sobrando?”, o Efficiency Score responde “quanto da capacidade está sendo utilizada?”.

Essa separação facilita a comunicação com públicos diferentes.

Por um lado, o Waste Score é mais útil para discussões de custo. Por outro, o Efficiency Score ajuda equipes técnicas a avaliar o aproveitamento da capacidade.

O que diferencia essa análise

Calcular médias é simples. No entanto, usar apenas a média produz recomendações frágeis.

Por isso, o módulo adiciona mecanismos para reduzir falsos positivos e evitar decisões de right-sizing baseadas em dados incompletos.

Percentil 95 em vez de pico máximo

Um servidor pode apresentar CPU média de 3% durante 30 dias e, ainda assim, atingir 100% durante um backup ou deploy.

Caso a análise considere apenas o valor máximo, um único pico pode impedir qualquer recomendação.

Por esse motivo, o módulo usa o percentil 95, também chamado de P95.

O P95 representa o valor abaixo do qual ficaram 95% das medições. Dessa forma, os 5% maiores picos têm menos influência sobre a análise.

Por exemplo, se o P95 de CPU é 15%, isso indica que a utilização permaneceu em até 15% durante 95% do período analisado.

Nesse cenário, há evidência de baixa utilização recorrente.

Média baixa com P95 alto

Uma média baixa nem sempre significa ociosidade constante.

Considere um host com CPU média de 5% e P95 de 85%. Nesse caso, existem períodos recorrentes de utilização elevada.

Portanto, a recomendação correta não é reduzir imediatamente. Primeiro, é necessário investigar o padrão da carga.

Assim, o módulo evita sugerir uma redução baseada apenas na média.

Detecção de tendência de crescimento

O módulo também compara o consumo da primeira semana com o consumo da última semana do período analisado.

Essa comparação ajuda a identificar cargas em crescimento.

Por exemplo, um servidor pode apresentar CPU média de 8% na primeira semana e 18% na quarta semana.

Embora a média geral ainda seja baixa, a tendência indica aumento de demanda. Consequentemente, reduzir recursos naquele momento pode criar um problema em curto prazo.

Nesse cenário, o módulo retorna uma mensagem semelhante a:

Carga em crescimento. Redução não recomendada.

Pequenas variações não bloqueiam a recomendação

O módulo não bloqueia recomendações por causa de qualquer aumento.

Em vez disso, ele projeta o consumo futuro com base na média atual e na tendência observada. A recomendação só é bloqueada quando essa projeção alcança ou ultrapassa os limites definidos.

Assim, um aumento de 2 pontos percentuais em um servidor que utiliza 3% de CPU não invalida automaticamente uma recomendação.

Análise multidimensional

CPU e memória baixas não significam, isoladamente, que um servidor pode ser reduzido.

Um host pode apresentar baixo consumo de CPU e RAM, mas estar com disco próximo da capacidade máxima. Além disso, também pode depender de alto throughput de rede.

Nesses casos, reduzir vCPU ou memória pode não gerar benefício e ainda aumentar o risco operacional.

Por isso, o módulo verifica outras métricas antes de recomendar qualquer mudança.

Se o disco estiver acima de 85% ou a rede apresentar utilização elevada de forma consistente, a recomendação muda para:

Uso baixo de CPU e memória, porém outros recursos apresentam alta utilização. Redução não recomendada.

Recomendações concretas de right-sizing

Identificar desperdício é apenas o primeiro passo.

Depois disso, surge a pergunta mais importante:

Para qual capacidade o servidor deve ser reduzido?

O módulo calcula uma recomendação com base em 80% da alocação atual. Além disso, aplica uma trava para impedir que o valor recomendado fique abaixo do consumo observado no P95.

Exemplo de recomendação de CPU

Considere um servidor com 4 vCPUs e P95 de CPU em 15,9%.

A recomendação inicial é:

4 vCPUs × 80% = 3,2 vCPUs
Após o arredondamento, o módulo recomenda 3 vCPUs.

O consumo correspondente ao P95 é:

4 × 15,9% = 0,636 vCPU
Portanto, 3 vCPUs ainda mantêm margem acima do consumo observado.

Exemplo de recomendação de memória

Considere agora um servidor com 7,5 GB de RAM e P95 de memória em 21%.

A recomendação inicial é:

7,5 GB × 80% = 6 GB
O consumo observado no P95 é:
7,5 GB × 21% = 1,575 GB
Nesse caso, a recomendação também mantém margem operacional.

Entretanto, quando 80% da alocação atual fica abaixo do consumo observado no P95, o módulo não apresenta recomendação.

Essa decisão é intencional. Afinal, uma ausência de recomendação é mais segura do que uma sugestão sem margem adequada.

Requisitos do módulo

O módulo possui os seguintes requisitos:

  • Zabbix 7.0 ou superior;
  • PHP 8.0 ou superior;
  • Hosts monitorados com templates de sistema operacional;
  • Dados disponíveis nas tabelas de trends.

O módulo foi testado no Zabbix 7.4.7.

Instalação do Zabbix FinOps Toolkit

Acesse o diretório de módulos da interface do Zabbix:

cd /usr/share/zabbix/ui/modules/
Em seguida, clone o repositório:
git clone https://github.com/Lfijho/ZabbixFinOps.git ZabbixFinOpsToolkit
Depois, acesse a interface do Zabbix e siga estas etapas:
  1. Acesse Administration > General > Modules;
  2. Clique em Scan directory;
  3. Localize Zabbix FinOps Toolkit;
  4. Clique em Enable.

Tela de módulos

Após a ativação, o módulo ficará disponível em:

Monitoring > Infrastructure Cost Analyzer
O código-fonte está disponível no repositório do Zabbix FinOps Toolkit no GitHub.

Integrando o módulo ao processo de FinOps

O Zabbix FinOps Toolkit é uma ferramenta de diagnóstico.

No entanto, seu valor real aparece quando a análise faz parte de um processo operacional controlado.

Ciclo sugerido

  1. Análise: execute o módulo e identifique os hosts com maior Waste Score;
  2. Validação: confirme com as equipes responsáveis se a redução é tecnicamente viável;
  3. Planejamento: registre a mudança, o impacto esperado e o plano de rollback;
  4. Right-sizing: aplique a alteração em janela de manutenção;
  5. Monitoramento: acompanhe desempenho, saturação e erros após a mudança;
  6. Reavaliação: execute o módulo novamente depois do período de observação.

Automatizar a análise não elimina a necessidade de controle de mudança. O módulo gera evidências, mas a decisão final continua dependendo do contexto da aplicação.

Boas práticas

Não aplique recomendações diretamente em produção sem validação.

Antes de qualquer redução:

  • Confirme o comportamento da aplicação;
  • Verifique requisitos de disponibilidade e desempenho;
  • Consulte os responsáveis pelo serviço;
  • Defina critérios de sucesso;
  • Prepare um plano de rollback;
  • Execute a mudança em janela de manutenção;
  • Monitore o ambiente após a alteração.

Além disso, acompanhe as métricas por pelo menos uma ou duas semanas depois do right-sizing.

Limitações

O módulo é comunitário. Portanto, não possui SLA oficial e não é mantido pela Zabbix.

Teste o comportamento no seu ambiente antes de utilizar os resultados em decisões de produção.

Além disso, o módulo analisa métricas de infraestrutura. Ele não conhece o contexto completo do serviço.

Por exemplo, ele não sabe se:

  • O servidor receberá uma carga adicional no próximo mês;
  • A máquina faz parte de uma estratégia de disaster recovery;
  • Existe uma exigência contratual de capacidade;
  • Há eventos sazonais previstos;
  • A aplicação depende de baixa latência;
  • A capacidade excedente é intencional.

O módulo também consulta dados das tabelas de trends. Esses dados são consolidados por hora, usando médias, máximos e mínimos.

Portanto, a granularidade da análise é de uma hora, e não de um minuto.

FinOps é um processo contínuo

FinOps não deve ser tratado como um projeto executado uma única vez.

A utilização dos servidores muda. As aplicações crescem, diminuem ou são substituídas. Consequentemente, uma configuração adequada hoje pode se tornar ineficiente depois.

Por isso, a análise precisa ser recorrente.

O processo deve incluir medição, validação, mudança controlada e monitoramento posterior.

Sem esse ciclo, o right-sizing se transforma em uma ação pontual e perde valor ao longo do tempo.

Conclusão

O Zabbix já coleta os dados necessários para iniciar uma análise de eficiência de infraestrutura.

O que faltava era uma camada capaz de transformar métricas operacionais em indicadores de desperdício e recomendações de capacidade.

O Zabbix FinOps Toolkit é uma primeira implementação dessa camada. Ele funciona diretamente na interface do Zabbix, utiliza dados existentes e não exige uma plataforma externa.

Além disso, o projeto possui código aberto e pode ser adaptado conforme as necessidades de cada ambiente.

O repositório está disponível no GitHub. Acesse o repositório do Zabbix FinOps Toolkit

Contribuições, issues e pull requests são bem-vindos.

Prev Post Prev Post
Inscrever-se
Notificar de
0 Comments
mais antigos
mais recentes Mais votado
0
Adoraria saber sua opinião, comente.x