Cacti/Nagios/Zabbix/centreon/Ganglia之抉择| 学习笔记

简介: 快速学习Cacti/Nagios/Zabbix/centreon/Ganglia之抉择。

开发者学堂课程【企业运维监控平台架构设计与实现:Cacti/Nagios/Zabbix/centreon/Ganglia之抉择】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/384/detail/4819


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/自定义

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、监控结构

在这里胜出的是 nangioszabbixGanglia+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 不建议去用因为是时间比较就的了

相关文章
|
5月前
|
监控 前端开发 关系型数据库
|
数据采集 监控 Unix
Cacti/Nagios/Zabbix/centreon/Ganglia之抉择
一、Cacti 二、Nagios 三、Zabbix 四、Ganglia 五、Centreon 六、对比图
|
监控 关系型数据库 C++
|
运维 监控
开源监控系统中 Zabbix 和 Nagios 哪个更好?
监控平台的话,各有优劣,但基本都可以满足需求。等达到一定监控指标后,发现,最困难的是监控项目的管理。 CMDB中小规模(服务器=服务器=10k):开发适应自己平台的监控软件吧另推荐个牛逼的东西:http://prometheus.io 作者:好撑链接:https://www.zhihu.com/question/19973178/answer/131911060来源:知乎著作权归作者所有。
2349 0
|
28天前
|
监控 Java Shell
监控堆外第三方监控工具Zabbix
监控堆外第三方监控工具Zabbix
37 5
|
25天前
|
监控 安全 前端开发
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
43 9
|
24天前
|
监控 数据可视化 Java
zabbix全面的监控能力
zabbix全面的监控能力
51 7