我有一些旧的rrdtool数据库,它们的确切创建方法早已丢失。我需要创建一个与当前数据库具有相同特性的新数据库。我丢弃了几个旧数据库,仔细研究了其中的内容,但我不知道如何解释元数据。我认为它出现在的以下小节中
<cf> AVERAGE </cf>
<pdp_per_row> 360 </pdp_per_row> <!-- 1800 seconds -->
<xff> 5.0000000000e-01 </xff>
有四个这样的小节,这与我记忆中循环级联的设置方式相对应。有人已经这样做了吗?或者可以告诉我如何从现有数据库中克隆一个新的空rrd数据库吗?或者让我看看我在文档中遗漏了什么。
我使用命令rrdcreate。它可以在现有rrd的基础上创建一个新的rrd。-t参数指示现有rrd作为模板。
rrd创建新.rrd-t现有.rd
rrdtools的rrdinfo是您的朋友!
它将告诉您rrd文件的数据源和存档是如何创建的。示例
$ rrdtool info random.rrd
filename = "random.rrd"
rrd_version = "0001"
step = 300
last_update = 955892996
ds[a].type = "GAUGE"
ds[a].minimal_heartbeat = 600
ds[a].min = NaN
ds[a].max = NaN
ds[a].last_ds = "UNKN"
ds[a].value = 2.1824421548e+04
ds[a].unknown_sec = 0
ds[b].type = "GAUGE"
ds[b].minimal_heartbeat = 600
ds[b].min = NaN
ds[b].max = NaN
ds[b].last_ds = "UNKN"
ds[b].value = 3.9620838224e+03
ds[b].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].pdp_per_row = 1
rra[0].cdp_prep[0].value = nan
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = nan
rra[0].cdp_prep[1].unknown_datapoints = 0
您可以尝试使用此处描述的克隆脚本。它非常基本,但适用于简单的rrd文件。我用它来计算一个由munin生成的模式。我需要将旧数据插入munin中,因此我对模式进行了反向工程,将--start设置为旧数据开始之前的日期,并将数据重新导入rrd。
$ python rrdinfo-parser.py -f test.rrd
rrdtool create test.rrd --start 920804400 --step 300
DS:speed:COUNTER:600:U:U
RRA:AVERAGE:0.5:1:24
RRA:AVERAGE:0.5:6:10