Cacti 工具是一個針對 IT 企業的網路監控和系統圖形化的開源、基於網頁的解決方案。Cacti 允許用戶定期輪詢服務,並使用 RRDtool 創建圖形。
它通常用於繪製時間序列數據,例如 網路帶寬利用率、CPU 負載、正在運行的進程、磁盤空間 等指標。
在這個教程中,我們將演示如何在像CentOS Stream、Fedora、Rocky和Alma Linux這樣的基於RHEL的發行版上使用YUM和DNF套件管理工具安裝和設置一個名為Cacti的全面網絡監控應用程序,並使用Net-SNMP工具。
Cacti 必需套件
Cacti 需要在您的Linux操作系統上安裝以下套件。
- Apache:用於顯示由PHP和RRDTool創建的網絡圖形的Web服務器。
- MySQL:用於存儲Cacti信息的數據庫服務器。
- PHP:使用RRDTool創建圖形的腳本模塊。
- PHP-SNMP:用於訪問數據的SNMP的PHP擴展。
- NET-SNMP:用於管理網絡的SNMP(簡單網絡管理協議)。
- RRDTool:一個管理和擷取時間序列數據(如CPU 負載,網絡帶寬等)的數據庫工具。
為了演示目的,我們使用Rocky Linux 9來安裝Cacti工具,但相同的指令適用於所有基於RHEL的發行版。
步驟1:在Linux中安裝必要的軟件包
首先,請通過更新系統的軟件包庫來確保您有可用的軟件包的最新版本。
sudo dnf update
接下來,使用以下命令安裝Cacti及其依賴項所需的軟件包。
sudo dnf install net-snmp-utils net-snmp-libs rrdtool php-mysqlnd php-snmp php-xml php-gd mariadb-server httpd

步驟2:在Linux中安裝Cacti工具
要安裝Cacti,請確保在您的系統上啟用了EPEL 軟件庫。
sudo yum install epel-release
一旦啟用了EPEL軟件庫,您可以運行以下命令來安裝Cacti。
sudo yum install cacti

步驟3:保護MariaDB數據庫
為了配置MySQL以用於Cacti,我們必須首先保護新安裝的MySQL服務器,然後使用用戶“Cacti”創建Cacti數據庫。如果您的MySQL已安裝並受保護,則無需再次執行此操作。
sudo mysql_secure_installation
按照提示設置根密碼,刪除匿名用戶,禁止遠程根登錄,並刪除測試數據庫。

步驟4:創建Cacti數據庫
登入MySQL伺服器,使用新建的密碼,然後使用使用者”Cacti“創建Cacti資料庫,並為其設置密碼。
sudo mysql -u root -p CREATE DATABASE cacti; CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON cacti.* TO 'cacti'@'localhost'; FLUSH PRIVILEGES; EXIT;

接下來,您需要將默認的Cacti資料庫架構導入到新建的資料庫中,但在此之前,您需要使用rpm命令找出資料庫文件路徑,並將其導入,如所示。
sudo rpm -ql cacti | grep cacti.sql sudo mysql -u cactiuser -p cacti < /usr/share/doc/cacti/cacti.sql

步驟5:配置Cacti資料庫連接
要配置Cacti資料庫連接,您需要打開配置文件,如所示。
sudo vi /etc/cacti/db.php
使用您的資料庫信息更新以下行。
$database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cacti'; $database_password = 'your_password';

步驟6:配置Cacti的Apache
使用您選擇的編輯器打開一個名為/etc/httpd/conf.d/cacti.conf的文件。
sudo vi /etc/httpd/conf.d/cacti.conf
將以下行添加到文件中:
Alias /cacti /usr/share/cacti <Directory /usr/share/cacti/> Options +FollowSymLinks AllowOverride None <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from all </IfModule> </Directory>
保存並關閉文件。
最後,重新啟動Apache和MariaDB服務以應用更改。
sudo systemctl restart httpd sudo systemctl restart mariadb
步驟7:配置Cacti的Cron作業
現在打開crontab文件,以安排Cacti的輪詢間隔。
sudo vi /etc/cron.d/cacti
取消以下行的注釋。 poller.php腳本每5分鐘運行一次,從已知主機收集資料,Cacti用於創建圖形。
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
步驟8:訪問Cacti Web界面
要访问 Cacti 网页界面,您需要在防火墙上打开端口 80,以允许该端口的入站流量。
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload
您现在可以通过浏览器,使用服务器的 IP 地址或域名来访问 Cacti。
http://your_server_ip/cacti OR http://domain.com/cacti
现在,请按照屏幕上的说明完成安装过程。
User: admin Password: admin

接下来,请更改默认的 Cacti 密码。

接受 Cacti 许可协议。

接下来,屏幕显示 Cacti 安装的预安装检查,请根据建议更正您的 /etc/php.ini
文件中的设置,并在更改后重新启动 Apache。
memory_limit = 800M max_execution_time = 60 date.timezone = Asia/Kolkata

同样,您还需要为用户 Cacti 授予对 MySQL 时区数据库的访问权限,以便数据库填充全局时区信息。
mysql> use mysql; mysql> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost; mysql> flush privileges;

请选择“新安装”作为安装类型。

在继续之前,请确保所有以下目录权限设置正确。

在继续之前,请确保所有这些 关键二进制位置和版本 的值设置正确。

请选择要用于轮询源的默认 数据源配置文件。

请选择 Cacti 安装后要使用的 设备模板。

在 MySQL 配置文件 /etc/my.cnf 的 [mysqld] 部分中设置 服务器排序规则。
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci

您的 Cacti 服务器几乎准备就绪。请确认您愿意继续。



恭喜!您已成功在基於 RHEL 系統上安裝了 Cacti。您現在可以通過在 Cacti Web 介面中添加設備、創建圖形以及設置警報來監控您的網絡基礎設施。
Source:
https://www.tecmint.com/install-cacti-network-monitoring-on-rhel-centos-fedora/