修改Cacti中rrd文件大小
修改Cacti中的rrd文件大小
Cacti進(jìn)行服務(wù)器監(jiān)控時(shí),5分鐘的高精度數(shù)據(jù)默認(rèn)只保留2天的數(shù)據(jù)記錄,也就是說,兩天以外的流量,我們就看不到5分鐘的數(shù)據(jù)了。這對(duì)于我們現(xiàn)有的業(yè)務(wù)需求有所沖突,所以找了一些修改RRD保存周期的方法,可以對(duì)現(xiàn)有的RRD文件的保存周期進(jìn)行修改。對(duì)于新建的rrd,可以通過 Data Source –> RRAs 中修改對(duì)應(yīng)的 row,這樣新建的數(shù)據(jù),就默認(rèn)使用新值。
注意:修改rrd尺寸的操作非常危險(xiǎn),在操作之前,備份您的rrd數(shù)據(jù)。本篇文章是個(gè)破壞你的rrd數(shù)據(jù)的***機(jī)會(huì)。
不通過命令行修改rrd的最簡(jiǎn)單的辦法是使用The Toolsmith。這個(gè)工具有商業(yè)版和免費(fèi)版,感興趣的同學(xué)可以點(diǎn)擊下面的鏈接試用一下。
在參考資料1中可以下載一個(gè)resize.pl。是用來在命令行下修改rrd大小的工具,這個(gè)工具剛開始執(zhí)行的時(shí)候,可能會(huì)提示一些perl模塊的缺失。這個(gè)時(shí)候,一般只要按照提示進(jìn)行安裝就行了,我使用的是 perl –MCAPN –e shell 的方法。但是***有一個(gè)提示找不到 RRDp.pm 的,這個(gè)在CPAN中找不到,需要下載安裝 rrdtool-perl 的包,才能夠提供這個(gè)模塊。
完成這些之后,就可以正常使用 resize.pl 了?! ?/P>
開始之前,可以先查看一下rrd文件的信息。使用下面的命令:
- perl resize.pl -f "original_data/cacti/rra/tianjin_dpool_web_21_traffic_in_22.rrd" -r 0 -o output_data/ -g 8000 -i
可以看到這個(gè)文件的詳細(xì)信息

1、改變單個(gè)RRD中的RRA屬性。
最簡(jiǎn)單的辦法就是把 –i 參數(shù)去掉就可以。
perl resize.pl -f "original_data/cacti/rra/tianjin_dpool_web_21_-_test_rra_traffic_in_1563.rrd" -r 0 -o output_data/ -g 8000
之后查看存放在 output_data 下的輸出文件,可以看到rrd確實(shí)增長(zhǎng)了。
使用 –g 參數(shù),表示將 row 的行數(shù)增長(zhǎng)多少行。如果需要明確指定多少行,可以使用 –s 參數(shù)。
2、改變單個(gè)RRD中的多個(gè)RRA。
如果需要改變一個(gè)RRD中的多個(gè)RRA,可以使用下面的命令。
- perl resize.pl -f "original_data/tianjin_dpool_web_21_resize_rra_traffic_in_1579.rrd" -r "0 4" -o output_data/ -g 8000
這樣輸出的文件,其中的第0行和第4行已經(jīng)被修改過了。
3、修改多個(gè)RRD中的多個(gè)RRA。
resize.pl 在文件名參數(shù)中可以支持通配符,這樣就可以非常方便的修改多個(gè)RRD文件。
- perl resize.pl -f "original_data/tianjin_dpool_web_21_resize_rra_traffic_in_*.rrd" -r "0 4" -o output_data/ -g 8000
執(zhí)行的結(jié)果是:

同樣,在查詢的時(shí)候我們也可以在文件名參數(shù)中使用通配符,這樣就可以一次查詢多個(gè)文件的信息了。
【編輯推薦】