cacti无法显示数据解决方法
首先使用snmpwalk -v 1 localhost -c public测试snmp服务是否正常 Timeout: No Response from localhost 说明有问题 service snmpd status查看服务是否开启,关闭的话打开服务 服务开启之后还有timeout,查看vi /etc/snmp/snmpd.conf配置 在conf文件中添加下面两句见附一: view all included .1 access notConfigGroup "" any noauth exact all none none /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php /usr/bin/rrdtool fetch /usr/local/apache/htdocs/cacti/rra/localhost_load_1min_5.rrd AVERAGE ################################附一snmpd.conf文件######################################################## #### # First, map the community name "public" into a "security name" # sec.name source community com2sec notConfigUser default public #定义community名称为 public,映射到安全名 notConfigUser。 #### # Second, map the security name into a group name: # groupName securityModel securityName group notConfigGroup v1 notConfigUser #定义安全用户名notConfigUser映射到notConfigGroup组。 group notConfigGroup v2c notConfigUser #### # Third, create a view for us to let the group have rights to: #定义一个view,来决定notConfigUser可以操作的范围。 # Make at least snmpwalk -v 1 localhost -c public system fast again. #定义可查看的snmp的范围。 # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 view all included .1 #### # Finally, grant the group read-only access to the systemview view. #给notConfigGroup组所定义view名 all 以只读权限。 # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact all none none #access notConfigGroup "" any noauth exact mib2 none none # ----------------------------------------------------------------------------- # Here is a commented out example configuration that allows less # restrictive access. ##########################################附二标准的检查步骤####################################### 使用Cacti一段时间,NAN问题是最常见和最令人头痛不已的。还好http://docs.cacti.net/node/283上面有解决它的步骤,bugs.cacti.net上面也有很多。我是这么做的,最常用的就是第1个了: 1. Check Cacti Log File 检查Log文件,这可是最常用的一步了,文件在<path_cacti>/log/cacti.log,Host后面的数字可以在 Devices里面点SNMP Agent之后在URL的最后看到,常见的Log错误: CACTID: Host[...] DS[....] WARNING: SNMP timeout detected [500 ms], ignoring host ........ 这个是说SNMP超时,可以更改Settings->Poller的时间来解决 CACTID: Poller [...] Host[...] WARNING: Recache Event Detected for Host 如果老出现的知,在System Utilities->Rebuild Poller Cache里面重建下 poller,或用 php rebuild_poller_cache.php 命令也一样 CACTID: Poller [...] Host[...] WARNING: Result from SNMP not valid. Partial Result: No Such Object avail 你的SNMP Agent不支持该类型的OID类型 2. Check Basic Data Gathering 这个好办,测试一下数据是否能够正常得到,SNMP Agent代理是否工作正常,OID是否能够或允许访问到,用SNMP命令 snmpwald -v 2c -c public target-host system 3. Check cactis poller 用cmd.php来检查具体的SNMP Agent是否正常 php -q cmd.php <id> <id> 4. Check MySQL updating 这个我没有用过 5. Check rrd file updating rrdtool update <filename> --template ... 6. Check rrd file ownership 这个简单,看各RRD文件的访问权限是否设置正确 7. Check rrd file numbers 用命令看看具体的RRD文件里面的数据是不是正常的,如果是NAN,返回上面具体检查 rrdtool fetch <rrd file> AVERAGE 8. Check rrdtool graph statement 打开Graph Management里面具体的SNMP Agent,并且打开Debug功能,具体看DEF的状态,它们指向具体的RRD文件 9. Miscellaneous 如果MySQL数据库里面记录的数据是否过大,如果过大可以Cacti里面的Memory setting,默认是8M. 10. RPM Installation? 看看RPM是否安装完整 11. Not NaN, but 0 (zero) values?