I leggendari Cacti e il monitoraggio dell'infrastruttura di rete
Se hai lavorato nell'amministrazione di sistemi circa quindici anni fa, probabilmente ricordi quei caratteristici grafici del traffico verdi. Sono passati gli anni. Prometheus, Grafana, VictoriaMetrics e una serie di altri sistemi sono emersi. Tuttavia, il classico progetto Cacti è ancora vivo. Gli sviluppatori pubblicano regolarmente commit, adattano il codice per PHP 8, sviluppano un nuovo motore di polling basato su C e stanno preparando il rilascio del branch 1.3.
Perché uno strumento degli anni 2000 continua a restare a galla? La risposta è semplice: le apparecchiature di rete non cambiano così rapidamente come i frontend o i servizi cloud. Gli switch, i router, gli UPS e i rack server espongono ancora le metriche tramite il protocollo SNMP.
Di cosa consiste la piattaforma
Cacti funziona come livello visivo sopra il database round-robin di RRDtool. A differenza dei database time-series convenzionali, RRDtool non cresce indefinitamente. La dimensione del file è fissa al momento della creazione. I dati vecchi vengono automaticamente mediati e compressi secondo regole specificate.
Il progetto è composto da tre parti principali:
- Interfaccia web PHP per la configurazione del sistema e la visualizzazione dei grafici
- Database relazionale MySQL o MariaDB per la memorizzazione di template e utenti
- Subsystem di polling dei dispositivi che viene eseguito su schedule
Le metriche vengono raccolte ogni pochi minuti. Puoi usare il poller PHP di base o collegare Spine. Il motore Spine è scritto in C e funziona molto più velocemente grazie al multithreading. Per una rete di mille dispositivi, questa è l'unica soluzione adeguata, altrimenti il processo semplicemente non finirà in tempo.
Funzionalità della piattaforma
I template vengono creati per lavorare con l'hardware. Non devi cercare manualmente gli OID giusti nella documentazione del vendor. Prendi un template pronto per Cisco, Juniper, MikroTik o D-Link, lo colleghi a un dispositivo e ottieni un set pronto di grafici.
La scansione della rete viene eseguita su schedule. Nuovo dispositivo trovato? Il sistema lo riconosce dalle risposte SNMP e applica la regola di automazione appropriata.
Il controllo degli accessi basato sui ruoli è previsto per la collaborazione del team. Puoi dare a un ingegnere di reperibilità l'accesso ai grafici per uno specifico rack, bloccando altre sezioni.
I grafici nell'interfaccia sono interattivi. Puoi selezionare l'intervallo di tempo desiderato con il mouse, cambiare le scale, visualizzare i dati in tempo reale ed esportare le metriche in formato CSV.
Il supporto per i protocolli IPv6 e SNMPv3 apre la strada al monitoraggio delle infrastrutture moderne rispettando i requisiti di sicurezza.
Requisiti di sistema e compilazione dal codice sorgente
Per l'esecuzione, avrai bisogno di un server web con supporto PHP 8.1. MariaDB versione 10.2 o superiore (o MySQL 8.0 o superiore). Tra le utility di sistema, hai bisogno di RRDtool versione 1.8 e del pacchetto Net-SNMP.
Le dipendenze del progetto vengono distribuite usando Composer:
git clone https://github.com/Cacti/cacti.git
cd cacti
composer install
Quando si lavora con il branch di sviluppo develop, le tabelle del database devono essere aggiornate regolarmente. Per questo, il progetto include utility da riga di comando:
sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`
Il controllo dell'integrità della struttura delle tabelle dopo ogni modifica è aiutato dall'audit integrato:
php cli/audit_database.php --report
Dove usare nella pratica
Il monitoraggio dei canali di rete rimane la nicchia principale del progetto. Quando hai bisogno di tracciare l'utilizzo delle porte su un centinaio di switch, far girare uno stack pesante di scraper ed exporter può essere eccessivo. Il sistema si distribuisce in mezz'ora e consuma risorse minime.
La contabilità dei sistemi di ingegneria nei data center è un altro scenario comune. Monitorare la temperatura nei rack, i carichi di fase degli UPS e gli errori delle interfacce. Lo strumento è stato perfezionato per decenni proprio per questi compiti.
L'architettura supporta i plugin. Se le funzionalità standard non sono sufficienti, puoi installare moduli per l'invio di notifiche o la creazione di mappe geografiche della rete.
Cacti non cerca di competere con Prometheus nel mondo dei container e dei pod dinamici. È uno strumento per la buona vecchia infrastruttura fisica.
Se hai bisogno di distribuire un monitoraggio comprensibile e poco esigente delle apparecchiature di rete, Cacti rimane ancora una scelta pratica. Risparmia memoria, funziona stabilmente per anni e non richiede correzioni costanti dei file di configurazione.
Progetti correlati