安装完cacti之后一直使用默认的cmd.php来完成数据采集,可是后来发现cmd.php采集存在很大的延迟平均一次需要2秒,执行效率太低了,而spine只用了0.7秒,差距实在太大了。两厢比较了一下,从添加device好到设备up,spine只需要不到一分钟,而cmd等的时间较长,超过10分钟。 当设备down后 2分钟之内spine可以发出alert,而cmd可能需要10分钟以上。 所以还是要使用spine吧。spine安装很简单,编译三部曲,推荐编译的时候加上相关参数会更好。
net-snmp-devel
mysql
mysql-devel
openssl-devel
1.相关包先打上
[root@localhost ~]# yum -y install net-snmp-devel openssl-devel mysql mysql-devel
2、安装spine,下载的版本最好与cacti一致,spine-0.8.8b
[root@localhost ~]# tar xf cacti-spine-0.8.8b.tar.gz [root@localhost ~]# cd cacti-spine-0.8.8b [root@localhost cacti-spine-0.8.8b]# ./configure [root@localhost cacti-spine-0.8.8b]# make && make install
编译时可能产生的报错如下:
configure: error: Cannot find SNMP headers. Use --with-snmp= to specify non-default path.
解决方法:
yum install net-snmp-devel
或者启用with-snmp=/usr/local/net-snmp/ 参数,若RMP安装的net-snmp可能找不到net-snmp则可以重新编译安装net-snmp,加上参数
--prefix=/usr/local/net-snmp/
3.设置配置文件
[root@localhost ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf ## 编辑配置文件,请根据实际情况修改 [root@localhost ~]# vi /etc/spine.conf DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactiuser DB_Port 3306 DB_PreG 0
4启动测试spine
[root@localhost ~]# /usr/local/spine/bin/spine -C /usr/local/spine/etc/spine.conf
启动时产生的报错如下:
MYSQL: Connection Failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 11/02/2007 04:02:51 PM - SPINE: Poller[0] FATAL: Connection Failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) (Spine init)
解决方法:
可以重新编译spine 加上--with-mysql=/usr/local/mysql/参数
或者查找mysql.sock 是否丢失,如否则在/var/lib/ 下建立mysql文件夹 ,
[root@monitor mysql]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
用ln和tmp目录下的连接起来。 tmp下的mysql.sock 是安装mysql的时候产生的,而/var/lib/mysql/mysql.sock ln产生的。
5、在cacti的WEB页面进行设置spine的路径 /usr/local/spine/bin/spine,修改Cacti默认的Poller Types
Console -> Cacti Settings -> Poller -> Poller Type在下拉框中,选择spine, 然后记得“Save
转载于:https://blog.51cto.com/ezioauditor/1739504