我已经开发了自己的SNMP服务,我想绘制一个提供的OID图表。 所以,我在Cacti创建了一个图表。 - )显示设备。 - )它正在创建rrd文件。 (RRDTool说好的)。 - )显示图表,但它是空的。
但是当我检查它时,请说
rrdtool fetch <rrd file> AVERAGE
它显示了nan
所有值。被监视的OID的值为47,我设置了min = 0和max = 100.
我正在使用rpath的Cacti设备:
http://www.rpath.org/ui/#/appliances?id=http://www.rpath.org/api/products/cacti-appliance
不过,我无法在图表上显示价值..
问题出在哪里?有人可以告诉我吗?
答案 0 :(得分:5)
首先,使用Cacti&#34; Rebuild Poller Cache&#34;功能菜单下的功能。 如果这不起作用,请检查RRD文件是否实际使用新数据进行更新。 要执行此操作,请使用以下命令:
rrdtool last [filename.rrd]
这将输出最后一次(在unix时间戳中)已将新值插入RRA文件,您可以将其与date +%s
将输出的当前时间进行比较。
如果它没有使用数据更新,那么您应该通过Cacti的Web UI上的设置页面将cacti日志级别更改为DEBUG并查找相应的消息。 如果轮询器无法获取数据,那么它通常是与连接/ SNMP相关的问题。 您可以通过手动轮询该主机上的特定OID来进一步检查问题:
snmpwalk -c[SNMP COMMUNITY] -v2c [HOSTNAME OR IP ADDRESS] 1.3.6.1.2.1
您可以使用上述命令和OID(1.3.6.1.2.1)来查看您是否收到回复。 如果有效,那么您应该将命令从snmpwalk更改为snmpget,将OID更改为您尝试轮询和重试的实际OID。
如果RRD正在使用新数据进行更新,但您仍然在图表中获得NaN,那么我建议您查看与您的轮询间隔相关的数据源的心跳和步长值(通过数据模板) poller cronjob interval。
这些值确定在插入NaN之前RRD文件将丢失数据的次数。 cronjob调用cacti poller开始执行它的轮询周期。 轮询器间隔是轮询器在两个轮询周期之间等待的实际时间,如果它确实是由cronjob及时调用的。
因此,对于1分钟的轮询(在轮询器和cronjob上),您将不得不使用60(秒)的步长和120的心跳。 对于5分钟的轮询,步骤将为300,心跳将为600。
这主要是由于有人在设置页面上更改了轮询时间间隔。
来自Cacti论坛的Gandalf撰写了一篇很好的Guide,您可以使用Cacti forums找到更多帮助。
祝你好运! :)答案 1 :(得分:0)
也许cacti没有访问rrd文件所需的权限,而且您的测试是由具有所需权限的用户完成的,例如root?
答案 2 :(得分:0)
您确定收集了足够的数据吗?
如果您的RRD步长为1分钟,并且您的第一个RRA的合并计数为1(1cdp = 1pdp),那么您应该至少收集数据(步骤x(计数+ 1))秒查看图表中的任何数据。确保您至少按步长收集数据。
如果您收集数据10分钟并且没有显示任何内容,那么请确保您实际收集数据,确保您获得的值在范围内,并且它们正在被使用。检查RRD文件的最后修改时间。在更新之前打印出值,以验证它们是否符合您的预期。
答案 3 :(得分:0)