分类:
2010-11-23 13:51:22
原文链接
这文章写的挺好的。
我一直比较赞同的是主动请求式的监控模式,主要原因是被动探测会给监控结点带来很大的压力,就Cacti而言,用Spine轮询,共35个设备,每分钟轮询一次,能吃掉我35%的CPU。
相比之下,通过客户机主动发送请求给监控机的Ganglia,占用资源就非常小。一台监控机估计挂200台客户机监控不是问题。
区别就在于,主动请求式是客户机把自己的监控信息主动发送给监控机,监控机只要接收这些信息处理即可。
被动探测式是监控机把监控请求发送到客户机,客户机接到请求把需要的监控信息返回给监控结点。
所以,被动探测式会给监控机带来很大的压力,因为它要不断的发请求去获取信息。
但是监控宝的同志做了个很好的比方,让我想法有了些变化。
监控机好比警察,客户机好比犯人。
不能因为警察忙,就不管犯人,让犯人主动报告自己的情况。
如果犯人突然没信息了,警察就不知道犯人是死了还是跑了。
并且如果警察调走了,犯人不知道,这一群犯人就不知道向谁报告了。
但是经常也不能老去一直问犯人的情况,那样他的工作效率就太低了。
所以二者各有好处。
首先,警察很忙的时候,让犯人主动报告自己的情况,他记着就行。
但是,一旦犯人在规定的时间没报告,警察就要主动去联系了,看看犯人到底是死了还是跑了。
还原到监控中,就是主动与被动两种方式结合起来。
一般情况下,让客户机比较高频地自己报告情况情况给监控机,同时,监控机间隔比较长的像客户机主动发送请求,检查客户机是否存活。
同时,一旦监控机在规定的时间内没收到客户机的信息,就要像客户机发请求去轮询,确认客户机的状态。
主动和被动在合适的时候都有合理的用处,像手机就是主动向基站报告自己加入,雷达又是向被监控区域发送探测信号。
任何方法都有其存在的理由,没有最好没有最坏,只有最合适!