增加、删除、修改RRD文件中的DS、RRA记录

最近想变更RRD的存储内容,再对RRA进行扩容,保存1年多的5分钟数据备查,却在rrdtool提供的action中找不到合适的方法。

用rrddump生成xml编辑后rrdrestore出来不失为一种办法,不过对扩容来说要生成过大的文本文件,并且脚本处理xml比较麻烦。

后来找到了perl Module RRD-Editor能完成这类任务。这个Module使用起来也很简便,例如我要修改前4个RRA的大小,删除后4个RRA(共8个),只要执行如下perl程序:

#!/usr/bin/env perl

use strict;
use RRD::Editor ();

if (@ARGV < 1) {
    print "USAGE: $0 <rrd file name>\n";
    exit 1;
}

my $rrd = RRD::Editor->new();
$rrd->open($ARGV[0]);

for (my $i = 4; $i < 8; ++$i) {
     $rrd->delete_RRA(4);
}

$rrd->resize_RRA(0, 105408);
$rrd->resize_RRA(1, 35136);
$rrd->resize_RRA(2, 8784);
$rrd->resize_RRA(3, 732);

$rrd->save();
Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s

%d 博主赞过: