Cacti è uno strumento grafico e di monitoraggio della rete gratuito, open source e potente basato sul Web. Viene utilizzato per monitorare le prestazioni del sistema, il carico della CPU e l'utilizzo della larghezza di banda della rete in un formato grafico. Consente di eseguire il polling dei servizi a intervalli predeterminati e di rappresentare graficamente i dati risultanti. È un frontend completo per RRDTool, scritto in PHP e utilizza il database MySQL per memorizzare tutte le informazioni necessarie.
In questo tutorial, spiegheremo come installare lo strumento di monitoraggio Cacti su CentOS 8.
Prerequisiti
- Un server che esegue CentOS 8 con almeno 2 GB di RAM.
- Una password di root è configurata sul server.
Per iniziare
Innanzitutto, si consiglia di aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornarli con il seguente comando:
dnf update -y
Una volta aggiornati tutti i pacchetti, installa le altre dipendenze richieste per Cacti con il seguente comando:
dnf install net-snmp net-snmp-utils net-snmp-libs rrdtool -y
Dopo aver installato tutte le dipendenze, avvia il servizio SNMP e abilitalo all'avvio all'avvio con il seguente comando:
systemctl start snmpd
systemctl enable snmpd
Una volta terminato, puoi procedere al passaggio successivo.
Installa il server LAMP
Successivamente, dovrai installare il server Web Apache, il server di database MariaDB, PHP e altre estensioni PHP necessarie sul tuo sistema. Puoi installarli tutti con il seguente comando:
dnf install httpd mariadb-server php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intl -y
Una volta installati tutti i pacchetti, avvia il servizio HTTP e MariaDB e abilita l'avvio all'avvio con il seguente comando:
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb
Successivamente, dovrai modificare il file php.ini e apportare alcune modifiche:
nano /etc/php.ini
date.timezone = Asia/Kolkata memory_limit = 512M max_execution_style = 60
Una volta terminato, puoi procedere al passaggio successivo.
Configura il database MariaDB
Successivamente, dovrai creare un database e un utente per Cacti. Innanzitutto, accedi alla shell MariaDB con il seguente comando:
mysql
Una volta effettuato l'accesso, crea un database e un utente per Cacti con il seguente comando:
MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO [email protected] IDENTIFIED BY 'password';
Quindi, svuota i privilegi ed esci dalla shell MariaDB con il seguente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Successivamente, dovrai modificare il file di configurazione di MariaDB e modificare alcune impostazioni. Puoi farlo modificando il file /etc/my.cnf.d/mariadb-server.cnf.
nano /etc/my.cnf.d/mariadb-server.cnf
Aggiungi le seguenti righe all'interno della sezione [mysqld]:
collation-server=utf8mb4_unicode_ci character-set-server=utf8mb4 max_heap_table_size=32M tmp_table_size=32M join_buffer_size=64M # 25% Of Total System Memory innodb_buffer_pool_size=1GB # pool_size/128 for less than 1GB of memory innodb_buffer_pool_instances=10 innodb_flush_log_at_timeout=3 innodb_read_io_threads=32 innodb_write_io_threads=16 innodb_io_capacity=5000 innodb_file_format=Barracuda innodb_large_prefix=1 innodb_io_capacity_max=10000
Salva e chiudi il file al termine, quindi riavvia il servizio MariaDB per applicare le modifiche:
systemctl restart mariadb
Quindi, importa mysql_test_data_timezone.sql nel database mysql con il seguente comando:
mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql
Quindi, accedi a MySQL e concedi all'utente cacti di accedere alla tabella mysql.time_zone_name:
mysql
Una volta effettuato l'accesso, esegui il seguente comando per concedere l'accesso:
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO [email protected];
Quindi, svuota i privilegi ed esci dalla shell MariaDB con il seguente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura Cacti
Per impostazione predefinita, Cacti non è disponibile nel repository predefinito di CentOS 8. Quindi dovrai aggiungere il repository EPEL al tuo sistema.
Puoi installarlo con il seguente comando:
dnf install epel-release -y
Una volta installato il repository, installa Cacti con il seguente comando:
dnf install cacti -y
Dopo aver installato Cacti, controlla l'installazione di Cacti con il seguente comando:
rpm -qi cacti
Dovresti ottenere il seguente output:
Name : cacti Version : 1.2.14 Release : 1.el8 Architecture: noarch Install Date: Wednesday 07 October 2020 01:04:02 AM EDT Group : Unspecified Size : 56217780 License : GPLv2+ Signature : RSA/SHA256, Thursday 06 August 2020 05:06:22 AM EDT, Key ID 21ea45ab2f86d6a1 Source RPM : cacti-1.2.14-1.el8.src.rpm Build Date : Thursday 06 August 2020 04:54:10 AM EDT Build Host : buildvm-a64-27.iad2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : https://www.cacti.net/ Bug URL : https://bugz.fedoraproject.org/cacti Summary : An rrd based graphing tool Description : Cacti is a complete frontend to RRDTool. It stores all of the necessary information to create graphs and populate them with data in a MySQL database. The frontend is completely PHP driven.
Quindi, importa i dati Cacti nel database Cacti con il seguente comando:
mysql -u root -p cactidb < /usr/share/doc/cacti/cacti.sql
Quindi, modifica il file di configurazione di Cacti e definisci le impostazioni del database:
nano /usr/share/cacti/include/config.php
Modifica le seguenti righe che corrispondono al tuo database:
$database_type = 'mysql'; $database_default = 'cactidb'; $database_hostname = 'localhost'; $database_username = 'cacti'; $database_password = 'password'; $database_port = '3306'; $database_retries = 5; $database_ssl = false;
Salva e chiudi il file quando hai finito, quindi crea un file Cron per Cacti.
nano /etc/cron.d/cacti
Aggiungi la seguente riga:
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
Salva e chiudi il file quando hai finito.
Una volta terminato, puoi procedere al passaggio successivo.
Configura Apache per Cacti
Successivamente, dovrai creare un file di configurazione dell'host virtuale Apache per Cacti. Puoi crearlo con il seguente comando:
nano /etc/httpd/conf.d/cacti.conf
Trova le seguenti righe:
Alias /cacti /usr/share/cacti <Directory /usr/share/cacti/> <IfModule mod_authz_core.c> # httpd 2.4 Require host localhost </IfModule> <IfModule !mod_authz_core.c> # httpd 2.2 Order deny,allow Deny from all Allow from localhost </IfModule> </Directory>
E sostituiscili con le seguenti righe:
Alias /cacti /usr/share/cacti <Directory /usr/share/cacti/> <IfModule mod_authz_core.c> # httpd 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # httpd 2.2 Order deny,allow Deny from all Allow from all </IfModule> </Directory>
Salva e chiudi il file al termine, quindi riavvia il servizio Apache e PHP-FPM per applicare le modifiche:
systemctl restart httpd
systemctl restart php-fpm
Puoi anche controllare lo stato di Apache con il seguente comando:
systemctl status httpd
Dovresti ottenere il seguente output:
? httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/httpd.service.d ??php-fpm.conf Active: active (running) since Wed 2020-10-07 01:10:35 EDT; 58s ago Docs: man:httpd.service(8) Main PID: 5159 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 12523) Memory: 28.7M CGroup: /system.slice/httpd.service ??5159 /usr/sbin/httpd -DFOREGROUND ??5161 /usr/sbin/httpd -DFOREGROUND ??5162 /usr/sbin/httpd -DFOREGROUND ??5163 /usr/sbin/httpd -DFOREGROUND ??5164 /usr/sbin/httpd -DFOREGROUND Oct 07 01:10:35 centos8 systemd[1]: Stopped The Apache HTTP Server. Oct 07 01:10:35 centos8 systemd[1]: Starting The Apache HTTP Server... Oct 07 01:10:35 centos8 httpd[5159]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:45> Oct 07 01:10:35 centos8 systemd[1]: Started The Apache HTTP Server. Oct 07 01:10:35 centos8 httpd[5159]: Server configured, listening on: port 80
A questo punto, il server web Apache è configurato per servire Cacti. Ora puoi procedere al passaggio successivo.
Configura Firewall e SELinux
Successivamente, dovrai consentire i servizi http e https attraverso il firewalld. Puoi consentirli con il seguente comando:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
Successivamente, dovrai anche disabilitare SELinux nel tuo sistema.
Puoi disabilitare SELinux modificando il file /etc/selinux/config:
nano /etc/selinux/config
Trova la riga seguente:
SELINUX=enforcing
E sostituiscilo con la seguente riga:
SELINUX=permissive
Salva e chiudi il file, quindi riavvia il sistema per applicare le modifiche.
Accedi all'interfaccia web di Cacti
Ora apri il tuo browser web e accedi all'interfaccia web di Cacti utilizzando l'URL http://your-server-ip/cacti. Verrai reindirizzato alla pagina di accesso di Cacti:
Fornisci nome utente e password predefiniti come amministratore / amministratore, quindi fai clic su Accedi pulsante. Dovresti vedere la schermata di modifica della password di Cacti:
Fornisci la tua password predefinita, nuova password e fai clic su Salva pulsante. Dovresti vedere la pagina del contratto di licenza Cacti:
Accetta il contratto di licenza e fai clic su Inizia pulsante. Dovresti vedere la pagina di controllo della pre-installazione:
Assicurati che tutti i pacchetti siano installati, quindi fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Seleziona il tipo di installazione e fai clic su Avanti pulsante. Dovresti vedere la pagina di controllo dei permessi della directory:
Fare clic su Avanti pulsante. Dovresti vedere la seguente pagina.
Fare clic su Avanti pulsante. Dovresti vedere la pagina di convalida dell'input:
Seleziona la casella di controllo e fai clic su Avanti pulsante. Dovresti vedere la pagina del profilo:
Fornisci il tuo intervallo di rete e fai clic su Avanti pulsante. Dovresti vedere la pagina di configurazione del modello:
Seleziona il modello richiesto e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Quindi, apri il tuo terminale, accedi alla shell MySQL e modifica il set di caratteri eseguendo il seguente comando:
MariaDB [(none)]> ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Quindi, torna alla procedura guidata di installazione di Cacti e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Conferma l'installazione e fai clic su Installa pulsante. Una volta terminata l'installazione, dovresti vedere la seguente pagina:
Fai clic su Ottieni Iniziato pulsante. Dovresti vedere la dashboard Cacti nella pagina seguente:
Fai clic sui Grafici => Macchina Linux locale . Dovresti vedere le informazioni sulla tua macchina locale nella pagina seguente:
Conclusione
Congratulazioni! hai installato e configurato correttamente lo strumento di monitoraggio della rete Cacti su Ubuntu 20.04. È ora possibile installare l'agente Cacti sulla macchina del client e aggiungerlo al server Cacti e avviare il monitoraggio. Sentiti libero di chiedermi se hai domande.