>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
PHP

O Lendário Cacti e o Monitoramento de Infraestrutura de Rede

Se você trabalhava com administração de sistemas há cerca de quinze anos, provavelmente lembra daqueles gráficos verdes distintos de tráfego. Os anos passaram. Prometheus, Grafana, VictoriaMetrics e uma série de outros sistemas surgiram. Mesmo assim, o clássico projeto Cacti ainda está vivo. Os desenvolvedores fazem commits regularmente, adaptam o código para PHP 8, desenvolvem um novo mecanismo de polling baseado em C e estão preparando o lançamento do branch 1.3.

Por que uma ferramenta dos anos 2000 continua funcionando? A resposta é simples: equipamentos de rede não mudam tão rápido quanto frontends ou serviços em nuvem. Switches, roteadores, UPS e racks de servidores ainda expõem métricas via protocolo SNMP.

Do que a plataforma consiste

O Cacti funciona como uma camada visual sobre o banco de dados round-robin do RRDtool. Diferentemente dos bancos de dados convencionais de séries temporais, o RRDtool não cresce indefinidamente. O tamanho do arquivo é fixado no momento da criação. Dados antigos são automaticamente calculados e comprimidos de acordo com regras especificadas.

O projeto consiste em três partes principais:

  • Interface web em PHP para configuração do sistema e visualização de gráficos
  • Banco de dados relacional MySQL ou MariaDB para armazenar templates e usuários
  • Subsistema de polling de dispositivos executado em agendamento

As métricas são coletadas a cada poucos minutos. Você pode usar o poller básico em PHP ou conectar o Spine. O mecanismo Spine é escrito em C e roda muito mais rápido graças ao multithreading. Para uma rede de mil dispositivos, esta é a única solução adequada, caso contrário o processo simplesmente não terminará a tempo.

Recursos da plataforma

Templates são criados para trabalhar com hardware. Você não precisa buscar manualmente os OIDs corretos na documentação do fornecedor. Você pega um template pronto para Cisco, Juniper, MikroTik ou D-Link, anexa a um dispositivo e obtém um conjunto pronto de gráficos.

O escaneamento de rede é executado em agendamento. Novo dispositivo encontrado? O sistema o reconhece pelas respostas SNMP e aplica a regra de automação apropriada.

Controle de acesso baseado em funções é fornecido para colaboração em equipe. Você pode dar a um engenheiro de plantão acesso aos gráficos de um rack específico, bloqueando outras seções.

Os gráficos na interface são interativos. Você pode selecionar o intervalo de tempo desejado com o mouse, trocar escalas, visualizar dados em tempo real e exportar métricas em formato CSV.

O suporte aos protocolos IPv6 e SNMPv3 abre caminho para monitorar infraestruturas modernas enquanto atende aos requisitos de segurança.

Requisitos do sistema e compilação a partir do código-fonte

Para executar, você precisará de um servidor web com suporte a PHP 8.1. MariaDB versão 10.2 ou superior (ou MySQL 8.0 ou superior). Das utilitários do sistema, você precisa do RRDtool versão 1.8 e do pacote Net-SNMP.

As dependências do projeto são implantadas usando o Composer:

git clone https://github.com/Cacti/cacti.git
cd cacti
composer install

Ao trabalhar com o branch de desenvolvimento develop, as tabelas do banco de dados precisam ser atualizadas regularmente. Para isso, o projeto inclui utilitários de linha de comando:

sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`

A verificação da integridade da estrutura das tabelas após cada alteração é auxiliada pela auditoria integrada:

php cli/audit_database.php --report

Onde usar na prática

O monitoramento de canais de rede permanece o nicho principal do projeto. Quando você precisa acompanhar a utilização de portas em uma centena de switches, subir uma pilha pesada de scrapers e exporters pode ser excessivo. O sistema é implantado em meia hora e consome recursos mínimos.

A contabilidade de sistemas de engenharia em data centers é outro cenário comum. Monitorar temperatura em racks, cargas de fase de UPS e erros de interface. A ferramenta foi refinada por décadas precisamente para essas tarefas.

A arquitetura suporta plugins. Se os recursos padrão não forem suficientes, você pode instalar módulos para envio de notificações ou construção de mapas geográficos de rede.

O Cacti não tenta competir com o Prometheus no mundo de containers e pods dinâmicos. É uma ferramenta para a boa e velha infraestrutura física.

Se você precisa implantar um monitoramento compreensível e descomplicado de equipamentos de rede, o Cacti ainda permanece uma escolha prática. Ele economiza memória, funciona de forma estável por anos e não requer correção constante de arquivos de configuração.

Projetos relacionados