4月 222014
 

最近研究rrd文件结构,想用工具将rrd文件内的数据导出到一个csv文件,以便统计和以后插件。最近看了点golang的基础,于是就边学边查,写了个小程序,希望对大家有用。

工具要求:

  • rrdtool 1.4版本以上,1.3以下版本不能用(rrdtool -v,可查看rrdtool版本)
  • linux系统,win版本和freebsd版本目前还没有做出来

功能概括:

  • 读取指定rrd文件最后288条数据到csv文件(也就是一天,5分钟一次)
  • 导出文件名为执行命令时间向前86400秒(24小时)
  • 导出文件内容为时间,流出,流入,单位Mbps

导出文件如图

11

下载地址:

32位:https://dl.cactifans.com/tools/rrd_csv.x32.tar.gz
63位:https://dl.cactifans.com/tools/rrd_csv.x64.tar.gz

更新历史

2014-04-23更新:

1.添加conf.json配置文件
2.可以在conf.json里配置导出csv文件前缀,方便区别
3.导出流量单位设置为Mbps,保留4位小数
4.可在conf.json里配置要读取的rrd文件及路径
 

使用方法:

1.下载对应版本文件任意目录下,并赋予可执行权限(以32版本为例)

wget https://dl.cactifans.com/tools/rrd_csv.x32.tar.gz
tar zxvf rrd_csv.x32.tar.gz
chmod +x rrd_csv/fetch

2.移动并编辑conf.json文件
移动conf.json到/etc目录下

cp rrd_csv/conf.json /etc

conf.json文件内容
2014-04-23_165103
deviename为导出csv文件前缀
dbfile为需要导出的rrd文件名以及路径
3. 执行导出

./fetch

4.查看导出结果。
执行后没有报错,可在当前目录下查看,已生成以时间命名的cvs文件,形如

2014-04-23_181351

定时导出一天数据

1.下载导出工具到任意目录(我以opt目录为例)

cd /opt
wget https://dl.cactifans.com/tools/rrd_csv.x32.tar.gz
tar zxvf rrd_csv.x32.tar.gz
cp rrd_csv/conf.json /etc
chmod +x rrd_csv/fetch

2.添加计划任务

echo "6 12 * * * root /opt/rrd_csv/fetch">> /etc/crontab

注:建议每天凌晨12点6分导出,这样就可以导出前一天的完整数据
本人第一个golang程序,问题多多,以后会不断完善,希望大家多多指教啊。

打赏

  9 Responses to “cacti网络流量数据导出工具”

  1. 强悍!V5!

  2. 果然是活雷锋。

  3. ./fetch: error while loading shared libraries: librrd_th.so.4: cannot open shared object file: No such file or directory
    运行报错

  4. 想导出某一个月的五分钟数据,怎么实现?

  5. 您好,测试您的程序,很实用,现在只能导出一个端口,我这边有几十个接口要导出,如何解决了,谢谢

  6. 在网上找了很久这个工具,这个如何下载聚合图形的数据?

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)