如何在 Debian 和 Ubuntu 中使用 Cacti-Spine 安装 Cacti
在本教程中,我们将学习如何在最新版本的Debian和Ubuntu 16.04 LTS中安装和配置Cacti网络监控工具。在本指南中,Cacti 将从源文件构建和安装。
Cacti是一个开源监控工具,用于通过SNMP协议监控网络,特别是网络设备,例如交换机、路由器、服务器。 Cacti 与最终用户交互,并且可以通过 Web 工具界面进行管理。
要求
- Debian 9 中安装的 LAMP 堆栈
- Ubuntu 16.04 LTS 中安装的 LAMP 堆栈
第 1 步:安装并配置 Cacti 的先决条件
1.在Debian 9中,打开源列表文件进行编辑,并将contrib和non-free存储库添加到通过更改以下行来更改文件:
nano /etc/apt/sources.list
将以下行添加到 sources.list 文件中。
deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.ro.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main
2. 然后,确保通过发出以下命令来更新系统。
apt update
apt upgrade
3. 在您的 LAMP 堆栈中,确保系统中存在以下 PHP 扩展。
apt install php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt
4. 接下来,通过发出以下命令编辑 PHP 配置文件并更改时区设置以匹配服务器的物理位置。
echo "date.timezone = Europe/Bucharest" >> /etc/php/7.0/apache2/php.ini
5. 接下来,从 LAMP 堆栈安装中登录到 MariaDB 或 MySQL 数据库,并创建用于安装 Cacti 的数据库> 通过发出以下命令。
替换 cacti 数据库名称、用户和密码以匹配您自己的配置,并为 cacti 数据库选择一个强密码。
mysql -u root -p
mysql> create database cacti;
mysql> grant all on cacti.* to 'cactiuser'@'localhost' identified by 'password1';
mysql> flush privileges;
mysql> exit
6. 另外,发出以下命令以允许 cacti 用户通过发出以下命令选择对 MySQL data.timezone 设置的权限。
mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
mysql -u root -p -e 'grant select on mysql.time_zone_name to cactiuser@localhost'
7. 接下来,打开 MySQL 服务器配置文件并在文件末尾添加以下行。
nano /etc/mysql/mariadb.conf.d/50-server.cnf [For MariaDB]
nano /etc/mysql/mysql.conf.d/mysqld.cnf [For MySQL]
将以下行添加到 50-server.cnf 或 mysqld.cnf 文件的末尾。
max_heap_table_size = 98M
tmp_table_size = 64M
join_buffer_size = 64M
innodb_buffer_pool_size = 485M
innodb_doublewrite = off
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
对于 MariaDB 数据库,还将以下行添加到 50-server.cnf 文件的末尾:
innodb_additional_mem_pool_size = 80M
8. 最后,重新启动 MySQL 和 Apache 服务以应用所有设置并通过发出以下命令验证这两个服务的状态。
systemctl restart mysql apache2
systemctl status mysql apache2
第2步:下载并准备Cacti安装
9. 通过下载并解压最新版本的 Cacti 存档,开始从源安装 Cacti,并通过发出以下命令将所有解压文件复制到 Apache Web 文档根目录。
wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar xfz cacti-latest.tar.gz
cp -rf cacti-1.1.27/* /var/www/html/
10.从/var/www/html目录中删除index.html文件,创建Cacti日志文件并授予Apache对Web的写入权限根路径。
rm /var/www/html/index.html
touch /var/www/html/log/cacti.log
chown -R www-data:www-data /var/www/html/
11. 接下来,编辑 cacti 配置文件并修改以下行,如以下示例所示。
nano /var/www/html/include/config.php
Cacti config.php 文件示例。相应地替换 cacti 数据库名称、用户和密码。
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'password1;
$database_port = '3306';
$database_ssl = false;
$url_path = '/';
12. 接下来,通过发出以下命令,使用 /var/www/html/ 目录中的 cacti.sql 脚本填充 cacti 数据库。
mysql -u cactiuser cacti -p < /var/www/html/cacti.sql
13. 现在安装一些额外的资源,因为 Cacti 引擎通过 SNMP 协议收集设备数据并使用 RRDtool 显示图形。通过发出以下命令安装所有这些。
apt install snmp snmpd snmp-mibs-downloader rrdtool
14. 通过发出以下命令重新启动 snmpd 守护程序来验证 SNMP 服务是否已启动并正在运行。还要检查 snmpd 守护进程状态及其开放端口。
systemctl restart snmpd.service
systemctl status snmpd.service
ss -tulpn| grep snmp
第 3 步:下载并安装 Cacti-Spine
15. Cacti-Spine 是默认 cmd.php 轮询器的 C 编写替代品。 Cacti-Spine 提供更快的执行时间。要从源代码编译 Cacti-Spine 池化器,请在系统中安装以下必需的依赖项。
---------------- On Debian 9 ----------------
apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev librrds-perl libsnmp-dev libmariadb-dev libmariadbclient-dev
---------------- On Ubuntu ----------------
apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev librrds-perl libsnmp-dev libmysqlclient-dev libmysqld-dev
16. 安装上述依赖项后,下载最新版本的 Cacti-Spine 存档,解压 tarball 并通过发出以下一系列命令编译 cacti-spine 。
wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
tar xfz cacti-spine-latest.tar.gz
cd cacti-spine-1.1.27/
17. 通过发出以下命令从源编译并安装 Cacti-Spine。
./bootstrap
./configure
make
make install
18. 接下来,确保 spin 二进制文件归 root 帐户所有,并通过运行以下命令为 spin 实用程序设置 suid 位。
chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine
19. 现在,编辑 Cacti Spine 配置文件并将 cacti 数据库名称、用户和密码添加到 Spine conf 文件中,如下例所示。
nano /usr/local/spine/etc/spine.conf
将以下配置添加到spine.conf 文件中。
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass password1
DB_Port 3306
DB_PreG 0
第 4 步:Cacti 安装向导设置
20. 要安装 Cacti,请打开浏览器并导航到以下 URL 处的系统 IP 地址或域名。
http://your_IP/install
首先,选中接受许可协议并点击下一步按钮继续。
21.接下来,检查系统要求,然后点击下一步按钮继续。
22. 在下一个窗口中,选择新建主服务器,然后点击下一步按钮继续。
23. 接下来,验证关键二进制位置和版本,并将 Spine 二进制路径更改为 /usr/local/spine/bin/spine。完成后,点击下一步按钮继续。
24. 接下来,检查所有 Web 服务器目录权限是否已到位(写入权限已设置),然后点击下一步按钮继续。
25.下一步检查所有模板并点击完成按钮以完成安装过程。
26. 使用如下所示的默认凭据登录 Cacti Web 界面并更改管理员密码,如以下屏幕截图所示。
Username: admin
Password: admin
27. 接下来,转到控制台 -> 配置 -> 设置 -> 轮询器 并从 cmd.php< 更改轮询器类型 到 Spine 二进制文件,然后向下滚动到 保存 按钮以保存配置。
28.然后,进入控制台 -> 配置 -> 设置 -> 路径并将以下路径添加到 Cacti-Spine 配置文件中:
/usr/local/spine/etc/spine.conf
点击保存按钮应用配置。
29. 使 Cacti poller 能够开始从受监控设备收集数据的最终设置是添加一个新的 crontab 任务,以便每 5 分钟通过 SNMP 查询每个设备。
crontab 作业必须由 www-data 帐户拥有。
crontab -u www-data -e
添加 Cron 文件条目:
*/5 * * * * /usr/bin/php /var/www/html/poller.php
30. 等待几分钟,让 Cacti 收集数据,然后转到图表 -> 默认树,您应该会看到为受监控设备收集的图表。
就这样!您已在最新版本的 Debian 9 和 Ubuntu 16.04 中成功安装并配置了带有 Cacti-Spine 池化器的 Cacti LTS 服务器。