prometheus比zabbix好在哪点?

我能知道的优势:


1、pull方式获取node数据,并且节点node也可以通过web来查看获取数据。


2、告警和监控分离的设计,可以做告警的高可用,也在一定程度上解决了单点故障。


3、promSQL,可以使用大量内置函数解决多维度查询和分类。


4、时序数据库,可以直接获取时间阶段的变量值和变率,可以简化一部分指标的计算步骤。
但并没有感觉到目前“非常火”的原因。


有没有prometheus研究很深的大神,或者监控方面很专的大神来帮忙解答,谢谢~

猪小花1号提问于 2019-01-04 12:53
1 个回答
  • 活动主持人2019-01-04 13:52


    分享网易云轻舟微服务选择基于 Prometheus 开发微服务监控系统的考量:


    1. 开源
    2. 云原生
    3. 与微服务监控需求的匹配度很高


    开源


    Prometheus是CNCF(云原生计算基金会)旗下成熟的开源项目,而开源技术栈是网易云坚定不移的选择,不仅因为选择主流开源项目可以站在巨人的肩膀上创新,规避重复造轮子的浪费,更因为开源开放让客户无需担心厂商锁定。Prometheus拥有活跃的社区,在GitHub 上获得的 star 数超过了 2 万,符合网易云的选择。


    云原生


    作为CNCF组织第二个毕业的开源项目,Prometheus与它的“师兄”Kubernetes都自带云原生的光环,天然能够友好协作,而网易云轻舟微服务另一个重要组件——容器服务正是基于开源Kubernetes深度定制优化的(当然轻舟微服务的服务治理设计是基础设施无关的,同时支持物理机、VM和容器)。


    目前,轻舟微服务监控系统所有组件及配置均实现容器化并由 Kubernetes 编排,理论上,在任意 Kubernetes 集群里都能够一键部署,系统需要变更时,仅需修改相关编排文件,即可完成改变。


    与微服务监控需求的匹配度很高


    微服务监控有四大难点:


    1. 配置难:监控对象动态可变,无法进行预先配置;
    2. 融合难:监控范围非常繁杂,各类监控难以互相融合;
    3. 排查难:微服务实例间的调用关系非常复杂,故障排查会很困难;
    4. 建模难:微服务架构仍在快速发展,难以抽象出稳定的通用监控模型。


    Prometheus 有五大优势:


    1. 灵活的数据模型:在 Prometheus 里,监控数据是由值、时间戳和标签表组成的,其中监控数据的源信息是完全记录在标签表里的;同时 Prometheus 支持在监控数据采集阶段对监控数据的标签表进行修改,这使其具备强大的扩展能力;
    2. 强大的查询能力:Prometheus 提供有数据查询语言 PromQL。从表现上来看,PromQL 提供了大量的数据计算函数,大部分情况下用户都可以直接通过 PromQL 从 Prometheus 里查询到需要的聚合数据;
    3. 健全的生态:Prometheus 能够直接对常见操作系统、中间件、数据库、硬件及编程语言进行监控;同时社区提供有 Java/Golang/Ruby 语言客户端 SDK,用户能够快速实现自定义监控项及监控逻辑;
    4. 良好的性能:Prometheus 提供了 PromBench 基准测试,从最新测试结果来看,在硬件资源满足的情况下,Prometheus 单实例在每秒采集 10万条监控数据的情况下,在数据处理和查询方面依然有着不错的性能表现;
    5. 更契合的架构:采用推模型的监控系统,客户端需要负责在服务端上进行注册及监控数据推送;而在 Prometheus 采用的拉模型架构里,具体的数据拉取行为是完全由服务端来决定的。服务端是可以基于某种服务发现机制来自动发现监控对象,多个服务端之间能够通过集群机制来实现数据分片。推模型想要实现相同的功能,通常需要客户端进行配合,这在微服务架构里是比较困难的。


    当然,Prometheus 也有一些不足,比如不能用于日志监控、分布式追踪等范围,所以网易云也做了很多设计和优化。