没法正常显示图片,Cacti目录下的rra为空php
一,snmp和网络是否正常html
经过在cacti服务器上运行snmpwalk -c public -v2c ip,可以正常返回数据,排除snmp和网络的问题。mysql
二,查看cacti全局参数设置web
经查看cacti全局参数设置中的路径,采集器等均没有问题。sql
三,检查cacti服务器上rra和log的目录权限数据库
查看rra和log目录属主均是web程序运行用户,有对rra和log目录的读写权限,没有问题。进入rra目录,发现全部图像文件的修改日期均是前几天的,也就是说最近都没有获取到数据,更新到rra文件;进入log目录,发现cacti.log文件达到2G,log不记录东西了,mv cacti.log cacti.log.old,从新生成cacti.log,故障依旧。服务器
四,检查cacti.log网络
snmp可以获取到数据,rra和log权限也均没有问题,为何还不能获取到数据呢?ide
开启cacti全局设置中的详细日志,tail -f cacti.log查看日志,发现有不少相似日志:post
WARNING: Result from CMD not valid. Partial Result:
这是cacti采集器没有获取到相关主机的返回数据。同时发现有以下日志:
Maximum runtime of 292 seconds exceeded. Exiting.
是说在一个循环周期内(5min),cacti没有获取完全部的数据,自动退出,执行下一循环,
应该是有太多主机了,同时有不少主机没法链接上超时,致使最终采集器时间超过292s自动退出。
决定采用cactid来代替cmd.php采集,同时清理数据库中poller_item中的无效,没法链接上,配置错误的记录(重要,可根据cacti.log中得知哪些主机或记录有问题)。
五,配置cactid
新版的叫spine。安装配置cactid:
tar -zxvf cacti-cactid-0.8.6j.tar.gz
cd cacti-cactid-0.8.6j
./configure (mysql另外安装的须要指安mysql路径)
make
mkdir /usr/local/cactid
cp cactid cactid.conf /usr/local/cactid/
vi /usr/local/cactid/cactid.conf修改成相应的数据库的用户名和密码。
全局配置中设置采集器为cactid,并设置好cactid的路径:/usr/local/cactid/cactid
可以正常获取到数据了,查看cacti.log:
02/12/2011 11:31:03 AM – CACTID: Poller[0] Time: 55.2049 s, Threads: 1, Hosts: 25
…
02/12/2011 11:32:04 AM – CACTID: Poller[0] Time: 113.7014 s, Threads: 1, Hosts: 25
二分钟即能获取到全部的主机数据了,效率提高很多。故障解决。
六,如以上还不能解决故障,可经过手动运行:php /var/www/html/cacti/poller.php 查看输出来找到问题所在。