有一种情况是,我收集了大量SNMP数据,并通过rrdtool存储它。(使用OpenNMS)
我的目标是确定在过去六个月中,在数百台服务器中,哪些服务器的内存使用量没有超过一定数量。(例如,64次演出)
我的计划是编写一个bash脚本来提取和处理rrdtool中的数据,但不确定如何开始。这似乎是一个相当普通的任务,我觉得我应该在这里问一下,如果有人有任何想法。
谢谢!
发布于 2014-03-06 03:54:19
RRDTool术语:
我建议分两部分来做。
首先,提取每个DS在时间段内的最大值。如果创建具有最大CF和适当粒度(如1天)的RRA,则此步骤将大大简化。提取过程将取决于您是否有一个具有多个DS的RRD,或者每个DS中有一个DS的多个RRDs;但是,您需要使用rrdtool xport而不是rrdtool fetch来检索数据,以便为每个DS获取一个数据值。rrdtool的xport函数将允许您进一步合并您的1CDP==1day RRA以获得单个CDP;通过将“步骤”设置为6个月来完成此操作,并强制您的1CDP==1day使用最大CF。我们使用1天RRA而不是6个月RRA的原因是,我们可以在任何日期运行计算,而不仅仅是每6个月运行一次。
假设您的文件是data1.rrd,其中包含主机host1的单个DS dsname:
rrdtool xport --end now --start "end - 6 months" --step 15552000 --maxrows 1
DEF:x=data1.rrd:dsname:MAX
XPORT:x:host1接下来,您需要对这些阈值进行筛选,以获得在阈值以下具有最大值的DS列表。在bash中,这将是一个简单的过程,不应该对您征税!
https://stackoverflow.com/questions/22210088
复制相似问题