Cacti如何實(shí)現(xiàn)被動(dòng)數(shù)據(jù)獲取
cacti 我們也用了很久了,但是它的表結(jié)構(gòu)一直都沒(méi)有去關(guān)心過(guò),得空抽了半個(gè)晚上的時(shí)間,把它的庫(kù)表結(jié)構(gòu)大概看了下,某些字段的含義跟大家分享下:
cacti 的數(shù)據(jù)都是存放在rrdtool 中的,數(shù)據(jù)庫(kù)存放的其實(shí)只是配置數(shù)據(jù),cacti 的邏輯對(duì)象主要分為三種,data (數(shù)據(jù))、graph (圖片)、host (設(shè)備),這在它的表設(shè)計(jì)中也能很容易的看出來(lái)。所以,就分三個(gè)大類來(lái)討論了
Cacti 如何實(shí)現(xiàn)被動(dòng)數(shù)據(jù)獲取
了解到它的數(shù)據(jù)結(jié)構(gòu)以后,我們就可以想辦法來(lái)實(shí)現(xiàn) cacti 的被動(dòng)數(shù)據(jù)獲取了,因?yàn)椴⒉皇撬袌?chǎng)合, snmp 都可以取到數(shù)據(jù)的,也許有時(shí)候我們要取的 ip 在另外一個(gè)局域網(wǎng)里,也許我們覺(jué)得 cacti 的負(fù)載太高,不能讓它取太多的數(shù)據(jù)。
1 、方式
方式很簡(jiǎn)單,在 cacti 中定義好 host , data , graph ,然后只要我們能定時(shí)的把數(shù)據(jù)插入到它的 rrd 文件中就可以了。
2 、方法
方法可以有兩種:
***種用腳本, cacti 支持自寫腳本取數(shù)據(jù)。最土的辦法,就是定時(shí)的將數(shù)據(jù)推送到 cacti 的機(jī)器上,追加到一個(gè)文件里,然后 cacti 通過(guò)一個(gè)腳本讀取這個(gè)文件來(lái)獲取數(shù)據(jù)。
第二種就是直接插 rrd 文件, cacti 正常的獲取數(shù)據(jù)方式是用 crontab 跑 poller ,或者 spine ,去定時(shí)取數(shù)據(jù)。我們?cè)?poller 或者 spine 的過(guò)程中不需要讓它去取數(shù)據(jù),直接跳過(guò),而定時(shí)的從外部把數(shù)據(jù)推送進(jìn)來(lái),然后插入 rrd 文件即可。
3 、步驟
a 、添加一個(gè) host (如果這個(gè) host 無(wú)法訪問(wèn)到,那么可用性檢查會(huì)失敗,但是沒(méi)關(guān)系)
b 、添加數(shù)據(jù)源,需要 insert 以下幾張表: data_local 、 data_template_data 、 data_template_data_rra 、 data_template_rrd
c 、創(chuàng)建 rrd 文件,打開 data source 頁(yè)面,應(yīng)該已經(jīng)可以看到我們添加的數(shù)據(jù)源了,打開那個(gè)數(shù)據(jù)源的 debug 模式,將 rrdtool 的命令拷貝到 shell 中執(zhí)行一次即可(注意權(quán)限)
d 、創(chuàng)建一個(gè)圖片,需要 insert 以下幾張表: graph_local 、 graph_template_graph 、 graph_template_item
e 、定時(shí)的向 rrd 文件中插入數(shù)據(jù)(用你喜歡的方式,同時(shí)要注意 rrd 文件的權(quán)限)
【編輯推薦】