默認的Cacti監控圖形是以日、周、月、年 4個時間,每一個時間均可以任意縮放查看,可是你們確定也發現了, 默認的狀況下,日圖是每5分鐘頻率的平均值,周圖是30分鐘,月圖是2小時,年圖是1天;這樣的話,若是查看一週前的圖就會比當時的實際圖相差很大,監控值會低很多,查看一月或一年以前的就會相差更大;這裏咱們來講說怎麼解決此問題,或者說是縮小差值。php
Cacti主要是經過rrdtool這個工具來繪圖的,其實cacti只是個構造比較合理的框架。rrdtool 有一套本身的數據文件供其繪圖使用,Cacti主要使用了,rrdtool create, rrdtool graph, rrdtool update 三個功能,rrdtool的數據文件,和通常關係型數據庫不一樣的地方在於,它是環形數據庫,一個特別依賴時間的數據庫。在前面咱們說過了,在實際生產環境中,默認的Cacti圖形是以日、周、月、年 4個時間,每一個時間均可以任意縮放查看,可是你們應該發現了, 默認的狀況下,日圖是每5分鐘頻率的平均值,周圖是30分鐘,月是2小時,年圖是1天,而這些又表明什麼意思呢?下面會簡單解釋一下。html
你們在看當天的流量圖的時候(5分鐘) 會發現,它是5分鐘一個點,兩個點之間畫一條直線的。這樣一天下來會有288個點了,這樣就造成了一天的流量圖。通常狀況下,咱們天天生成的數據,會一直不停的變化更新,會有N個288,數據文件會變的無限大的。rrd文件就不會這樣,以前說過了它是環形數據庫,就在於他會合並數據。好比看周圖的時候, 你絕對看不了5分鐘一個點的,爲何呢?這個就是由於數據被合併了。6個5分鐘的點,合併成爲周圖中的一個點,也就是說,12個5分鐘點才畫成周圖中的一條線。月、年都是依次類推。合併以後是如何取值呢,默認狀況下,是取平均的,也就是爲何時間越大,數據越小的緣由了,時間越往前推差值就會越大。數據庫
既然在當天能夠看見5分鐘的流量圖,那麼多久以後就看不了,只能看見30分鐘的圖了呢?在默認狀況下,5分鐘的圖是保存50小時的,也就是說2天內,你還能夠看見那天的5分鐘圖,好比8月1號的流量圖在8月2號還能夠看見,到了3號就只能看見30分鐘了的。緩存
在【Console】-【Management】-【Data Sources】中,【---rras】下面有 日、周、月、年的循環歸檔,這個地方就能夠決定咱們數據保存週期。保存時間 = 時間 rows 。咱們來看看默認的Cacti 5分鐘的保存時間:基於以上公式,咱們算出來 (5 600) / 60m = 50h ≈ 2d框架
其它的時間均可以算出來。既然這樣能夠算出來的話,咱們能夠反過來想,咱們要保存一個月的5分鐘流量。應該怎麼寫rows呢?rows = (30d 24h 60m) / 5 ,這樣寫好rows以後,在一個月以內,你就能夠看見那個月某一天的詳細流量了(5分鐘平均值)。其中,要注意的是,時間,好比8月1號到8月31號 與8月1號到9月1號 是不一樣的概念的,到了9月1號纔算是過了一個月,Cacti用的是天然月。ide
參數解疑:工具
Steps(步進、步伐)設置爲:a Rows(行)設置爲:b Timespan(時間段)設置爲:c
這三個數值的關係是,steps 意思是每多少時間繪圖一次,timesspan 意思是某時間段、時間跨度,rows 意思是在這個時間跨度裏面保存多少個數據記錄。ui
如一天的參數:spa
steps設置爲1:表示每分鐘繪圖一次; rows設置爲1440:表示這一天存儲1440行數據; Timespan設置爲86400:表示一天的時間86400秒
採集精度詳細的修改實例,直接參考修改便可:rest
由於cacti默認5分鐘採集一次數據進行繪圖,採集精度不高,對要求高精度的採集需求,須要修改默認的採集精度。
一、修改rrdtool的存儲大小
【console】-【Management】-【Data Sources】-【RRAs】
修改模板裏面的參數
以下,好比採集一天的數據,按一分鐘的精度
Name設置爲:Daily (1 Minute Average) Consolidation Functions設置爲:max、min、avg和last X-Files Factor修改成:0.5 Steps設置爲:1 Rows設置爲:1440 Timespan設置爲:86400
參考模板參數以下:
Names Steps Rows Timespan** Daily (1 Minute Average) 1 1440 86400 Weekly (6 Minute Average) 6 1680 604800 Monthly (24 Minute Average) 24 1860 2678400 Yearly (1 Hour Average) 60 8760 31536000 Two Yearly (2 Hour Average) 120 8760 63072000
二、修改數據索引
【console】-【Management】-【Templates】-【data templates】 1)在Associated RRA's添加剛剛建立的5個RRD模板 2)將step設置爲60(每60秒繪圖一次) 3)將Heartbeat設置爲120(120爲超時時間)
三、修改計劃任務crontab
將每5分鐘執行一次 */5 * * * * /usr/bin/php /var/www/html/poller.php > /dev/null 2>&1 修改成每1分鐘執行一次 */1 * * * * /usr/bin/php /var/www/html/poller.php > /dev/null 2>&1
四、重建採集器緩存
【console】-【System Utilities】-【Rebuild Poller Cache】,刷新一下網頁圖形就出來了
########################################################################
附加說明:
在Cacti或者其餘基於RRDTool的MRTG系統中,咱們可能會遇到這樣的問題:在修改了graph template和data template,圖像仍然顯示以前的5分鐘的間隔,而不是新的1分鐘間隔。
通過一個小研究發現這個問題是因爲RRDtool在建立rrd文件的時候對rrd的文件進行了step的設定,可是這個設定是不能被動態更改的,也就是說你不能只修改某個rrd文件的step參數。
[root@cacti~ rra]# rrdtool info abc_111.rrd | more filename = "abc_111.rrd" rrd_version = "0003" step = 300
這個就須要用到rrdtool dump和restore來對rrd文件進行一些小的修改。
首先用rrdtool dump將rrd庫dump成一個xml文件。
[root@cacti~ rra]# rrdtool dump abc_111.rrd > abc_111.xml
以後用手動編輯的方法修改xml文件中的step值。如本例,能夠將300修改爲60。