Monitoraggio rete · 18 min read · Nov 03, 2025

Come installare lo strumento di monitoraggio SNMP Cacti su Debian 9

Questo tutorial ti mostrerà come installare e configurare lo strumento di monitoraggio della rete Cacti da sorgente per garantire che tu ottenga l’ultima versione su Debian 9, nome in codice Stretch.

Cacti è uno strumento di monitoraggio della rete basato sul web, completamente open source, progettato per visualizzare grafici di rete e di sistema tramite RRDtool. Utilizza il protocollo SNMP (Simple Network Management Protocol) per raccogliere e monitorare il traffico di rete da dispositivi di rete, come switch, router, server Linux, Unix e Windows o altri tipi di dispositivi basati su rete che supportano SNMP.

Requisiti

  • Installazione minima di Debian 9 su una macchina bare-metal o su un server privato virtuale.
  • Un indirizzo IP statico configurato per una delle schede di interfaccia di rete del tuo sistema.
  • Accesso all’account root o a un utente con privilegi di account root tramite sudo.

Configurazione iniziale

Prima di iniziare a installare Cacti da sorgente, assicurati prima che il tuo sistema soddisfi tutti i requisiti software per compilare e installare Cacti. Nel primo passaggio, apri il file della lista delle sorgenti di Debian per la modifica con privilegi di root e aggiungi i repository contrib e non-free come mostrato nell’estratto del file qui sotto.

nano /etc/apt/sources.list

Esempio di file sources.list:

*deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free  
deb-src http://ftp.ro.debian.org/debian/ stretch main  
  
deb http://security.debian.org/debian-security stretch/updates main contrib non-free  
****deb-src http://security.debian.org/debian-security stretch/updates main*

file sources.list

Dopo aver terminato la modifica del file, salva e chiudi il file e aggiorna i repository e i pacchetti software del tuo sistema per incorporare i nuovi pacchetti, emettendo i comandi qui sotto.

apt update
apt upgrade

Aggiorna pacchetti Debian

Successivamente, avvia un nuovo comando per installare alcune utility necessarie che verranno utilizzate per gestire ulteriormente il tuo sistema dalla riga di comando.

apt install wget patch unzip zip bash-completion

Cacti è uno strumento di monitoraggio basato sul web principalmente scritto nel linguaggio di programmazione server-side PHP. Per eseguire gli script PHP di Cacti, deve essere installato e funzionante nel sistema un server web, come Apache HTTP server, e un interprete PHP. Per installare il server web Apache e l’interprete PHP insieme a tutti i moduli PHP richiesti da Cacti per funzionare correttamente, emetti il seguente comando nella console del tuo server.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt

Installa PHP

Dopo che Apache e PHP sono stati installati, verifica se il server web è attivo e in ascolto per connessioni di rete sulla porta 80 emettendo il seguente comando con privilegi di root.

netstat –tlpn

Nel caso in cui l’utility di rete netstat non sia installata per impostazione predefinita sul tuo sistema Debian, esegui il comando qui sotto per installarla.

apt install net-tools

Ispezionando l’output del comando netstat puoi vedere che il demone apache è in ascolto per connessioni di rete in entrata sulla porta 80.

Output del comando Netstat

Nel caso tu abbia un firewall abilitato sul tuo sistema, come l’applicazione firewall UFW, dovresti aggiungere una nuova regola per consentire il traffico HTTP di passare attraverso il firewall emettendo il seguente comando.

ufw allow WWW

oppure

ufw allow 80/tcp

Infine, verifica se la pagina web predefinita del server web Apache può essere visualizzata nel browser del tuo client visitando l’indirizzo IP della tua macchina Debian tramite il protocollo HTTP, come mostrato nell’immagine qui sotto. Se non conosci l’indirizzo IP della tua macchina, esegui i comandi ‘ifconfig‘ o ‘ip a‘. Il mio IP in questa configurazione è: http://192.168.1.14

Pagina web predefinita di Debian

