1

开源监控软件 Zabbix 和 Nagios 究竟哪个更好?Zabbix 可视化更好?Nagios 更轻量?作为产品经理程默的一名默默无闻的小粉丝,觉得很有义务把他的回答编辑整理出来让大家看到。下面是程默在知乎上的回答,经本人同意转载。

首先,提醒一下大家。下面的内容,有可能会被认为是广告,因为我推荐的是我自己做的一款产品:Cloud Insight. 但是,在对比 ZabbixNagios 的时候,我觉得有些东西还是值得拿出来讨论一下的。第一个就是上文 Wenx 提到的:没有更好,只有更适合吧。是否需要使用 Zabbix 或者 Nagios 都是可以拿出来讨论讨论的。在人员不够、经验不足、时间很紧的情况下,有必要使用 Zabbix 或 Nagios 这样很重的解决方案吗?Zabbix 和 Nagios 相继出现在 1998 年和 1999 年,经过历史的发展和迭代,以及社区中很多程序员的贡献,已经发展得很强大了。我们 OneAPM 公司初期也是使用 Zabbix 来做所有云主机和物理主机的监控。但是后期遇到了很多大的麻烦:

  1. 用 Zabbix 和 Nagios 真的很依赖运维工程师的实际水平和 Docker Mesos 这些新技术的支持。

  2. 需要自己去找脚本来试验,真的很麻烦。

  3. 数据是只读的,运维工程师真的就只是看看,出啥问题了,最后还是重启,甚至需要从腾讯云换到阿里云等等这种麻烦的手段。

开源监控软件之争

既然监控是为了解决实际的问题,如果想要找到自己最适合的运维监控工具,我推荐一些还在观望 Zabbix 和 Nagios 的初创团队,可以试一试 Cloud Insight

All in One

这个概念就像 esty 当年发布 statsd 写的文章一样:Measure Anything, Measure Everything。系统监控工具如果能够做到 All in One,那真的可以解决人力和时间成本上的问题。说到这个就得提提 statsd。statsd 是 Flickr 公司首创,后来由 Esty 公司重构的一个轻量级的指标采集模块。也就是说操作系统、不同数据库、不同的中间件 ,都可以通过它来采集指标,并且上传至 Graphite 这些用于可视化 & 存储的组件中。不了解的人,可以读读 Measure Anything, Measure Everything。现在很多公司都开始使用了这样的工具,来搭建自己的运维监控系统了。国外也出现了基于 statsd 的公司:Boundary Datadog 等等。以下是他们的网址:

国外这些公司就是为了提供一个一体化的解决方案:
如何集成不同的操作系统、数据库、中间件监控的问题,你不需要担心,用就行了。

数据只读和数据管理

就像上文提到的,数据只读是 Zabbix 一个比较大的痛点:根本发现不了什么问题。所以国内的淘宝、小米都开始使用时间序列数据库,来解决这个事情;

开源监控软件之争

开源监控软件之争
能够对数据对切片、聚合,并且使用一些数值计算,能够更快地解决问题。拿 Docker 来说,不同的 Container 的 CPU 消耗,这个需求就很常见。标签信息在时间序列数据库中的作用,就是为了解决这个需求。那么计算是什么意思呢?相信动态门限的告警、对某些数值浮动较小的数值求 log 这些需求在实际运维场景中也是很常见的。

而这些时间序列数据库都可以帮你做到。

Cloud Insight

Cloud Insight 就是国内利用 statsd 和 OpenTSDB 实现的一个一体化的解决方案(免费但不开源)。楼主提出这个问题, 我猜想是公司内部有人对于 Zabbix 和 Nagios 不是很熟悉,不知道前方有什么坑。 那么,在人员的经验不足的前提下,也没有时间去试错。所以建议使用下 Cloud Insight 进行快速试错,也看看新的技术发展是否能够更好地满足自己的需求。最后是上几张产品截图:

开源监控软件之争

开源监控软件之争

开源监控软件之争

总的来说,不建议创业团队或者初创公司,在人员不足的情况下,使用 Zabbix 和 Nagios(成本实在太高)。倒是可以使用国外的这种方法:

轻量级的探针采集数据(Statsd)+ 时间序列数据库(运算)+ 展现端(Grafanna)

或者使用 Cloud Insight,来解决。

开源监控软件越来越在互联网技术领域占据重要位置,开源监控软件之间的战争也早已打响,如果还在观望究竟 Zabbix 和 Nagios 哪个更好,并且对这件事犹豫不决一筹莫展,不妨眼观六路,了解一下国内的淘宝、小米都开始使用时间序列数据库监控 也未尝不可。


OneAPM蓝海讯通
11.4k 声望510 粉丝

Software makes the world run. OneAPM makes the software run.