Cacti是一种开源图形和网络监控工具,用作行业标准的数据记录和 RRD 工具。

Cacti 提供以下令人惊喜的功能:

  • 支持多种数据采集方式
  • 快速轮询指标
  • 使用 ACL 的用户管理功能
  • 支持高级图形模板

Spine 是一个多线程、高速数据收集工具,可替代 Cacti 的 cmd.php。它能够大规模地从主机中提取数据。它的特点是每个 Cacti 系统能够扩展到 10 的数千个主机。通过这样做,spine 能够提高 Cacti poller 的性能。

与 cmd.php 相比,spine 更受青睐,因为它提供了更多的灵活性、速度和并发性。此外,它与传统的 cmd.php 处理器 100% 兼容。当您有很多设备要监控时,spine 能够解决轮询超时错误。

现在,Cacti 和 Spine 都包含在许多 Linux 发行版中,很容易安装它们。本指南我们将深入探讨如何在 Ubuntu 20.04/18.04 上安装 Cacti Spine 轮询器。

入门

对于本指南,我假设您已经在 Ubuntu 20.04/18.04 系统上安装了 Cactin。否则,请先查看下面的专用指南:

在 Ubuntu 上安装和配置 Cacti  见

安装后,更新可用的软件包,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update && sudo apt upgrade -y

建议在升级操作系统后重新启动系统

linuxmi@linuxmi:~/www.linuxmi.com$ sudo reboot

第 1 步 – 在 Ubuntu 20.04/18.04 上下载 Cacti Spine poller

使用以下命令可以很容易地把 spine 安装到你的 Ubuntu 20.04/18.04 系统上

sudo apt install <cacti-spine-package>

但是这种方法的唯一问题是不能保证您获得最新版本的 Spine。

从官方Cacti 下载页面下载Spine 的最新可用版本。或者使用Wget下载最新版本的 Cacti-spine。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install wget
linuxmi@linuxmi:~/www.linuxmi.com$ wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz

第 2 步骤 – 在 Ubuntu 20.04|18.04 上安装 Cacti-Spine poller

下载后,我们就可以安装它了。对于本指南,我们将从源代码构建它。因此,我们将安装所需的软件包,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install build-essential autoconf automake dos2unix gzip help2man m4 make wget libtool libsnmp-dev libmariadb-dev libmariadbclient-dev

提取下载的 Cacti-spine 文件。

linuxmi@linuxmi:~/www.linuxmi.com$ tar zxvf cacti-spine-latest.tar.gz

导航到提取的文件目录。

linuxmi@linuxmi:~/www.linuxmi.com$ cd cacti-spine-*/

现在通过运行引导文件来创建配置脚本,如下所示:

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo ./bootstrap

输出如下:

INFO: Starting Spine build process
INFO: Removing cache directories
INFO: Running auto-tools to verify buildability
aclocal: installing 'm4/libtool.m4' from '/usr/share/aclocal/libtool.m4'
aclocal: installing 'm4/ltoptions.m4' from '/usr/share/aclocal/ltoptions.m4'
aclocal: installing 'm4/ltsugar.m4' from '/usr/share/aclocal/ltsugar.m4'
aclocal: installing 'm4/ltversion.m4' from '/usr/share/aclocal/ltversion.m4'
aclocal: installing 'm4/lt~obsolete.m4' from '/usr/share/aclocal/lt~obsolete.m4'
......
INFO: Spine bootstrap process completed

  These instructions assume the default install location for spine
  of /usr/local/spine.  If you choose to use another prefix, make
  sure you update the commands as required for that new path.

  To compile and install Spine using MySQL versions 5.5 or higher
  please do the following:

  ./configure
  make
  make install
  chown root:root /usr/local/spine/bin/spine
  chmod +s /usr/local/spine/bin/spine

  To compile and install Spine using MySQL versions previous to 5.5
  please do the following:

  ./configure --with-reentrant
  make
  make install
  chown root:root /usr/local/spine/bin/spine
  chmod +s /usr/local/spine/bin/spine

