像MIUI一样做Zabbix二次开发(2)——Zabbix与商业及开源产品的比较分析
Zabbix的特点
Zabbix是一个基于WEB界面的提供分布式系统监控的开源解决方案,通过浏览器监视,做到告警分级处理、网络访问安全可控,该开源平台在全球有广泛的用户基础,他的特点:
开放性:源代码全公开,任何用户都可以编译和发布自己的版本。同时,社区和互联网可以找到大量的模版。
可扩展性:支持用户自定义监控项,只要能想得到的KPI,基本都能监控的到。
数据采集:可用性和性能检测,自动发现,支持agent、SNMP、JMX、telnet等多种采集方式,支持主动和被动模式数据传输
高可用:server对设备性能要求低,支持proxy分布式监控,分布式集中管理,开放式接口,扩展性强
告警管理:支持多条件告警,支持多种告警方式,
模板能力:支持多组模板,模板继承。
告警设置:告警周期,告警级别,告警恢复通知、告警暂停,时段阈值、支持维护周期、支持单机停用
历史数据:历史数据查询可配置,内置housekeeping数据清理机制
安全审计:具备安全的用户审计日志,权限认证,用户可以限制允许维护的列表。
无商业版本:平台本身没有商业版和社区版本的区分,ZABBIX只对商业服务收费(如培训、定制开发、部署服务等)。
等等
Zabbix的全栈监控能力:官网有一名非常“嚣张“的话,Monitor everything!


与其他商业产品对比
各个大厂都有提供相关监控产品,比如说微软的SCOM,IBM的Tivoli,华为的Esight,HP的BSM等,如果环境都是单一的某一家厂家的产品,用该厂家提供的监控工具肯定是合适的,笔者就曾经深度使用过SCOM,2005年还叫MOM,是System Center中的一个套件,这个产品对于微软周边的产品如AD、Exchange、Windows、SQL Server、SharePoint、Lync等监控非常深入,同时微软官方还提供了相关故障知识库,报表也做得非常不错,九一乐维团队甚至在2011年以前还拿SCOM做过定制开发。
但是,如果拿SCOM去监控Linux、AIX、Oracle或者网络通讯设备就很非常不合适了。
Zabbix很好地平衡了监控的深度和广度,而且源于开源的力量,在全球用户的持续贡献下,他的深度和广度是在持续不断地延展的。
以下引用翔华兄(Shawn沙恩)的一张图说明Zabbix的深度和广度,见:https://www.jianshu.com/u/c7663d8c3fa8。

