无法正常显示图片,Cacti目录下的rra为空
一,snmp和网络是否正常
通过在cacti服务器上运行snmpwalk -c public -v2c ip,能够正常返回数据,排除snmp和网络的问题。
二,查看cacti全局参数设置
经查看cacti全局参数设置中的路径,采集器等均没有问题。
三,检查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权限也均没有问题,为什么还不能获取到数据呢?
开启cacti全局设置中的详细日志,tail -f cacti.log查看日志,发现有很多类似日志:
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 查看输出来找到问题所在。