修改Cacti中rrd文件大小
修改Cacti中的rrd文件大小
Cacti進行服務器監控時,5分鐘的高精度數據默認只保留2天的數據記錄,也就是說,兩天以外的流量,我們就看不到5分鐘的數據了。這對于我們現有的業務需求有所沖突,所以找了一些修改RRD保存周期的方法,可以對現有的RRD文件的保存周期進行修改。對于新建的rrd,可以通過 Data Source –> RRAs 中修改對應的 row,這樣新建的數據,就默認使用新值。
注意:修改rrd尺寸的操作非常危險,在操作之前,備份您的rrd數據。本篇文章是個破壞你的rrd數據的***機會。
不通過命令行修改rrd的最簡單的辦法是使用The Toolsmith。這個工具有商業版和免費版,感興趣的同學可以點擊下面的鏈接試用一下。
在參考資料1中可以下載一個resize.pl。是用來在命令行下修改rrd大小的工具,這個工具剛開始執行的時候,可能會提示一些perl模塊的缺失。這個時候,一般只要按照提示進行安裝就行了,我使用的是 perl –MCAPN –e shell 的方法。但是***有一個提示找不到 RRDp.pm 的,這個在CPAN中找不到,需要下載安裝 rrdtool-perl 的包,才能夠提供這個模塊。
完成這些之后,就可以正常使用 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
可以看到這個文件的詳細信息

1、改變單個RRD中的RRA屬性。
最簡單的辦法就是把 –i 參數去掉就可以。
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確實增長了。
使用 –g 參數,表示將 row 的行數增長多少行。如果需要明確指定多少行,可以使用 –s 參數。
2、改變單個RRD中的多個RRA。
如果需要改變一個RRD中的多個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行已經被修改過了。
3、修改多個RRD中的多個RRA。
resize.pl 在文件名參數中可以支持通配符,這樣就可以非常方便的修改多個RRD文件。
- perl resize.pl -f "original_data/tianjin_dpool_web_21_resize_rra_traffic_in_*.rrd" -r "0 4" -o output_data/ -g 8000
執行的結果是:

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