这几天一直在做企业运维监控,市面上比较流行的几个开源监控都了解了下,最后选择了zabbix。下面我就说说为什么我们需要监控和选zabbix的理由
为什么会需要监控
在IT环境中会存在各种各样的设备,例如,硬件设备,软件设备,其系统的构成也是非常复杂,通常由
为了保证这些复杂的IT业务环境的正常运转,则需要专业的IT人员进行设计,架构,维护和调优,在这个过程中为了及时掌控基础环境和业务应用系统的可用性,需要获取各个组件的运行状态,如CPU的使用率,系统的负载,服务的运行,端口的连通,带宽流量,网站状态等信息,这一切都离不开监控系统.
那么确定好了需要监控,那我们怎么来实现它呢, 开源的解决方案有流量监控CMRTG、 Cacti、 SmokePing、Graphite等〉和性能告警(Nagios、Zabbix、ZenossCore、Ganglia、OpenTS DB 等〉可供选择,并且每种软件都有自己的特点和功能,各自的侧重点和目标不完全相同,在设计理念和实现方法上也大同小异,但都具有共同特征,例如采集数据、分析展示、告警以及简单的故障自动处理。最终都能达到对IT系统服务可用性的一个完全展示。
我取了市面上比较流行的开源解决方案来进行对比.
1, Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
简单的说Cacti 就是一个PHP 程序。它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来。我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图。
2、nagios
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
3、zabbix
Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent 〈代理〉,也可以支持SNMP、IPMI 凡在X、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统所不能比的。相对来说,它的总体功能 做得非常优秀
4、ganglia
Ganglia是一款为HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的gmond守护进程来采集CPU 、内存、硬盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到gmetad守护进程下,使用rrdtool存储数据,最后将历史数据以曲线方式通过PHP页面呈现。
Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend。
5、centreon
Centreon是一款功能强大的分布式IT监控系统,它通过第三方组件可以实现对网络、操作系统和应用程序的监控:首先,它是开源的,我们可以免费使用它;其次,它的底层采用nagios作为监控软件,同时nagios通过ndoutil模块将监控到的数据定时写入数据库中,而Centreon实时从数据库读取该数据并通过Web界面展现监控数据;,最后,我们可以通过Centreon管理和配置nagios,或者说Centreon就是nagios的一个管理配置工具,通过Centreon提供的Web配置界面,可以轻松完成nagios的各种繁琐配置。