本页内容
- 准备工作
- 安装软件包依赖
- 安装并配置 MariaDB
- 为 Cacti 创建新数据库和用户
- 安装并配置 Cacti
- Cacti 安装向导
- 结语
Cacti 是一个基于 PHP 和 MySQL 的 Web 开源监控工具。它是一个强大的网络监控和绘图工具,使用 SNMP(简单网络管理协议)收集数据并存储到 RRDTool(轮询数据库工具)数据引擎中。RRDtool 还负责创建图形。
Cacti 带有一些出色的功能,已成为图形化监控任务的最佳工具之一。它适用于不同类型的企业。Cacti 提供广泛的硬件监控功能,非常适合 ISP(互联网服务提供商)等公司。它也适用于专用服务器提供商,因为它支持多用户,每个用户都可以创建自己的图形。
Cacti 是一个用于运行监控和故障管理的可扩展框架。它为不同的设备以及不同的图形/聚合/图形模板提供了多种模板。它还可以与 Apache/httpd 和 Nginx 等不同类型的 Web 服务器一起运行。
准备工作
本指南将教你如何在 Rocky Linux 系统上安装 Cacti 监控工具。Cacti 基于 PHP 和 MySQL,因此你也需要安装这些软件包。此外,你还将安装 httpd Web 服务器。
以下是我们安装 Cacti 的示例环境:
- 操作系统:Rocky Linux 8.4(Green Obsidian)
- 服务器 IP 地址:192.168.1.10
- Sudo root 权限
现在让我们开始安装 Cacti 监控工具。
安装软件包依赖
首先,你必须安装 Cacti 的一些软件包依赖。你必须使用 root/sudo 权限运行下面所有命令。
1. 使用以下命令将 EPEL(Extra Packages for Enterprise Linux)仓库添加到 Rocky Linux 系统。
sudo dnf install epel-release
输入 ' y ' 并按 ' Enter ' 继续安装。

2. 使用以下命令安装 httpd Web 服务器。
sudo dnf install httpd -y
如果 httpd 安装完成,启动并启用 httpd 服务。
sudo systemctl enable --now httpd
sudo systemctl is-enabled httpd

3. 接下来,你必须在系统上安装 PHP。默认情况下,Rocky Linux 仓库提供多个版本的 PHP。你要安装的是仓库中可用的最新版本 PHP 7.4。
使用以下 dnf 命令启用 7.4 版本的 PHP 模块。
dnf module enable php:7.4
输入 ' y ' 确认并按 ' Enter '。

现在执行以下 DNF 命令来安装 PHP 软件包。
sudo dnf install -y 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
PHP 软件包安装完成后,使用 nano/vim 编辑器编辑 '/etc/php.ini' 配置文件。
nano /etc/php.ini
取消注释 ' date.timezone ' 选项并输入你当前的时区。
date.timezone = Europe/Amsterdam
按如下方式修改 ' memory_limit ' 和 ' max_execution_time ' 选项。
memory_limit = 512M max_execution_time = 60
保存配置并退出。
现在重新加载 httpd 服务以应用并完成 PHP 配置。
sudo systemctl restart httpd
4. 安装完所有这些软件包后,你必须安装 SNMP 和 rrdtool。
Cacti 使用 SNMP 收集设备信息,rrdtool 用于将收集到的数据存储为 .rra 格式,然后在 Cacti 仪表板上以图形信息形式显示。
使用以下 dnf 命令安装 SNMP 和 rrdtool。
sudo dnf install -y net-snmp net-snmp-utils net-snmp-libs rrdtool -y
安装完成后,使用以下命令启动并启用 SNMP 服务。
sudo systemctl enable --now snmpd
sudo systemctl is-enabled snmpd

现在进入下一阶段,安装和配置 MariaDB 数据库。
安装并配置 MariaDB
在这一步中,你将在 Rocky Linux 系统上安装并配置 mariadb 数据库。此外,根据 Cacti 的要求和建议,你还需要为 mariadb 数据库添加一些额外配置。
1. 执行以下 DNF 命令在系统上安装 mariadb 软件包。
sudo dnf install -y @mariadb
等待所有软件包安装完成。
2. 接下来,将当前工作目录切换到 ' /etc/my.cnf.d ' 目录,并使用 nano/vim 编辑 mariadb 配置文件 ' mariadb-server.cnf '。
cd /etc/my.cnf.d/
nano mariadb-server.cnf
将以下配置粘贴到 ' [mysqld] ' 行下方。此配置基于 Cacti 安装要求。
character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci innodb_file_format = Barracuda 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_large_prefix=1 innodb_read_io_threads=32 innodb_write_io_threads=16 innodb_io_capacity=5000 innodb_io_capacity_max=10000 log-error = /var/log/mariadb/mariadb-error.log log-queries-not-using-indexes = 1 slow-query-log = 1 slow-query-log-file = /var/log/mariadb/mariadb-slow.logSave the configuration and exit.
3. 接下来,使用以下命令启动并启用 mariadb 服务。
sudo systemctl enable --now mariadb
检查当前的 mariadb 服务。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
确保 mariadb 服务处于活动状态并正在运行。下面是你将看到的类似输出。

4. 所有 mariadb 配置完成后,将系统中可用时区加载并填充到默认数据库 ' mysql ' 的时区表中。
使用以下命令将时区表加载并填充到数据库 ' mysql '。
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
输入你的 mariadb root 密码并按 ' Enter '。现在继续下一步,为 Cacti 安装创建新数据库和用户。
为 Cacti 创建新数据库和用户
在这一步中,你将创建一个新的 mariadb 数据库和用户。
首先,使用以下 mysql 命令登录到 mysql shell。
mysql -u root -p
输入你的 mariadb root 密码并按 ' Enter '。
1. 使用以下查询创建一个新的 'cacti' 数据库。
create database if not exists cacti;
2. 创建一个新用户 ' cactiuser ',并将 ' cacti ' 数据库的所有权限授予该新用户。
CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'cacti_password';
GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost';
3. 此外,你还必须将数据库 ' mysql ' 中 ' time_zone_name ' 表的 ' SELECT ' 权限授予用户 ' cactiuser '。
GRANT SELECT ON mysql.time_zone_name TO 'cactiuser'@'localhost';
现在重新加载所有表权限并输入 ' exit '。
FLUSH PRIVILEGES;
exit
现在 Cacti 安装的所有先决条件都已就绪,你可以开始安装 Cacti 监控工具了。

安装并配置 Cacti
默认情况下,EPEL 仓库提供 cacti 软件包,可以直接安装。EPEL 仓库中的 Cacti 版本是 1.2.17,而 Cacti 官方网站上的当前版本是 1.2.19。
在这一步中,你将在 Rocky Linux 系统上安装并配置 Cacti。
1. 执行以下 DNF 命令在系统上安装 Cacti。
sudo dnf install cacti
输入 ' y ' 确认并按 ' Enter '。

