一、cacti-spine相關介紹
spine是一個基于C語言的,非常快速的輪詢引擎。它是預設的cmd.php輪詢的可選替代。當cacti監控的主機達到幾十個的時候,這種采集資料延時情況就越發地顯現出來。
二、安裝系統支援環境
系統環境:Centos 5.5 X86
所需軟體包:
1、net-snmp-devel(包含net-snmp所需的頭檔案)
2、mysql-devel(包含mysql的相關頭檔案)
3、openssl-devel(包含openssl的相關頭檔案)
此處使用yum安裝,對于yum的配置及cacti所需的安裝包,可參見前面的博文:
http://skyou.blog.51cto.com/2915693/541686
http://skyou.blog.51cto.com/2915693/542835
現在開始安裝:
yum -y install net-snmp-devel mysql-devel openssl-devel |
三、下載下傳并安裝cacti-spine的源代碼
在shell中執行:
cd /usr/local/src wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz tar xvfz cacti-spine-0.8.7g.tar.gz cd cacti-spine-0.8.7g ./configure --with-mysql make && make install |
四、配置cacti-spine
上面安裝完成,其主目錄在/usr/local/spine
1、将配置檔案拷貝到/etc目錄:
cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf |
此處将spine.conf配置檔案拷貝到/etc/,有其原因,主要在于,cacti-spine的源代碼的頭檔案spine.h中定義的配置檔案目錄為/etc目錄。
可以打開spine.h頭檔案檢視:
vim /usr/local/src/cacti-spine-0.8.7g/spine.h(可以看到如下幾行) |
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CbPhjeyETNwYzNyAzMx81M5YTNxkjMvwFNx8CX0ATMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.png)
由頭檔案定義的配置路徑,可以看到配置檔案config file的路徑定義。
2、修改spine.conf配置檔案
vim /etc/spine.conf |
将其中的一行改為:DB_Pass cacti
此處的DB_Pass的密碼主要與mysql中定義的一樣:
GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cacti'; |
3、将生成的二進制檔案做個軟連結
ln -s /usr/local/spine/bin/spine /bin/spine |
此處主要是為友善cacti友善查找路徑。
4、測試spine是否配置完成,在shell中執行:
spine(出現下圖表示配置正确)
注:如果是在編譯安裝mysql的系統裡,執行上面會報如下錯誤:
因為編譯安裝的mysql的socket檔案一般都是/tmp/mysql.sock
是以這裡需要将/tmp/mysql.sock做個軟連結,将其連結到/var/lib/mysql/mysql.sock
執行:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock |
此時再執行上面的spine指令時就不會報錯了。
五、設定cacti,選擇spine輪詢機制運作
1、在浏覽器中打開http://IPaddress/cacti,配置spine的路徑path
在頁面單擊選擇Console---Settings,如圖所示:
單擊圖中看到Paths頁籤,單擊後,會出現如下圖:
可以看到“Spine Poller File Path”一欄,在此框中,輸入spine的檔案所在路徑,然後點選右下腳本的儲存,如圖:
2、在cacti中選擇spine輪詢
在目前圖示頁中,選擇“Poller”頁籤:
在圖示的“Poller Type”單選框中,選擇spine後,單擊右下腳的儲存按鈕。
此時已經完成對spine的所有配置。
3、檢視cacti.log,看cacti是否選擇了spine而不是cmd.php來進行輪詢,在shell中執行指令:
tail -f /var/www/html/cacti/log/cacti.log |