Nel passaggio successivo, dobbiamo apportare ulteriori modifiche al file di configurazione predefinito di PHP per garantire che la variabile file_uploads sia abilitata e che l’impostazione del fuso orario di PHP sia configurata correttamente e corrisponda alla tua posizione fisica nel sistema. Apri il file /etc/php/7.0/apache2/php.ini per la modifica e assicurati che le seguenti righe siano impostate come segue.

*file_uploads = On  
****date.timezone = Europe/London*

Sostituisci la variabile del fuso orario in base al tuo fuso orario fisico consultando l’elenco dei fusi orari fornito dalla documentazione PHP al seguente link http://php.net/manual/en/timezones.php

Dopo aver apportato le modifiche richieste, crea un file di info php e riavvia il demone apache per applicare le modifiche emettendo i seguenti comandi.

echo ''| tee /var/www/html/info.php
systemctl restart apache2

Verifica se il fuso orario PHP è stato configurato correttamente visitando lo script di info php da un browser al seguente URL (come illustrato nell’immagine qui sotto). Scorri verso il basso per controllare l’impostazione del fuso orario php.

http://192.168.1.14/info.php

Output info PHP

Lo strumento di monitoraggio Cacti memorizza le configurazioni e i dati raccolti in un database RDBMS. In questo tutorial, configureremo Cacti con il backend del database MariaDB. Emetti il comando qui sotto per installare il server di database MariaDB e il modulo PHP necessario per accedere al database mysql.

apt install mariadb-server php7.0-mysql

Installa MariaDB

Dopo aver installato MariaDB, verifica che il demone sia in esecuzione e ascolti le connessioni di rete su localhost, porta 3306, eseguendo il comando netstat.

netstat –tlpn | grep mysql

Quindi accedi alla console MySQL e proteggi l’account root di MariaDB emettendo i seguenti comandi.

mysql -h localhost
use mysql;  
update user set plugin='' where user='root';  
flush privileges;  
exit

Imposta password root MySQL

Nel passaggio successivo, proteggi MariaDB eseguendo lo script mysql_secure_installation fornito dal pacchetto di installazione del repository Debian Stretch. Durante l’esecuzione, lo script porrà una serie di domande per proteggere il database MariaDB, come: cambiare la password root di MySQL, rimuovere utenti anonimi, disabilitare accessi remoti all’account root e eliminare il database di test. Esegui lo script emettendo il comando qui sotto e assicurati di digitare sì a tutte le domande poste per proteggere completamente il demone MySQL. Usa l’output dello script qui sotto come guida.

sudo mysql_secure_installation
NOTE: ESEGUIRE TUTTE LE PARTI DI QUESTO SCRIPT È RACCOMANDATO PER TUTTI I SERVER MariaDB
      IN USO IN PRODUZIONE!  PER FAVORE LEGGI OGNI PASSO ATTENTAMENTE!
 
Per accedere a MariaDB per proteggerlo, avremo bisogno della password attuale
per l'utente root.  Se hai appena installato MariaDB, e
non hai ancora impostato la password root, la password sarà vuota,
quindi dovresti semplicemente premere invio qui.
 
Inserisci la password attuale per root (premi invio per nessuna):
OK, password utilizzata con successo, procedendo...
 
Impostare la password root garantisce che nessuno possa accedere al MariaDB
root senza la corretta autorizzazione.
 
Hai già impostato una password root, quindi puoi rispondere in sicurezza 'n'.
 
Cambiare la password root? [Y/n] y
Nuova password:
Reinserisci nuova password:
Password aggiornata con successo!
Ricaricamento delle tabelle dei privilegi..
 ... Successo!
 
Per impostazione predefinita, un'installazione di MariaDB ha un utente anonimo, che consente a chiunque
di accedere a MariaDB senza dover avere un account utente creato per
loro.  Questo è destinato solo per test, e per rendere l'installazione
più fluida.  Dovresti rimuoverli prima di passare a un
ambiente di produzione.
 
Rimuovere utenti anonimi? [Y/n] y
 ... Successo!
 
Normalmente, l'utente root dovrebbe essere autorizzato a connettersi solo da 'localhost'.  Questo
assicura che qualcuno non possa indovinare la password root dalla rete.
 