所有 Cacti 源代码将位于 '/usr/share/cacti/' 目录中。
2. Cacti 安装完成后,使用以下 mysql 命令将数据库架构导入 ' cacti ' 数据库。
mysql -u cactiuser -p cacti < /usr/share/doc/cacti/cacti.sql
输入 ' cactiuser ' 的密码,在本示例中,密码为 ' cacti_password '。
3. 接下来,使用 nano/vim 编辑器编辑 Cacti 配置文件 ' /usr/share/cacti/include/config.php '。
nano /usr/share/cacti/include/config.php
按如下方式修改数据库配置详情。
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cacti_password';
$database_port = '3306';
保存配置并退出。
4. 默认情况下,Cacti 安装只能从本地主机访问。要允许来自外部网络的访问,需要编辑 Cacti 的 httpd 配置。
使用 nano/vim 编辑器编辑配置文件 ' /etc/httpd/conf.d/cacti.conf '。
nano /etc/httpd/conf.d/cacti.conf
按如下方式将 ' Require host localhost ' 选项改为 ' Require all granted '。
Require all granted
保存配置并退出。
现在重启 httpd 服务以应用新配置。
sudo systemctl restart httpd
5. 接下来,编辑 cron 配置文件 ' /etc/cron.d/cacti ' 以启用 Cacti 轮询器。
nano /etc/cron.d/cacti
按如下方式取消注释该行。
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
保存配置并退出。
6. 如果你的服务器上运行着 firewalld,请使用以下命令将 HTTP 和 HTTPS 服务添加到 firewalld。
firewall-cmd add-service=http --permanent
firewall-cmd --reload
现在你已完成基本的 Cacti 配置。进入下一步,启动并完成 Cacti 安装向导。
Cacti 安装向导
打开你的 Web 浏览器,输入服务器 IP 地址并加上路径 '/cacti' 以访问设置页面/安装向导。
http://192.168.1.10/cacti/
1. 首先,你会被重定向到如下的安装登录页面。

使用默认用户 ' admin ' 和密码 ' admin ' 登录,然后点击 ' Login ' 按钮。
2. 将默认密码 ' admin ' 更改为强密码并重复输入,然后点击 ' Save ' 按钮。

3. 关于许可协议,Cacti 使用的是 GPL 许可证。

勾选 'Accept GPL License Agreement' 选项,然后点击 ' Begin ' 按钮开始安装。
4. 现在 Cacti 安装向导将检查 Cacti 安装的所有要求。确保所有检查结果状态均为绿色,如下图所示。

点击 ' Next ' 按钮继续。
5. 对于 Cacti 安装类型,选择 'New Primary Server' 选项,因为这是第一台 Cacti 服务器。然后你可以再次点击 ' Next '。

6. 你将看到 Cacti 的目录权限检查。确保所有权限检查状态均为绿色,如下图所示。

再次点击 ' Next '。
7. 现在,你将设置 Cacti 所使用的二进制应用程序的路径。
你可以保持默认设置,然后点击 ' Next ' 按钮。

8. 现在阅读有关 " input validation whitelist protection(输入验证白名单保护)" 的所有信息。这很重要,尤其是出于安全考虑。
Cacti 脚本 ' input_whitelist.php ' 允许你管理 Cacti 上的数据输入方法。你可以根据个人安全偏好,在白名单中禁止或解禁数据输入方法。
确保勾选 ' I have read this statement ' 选项,然后再次点击 ' Next '。

9. 对于配置文件设置,保持默认并点击 ' Next ' 按钮继续。

10. 你可以根据主机/客户端机器选择模板进行模板设置。或者你也可以保持默认并再次点击 ' Next '。

11. 现在安装向导将检查你的数据库和当前系统的本地化。
确保没有错误消息,然后点击 ' Next ' 按钮。

12. 现在点击 ' Confirm installation ' 选项,并点击 'Install' 按钮开始 Cacti 安装。

13. 安装过程如下进行。

14. Cacti 安装完成后,你将看到如下图所示的提示信息。

点击 ' Get Started ' 按钮。
15. 然后你将被重定向到如下的 Cacti 默认管理仪表板。

16. 现在,等待大约 19-20 分钟,以便 Cacti 服务收集有关你系统的数据。
准备好后,点击 ' Graph ' 菜单,你将看到 Rocky Linux Cacti 服务器的当前状态。
以下是当前环境中 Cacti 服务器图形的一个示例。

如果你能看到当前 Rocky Linux 系统的图形,说明你的 Cacti 安装成功了。
结语
恭喜!你已在 Rocky Linux 系统上安装了 Cacti 监控工具。
下一步,你需要设置 'spine'(Cacti 的多线程数据采集器),然后将新的主机/机器/设备添加到你的 Cacti 服务器中进行监控。