在Cacti或其他基于RRDTool的MRTG系统中,都有可能会遇到这样的问题:在修改了graph template和data template,图像仍然显示之前的5分钟的间隔,而不是新的1分钟间隔。
经过研究发现这个问题是由于RRDtool在创建rrd文件的时候对rrd的文件进行了step的设定,但是这个设定是不能被动态更改的,也就是说你不能只修改某个rrd文件的step参数。
[root@abc 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@abc rra]# rrdtool dump abc_111.rrd > abc_111.xml
之后用手动编辑的方法修改xml文件中的step值。如本例,可以将300修改成60。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
<!-- Round Robin Database Dump -->
<rrd>
<version>0003</version>
<step>300</step> <!-- Seconds -->
修改后保存文件,之后将xml文件用rrd restore存成一个新的rrd库。再用新的库文件覆盖旧的rrd库文件。(建议先备份就的库文件)
[root@abc rra]# rrdtool restore abc_111.xml abc_111_new.rrd
[root@abc rra]# mv abc_111_new.rrd abc_111.rrd
至此在用rrdtool info命令查看,可以看到step的值已经修改为新值。
[root@abc rra]# rrdtool info abc_111.rrd|grep step
step = 60
[root@abc rra]#
再去cacti里面去看一下,应该已经变更过来了。
如果没有的话试着对数据/图像重新应用一下新的模板。