安裝完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