0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Zabbix和Prometheus到底怎么选

马哥Linux运维 来源:马哥Linux运维 2023-01-29 14:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

新公司要上监控,面试提到了 Prometheus 是公司需要的监控解决方案,我当然是选择跟风了。

之前主要做的是 Zabbix,既然公司需要 Prometheus,那没办法,只能好好对比一番,了解下,毕竟技多不压身。

但稍稍深入一点,我就体会到了 Prometheus 的优点,总结一下这两种监控方式。

两种监控工具的历史简介

Prometheus

Kubernetes 自从 2012 年开源以来便以不可阻挡之势成为容器领域调度和编排的领头羊。

Kubernetes 是 Google Borg 系统的开源实现,于此对应 Prometheus 则是 Google BorgMon 的开源实现。

Prometheus 是由 SoundCloud 开发的开源监控报警系统和时序列数据库。

从字面上理解,Prometheus 由两个部分组成,一个是监控报警系统,另一个是自带的时序数据库(TSDB)。

2016 年,由 Google 发起的 Linux 基金会旗下的原生云基金会(Cloud Native Computing Foundation)将 Prometheus 纳入其第二大开源项目。

Prometheus 在开源社区也十分活跃,在 GitHub 上拥有两万多 Star,并且系统每隔一两周就会有一个小版本的更新,而 Prometheus 与它的“师兄”Kubernetes 都自带云原生的光环,天然能够友好协作。

Zabbix

Zabbix 官方的发行版本时间可以追朔到 2012 年,时间上比 Prometheus 早了四年。

Zabbix 是由 Alexei Vladishev 开源的分布式监控系统,是一个企业级的分布式开源监控方案。能够监控各种网络参数以及服务器健康性和完整性的软件。使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。

这样可以快速反馈服务器的问题。基于已存储的数据,提供了出色的报告和数据可视化功能。

架构对比

Prometheus

d34eb26c-9f30-11ed-bfe3-dac502259ad0.png

Prometheus 的基本原理是通过 HTTP 周期性抓取被监控组件的状态,任意组件只要提供对应的 HTTP 接口并且符合 Prometheus 定义的数据格式,就可以接入 Prometheus 监控。

Prometheus Server 负责定时在目标上抓取 Metrics(指标)数据并保存到本地存储里面。

Prometheus 采用了一种 Pull(拉)的方式获取数据,不仅降低客户端的复杂度,客户端只需要采集数据,无需了解服务端情况,而且服务端可以更加方便的水平扩展。

如果监控数据达到告警阈值 Prometheus Server 会通过 HTTP 将告警发送到告警模块 alertmanger,通过告警的抑制后触发邮件或者 webhook。最新 HTTP 面试题整理好了,大家可以在Java面试库小程序在线刷题。

Prometheus 支持 PromQL 提供多维度数据模型和灵活的查询,通过监控指标关联多个 tag 的方式,将监控数据进行任意维度的组合以及聚合。

Zabbix

d357368a-9f30-11ed-bfe3-dac502259ad0.png

Zabbix 由 2 部分构成,Zabbix Server 与可选组件 Zabbix Agent。Zabbix Server 可以通过 SNMP,Zabbix Agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能。

它可以运行在 Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X 等平台上。最新 Linux 面试题整理好了,大家可以在Java面试库小程序在线刷题。

核心组件主要是 Agent 和 Server,其中 Agent 主要负责采集数据并通过主动或者被动的方式采集数据发送到 Server/Proxy,除此之外,为了扩展监控项,Agent 还支持执行自定义脚本。

Server 主要负责接收 Agent 发送的监控信息,并进行汇总存储,触发告警等。

Zabbix Server 将收集的监控数据存储到 Zabbix Database 中。Zabbix Database 支持常用的关系型数据库,如果 MySQL、PostgreSQL、Oracle 等,默认是 MySQL,并提供 Zabbix Web 页面(PHP 编写)数据查询。

Zabbix 由于使用了关系型数据存储时序数据,所以在监控大规模集群时常常在数据存储方面捉襟见肘。

所以从 Zabbix 4.2 版本后开始支持 TimescaleDB 时序数据库,不过目前成熟度还不高。

综合对比

d35f0540-9f30-11ed-bfe3-dac502259ad0.png

上面的表格,从开发语言上看,为了应对高并发和快速迭代的需求,监控系统的开发语言已经慢慢从 C 语言转移到 Go。

不得不说,Go 凭借简洁的语法和优雅的并发,在 Java 占据业务开发,C 占领底层开发的情况下,准确定位中间件开发需求,在当前开源中间件产品中被广泛应用。

从系统成熟度上看,Zabbix 是老牌的监控系统:Zabbix 是在 1998 年就出现的,系统功能比较稳定,成熟度较高。

