首先,使用 Cacti 的 Utilities 菜单下的“Rebuild Poller Cache”功能。如果这不起作用,请检查 RRD 文件是否实际上正在使用新数据进行更新。为此,请使用以下命令:
rrdtool last [filename.rrd]
这将输出新值插入 RRA 文件的最后时间(在 unix 时间戳中),您可以将其与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,那么我建议您查看与轮询间隔和轮询器 cronjob 间隔相关的数据源的心跳和步长值(通过数据模板)。
这些值决定了 RRD 文件在插入 NaN 之前丢失数据的次数。cronjob 调用 cacti poller 开始执行它的轮询周期。如果 cronjob 确实及时调用了轮询器,则轮询器间隔是轮询器在两个轮询周期之间等待的实际时间。
因此,对于 1 分钟的轮询(在轮询器和 cronjob 上),您必须使用 60(秒)的步长和 120 的心跳。对于 5 分钟的轮询,步长将为 300,心跳为 600。
这主要是由于有人在设置页面上更改了轮询间隔。
来自 Cacti 论坛的 Gandalf 写了一个很好的指南,您可以使用它,进一步的帮助可以在Cacti 论坛上找到。
祝你好运!:)