Cacti工具是一种开源的、基于网络的解决方案,用于IT企业中的网络监控和系统图形化。Cacti允许用户定期轮询服务,利用RRDtool创建图形。
它通常用于为诸如网络带宽利用率、CPU负载、运行进程、磁盘空间等指标创建时间序列数据图。
在这个操作指南中,我们将演示如何在基于RHEL的发行版(如CentOS Stream,Fedora,Rocky和Alma Linux)上使用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;

接下来,您需要使用rpm命令找出数据库文件路径,并按照所示导入默认Cacti数据库架构到新创建的数据库中。
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 地址或域名通过 Web 浏览器访问 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 网页界面中添加设备、创建图形和设置警报来开始监视您的网络基础设施。
Source:
https://www.tecmint.com/install-cacti-network-monitoring-on-rhel-centos-fedora/