prometheus比zabbix好在哪点?
分享网易云轻舟微服务选择基于 Prometheus 开发微服务监控系统的考量:
开源
云原生
与微服务监控需求的匹配度很高
开源
Prometheus是CNCF(云原生计算基金会)旗下成熟的开源项目,而开源技术栈是网易云坚定不移的选择,不仅因为选择主流开源项目可以站在巨人的肩膀上创新,规避重复造轮子的浪费,更因为开源开放让客户无需担心厂商锁定。Prometheus拥有活跃的社区,在GitHub 上获得的 star 数超过了 2 万,符合网易云的选择。
云原生
作为CNCF组织第二个毕业的开源项目,Prometheus与它的“师兄”Kubernetes都自带云原生的光环,天然能够友好协作,而网易云轻舟微服务另一个重要组件——容器服务正是基于开源Kubernetes深度定制优化的(当然轻舟微服务的服务治理设计是基础设施无关的,同时支持物理机、VM和容器)。
目前,轻舟微服务监控系统所有组件及配置均实现容器化并由 Kubernetes 编排,理论上,在任意 Kubernetes 集群里都能够一键部署,系统需要变更时,仅需修改相关编排文件,即可完成改变。
与微服务监控需求的匹配度很高
微服务监控有四大难点:
1. 配置难:监控对象动态可变,无法进行预先配置;
2. 融合难:监控范围非常繁杂,各类监控难以互相融合;
3. 排查难:微服务实例间的调用关系非常复杂,故障排查会很困难;
4. 建模难:微服务架构仍在快速发展,难以抽象出稳定的通用监控模型。
Prometheus 有五大优势:
灵活的数据模型:在 Prometheus 里,监控数据是由值、时间戳和标签表组成的,其中监控数据的源信息是完全记录在标签表里的;同时 Prometheus 支持在监控数据采集阶段对监控数据的标签表进行修改,这使其具备强大的扩展能力;
强大的查询能力:Prometheus 提供有数据查询语言 PromQL。从表现上来看,PromQL 提供了大量的数据计算函数,大部分情况下用户都可以直接通过 PromQL 从 Prometheus 里查询到需要的聚合数据;
健全的生态:Prometheus 能够直接对常见操作系统、中间件、数据库、硬件及编程语言进行监控;同时社区提供有 Java/Golang/Ruby 语言客户端 SDK,用户能够快速实现自定义监控项及监控逻辑;
良好的性能:Prometheus 提供了 PromBench 基准测试,从最新测试结果来看,在硬件资源满足的情况下,Prometheus 单实例在每秒采集 10万条监控数据的情况下,在数据处理和查询方面依然有着不错的性能表现;
更契合的架构:采用推模型的监控系统,客户端需要负责在服务端上进行注册及监控数据推送;而在 Prometheus 采用的拉模型架构里,具体的数据拉取行为是完全由服务端来决定的。服务端是可以基于某种服务发现机制来自动发现监控对象,多个服务端之间能够通过集群机制来实现数据分片。推模型想要实现相同的功能,通常需要客户端进行配合,这在微服务架构里是比较困难的。
当然,Prometheus 也有一些不足,比如不能用于日志监控、分布式追踪等范围,所以网易云也做了很多设计和优化。
相关文章:
【推荐】 ThreeJs 3D 全景项目开发总结
prometheus比zabbix好在哪点?的更多相关文章
- 监控系统对比 Ganglia vs Open-falcon vs Prometheus vs Zabbix vs Nagios vs PandoraFMS
Zabbix vs Nagios vs PandoraFMS: an in depth comparison - Pandora FMS - The Monitoring Bloghttps://bl ...
- prometheus和zabbix的对比
前言: 新公司要上监控,面试提到了Prometheus 是公司需要的监控解决方案,作为喜新厌旧的程序员,我当然是选择跟风了,之前主要做的是zabbix,既然公司需要prometheus,那没办法,只能 ...
- DevOps-ISC,CSS,Prometheus,Ansible ,Terraform,zabbix
https://www.terraform.io/ Terraform Use Infrastructure as Code to provision and manage any cloud, in ...
- zabbix和prometheus的优缺点对比
使用Prometheus(https://github.com/prometheus)原生的k8s服务发现驱动,采集容器化信息:通过微服务参数配置,暴露运行状态信息提供给prometheus,实现微服 ...
- 【prometheus】学习第一篇——prometheus
前言: 说到监控方案,市面上开源的有很多,最常用的zabbix,深入使用zabbix以后,才知道zabbix设计团队有多厉害,简直是一个完美的监控告警方案.但是在针对docker的监控上还差点,需要自 ...
- Prometheus 监控领域最锋利的“瑞士军刀”
原文:https://mp.weixin.qq.com/s/Cujn6_4w8ZcXCOWpoAStvQ 一.Kubernetes 容器监控的标配—Prometheus 1.简介 Prometheus ...
- Prometheus 详解
Prometheus 章节 1.Prometheus 简介 2.Prometheus 安装与配置 3.Exporter 4.Pushgateway 5.本地存储和远程存储 6.高可用方案 7.报警插件 ...
- Prometheus + Grafana 监控系统搭
本文主要介绍基于Prometheus + Grafana 监控Linux服务器. 一.Prometheus 概述(略) 与其他监控系统对比 1 Prometheus vs. Zabbix Zabbix ...
- prometheus(1)之核心概念
个人理解:prometheus核心在于 1.prom数据类型的理解 (4钟数据类型 与常用的promQL语法 其实很容易) 2.各种服务发现与正则拼接(服务发现的拼接其实官方定义好的 理解就行) 3. ...
随机推荐
- windows中执行celery beat任务
由于最新的celery4.2不支持windows系统,因此按照网上的建议安装了3.1.25版.按照官网的说明使用 app.conf.beat_schedule = { 'add-every-30-se ...
- [C#]“正在终止线程”的问题
在C#中启用线程后,如果试图使用Abort方法来终止线程,那么必定会抛出“正在终止线程”的异常,一开始我也想过如何来避免这种异常出现,花了不少气力,但最后发现全是徒劳. 原因是一个正在运行的线程被终止 ...
- oracle 大量连接导致数据库不能登录
系统遇到过几次这种问题,一个系统申请的session数过大,导致数据库进程数满,无法连接的问题. pl sql develope 报的错误是:ORA-12170:TNS:链接超时 oracle用户登录 ...
- 720. Longest Word in Dictionary
static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...
- Mysql导入excel数据,解决某些特殊字符乱码问题
问题 做项目需要从excel表格导入到mysql的数据库表中,excel表格中的“规格”字段的“×”符号导入数据库表中,会出现部分数据的“×”这个符号会乱码,成“?”的形式. 解决方法 打开excel ...
- tp5框架成功、失败提示模板修改
<!DOCTYPE html> <html> <head> <title> 页面自动中...跳转 等待时间:<?php echo($wait); ...
- 第30章:MongoDB-索引--地理信息索引
①地理信息索引 地理信息索引分为两类:2D平面索引,另外就是2DSphere球面索引.在2D索引里面基本上能够保存的信息都是坐标,而且坐标保存的就是经纬度坐标. 范例:定义一个商铺的集合 db.sho ...
- hadoop sqoop的常用名命令
1 列出所有的ambari数据库中所有的表 Sqoop list-tables -connect jdbc:mysql://localhost:3306/ambari -username ambar ...
- Python 之 Difflib
Python 之 Difflib 2017年7月8日 word文档地址:https://wenku.baidu.com/view/36692440854769eae009581b6bd97f19237 ...
- Foundation-NSOperation-NSInvocationOperation/NSBlockOperation/NSOperationQueue
iOS多线程编程技术之NSThread.Cocoa NSOperation.GCD 线程之间的通信 iOS开发系列--并行开发其实很容易 GCD由浅入深学习 iOS多线程NSOperation/Que ...