Disabilitare l'accesso remoto all'utente root? [Y/n] y
 ... Successo!
 
Per impostazione predefinita, MariaDB viene fornito con un database chiamato 'test' a cui chiunque può
accedere.  Questo è anche destinato solo per test, e dovrebbe essere rimosso
prima di passare a un ambiente di produzione.
 
Rimuovere il database di test e l'accesso ad esso? [Y/n] y
- Eliminazione del database di test...
 ... Successo!
- Rimozione dei privilegi sul database di test...
 ... Successo!
 
Ricaricare le tabelle dei privilegi garantirà che tutte le modifiche apportate finora
entrino in vigore immediatamente.
 
Ricaricare le tabelle dei privilegi ora? [Y/n] y
 ... Successo!
Pulizia...
 
Tutto fatto!  Se hai completato tutti i passaggi sopra, la tua installazione di MariaDB
dovrebbe ora essere sicura.
 
Grazie per aver utilizzato MariaDB!

Per testare la sicurezza di MariaDB, prova a effettuare il login nel database dalla console senza password root. L’accesso al database dovrebbe essere negato se non viene fornita alcuna password per l’account root. Se la password è fornita, il processo di login dovrebbe essere concesso alla console MySQL, come mostrato nello screenshot qui sotto.

mysql -h localhost -u root
mysql -h localhost -u root –p

Test del login MySQL

Mentre sei connesso al database MariaDB, procedi a creare un database per l’installazione di Cacti e crea l’utente che verrà utilizzato per gestire il database cacti, emettendo i seguenti comandi. Sostituisci l’utente e la password del database cacti di conseguenza.

create database cacti;  
grant all on cacti.* to 'cacti_user'@'localhost' identified by 'cacti_pass';  
flush privileges;  
exit

Inoltre, concedi i permessi di selezione all’utente del database cacti per il fuso orario di MySQL emettendo i seguenti comandi. Questo è un nuovo requisito per installare e eseguire l’ultima versione di Cacti.

mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
mysql -u root -p -e 'grant select on mysql.time_zone_name to cacti_user@localhost'

Importa database fuso orario MySQL

Nel passaggio successivo, apri il file di configurazione predefinito del server MySQL e aggiungi le seguenti righe come mostrato nell’esempio qui sotto.

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Aggiungi le seguenti righe in fondo al file 50-server.cnf:

max_heap_table_size              = 98M  
tmp_table_size                   = 64M  
join_buffer_size                 = 64M  
innodb_buffer_pool_size          = 485M  
innodb_doublewrite               = off  
innodb_additional_mem_pool_size  = 80M  
innodb_flush_log_at_timeout      = 3  
innodb_read_io_threads           = 32  
innodb_write_io_threads          = 16  

Configura server MariaDB

Per applicare tutte le modifiche che abbiamo fatto finora, riavvia i demoni MySQL e Apache e verifica che i demoni siano in esecuzione emettendo i seguenti comandi.

systemctl restart mysql apache2
systemctl status mysql apache2

Configura il servizio SNMP

Il servizio di monitoraggio web Cacti utilizza il protocollo SNMP per raccogliere dati e statistiche sui dispositivi. Per installare il programma SNMP, il servizio demone SNMP e SNMP MIBS nel tuo sistema Debian 9 locale, emetti il seguente comando con privilegi di root.

apt install snmp snmpd snmp-mibs-downloader

Installa snmp

Inoltre, installa lo strumento di registrazione dati standard del settore RRDtool, che viene utilizzato da Cacti per visualizzare la funzionalità di grafico.

apt install rrdtool

Installa rrdtool