现在运行配置脚本以检测可用的内容,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo ./configure

如果出现如下错误:

configure: error: Cannot find MySQL headers.  Use --with-mysql= to specify non-default path.

请安装MySQL-devel包,默认安装路径:/usr/include/mysql/(包含了 mysql 插件开发所需的头文件)

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo apt-get install libmysqld-dev

如果出现如下错误:

configure: error: Cannot find SNMP headers.  Use --with-snmp= to specify non-default path.

请安装net-snmp

执行命令:

./configure --prefix=/usr/local/snmp --with-mib-modules='ucd-snmp/diskio ip-mib/ipv4InterfaceTable'
make && sudo make install

现在再次:

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo ./configure

输出如下没有错误提示:

checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
......
checking if we can support mysql/mariadb retry count... no
checking if we can support mysql/mariadb ssl keys... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/config.h
config.status: executing depfiles commands
config.status: executing libtool commands

使用以下命令将 Cacti-spine 安装到默认的/usr/local/spine目录中:

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo make

然后输出如下了:

/usr/bin/help2man --output=spine.1 --name='Data Collector for Cacti' --no-info --version-option='--version' ./spine

如果提示如下错误:

false // No help2man // --output=spine.1 --name='Data Collector for Cacti' --no-info --version-option='--version' ./spine

请先安装help2man

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo apt install help2man

现在再次:

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo ./configure

再次:

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo make

再运行

linuxmi@linuxmi:~/www.linuxmi.com/cacti-spine-1.2.19$ sudo make install

输出如下:

make[1]: 进入目录“/home/linuxmi/www.linuxmi.com/cacti-spine-1.2.19”
/usr/bin/mkdir -p '/usr/local/spine/bin'
/bin/bash ./libtool --mode=install /usr/bin/install -c spine '/usr/local/spine/bin'
libtool: install: /usr/bin/install -c spine /usr/local/spine/bin/spine
/usr/bin/mkdir -p '/usr/local/spine/etc'
/usr/bin/install -c -m 644 spine.conf.dist '/usr/local/spine/etc'
/usr/bin/mkdir -p '/usr/local/spine/share/man/man1'
/usr/bin/install -c -m 644 spine.1 '/usr/local/spine/share/man/man1'
make[1]: 离开目录“/home/linuxmi/www.linuxmi.com/cacti-spine-1.2.19”

将 spine 二进制文件的所有权分配给 root,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo chown root:root /usr/local/spine/bin/spine
linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod +s /usr/local/spine/bin/spine

创建 spine 配置文件。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf

编辑 spine 配置文件并添加您的数据库详细信息。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /usr/local/spine/etc/spine.conf

在文件中,添加您的数据库详细信息,如下所示。

DB_Host ‘localhost’
DB_Database ‘cacti’
DB_User ‘cacti_user’
DB_Pass ‘strongpassword’
DB_Port ‘3306’

第 3 步 – 使用 Cacti-Spine 轮询器

登录到您的 Cacti 站点并导航到 系统配置->设置。

现在更新您的 Cacti 配置,如下所示。

Spine二进制文件位置 : /usr/local/spine/bin/spine
Spine 配置文件路径 : /usr/local/spine/etc/spine.conf

在路径下,您应该填写如下。

保存所做的更改,采集类型 Poller 更新为 spine。如下图所示

现在启用轮询器从受监控的设备收集数据,添加一个新的 crontab 以便能够通过 SNMP 查询设备

linuxmi@linuxmi:~/www.linuxmi.com$ sudo crontab -u www-data -e

选择您想要的编辑器,然后继续将以下行添加到文件中。

*/5 * * * * /usr/bin/php /var/www/html/poller.php

给它几分钟,然后在 图形 -> Default Tree下检查。您应该能够看到收集到的数据,如下所示。

好了!现在我们成功地在 Ubuntu 20.04、18.04 上安装了 Cacti Spine 轮询器。我们已经看到了如何在轮询中使用 Spine。希望你喜欢它。

发表评论