而 Prometheus 是最近几年才诞生的,虽然功能还在不断迭代更新,但站在巨人的肩膀之上,在架构设计上借鉴了很多老牌监控系统的经验。

从数据存储方面来看,Zabbix 采用关系数据库保存,这极大限制了 Zabbix 采集的性能,而 Prometheus 自研一套高性能的时序数据库,在 V3 版本可以达到每秒千万级别的数据存储,通过对接第三方时序数据库扩展历史数据的存储。

从配置复杂度上看,Prometheus 只有一个核心 server 组件,一条命令便可以启动,相比而言,其他系统配置相对麻烦。

从社区活跃度上看,目前 Zabbix 比较活跃,但基本都是国内的公司参与,Prometheus 在这方面占据绝对优势,社区活跃度虽然不如,但是受到 CNCF 的支持,后期的发展值得期待。

从容器支持角度看,由于 Zabbix 出现得比较早,当时容器还没有诞生,自然对容器的支持也比较差。

而 Prometheus 的动态发现机制,不仅可以支持 Swarm 原生集群,还支持 Kubernetes 容器集群的监控,是目前容器监控最好解决方案。

总结

综合来看,Zabbix 的成熟度更高,上手更快,但更好的集成导致灵活性较差,问题更大是,监控数据的复杂度增加后,Zabbix 做进一步定制难度很高,即使做好了定制,也没法利用之前收集到的数据了(关系型数据库造成的问题)。

Prometheus 基本上是正相反,上手难度大一些,但由于定制灵活度高,数据也有更多的聚合可能,起步后的使用难度远小于 Zabbix。

但如果已经对传统监控系统有技术积累的话,还是要谨慎考虑更换监控。

如果监控的是物理机,用 Zabbix 没毛病,Zabbix 在传统监控系统中,尤其是在服务器相关监控方面,占据绝对优势。

甚至环境变动不会很频繁的情况下,Zabbix 也会比 Prometheus 好使;但如果是云环境的话,除非是 Zabbix 玩的非常溜,可以做各种定制,否则还是 Prometheus 吧,毕竟人家就是干这个的。

Prometheus 开始成为主导及容器监控方面的标配,并且在未来可见的时间内被广泛应用。

如果是刚刚要上监控系统的话,不用犹豫了,Prometheus 准没错。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Zabbix
    +关注

    关注

    0

    文章

    27

    浏览量

    3666
  • Prometheus
    +关注

    关注

    0

    文章

    33

    浏览量

    2015

