说明:
原本cacti使用正常。后来将cacti的目录从原来的/www/cacti迁移到/home/www/cacti去,发现不出图了。具体表现snmpwalk有数据,但图上都是nan,也没有图。但rrd debug又是ok的。
实现:
1.刚开始怀疑是vps宕机,snmpd没有自己启动,于是我先检查snmp是不是正常运行
# ps -ef|grep snmp root 7764 1 0 Feb19 ? 00:24:51 /usr/local/net-snmp/sbin/snmpd -c /etc/snmpd.conf
2.发现snmpd进程有的,就想,是不是snmpd获取不到数据,手动执行snmpwalk看看
# snmpwalk -v 2c -c public 127.0.0.1 system SNMPv2-MIB::sysDescr.0 = STRING: Linux gaingreat 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (558892524) 64 days, 16:28:45.24 SNMPv2-MIB::sysContact.0 = STRING: MeSNMPv2-MIB::sysName.0 = STRING: gaingreat ......
3.到这里就开始犯傻了。snmpd有在跑,snmpwalk也能拿到数据。那会不会是rrd没办法绘图
于是打开console | Graph Management | 随便打开一张图 | *Turn On Graph Debug Mode.
发现rrd 是ok的,这说明这图至少是在画的,但为什么一直nan呢
4.到/home/cacti/rra目录下执行
# rrdtool fetch *_*_*_*_cpu_system_11.rrd AVERAGE cpu_system 1366772100: -nan 1366772400: -nan 1366772700: -nan 1366773000: -nan 1366773300: -nan 1366773600: -nan 1366773900: -nan ......
发现结果也都是nan,这个,就郁闷了。有snmpd进程,snmpwalk有数据,rrd也正常画,但fetch却全是nan,突然想到会不会因为poller没有办法拿到数据,所以获取到的数据全是nan,而rrd直接把nan给画了上去。所以造成了有数据,但却没有图的结果。
5.于是就手动试了下spine poller,看是不是没办法按时拿数据
# /usr/local/php/bin/php /www/cacti/poller.php Could not open input file: /www/cacti/poller.php
这里,坑爹了,可以看到,由于我cacti目录已经从原来的/www/cacti迁移到/home/www/cacti去,但spine poller没有改,还在执行/www/cacti/poller.php,当然拿不到数据。
# crontab -e //修改spine poller到新位置。 * * * * * env LANG=C /usr/local/php/bin/php /www/cacti/poller.php>/dev/null 2>&1
然后等一下就可以看到出图了。
附录:
这里,迁移cacti的目录时,还要记得修改
Console | Settings | Paths | Cacti Log File Path,更改cacti日志文件位置