Successivamente, modifica il file di configurazione SNMP /etc/snmp/snmp.conf e commenta la riga “mibs” aggiungendo un cancelletto (#) davanti alla riga come descritto nell’immagine qui sotto.

Configura file snmp.conf

Configura anche l’accesso remoto e localhost del demone SNMP, aprendo il file snmpd.conf per la modifica e cerca e aggiorna le righe qui sotto come segue:

nano /etc/snmp/snmpd.conf

Decommenta la riga per ascoltare le connessioni su tutte le interfacce

agentAddress udp:161,udp6:[::1]:161

Modifica file snmpd.conf

Aggiungi le seguenti righe per consentire la query SNMP per la tua rete locale tramite la password snmp_string. Sostituisci la password della stringa della comunità snmp snmp_string e il tuo indirizzo CIDR di rete di conseguenza.

rocommunity snmp_string localhost  
rocommunity snmp_string 192.168.1.0/25

**Imposta snmp_string

Facoltativamente, puoi anche modificare le variabili di contatto e posizione per fornire informazioni sul tuo server. Queste informazioni vengono visualizzate nell’area di notifica di Cacti quando controlli i dettagli del tuo server. Inoltre, il nome host del tuo sistema, la versione del kernel e il tempo di attività del sistema vengono visualizzati nell’area di notifica di Cacti.

Per modificare queste informazioni, modifica le righe sysLocation e sysContact sotto la sezione delle informazioni di sistema e aggiungi i tuoi valori. Per impostazione predefinita, i seguenti valori sono configurati per sysLocation e sysContact.

Imposta sysLocation e sysContact

sysLocation Sitting on the Dock of the Bay  
sysContact Me <[email protected]>

Dopo aver apportato le modifiche appropriate al file snmpd.conf, salva e chiudi il file e riavvia il demone snmp per riflettere le modifiche emettendo i seguenti comandi. Quindi controlla lo stato del demone snmpd e le porte possedute nello stato di ascolto.

systemctl restart snmpd.service
systemctl status snmpd.service
netstat -tulpn| grep snmp

Riavvia servizio snmp

Apri la porta del firewall per SNMP:

ufw allow 161/udp

Per verificare che il demone SNMP funzioni come previsto e recuperi tutti i valori SNMP sotto l’albero della memoria per localhost, esegui il comando qui sotto.

snmpwalk -v 2c -c snmp_string localhost memory

Test server snmp con snmpwalk

Installa Cacti-Spine

Cacti-Spine è un sostituto per il poller cmd.php predefinito, scritto in C per un tempo di esecuzione più veloce. Per compilare e installare il pooler Cacti-Spine da sorgenti in Debian 9, prima esegui il seguente comando per installare tutte le dipendenze richieste nel sistema.

apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev libmariadb-dev libmariadbclient-dev librrds-perl libsnmp-dev

Successivamente, scarica l’ultima versione dell’archivio compresso tar di Cacti-Spine con l’utilità wget, estrai l’archivio tarball ed entra nella directory estratta di cacti-spine emettendo i seguenti comandi.

wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
tar xfz cacti-spine-latest.tar.gz
cd cacti-spine-1.1.24/

Ora, compila e installa l’utilità Cacti-Spine da sorgenti emettendo i seguenti comandi.

./bootstrap
./configure
make
make install

Cacti-Spine sarà installato nel percorso di sistema /usr/local/spine/. Spine consiglia di impostare il bit SUID per il binario spine per supportare le richieste ICMP ping.

chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine

Devi anche connettere Spine al database cacti modificando il file di configurazione come mostrato nell’estratto del file qui sotto.

nano /usr/local/spine/etc/spine.conf

Esempio di file spine.conf. Sostituisci le credenziali di conseguenza. Usa le stesse credenziali del database configurate per Cacti.

DB_Host localhost  
DB_Database cacti  
DB_User user_cacti  
DB_Pass pass_cacti  
DB_Port 3306  
DB_PreG 0

Modifica file spine.conf

Installa Cacti

Per installare Cacti da sorgenti in Debian 9, prima scarica e estrai l’ultima versione dell’archivio compresso tar di Cacti, quindi copia tutti i file estratti nel percorso radice del web di apache, emettendo i seguenti comandi.

wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar xfz cacti-latest.tar.gz
cp -rf cacti-1.1.24/* /var/www/html/

Installa Cacti

Nel passaggio successivo, apri il file di configurazione di cacti e aggiorna le seguenti righe per riflettere il nome utente del database cacti di MySQL, la password, l’host e il percorso URL di conseguenza, come illustrato nell’esempio qui sotto.

nano /var/www/html/include/config.php

** Esempio di file config.php di Cacti:

*$database_type     = 'mysql';  
$database_default  = 'cacti';  
$database_hostname = 'localhost';  
$database_username = 'cacti_user';  
$database_password = 'cacti_pass';  
$database_port     = '3306';  
$database_ssl      = false;*

Scorri verso il basso e cambia la variabile del percorso da “/cacti ” a “ /

*$url_path = '/';*

file di configurazione cacti

percorso ULR cacti

Successivamente, devi popolare il database cacti caricando lo script cacti.sql situato nella posizione della radice del documento del tuo server web e verificare le tabelle mysql di cacti emettendo i seguenti comandi.

mysql -u cacti_user cacti -p < /var/www/html/cacti.sql 
mysql -u cacti_user cacti -p -e 'show tables'

Infine, prima di iniziare a installare Cacti tramite l’interfaccia web, esegui i seguenti comandi per rimuovere il file index.html predefinito installato dal server web Apache, creare il file di log per Cacti e consentire all’utente di runtime di Apache di avere pieni diritti di scrittura nel percorso di installazione di cacti.

rm /var/www/html/index.html
touch /var/www/html/log/cacti.log
chown -R www-data:www-data /var/www/html/

** Inizia a installare Cacti tramite l’interfaccia web visitando l’indirizzo IP del tuo sistema o il nome di dominio da un browser e aprendo il seguente URL.

http://192.168.1.14/install

Nella prima schermata controlla Accetta il contratto di licenza GPL e premi il pulsante Avanti per continuare come mostrato nello screenshot qui sotto.

Accetta il contratto di licenza cacti

Nella schermata successiva, scorri verso il basso e verifica se tutti i requisiti di sistema sono stati superati dall’installatore e premi il pulsante Avanti per procedere con il processo di installazione.

Controlla i requisiti di sistema

Impostazioni Cacti

Impostazioni Cacti parte 2

Successivamente, scegli Nuovo server primario come tipo di installazione e fai clic sul pulsante Avanti per continuare.

Installa server primario

Ora verifica se tutte le posizioni e versioni binarie critiche sono correttamente rilevate dall’installatore di cacti. Inoltre, dovresti aggiornare il percorso binario di Spine a /usr/local/spine/bin/spine. Puoi scegliere il tema Classico e premere il pulsante Avanti per continuare.

Posizioni e versioni binarie

Nella schermata successiva, l’installatore verificherà i permessi della directory radice del web di Apache per controllare se il server web è autorizzato a eseguire scritture nel percorso di installazione di cacti. Se tutti i percorsi richiesti sono scrivibili, premi il pulsante Avanti per continuare.

Controlla se i percorsi sono scrivibili

Seleziona tutti i modelli dall’elenco fornito e premi il pulsante Fine per completare l’installazione.

Completa l'installazione di cacti

Dopo aver terminato il processo di installazione, accedi all’interfaccia web di Cacti con le seguenti credenziali predefinite e sostituisci la password predefinita dell’amministratore con una nuova password forte, come illustrato negli screenshot seguenti.

Nome utente: admin Password: admin

Accedi a cacti

Cambia password admin cacti

Dopo aver effettuato l’accesso all’interfaccia web di Cacti, naviga su Console -> Configurazione -> Impostazioni -> Poller e cambia il tipo di poller da cmd.php a spine binario, come mostrato nell’immagine qui sotto. Scorri verso il basso e premi il pulsante Salva per applicare le modifiche.

Cambia poller a spine

Quindi naviga su Console -> Configurazione -> Impostazioni -> Percorsi e aggiorna Cacti-Spine e imposta il percorso del file di configurazione al seguente percorso /usr/local/spine/etc/spine.conf e premi il pulsante Salva per applicare la configurazione, come illustrato nell’immagine qui sotto.

Imposta percorso spine.conf

Per aggiungere un nuovo dispositivo da monitorare tramite SNMP, vai su Console -> Gestione -> Dispositivi e premi sull’icona +, come illustrato nell’immagine qui sotto. A scopo dimostrativo, aggiungeremo la macchina localhost da monitorare tramite Cacti tramite il protocollo SNMP.

Aggiungi nuovo dispositivo monitorato

Per il nuovo dispositivo Linux aggiunto che sarà monitorato tramite SNMP, aggiungi una descrizione per il dispositivo, il nome host, FQDN o l’indirizzo IP del dispositivo monitorato e seleziona Macchina Linux locale come modello del dispositivo. Nelle opzioni SNMP, seleziona la corretta versione SNMP (in questo caso utilizzeremo la versione 2) e scrivi la tua stringa della comunità SNMP del dispositivo, come descritto nelle immagini qui sotto. Nel caso in cui la porta SNMP non sia stata modificata, lascia il valore della porta come predefinito e, quando hai finito, scorri verso il basso e premi il pulsante Crea per aggiungere il dispositivo al database di Cacti per essere monitorato.

Configura impostazioni dispositivo

Configura impostazioni dispositivo - parte 2

Dopo che il dispositivo è stato aggiunto al database di Cacti, un riepilogo SNMP verrà visualizzato nella parte superiore della pagina del dispositivo nel caso in cui il dispositivo sia stato rilevato e interrogato correttamente. Per creare grafici SNMP RRDTool per questo dispositivo, fai clic sul link Crea grafici per questo dispositivo, controlla i modelli di grafico che desideri esaminare ulteriormente e premi il pulsante Crea per passare alla schermata successiva, quindi, premi nuovamente il pulsante Crea per terminare, come illustrato nelle immagini seguenti.

Crea grafici

Crea grafici 2

Crea grafici 3

Per visualizzare i grafici, naviga su Console -> Gestione -> Dispositivi, controlla il dispositivo su cui desideri eseguire ulteriori azioni e seleziona Posiziona su un albero (Albero predefinito) dal menu delle azioni.

Posiziona dispositivo sull'albero predefinito

Nella nuova schermata, lascia il ramo di destinazione come predefinito e premi il pulsante Continua per terminare il processo, come descritto nell’immagine qui sotto.

Fai clic su continua

Infine, affinché il poller di Cacti inizi a raccogliere dati sui dispositivi monitorati, devi aggiungere un nuovo lavoro cron che interrogherà i dispositivi tramite SNMP ogni 5 minuti. Aggiungi il lavoro pianificato per essere posseduto ed eseguito dall’utente di runtime di Apache emettendo il seguente comando.

crontab –u www-data –e

Riga del lavoro Crontab:

*/5 * * * * /usr/bin/php /var/www/html/poller.php > /var/www/html/log/cron.log 2>&1

Aggiungi cronjob cacti

Dopo aver aggiunto il cronjob del poller, attendi circa mezz’ora per dare a Cacti il tempo di raccogliere dati e poi naviga alla scheda Grafici nell’interfaccia web di Cacti. Espandi l’albero predefinito e i grafici raccolti dalla tua macchina monitorata dovrebbero essere visualizzati come illustrato nello screenshot qui sotto.

Monitoraggio Cacti

Per ora, l’interfaccia di Cacti può essere accessibile dai browser dei client in modo non sicuro tramite il protocollo HTTP. Tutte le informazioni sensibili sui tuoi dispositivi, così come le credenziali di accesso a cacti, vengono inviate in testo semplice. Per crittografare il traffico tra i browser dei client e l’interfaccia web di Cacti, emetti i seguenti comandi con privilegi di root per abilitare la configurazione SSL di Apache.

a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2

Successivamente, naviga all’interfaccia web di Cacti tramite il protocollo HTTPS. Poiché il server web Apache utilizza un certificato autofirmato per crittografare la connessione, un messaggio di errore dovrebbe essere visualizzato nel tuo browser. Accetta l’errore e ora puoi accedere in modo sicuro all’interfaccia web di Cacti come mostrato nello screenshot seguente.

Interfaccia Cacti protetta con SSL

Questo è tutto! Hai installato e configurato con successo Cacti da sorgenti in Debian 9. Per altre impostazioni personalizzate riguardanti Cacti, visita le pagine di documentazione al seguente link https://docs.cacti.net/manual:100

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.