Zabbix 和夜莺监控选型对比
作者介绍:张世宏,开源报表 ZbxTable开发者,使用 Zabbix 超过 8 年,Zabbix 资深用户,优质内容创作者。开源项目夜莺监控|Nightingale活跃贡献者。
Zabbix 是过去二十年里开源监控系统的代表作,有着广泛的用户基础,如果没有原生和微服务架构的流行,Zabbix 本可以连续代表下一个二十年。作为 Zabbix 忠实用户的你,或许正经历着传统架构往云原生架构转型,当你选择在容器架构下,把众多微服务的监控数据往 Zabbix 数据模型上套,削足适履,会发现非常辛苦,甚至于很多时候根本都行不通。
Zabbix的优点
- 功能较为全面、官网提供详细的文档,网络及社区相关资料较多。
- 对基础设施、网络等设备兼容性较强,简单配置即可接入。
- 丰富的模板和协议支持,可根据设备类型搜索导入即可使用。
- 灵活的采集和处理方式,可自定义脚本采集并通过预处理对数据进行二次处理。
- 完善的API可灵活实现数据及系统的对接及调用。
- 代码全部开源,社区资源活跃,商业化技术支持丰富完备。
Zabbix的不足
- 相对固定的数据模型,导致数据表达能力有限,难以适应现代微服务架构监控。
- 系统容量有限,不仅仅表现在趋势数据存储压力大,标签数据存储更是挑战。
- Dashboard 配置较为麻烦,告警策略配置复杂,门槛较高。
- 架构设计耦合严重,代码实现复杂,对系统本身进行二次开发较难。
- 功能丰富众多,对运维人员能力要求较高,不利于多人协作。
显然,老架构用 Zabbix,微服务架构用 Prometheus,多云监控用云厂商各自提供的云监控,工程师被迫维护和使用多套监控系统,并不是大家期望的最佳局面。那么,有没有一个现代化的、简单好用的监控产品,既可以满足传统架构的监控需求,又可以适用K8s时代微服务架构的监控、混合云的监控?
今天给大家详细介绍一款现代化的开源监控解决方案—夜莺监控 | Nightingale。夜莺监控,采用 All-in-one 的产品化设计理念,集数据采集、可视化、监控告警、故障协同处理于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的首个开源项目。
夜莺监控的设计目标
- 好看、简单、功能全面:
- 自研数据采集器Categraf,采什么、怎么采、采了数据怎么用,全部开箱即用;
- 告警功能十年沉淀,业界首选;
- 自研可视化引擎,媲美 Grafana;
- 支持告警聚合、收敛、排班,协同处理(需要对接 SaaS 应用);
- 同时适合传统架构 & 云原生架构 & 混合云架构;
- 多数据源架构设计,适应灵活多变的部署环境和生态;
- 可扩展架构设计,水平扩展;
- 兼顾中心化部署和边缘设备集群管理;
- Go语言开发,架构设计简洁,适合二次开发;
夜莺监控架构
夜莺监控由数据采集器、告警分析引擎、可视化引擎、告警自愈引擎构成。夜莺的设计非常简单,核心是 server 、webapi、frontend三个模块。
webapi 无状态,中心端部署,承接前端frontend的请求,将用户配置写入数据库,同时对外提供API 供frontend 使用;server 是告警引擎,也承担数据处理、转发功能,一般伴随着时序数据库部署,一个时序库就对应一套 server,每套 server 可以只启动一个实例,也可以启动多个实例组成集群。server 可以接收 Categraf、Telegraf、Grafana-Agent、Datadog-Agent、Falcon-Plugins 等多种数据采集器上报的数据,写入后端时序数据库,并周期性从数据库同步用户配置的告警规则,查询时序库进行告警判断。此外每套 server 依赖一个redis作为队列,比如产生的告警事件会进入到不同的队列。
自研数据采集器Categraf,开箱即用
夜莺默认的数据采集器 Categraf,有以下特点:
- All-in-one:所有的采集工作使用一个 agent 来解决,包括 metrics、logs、 traces 和 events ,并从数据采集的源头建立起数据间的关联关系,保障好数据的质量。
- 开箱即用:覆盖支持上百种采集对象,包括K8s、中间件、服务器、交换机等,针对常用的采集对象,在提供采集能力的同时,配套有默认的监控仪表盘模板和告警规则模板,用户可以直接导入并使用。
- 部署方式灵活:支持在 K8s 集群中以 Daemonset 或者 Sidecar 运行,支持公有云产品的数据采集,也支持独立运行在宿主机上。
- Go语言开发:安全、易分发、易安装维护,插件化。
告警功能十年沉淀,业界首选
- 支持多数据源告警,Prometheus、Victoriametrics、M3DB、Thanos,ElasticSearch、SLS;
- 多种告警判定策略,多条件策略,生效周期,产品化配置和管理;
- 多通知渠道和自定义通知模版;
- 支持故障自愈和告警 Webhook;
- 支持告警聚合、收敛、排班、协同(需要对接Flashcat SaaS应用);
自研可视化引擎,媲美Grafana
一图胜千言,夜莺监控的 Dashboard 不仅从功能、设计上可以媲美 Grafana,同时也兼容 Grafana,要是你觉得 Grafana 某个 Dashboard 非常有用,甚至可以直接导入到夜莺监控中使用。
此外,夜莺监控的 Dashboard 支持多种数据源,比如时序数据库 Prometheus、Victoriametrics、M3DB、Thanos,又比如日志数据源 ElasticSearch、SLS 等。
下载使用
你可以通过多种方式,安装和使用夜莺监控:
- 使用 Docker Compose 方式,快速体验:https://n9e.github.io/docs/install/compose/
- 使用 Helm Chart 方式快速安装夜莺到你的 K8s集群:https://n9e.github.io/docs/install/helm/
- 使用二进制:https://n9e.github.io/docs/install/server/
- 通过源码编译:https://github.com/ccfos/nightingale/blob/main/Makefile
欢迎各位 Zabbix 小伙伴,包括但不限于以下方式参与到夜莺开源社区:
- 在 Github Issue 中积极参与讨论,参与社区活动;
- 提交代码补丁;
- 翻译、修订、补充和完善文档;
- 分享夜莺监控的使用经验,积极布道;
- 提交建议 / 批评;
夜莺监控社区资源:
- 夜莺监控项目文档站点:https://n9e.github.io
- 欢迎大家在 Github 上 Star 夜莺项目: