由于公司的cacti是我搭建并且负责维护的,所以刚一开始使用了cmd.php的办法来获取数据,
但是随着服务器数量的增多,发现有些服务器没有办法获取到snmp数据,
vmstat 查看一下服务器的负载和IO都没有问题,因为cacti这台服务器是虚拟机,所以建议把它迁移到物理机上,但是由于物理机不够用,所以只好作罢。
然后想到使用spine,改变数据写的方式这样子可以加快,数据的写,从而减少每次执行的时间,刚开始使用一段时间,没有出现无法获取数据的现象,后来由于监控的项目越来越多,又出现了空白页面。且日志里面有如下报错。
- 12/31/2010 09:25:00 AM - POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting.
-
12/31/2010 09:25:00 AM - SYSTEM STATS: Time:298.6269 Method:spine Processes:1 Threads:1 Hosts:57 HostsPerProcess:57 DataSources:1944 RRDsProcessed:1301
-
12/31/2010 09:25:01 AM - POLLER: Poller[0] WARNING: There are '1' detected as overrunning a polling process, please investigate
-
12/31/2010 09:25:02 AM - PHPSVR: Poller[0] Maximum runtime of 300 seconds exceeded for the Script Server. Exiting.
仔细分析日志,发现是执行时间超过了300秒,而cacti默认是5分钟就是300秒去获取一次数据,所以导致有些服务器的数据没有获取。
所以想到了增大spine的进程和线程数。
cacti->Console->setting->Poller->
更改此处选项后,从新查看日志,发现没有了报错日志。
之前的空白数据开始出现数据。
阅读(6322) | 评论(1) | 转发(0) |