如何在 CentOS 8 / RHEL 8 上安装 Cacti 监控工具

仙人掌 是一个免费的开源前端网络监控工具,用于监控和绘制局域网中各种 IT 资源的时间序列指标。 它使用 RRD工具 以指定的时间间隔轮询服务,然后在直观的图形上表示它们。

Cacti 监控各种指标,例如 中央处理器, 记忆带宽利用率, 磁盘空间、文件系统和正在运行的进程等等。 您可以监控服务器、路由器、交换机甚至防火墙等设备。 此外,您可以配置警报,以便在系统停机时,您可以通过电子邮件接收通知。 在本指南中,我们将引导您在 CentOS 8 / RHEL 8 上安装 Cacti 监控工具。在编写本教程时,最新的 Cacti 版本为 1.2.14 版本。

步骤 1) 安装 Apache 网络服务器

Cacti 是一个基于 Web 的图形工具,因此,我们需要安装一个 Web 服务器,监控工具将在其上运行。 在这里,我们将安装 Apache 网络服务器。 为此,请执行以下命令:

$ sudo dnf install httpd -y

第 2 步)安装 PHP 和其他 PHP 扩展

Cacti 监控工具的前端是纯 PHP 驱动的,因此,我们需要安装 PHP 和所需的 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

步骤 3) 安装 MariaDB 数据库服务器

在安装过程中,Cacti 需要自己的数据库来存储其文件。 此外,它需要一个数据库来存储填充图形所需的所有必需数据。

MariaDB 是 MySQL 的一个分支和替代品。 它被认为更健壮和功能丰富,虽然 MySQL 仍然可以工作,但强烈推荐 MariaDB。 要安装 MariaDB 服务器,请运行以下命令:

$ sudo dnf install -y mariadb-server mariadb

步骤 4) 安装 SNMP 和 RRD 工具

接下来我们要安装 网络管理协议RRD工具 这对于收集和处理系统指标至关重要。

$ sudo dnf install -y net-snmp net-snmp-utils net-snmp-libs rrdtool

步骤 5) 启动和启用服务

安装了 Cacti 运行所需的所有必要服务后,我们将启动它们,如下所示:

$ sudo systemctl start httpd
$ sudo systemctl start snmpd
$ sudo systemctl start mariadb

此外,确保在启动时启用它们,以便它们在启动或重新启动时自动启动。

$ sudo systemctl enable httpd
$ sudo systemctl enable snmpd
$ sudo systemctl enable mariadb

步骤 6) 为 Cacti 创建数据库

在这一步中,我们将为 cacti 创建一个数据库和用户,然后将所有权限授予 cacti 用户。 运行以下命令:

CREATE DATABASE cactidb;
GRANT ALL ON cactidb.* TO [email protected] IDENTIFIED  BY ‘cactipassword’;
FLUSH PRIVILEGES;
EXIT;

请务必记下数据库名称、用户和密码,因为稍后在安装过程中将需要这些。

接下来,我们需要导入 mysql_test_data_timezone.sqlmysql数据库 如图所示。

$ mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql

然后登录mysql数据库,授予cacti用户访问权限 mysql.time_zone_name 桌子。

GRANT SELECT ON mysql.time_zone_name TO [email protected];
FLUSH PRIVILEGES;
EXIT;

建议进行一些数据库调整以获得最佳性能。 在 mariadb-server.cnf 文件中添加以下行 [ mysqld ] 部分如图所示。

$ sudo vi /etc/my.cnf.d/mariadb-server.cnf
............
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
..............

Save 并退出配置文件

步骤 7)安装和配置 Cacti 监控工具

数据库就位并满足所有其他先决条件后,现在让我们安装 Cacti。

Cacti 包在默认的 CentOS 8 / RHEL 8 存储库中不可用,它在 EPEL 存储库中可用。 所以运行下面的命令来启用 epel repo

$ sudo dnf install epel-release -y

要安装 Cacti 监控工具,请运行以下命令:

$ sudo dnf install cacti -y

安装完成后,可以通过运行以下命令来确认cacti的安装:

$ rpm -qi cacti

你应该得到一个详细的输出,显示版本、发行版、大小和供应商,提到一些 Cacti 包。

接下来,将默认 cacti 数据库表导入到先前在步骤 6 中创建的 cacti 数据库。要查找默认数据库的路径,请运行:

$ rpm -ql cacti | grep cacti.sql

获得路径后,使用以下命令导入默认数据库:

$ mysql -u root -p cactidb < /usr/share/doc/cacti/cacti.sql

接下来,编辑 cacti 配置文件并指定数据库详细信息,如下所示:

$ sudo vim /usr/share/cacti/include/config.php

设置数据库名称、用户名和密码,其余选项保持不变。

Save 更改并退出配置文件。 此后,通过编辑来设置时区 配置文件 文件如图所示。

$ sudo vim /etc/php.ini
................................. 
date.timezone = Asia/Dubai
memory_limit = 512M
max_execution_style = 60
.................................

Save 并退出文件。

接下来,编辑 cron 条目,如图所示

$ sudo vim /etc/cron.d/cacti

取消注释此行以确保 Cacti 每 5 分钟轮询一次数据并保存配置

*/5 * * * *   apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

接下来修改 Apache的配置文件以启用 Cacti 的远程安装。

$ sudo vim /etc/httpd/conf.d/cacti.conf

修改以下 httpd ACL 以授予远程用户访问权限

改变 需要主机 localhost要求所有授予

调整 允许来自本地主机允许从 [network subnet]

对于网络子网,请务必指定您自己的网络子网。 对于我们的情况,子网是 192.168.2.0/24

要使所做的所有更改生效,请执行:

$ sudo systemctl restart httpd
$ sudo systemctl restart php-fpm

步骤 8) 为 Cacti 配置防火墙规则

在最终设置 Cacti 之前,请在防火墙上允许 HTTP 服务,如下所示:

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --reload

步骤 9) 通过浏览器设置 Cacti

要完成 Cacti 的设置,请访问您服务器的 IP,如图所示

https://server-ip/cacti

您将获得如图所示的页面。 使用显示的凭据登录

用户名admin

密码admin

点击 ‘登录‘ 继续。

接下来,您将需要通过提供您自己的密码来更改默认登录密码。 确保提供强密码(大写、小写、数字和特殊字符的组合)。 然后点击’Save‘。

在下一步中,勾选“接受 GPL 许可协议‘ 复选框并点击 ‘开始‘。

Cacti 将执行安装前检查,确认是否安装了所需的 PHP 模块以及是否配置了正确的数据库设置。 如果一切正常,请单击“下一个‘。 如果出现问题,请单击“以前的‘ 按钮并返回到配置文件并添加缺少的内容。

此后,选择“新的主服务器‘ 安装选项,并在继续之前确保数据库连接详细信息是正确的。

下一步探测任何目录问题并确保正确的权限到位。 如果一切顺利,请单击“下一个‘,否则单击“上一个”并纠正任何问题。

接下来,安装程序会检查是否安装了必需软件包的所有二进制路径。

最新版本的 Cacti 引入了另一个关键步骤,即数据输入方法的验证。 这为您在安装 cacti 后将数据输入方法列入白名单提供了几个步骤。 仔细阅读说明并检查“我已阅读此声明‘ 按钮。

在下一步中,选择扫描设备的 cron 间隔并定义您的网络子网,如图所示。 然后点击’下一个‘。

Cacti 附带的模板使您能够监控和绘制网络中的各种设备,包括 Cisco 设备(路由器和交换机)、Linux 和 Windows 机器。 默认情况下,会选中所有选项以包含您需要的所有模板。 如果您对此感到满意,只需单击“下一个‘。

此后,安装程序将检查数据库排序规则是否符合 UTF8。 点击 ‘下一个‘。

要开始安装,请单击“确认安装‘ 复选框并点击 ‘安装‘。

Cacti 的安装将开始,大约需要 5 分钟。 随意休息一下,做一些伸展运动,

所需软件包安装完成后,单击“开始‘ 按钮。

这将带您直接进入 Cacti 仪表板,如图所示。

默认情况下,Cacti 将为安装了 Cacti 的本地服务器创建资源利用率图。 要访问图表,请浏览:

图形 –> 默认树 –> 当地的 –> 选择您的设备。

等待大约 10 分钟以填充图形。

这使我们结束了本教程。 就我个人而言,我使用 Cacti 来监控一系列设备,我可以证明它在监控多个设备和在系统停机时发送警报方面的效率。

另请阅读如何在 CentOS 8/RHEL 8 上安装 Zabbix 监控工具