与其他开源项目对比
前文提到在IT Central Station中,Nagios X排在Zabbix的前面,九一乐维团队在定技术方向时,也深刻对比过,两者简言之:Zabbix安装好后,做一些简单的设置基本上就可以用了,Nagios X部署完成后相关于只是一个平台,然后需要安装第三方插件才能取作用。
详细对比如下:
当然,市面上还有诸如:Open-Falcon、Zenoss、Ganglia、Prometheus、Cacti等开源产品,简单分析如下:
Open-Falcon:小米开源,时间不长,成熟度有待提高,现在的版本是V1.0
Zenoss:区分社区版和企业版本,资源消耗高,社区版本有些鸡肋
Ganglia:适合监控系统性能,成熟度和完整度不高,如报警、消息系统,需要更多二次开发
Prometheus:开源的业务监控和时序数据库,刚发布2.0,在稳定性、性能、文档上仍有很大提升空间,互联网上可用资料,案例还不丰富
Cacti:通过 SNMPget来获取数据,使用 RRDtool绘画图形,画图功能强大,报警机制及相关功能不完善。
以上这些产品,我认为Prometheus会是个不错的方向,最根本是他的时序数据库,有兴趣的读者可以先行先试。
像MIUI一样做Zabbix二次开发(2)——Zabbix与商业及开源产品的比较分析的更多相关文章
- Zabbix二次开发_02获取数据
最近准备写一个zabbix二次页面的呈现.打算调用zabbix api接口来进行展示. 具体流程以及获取的数据. 1. 获得认证密钥 2. 获取zabbix所有的主机组 3. 获取单 ...
- Zabbix二次开发_03api列表_中文版
基于ZABBIX 3.0 https://www.zabbix.com/documentation/3.0/manual/api/reference 参考方法 本节提供了的zabbix提供的功能的概述 ...
- Zabbix二次开发_03api列表
基于zabbix 3.0 https://www.zabbix.com/documentation/3.0/manual/api/reference Method reference This sec ...
- Zabbix二次开发_01基础
最近有个想法:想做一个zabbix数据的二次呈现,所以来写一下Zabbix的api的内容. 先说下zabbix api的认证基础. Zabbix API简介 Zabbix API开始扮演着越来越重要的 ...
- 如何用Qt做SolidWorks二次开发
这个问题困扰了我2年了,之前找到的教程都是MFC的,ATL导入向导或是通过导入类型库的方式来调用控件,我一直都搞不明白. 最近学习了ActiveQT以及通过ActiveQT控制EXCEL.Word.P ...
- 基于Zabbix API文档二次开发与java接口封装
(继续贴一篇之前工作期间写的经验案例) 一. 案例背景 我负责开发过一个平台的监控报警模块,基于zabbix实现,需要对zabbix进行二次开发. Zabbix官方提供了Rest ...
- (50)zabbix API二次开发使用与介绍
zabbix API开发库 zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php. ...
- 自学Zabbix14.1 二次开发API
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix14.1 二次开发API Zabbix API我们可以做很多,自己开发web界面. ...
- 【phpcms-v9】phpcms-v9二次开发所必须知道的步骤(转载)
一.做phpcms-v9二次开发时,我们经常需要用到如下代码,所以有必须在这里注释说明一下 defined('IN_PHPCMS') or exit('No permission resources. ...
- 最好最实用的PHP二次开发教程
◆二次开发 1.什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核. 2.为什么要二次开发? 随着信息化技术 ...
随机推荐
- 统计tomcat的access日志
统计tomcat的access日志的ip次数,并按次数排序 awk '{sum[$1]++}END{for(i in sum) print i "\t" sum[i]}' loca ...
- vue学习 第三天css基础
1.emment语法(作用:提升html和css书写速度) 2. 复合选择器 1)由两个或多个基础选择器,通过不同的方式组合而成的,可以更准确.更高效的选择目标元素(标签) 2)后代选择器.子元素选择 ...
- 【MySQL】MySQL时区问题、数据库时间相差8小时问题解决
解决:修改MySQL系统时区,改为东8区. 在命令行界面或者可视化工具下(如:Navicat)依次运行以下命令. 1.查询当前系统时间 select now(); 2.检查MySQL系统时区 show ...
- 2023 2 4 c++NOIP机试 小豫豫在郑州 type
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int j(string str){ 5 ...
- redisTemplate类学习及理解
List<Object> list = masterRedisTemplate.executePipelined((RedisCallback<Long>) connectio ...
- C# 设置桌面为父窗口
#region 设置桌面为父窗口 IntPtr hDesktop; public const int GW_CHILD = 5; public IntPtr GetDesktopHandle(Desk ...
- SQL Server FOR XML EXPLICIT 一步步学习
查看网址:https://www.itdaan.com/blog/2015/05/05/510cd42eb587c98bcd25ef0e5b687fd1.html
- 移动web_平面转换
平面转换 平面 平移 旋转 缩放 概念:使用transform属性实现元素的位移.旋转.缩放等效果 注意点:行内元素所有的平面转换是没有效果的 平面: 平面转换的平面指的是二维平面(2D)只有X和Y轴 ...
- DC约束笔记
关于get_pins get_cells get_ports等的定义 关于建立保持与max/min的关系 2.setup time和hold time 建立时间(setup time)是指在触发器的时 ...
- read the docs
1. 在 GitHub 新建一个repo 2. git clone git@github.com:readthedocs/tutorial-template.git 3. 把刚刚 clone 的 re ...