原文标题:Zabbix 和 Prometheus 到底怎么选?千万别用错了

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TCXO vs OCXO:户外极端环境怎么?一文搞懂相噪、稳定度、功耗与守时

    很多工程项目要把设备装到“杆塔/机柜/屋顶/野外”这种冷热交替、供电受限、维护不便的环境里。到底低功耗的 TCXO,还是超稳的 OCXO?本文用工程视角拆解相噪、频率稳定度(ppm/ppb
    的头像 发表于 10-28 14:52 268次阅读
    TCXO vs OCXO:户外极端环境怎么<b class='flag-5'>选</b>?一文搞懂相噪、稳定度、功耗与守时

    通信电源选购避坑指南:跟着广州邮科,省心又省钱!

    “通信电源不好,基站半夜闹罢工!”老李是某通信公司的运维主管,去年因贪便宜买了杂牌电源,结果夏天高温时连续3天基站宕机,客户投诉电话被打爆,差点丢了饭碗。后来换了广州邮科的电源,用了快两年,一次故障都没出过。今天咱们就聊聊通信电源选购的门道,顺便看看广州邮科到底牛在哪儿
    的头像 发表于 10-20 10:32 223次阅读
    通信电源选购避坑指南:跟着广州邮科<b class='flag-5'>选</b>,省心又省钱!

    直压法 VS 容积法,气密性检测到底怎么?精诚工科深度解析

    在现代制造业中,无论是新能源电池、消费电子、汽车配件还是家电防水部件,「气密性检测」都是确保产品质量与安全的关键环节。但面对不同结构的产品,很多工程师都会问:我的产品到底直压法,还是容积法?今天
    的头像 发表于 10-15 11:30 530次阅读
    直压法 VS 容积法,气密性检测<b class='flag-5'>到底</b>怎么<b class='flag-5'>选</b>?精诚工科深度解析

    ZabbixPrometheus运维监控系统的对比

    在当今云原生和微服务架构盛行的时代,监控系统已成为运维工程师不可或缺的核心工具。面对市场上众多监控解决方案,ZabbixPrometheus作为两大主流选择,各自拥有独特的优势和适用场景。本文将从架构设计、性能表现、功能特性、运维成本等多个维度进行深入对比,为你的监控系
    的头像 发表于 09-18 14:57 379次阅读

    IEC 到底是什么?为什么它能影响全球?

    IEC 到底是什么?为什么它能影响全球?
    的头像 发表于 09-04 17:07 2459次阅读

    如何构建高可用Prometheus监控体系

    在云原生时代,传统监控工具已经无法满足微服务架构的复杂需求。Prometheus凭借其Pull模式、多维数据模型和强大的查询语言PromQL,成为了CNCF毕业项目中的监控标杆。
    的头像 发表于 08-01 09:10 618次阅读

    运动控制轴和单轴控制区别怎么?工业自动化工程师一文讲透!

    在工业自动化项目里,运动控制这件事是绕不过去的技术核心。无论你是在做机器人、自动点胶机,还是搞多轴联动的数控系统,都会遇到一个让很多技术人员头大的问题:运动控制轴和单轴控制区别到底在哪?实际应用中该怎么
    的头像 发表于 05-29 10:19 802次阅读
    运动控制轴和单轴控制区别怎么<b class='flag-5'>选</b>?工业自动化工程师一文讲透!

    详解Prometheus的数据类型

    对于 Prometheus 生态的监控系统,PromQL 是必备技能,本文着重点讲解这个查询语言,掺杂一些生产实践场景,希望对你有所帮助。
    的头像 发表于 05-13 09:50 1248次阅读
    详解<b class='flag-5'>Prometheus</b>的数据类型

    GPU服务器与CPU服务器的区别:一文就能给您说透这两者该怎么

    最近,小编这里收到很多企业客户的提问:"我们的业务到底GPU服务器还是CPU服务器?" 作为深耕算力领域8年的工程师,今天小编用简单明了的内容给您讲透两者的本质区别,帮您避开选型坑。
    的头像 发表于 04-23 13:18 1361次阅读
    GPU服务器与CPU服务器的区别:一文就能给您说透这两者该怎么<b class='flag-5'>选</b>!

    MacBook扩展坞怎么

    经常插U盘、SD卡? 你是不是经常要外接显示器、投影仪? 你是不是希望一个口搞定充电、数据和视频? 如果你回答“是”,那扩展坞就是刚需了✅ 二、扩展坞到底怎么?看这4点就够了! ① 看接口数量和类型 蕞基础的扩展坞至少要有: USB-A口(插
    的头像 发表于 04-21 16:01 856次阅读

    使用Prometheus与Grafana实现MindIE服务可视化监控功能

    在 MindIE 服务化运行过程中,为了及时掌握服务的运行状态、性能表现以及发现潜在问题,提供了服务监控指标查询接口(普罗 (Prometheus) 格式)。该接口能够帮助开发者和运维人员获取丰富的服务监控指标数据,为优化服务配置、保障服务质量提供有力支持。
    的头像 发表于 04-21 11:48 1860次阅读
    使用<b class='flag-5'>Prometheus</b>与Grafana实现MindIE服务可视化监控功能

    Ubuntu22.04 LTS部署zabbix7.0教程

    Ubuntu22.04 LTS部署zabbix7.0教程
    的头像 发表于 04-11 15:34 1416次阅读
    Ubuntu22.04 LTS部署<b class='flag-5'>zabbix</b>7.0教程

    低功耗蓝牙和经典蓝牙,到底怎么

    和Bluetooth Smart两者又有什么区别?我的应用到底经典蓝牙技术还是低功耗蓝牙技术?这是很多刚接触蓝牙技术的人经常碰到的问题。 首先,在2010年以前,当我们谈论蓝牙的时候,就是在说经典蓝牙,因为
    的头像 发表于 04-07 16:01 1180次阅读
    低功耗蓝牙和经典蓝牙,<b class='flag-5'>到底</b>怎么<b class='flag-5'>选</b>?

    从零入门Prometheus:构建企业级监控与报警系统的最佳实践指南

    测试环境 prometheus-2.26.0.linux-amd64.tar.gz下载地址:https://github.com/prometheus/prometheus/releases
    的头像 发表于 02-10 11:28 1122次阅读
    从零入门<b class='flag-5'>Prometheus</b>:构建企业级监控与报警系统的最佳实践指南

    云端监控新体验,打造强大的 Zabbix 主机监控解决方案

    前言**** 华为云服务器 Flexus X 实例,以革命性柔性算力与卓越性能,重塑云端监控体验。携手 Zabbix 主机监控解决方案 ,为您打造前所未有的强大监控网络。在 828 华为云企业上云节
    的头像 发表于 01-07 17:23 992次阅读
    云端监控新体验,打造强大的 <b class='flag-5'>Zabbix</b> 主机监控解决方案