1、监控系统简介以及实现
监控系统大致分为两个部分:数据采集部分(客户端)和数据存储分析告警展示部分(服务器端)。
数据采集分为主动和被动的方式,被动方式对服务器开销较大,适合小规模的监控环境;主动方式对服务器的开销较小,适合大规模的监控环境。
采集数据的协议方式分为两种:专用客户端采集和公用协议采集(SNMP、SSH、Telnet等)。
对于采集到的数据,可以将其存储到数据库、文件、其它方式,具体采用哪一种,应根据实际需求而定。
对于一般的监控环境,被监控的节点不多,产生的数据较少,采用C/S架构就够了。此架构适合于规模较小,同一地域的环境。
对于大规模的监控环境,被监控的节点较多,且监控类型多,监控产生的数据和网络连接开销会非常巨大,而且由于跨地域等多种因素,需要分布式的解决方案。常见的方式为C/P/S架构,采用中间代理将大幅提高监控服务器的处理速度,从而能支撑构建大型分布式监控环境。
监控系统更重要的功能是告警和故障处理,这是及时解决问题和故障自愈非常重要。告警的时候,需要考虑到故障的有效汇报和集中汇报,防止出现“告警洪水”,即同一类告警信息重复大量的发送。
2、分布式服务器监控开源现状
在监控软件中,开源的解决方案有流量监控(MRTG、Cacti、SmokePing、Graphite等)和性能告警(Nagios、Zabbix、Zenoss、Core、Ganglia、OpenTSDB等)可供选择,每种软件都有自身的特点和功能,各自的侧重点和目标不完全相同,在设计理念和实现方法上也大同小异,但都具有共同的特征,例如,采集数据、分析展示、告警以及简单的故障自动处理。最终达到对IT系统服务可用性的一个完全展示。