这是过去4小时从rrd数据库文件中的第一个数据源获取总AVG的有效方法吗?父解决方案是pnp4nagios,每5分钟/ 300秒记录一次值,所有这些都很有效。只是想学习如何手动和准确地查询rrd文件。
我使用一些awk语句来平均我感兴趣的数据源列。这不是紧迫或任何事情,我只是想了解更多关于rrdtool的信息
rrdtool fetch rrdfile.rrd AVERAGE -r 300 -s -4hr|awk '{print $2}'|grep -v nan|cut -c 1-4|awk 'NR>2'|awk '{ sum += $1; n++ } END { if (n > 0) print sum / n; }'
- Edit-- 经过一段时间的阅读和测试后找到了这个解决方案如果您使用pnp4nagios并且想要查询rrd数据库以打印值而不是绘制它们,那么这对我有用。
rrdtool graph test.png --start -4hour 'DEF:data=test.rrd:1:AVERAGE' PRINT:data:AVERAGE:%lf|awk 'NR>1'
只需用Print替换GPRINT即可。然后,您将能够将输出与pnp4nagios图进行比较,并查看打印的Datasoure输出与图形的值是否相同。
答案 0 :(得分:0)
rrdtool graph test.png --start -4hour 'DEF:data=test.rrd:1:AVERAGE' PRINT:data:AVERAGE:%lf|awk 'NR>1'