cacti网络流量数据导出工具
最近研究 rrd 文件结构,想用工具将 rrd 文件内的数据导出到一个 csv 文件,以便统计和以后插件。最近看了点 golang 的基础,于是就边学边查,写了个小程序,希望对大家有用。
工具要求:
- rrdtool 1.4 版本以上,1.3 以下版本不能用(rrdtool -v,可查看 rrdtool 版本)
- linux 系统,win 版本和 freebsd 版本目前还没有做出来
功能概括:
- 读取指定 rrd 文件最后 288 条数据到 csv 文件(也就是一天,5 分钟一次)
- 导出文件名为执行命令时间向前 86400 秒(24 小时)
- 导出文件内容为时间,流出,流入,单位 Mbps
导出文件如图
下载地址:
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 文件内容
deviename 为导出 csv 文件前缀
dbfile 为需要导出的 rrd 文件名以及路径
- 执行导出
./fetch
4.查看导出结果。
执行后没有报错,可在当前目录下查看,已生成以时间命名的 cvs 文件,形如
定时导出一天数据
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 程序,问题多多,以后会不断完善,希望大家多多指教啊。