网站搜索

如何在 Debian 和 Ubuntu 中使用 Cacti-Spine 安装 Cacti


在本教程中,我们将学习如何在最新版本的DebianUbuntu 16.04 LTS中安装和配置Cacti网络监控工具。在本指南中,Cacti 将从源文件构建和安装。

Cacti是一个开源监控工具,用于通过SNMP协议监控网络,特别是网络设备,例如交换机、路由器、服务器。 Cacti 与最终用户交互,并且可以通过 Web 工具界面进行管理。

要求

  1. Debian 9 中安装的 LAMP 堆栈
  2. Ubuntu 16.04 LTS 中安装的 LAMP 堆栈

第 1 步:安装并配置 Cacti 的先决条件

1.Debian 9中,打开源列表文件进行编辑,并将contribnon-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 堆栈安装中登录到 MariaDBMySQL 数据库,并创建用于安装 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.cnfmysqld.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. 最后,重新启动 MySQLApache 服务以应用所有设置并通过发出以下命令验证这两个服务的状态。

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 9Ubuntu 16.04 中成功安装并配置了带有 Cacti-Spine 池化器的 Cacti LTS 服务器。