Cacti/Nagios/Zabbix/centreon/Ganglia之抉择
内容介绍:
一、Cacti
二、Nagios
三、Zabbix
四、Ganglia
五、Centreon
六、对比图
一、Cacti
1、Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
简单的说Cacti就是一个PHP程序。
主要是对网络进行一个监控,比如:网络交换机,网络油量等一个监控。
它通过使用SNMP协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP软件包的snmpget和snmpwalk命令获取)并通过RRDTOOL工具绘图,通过PHP程序展现出来。使用它可以展现出监控对象一段时间内的状态或者性能趋势图。
它的主要作用是对网络油量的一个监控和绘制图形。
2、这个软件并不陌生,它是一个很古老的监测平台。
它检测的重点是在网络的流量进行分析,它会绘制出一个图形,实现方式就是简单的PHP程序,通过RRDTOOL工具实现绘图的功能,Cacti在很多年就已经出现,它的使用方式比较流行,最主要是它对网络的监控,比如对网络交换机,网络路由器等一些流量的监控使用的是非常多的,它的监控方式就是通过SNMP协议获取远端网络设备和相关信息,通过RRDTOOL工具实现了绘图的功能,像最常见的曲线图去展示它的运营状态。
网络流量检测的一个软件,比如后续常见的Cacti加Nagios,通过把Nagios插件的形式结合到Cacti实现报警功能,这些都是它在后期的一些功能,核心功能就是对网络流量做一些分析,监控以及出图。
二、Nagios
Nagios是一款开源的免费网络监视软件或者工具,监控面也是比较广的,会对各种操作系统平台,能有效监控Windows、linux和Unix的主机状态,交换机路由器等网络设置,打印机等。
它的重点并不是,数据收集和图形展示,这并不是它的强项,它主要当监控到这些出现一些问题的时候,它会进行一个报警策略。
Nagios的报警功能是非常完善的,可以基于主机的模版,或者用户组或者基于联系人组,在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
后续它也可以通过PHP,这样一个插件去实现网络绘图的功能,通过监控获取数据,通过PHP去绘图,这个功能相比较下比较弱。由于Nagios报警功能强大,用户量也是非常多的。
三、Zabbix
1、这个是目前最流行的一个监控工具。zabbix是一个基于wEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。Zabbix主要是把Cacti和Nagios的功能整合到一块去了,比如:第一块它会实现有一个很完善的一个绘图功能,同时它还间距了Nagios的功能,把错误进行报警显示。
在用户使用上它非常方便,它提供了一个web的用户界面,通过这个界面可以非常方便的添加一些信息,添加各种监控的属性,报警的设置,通过界面都可以去添加,不像Nagios要添加一个主机或添加一个服务,要通过文本编辑的方式,手工编辑的方式去添加,这样非常麻烦,如果机器少的话,手工编辑还可以。
但是如果机器成千上万台,就非常麻烦了,zabbix直接提供了一个web界面就可以进行简单的添加,这也是它流行起来最主要的一个原因,非常方便,扩充的插件也非常多,官方对历史版本的更新也非常快,这也是推动zabbix流行最主要的一个原因。
zabbix由2部分构成,客户端和服务端构成,服务端zabbixserver与可选组件客户端zabbixagent。
在每个要监控的服务器上面要装一个zabbixagent客户端,工作原理是zabbixagent发很多系统的相关信息到server端,server端它会把数据进行汇总通过一个web界面统一做展示,本身它的结构非常简单,它也支持相关的分布式,zabbix实现数据收集的方式也是有多种的,最常见的就是snmp。
zabbixserver可以通过SNMP,zabbixagent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AlX,FreeBSD,OpenBSD,OSx等平台上。它支持分布式,它可以监控任何平台。
四、Ganglia
Ganglia最初的设计思路是对一些高性能计算进行的一个处理。主要是对一个分布式的主机进行的一个监控。
主要的监控对象都是系统的资源状态,比如最常见的是cpu、内存、磁盘、I/o负载网络等。
系统默认有6个方面的数据情况。最重要的功能就是对数据的收集。
这方面跟Cacti的功能方面是类似的,主要做数据收集,它会把数据进行汇总,再通过web界面去做展示。
Ganglia是一款为HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的gmond守护进程来采集cPU、内存、硬盘利用率、I/o负载、网络流量情况等方面的数据,然后汇总到gmetad守护进程下,使用rrdtool存储数据,最后将历史数据以曲线方式通过PHP页面呈现。
数据收集机制也是基于cs结构,也有一个客户端就是gmond,它是运行在每个要监控的主机上的这么一个进程,它会定时把主机信息做这样一个收集,服务端gmetad它是做每个客户端数据的一个汇总,它的汇总的方式与zabbix不一样,zabbix是通过agent把数据都汇报到server端,再进行统一汇总,Ganglia的机制是gmond端只管去做信息收集就可以,它把信息收集到本地之后,它就不再把server端进行汇报,server端gmetad进程它会定期去gmond端拉取数据,这个是跟zabbix不一样,反向去拉取数据,不是通过gmond直接把数据推过去,而是拉的方式,拉取可以选择的就去拉取,比较灵活。
Ganglia监控系统有三部分组成,分别是gmond客户端、gmetad服务端、webfrontendweb端主要是为集中去展示的这么一个数据服务。
五、Centreon
1、这个是主推的工具。一般叫它webNagios,它的实现机制和实现原理跟Nagios是一模一样的,没有任何差别,不同的是比如加一个主机加一个服务,要通过本文编辑的方式去完成,但是Centreon提供了一个非常强大的web界面,通过web界面就可以实现对主机对服务组对联系人组等等一系列的功能的设置,这个是推荐的最主要的一个原因,同时它也支持分布式架构,比如监控要跨多个机房,Centreon是首选的软件之一,它是各种分布式。
2、Centreon有两个版本,商业的企业版本和开源版本,在官方网站可以下载开源版本,它在安装使用上有点复杂,但是现在官方推出了一个ios镜像,它其实是基于系统的一个镜像,也是windows的操作系统,只不过是它在安装软件的过程全集中到ios里面,下载完之后,直接把ios文件装系统,直接打开服务器启动就可以自动启动了。
3、Centreon是一款功能强大的分布式IT监控系统,它通过第三方组件可以实现对网络、操作系统和应用程序的监控,实现机制就是首先,它是开源的,我们可以免费使用它;其次,它的底层采用nagios作为监控软件,同时nagios通过ndoutil模块将监控到的数据定时写入数据库中,而Centreon实时从数据库读取该数据并通过web界面展现监控数据;
最后,我们可以通时Contraon签理和配署naainc成去说Centreon就是nagios的一个管理配置工具,通过centreon提供的web配置界面,可以轻松完成nagios的各种繁琐的配置。如果想要了解nagios的实现机制,可以把Centreon下载下来就可以马上去使用,而没有任何障碍,配置原理和配置方法跟nagios是一模一样的。
六、对比图
功能 |
nagios |
cacti |
zabbix |
Ganglia+centreon |
管理方式
|
文本编辑 |
web界面 |
web界面 |
web界面
|
数据展示
|
PNP插件绘图 |
RRD模式绘图 |
PHP GD绘图 |
RRD模式绘图 |
数据采集
|
插件模式
|
SNMP/Scripts
|
自身函数/插件
|
ganglia专业收集/插件收集/支持C/PHP/SHELL/python接口 |
告警方式
|
Email/自定义 |
命令/邮件 |
邮件/手机/第三方接口 |
|
监控方式
|
手动建立 |
手动建立 |
自动发现/手动建立 |
自动发现/手动建立
|
管理功能
|
无 |
无 |
命令下发 |
命令下发/API
|
监控结构 |
集中式/分布式 |
集中式
|
集中式/分布式 |
集中式/分布式
|
用户权限
|
简单
|
灵活的权限分配 |
灵活的权限分配 |
灵活的权限分配/支持角色/组
|
维护时间 |
有 |
无 |
有 |
有/支持多种维护模式 |
审计功能 |
无
|
无
|
精细化审计 |
精细化审计/支持历史查阅 |
汇总状态图 |
无
|
复杂,但效果好 |
简单
|
灵活/精确/支持自定义汇总 |
性能、扩展 |
差
|
很差.
|
一般 |
优秀
|
1、管理方式
从各个方面进行对比,主要是在功能方面进行对比。这四款软件在哪些方面它的实现会更好,
关注的点:管理方式,数据采集,监控方式,用户权限,性能、扩展等方式来进行对比。在管理方式上nagios的管理方式就是文本编辑,添加主机,编辑文件,cacti就是web界面,zabbix也是web界面,Ganglia+centreon也有web界面。
所以在管理方式上就把nagios抛弃了。
2、数据展示
nagios主要是pnp插件实现绘制图形,pnp功能包括它的性能本身是有很多差别的,如果数量非常大,实际上获取到的性能也会大大下降,在绘图这方面nagios无疑是非常弱的一方面,而cactix是通过rrd模式非常传统的绘图,zabbix是非常强劲的,它是通过pnp gd模块去实现绘图,所以它的绘图方法各个方面都非常的强大,比如zabbix绘制图形非常灵活,可以通过不同维度去查看,这个就是用gd绘图实现方式,非常灵活。
Ganglia+centreon绘图方式也是传统的rrd,在数据展示绘图方面,zabbix是最强劲的。
3、告警方式
nagios是最强大的,通过邮件的方式或者自定义的方式都可以实现报警。cactix只能通过邮件的方式,zabbix也是可以通过命令或者邮件的方式实现报警,centreon底层就是基于nagios,所以Ganglia+centreon完全胜出的,因为它可以实现手机,邮件以及第三方接口的报警,至于配置方面直接在web界面做一个简单的配置就可以。
4、监控方式
nagios和cacti只能通过手动创建,不会自动或者被动报警这么一个方式,而zabbix和Ganglia+centreon是可以实现自动发现/手动建立的监控方式。非常灵活,在监控方式zabbix和Ganglia+centreon是胜出的。
5、监控结构
在这里胜出的是nangios,zabbix和Ganglia+centreon,但是在整体实用性Ganglia+centreon是最强劲的,因为如果有很多个服务器,超过5000台,或者更多的时候,Ganglia+centreon的性能就能很充分的发挥出来,因为它的分布式结构比zabbix更灵活,在性能表现上也会更好。
6、审计功能
nangios和cacti毫无疑问是没有的,zabbix它有非常详细的审计过程,对各种信息的记录,但是Ganglia+centreon是胜出的,它不仅可以支持各种精细化的审计,也可以通过各种维度去展示它的历史数据,这是比较看好的地方,因为通过各种图形的去展示一段时间之内监控的数据,拿数据去跟领导进行汇报。
7、性能、扩展
nangios是最差的,对于扩展是非常不方便的,如果机器多,文本编辑它本身就是一个很大的缺点,维护起来也会非常麻烦,cacti的设计思路就是单机的模式,所以它的性能跟扩展也是比较差的,中规中矩的就是zabbix,它支持分布式架构,但分布式架构实现起来有一定的难度,
如果在扩展很大,在性能上它会下降很快,之前也做过类似的性能扩展,发现在机器到达1000台之后,性能会有很大的下降,但是这不一定是官方数据,处理也不是很准,Ganglia+centreon曾经最高监控18000多台机器,非常稳定,所有文件的获取效果都在10s以内,对待每个客户端都可以在10s之内获取到最新的数据。
如果是初学者,建议使用zabbix的方式,因为它的安装包括使用都是非常便宜,况且服务器不是很多,如果监控到达了一定的规格,想往自动化方向去,也是建议使用zabbix,规模是在服务器在1000台之下,zabbix也是最好的选择。如果是超过1000台服务器,并且监控是跨机房多地域,那Ganglia+centreon是最好的选择,特别是监控有云主机,或者相关的大数据监控,只要打开开关,立刻就可以把数据收集起来。
nangios和cacati不建议去用,因为是时间比较旧的了。