第二十九期:运维之三大监控对比

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

作者:艺术生的运维路来源:今日头条

1. zabbix

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

Zabbix由于使用了关系型数据存储时序数据,所以在监控大规模集群时常常在数据存储方面捉襟见肘。所以从Zabbix 4.2版本后开始支持TimescaleDB时序数据库,不过目前成熟度还不高。

2. falcon

  • Falcon-agent是用Go语言开发的Daemon程序,运行在每台Linux服务器上,用于采集主机上的各种指标数据,主要包括CPU、内存、磁盘、文件系统、内核参数、Socket连接等,目前已经支持200多项监控指标。并且,Agent支持用户自定义的监控脚本。
  • Hearthbeat server简称HBS心跳服务,每个Agent都会周期性地通过RPC方式将自己的状态上报给HBS,主要包括主机名、主机IP、Agent版本和插件版本,Agent还会从HBS获取自己需要执行的采集任务和自定义插件。
  • Transfer负责接收Agent发送的监控数据,并对数据进行整理,在过滤后通过一致性Hash算法发送到Judge或者Graph。
  • Graph是基于RRD的数据上报、归档、存储组件。Graph在收到数据以后,会以rrdtool的数据归档方式来存储,同时提供RPC方式的监控查询接口。
  • Judge告警模块,Transfer转发到Judge的数据会触发用户设定的告警规则,如果满足,则会触发邮件、微信或者回调接口。这里为了避免重复告警引入了Redis暂存告警,从而完成告警的合并和抑制。
  • Dashboard是面向用户的监控数据查询和告警配置界面。

3. prometheus

Prometheus Server负责定时在目标上抓取metrics(指标)数据并保存到本地存储里面。Prometheus采用了一种Pull(拉)的方式获取数据,不仅降低客户端的复杂度,客户端只需要采集数据,无需了解服务端情况,而且服务端可以更加方便的水平扩展。

如果监控数据达到告警阈值Prometheus Server会通过HTTP将告警发送到告警模块alertmanger,通过告警的抑制后触发邮件或者webhook。Prometheus支持PromQL提供多维度数据模型和灵活的查询,通过监控指标关联多个tag的方式,将监控数据进行任意维度的组合以及聚合。

对比:

  • 开发语言 便捷易部署(promehteus)
  • 系统成熟度(zabbix)20多年
  • 系统扩展性 Zabbix和Open-Falcon都可以自定义各种监控脚本,并且Zabbix不仅可以做到主动推送,还可以做到被动拉取,Prometheus则定义了一套监控数据规范,并通过各种exporter扩展系统采集能力。
  • 数据存储 Zabbix采用关系数据库保存,这极大限制了Zabbix采集的性能,Nagios和Open-Falcon都采用RDD数据存储 ,Prometheus自研一套高性能的时序数据库,在V3版本可以达到每秒千万级别的数据存储,通过对接第三方时序数据库扩展历史数据的存储;
  • 配置复杂度 Prometheus只有一个核心server组件,其他系统配置相对麻烦,尤其是Open-Falcon。
  • 社区活跃度 Prometheus在这方面占据绝对优势,社区活跃度最高,并且受到CNCF的支持
  • 容器支持 Prometheus开始成为主导及容器监控方面的标配

Prometheus功能介绍

(1) prometheus的指标类型

  • Counter(计数器):计数统计,累计多长或者累计多少次等。它的特点是只增不减,譬如HTTP访问总量;
  • Gauge(仪表盘):数据是一个瞬时值,如果当前内存用量,它随着时间变化忽高忽低。

如果需要了解某个时间段内请求的响应时间,通常做法是使用平均响应时间,但这样做无法体现数据的长尾效应。例如,一个HTTP服务器的正常响应时间是30ms,但有很少几次请求耗时3s,通过平均响应时间很难甄别长尾效应,所以Prometheus引入了Histogram和Summary。

  • Histogram(直方图):服务端分位,不同区间内样本的个数,譬如班级成绩,低于60分的9个,低于70分的10个,低于80分的50个。
  • Summary(摘要):客户端分位,直接在客户端通过分位情况,还是用班级成绩举例:0.8分位的是,80分,0.9分为85分,0.99分为的是98分

(2) prometheus的client应用方式

  • 客户端集成client,提供metrics接口查询
  • 通过exporter方式

(3) prometheus的存储方式

Prometheus提供了两种数据持久化方式:

  • 一种是本地存储,通过Prometheus自带的tsdb(时序数据库),将数据保存到本地磁盘,为了性能考虑,建议使用SSD。但本地存储的容量毕竟有限,建议不要保存超过一个月的数据。Prometheus本地存储经过多年改进,自Prometheus 2.0后提供的V3版本tsdb性能已经非常高,可以支持单机每秒1000w个指标的收集。
  • 另一种是远端存储,适用于大量历史监控数据的存储和查询。通过中间层的适配器的转化,Prometheus将数据保存到远端存储。适配器实现Prometheus存储的remote write和remote read接口并把数据转化为远端存储支持的数据格式。目前,远端存储主要包括OpenTSDB、InfluxDB、Elasticsearch、M3db、Kafka等,其中M3db是目前非常受欢迎的后端存储。

(4) prometheus的查询方式

和关系型数据库的SQL类似,Prometheus也内置了数据查询语言PromQL,它提供对时间序列数据丰富的查询,聚合以及逻辑运算的能力。一条PromQL主要包括了指标名称、过滤器以及函数和参数。并且指标可以进行数据运算。

(5) prometheus的监控方式

Prometheus配置监控对象有两种方式,一种是通过静态文件配置,另一种是动态发现机制,自动注册监控对象。

Prometheus动态发现目前已经支持Kubernetes、etcd、Consul等多种服务发现机制,动态发现机制可以减少运维人员手动配置,在容器运行环境中尤为重要,容器集群通常在几千甚至几万的规模,如果每个容器都需要单独配置监控项不仅需要大量工作量,而且容器经常变动,后续维护更是异常麻烦。针对Kubernetes环境的动态发现,Prometheus通过watch kubernetes api动态获取当前集群所有服务和容器情况,从而动态调整监控对象

为了扩展单个Prometheus的采集能力和存储能力,Prometheus引入了“联邦”的概念。

多个Prometheus节点组成两层联邦结构,如图所示,上面一层是联邦节点,负责定时从下面的Prometheus节点获取数据并汇总,部署多个联邦节点是为了实现高可用

并且联邦机制可以分为俩种,一种是跨服务联合,一种是分层联邦。

  • 跨服务联合,从不同的源抓取特定的服务的监控数据,然后做聚合处理;
  • 分层联邦,就向一颗树,更高级别的prometheus服务从大量次级服务器收集聚合时间序列数据,然后去统一制定告警规则,分发触发事件。

除此之外,prometheus可以依靠Thanos外挂服务,实现prometheus集群化、以及数据长期存储的功能,有兴趣的可以了解下。其实在prometheus2.0自身使用remote-wirte,remote-read接口已经解决了数据长期存储的问题了。预计3.0会做出更大的提升,尤其是prometheus的集群化。


阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380691

阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380882

阅读目录(置顶)(长期科技领域知识)https://blog.csdn.net/weixin_43392489/article/details/102600114

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]

【问题描述】[中等] 【解答思路】 1. 枚举 找出能整除的子串长度,再用substring遍历匹配即可 时间复杂度:O(N^2) 空间复杂度:O(1) class Solution {public boolean repeatedSubstringPattern(String s) {int len s.length();for(int i 1…

第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化

百度CTO王海峰在会上发表题为《深度学习平台支撑产业智能化》的演讲,分享了百度关于深度学习技术推动人工智能发展及产业化应用的思考,并深度解读百度飞桨深度学习平台的优势,以及与百度智能云结合助力产业智能化的成果。 作者:佚…

【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)

版权声明:本文为博主原创文章,允许转载,但希望标注转载来源。 https://blog.csdn.net/qq_38410730/article/details/80312357IIC的基本介绍 IIC的简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公…

【数据结构与算法】广度优先遍历(BFS) 深度优先遍历(DFS)

一、 搜索算法 深度优先搜索和广度优先搜索是最暴力的图的搜索算法。算法的目标是,给定一张图,一对初始和终止节点,找到两节点之间的节点路径。(代码均是找到两个节点之间的路径) 广度优先搜索是一层一层搜索&#xf…

stack专题

20 Valid Parentheses 问题:没有意识到字符串中只包含字符:’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’ 代码:git代码 682 Baseball Game 问题:错误在操作:top1 先弹出,top2 再弹出,还原到…

第三十期:简单好用的9个电脑必备工具!让你轻松10倍

下面 9 款工具都是精心挑选的电脑必备神器,涵盖你需要的各个方面,无论是安全防护、文件查找、解压加密还是娱乐都在其中;最最最重要的是,它们不但各个功能强大,而且非常轻便,没有弹窗广告、没有捆绑安装、也…

【数据结构与算法】字符串匹配 BF算法 RK算法

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 一、BF 算法 1,BF算法是Brute Force的缩写,中文译作暴力匹配算法,也叫朴素匹配算法。 2,两个概念:主串和模式串 如在字符串…

第三十一期:大数据分析师学习入门,10个数据可视化技巧

在这篇文章,我想和大家分享 10 个基本的中级和高级的绘图工具。我发现在现实生活中,当涉及到绘图解释你的数据时,这些工具非常有用。 作者:加米谷大数据来源:今日头条 我必须对你说实话:当我学习数据科学时…

[Leetcode][第491题][JAVA][递增子序列][回溯][RK算法]

【问题描述】[中等] 【解答思路】 1. 二进制枚举 哈希 复杂度 class Solution {List<Integer> temp new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();Set<Integer> set new HashSet<In…

第五十七期:小型企业将如何从5G中受益

在足够多的新设备进入主流市场之前&#xff0c;5G已经在许多领域引起了越来越多的关注。从IT、零售、交通和制造业到医疗、娱乐、教育和农业&#xff0c;几乎每个行业都将在某种程度上受到5G的影响。 作者&#xff1a;李雪薇来源&#xff1a;IT168网站 在足够多的新设备进入主…

第三十二期:MySQL常见的图形化工具

MySQL作为一款非常流行的、开源的关系型数据库&#xff0c;应用非常广泛。因为MySQL开源的缘故&#xff0c;图形化管理维护工众多&#xff0c;除了系统自带的命令行管理工具之外&#xff0c;还有许多其他的图形化管理工具&#xff0c;这里介绍几个经常使用的MySQL图形化管理工具…

centos7 源码安装goaccess

1. 使用yum安装在不同服务器上可能失败, 推荐使用源码安装goaccess # 安装依赖 yum install -y ncurses-devel GeoIP-devel.x86_64 tokyocabinet-devel openssl-devel# 下载源码包并安装 cd /usr/local/software wget http://tar.goaccess.io/goaccess-1.3.tar.gz tar -xvf goa…

【数据结构与算法】字符串匹配 BM算法

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 BM算法 BM算法的核心思想是通过将模式串沿着主串大踏步的向后滑动&#xff0c;从而大大减少比较次数&#xff0c;降低时间复杂度。而算法的关键在于如何兼顾步子迈得足够大与无遗漏&…

第五十八期:AI艺术日渐繁荣,未来何去何从?

本文的配图都是AI艺术领域领导者、德国艺术家马里奥克林格曼(Mario Klingemann)利用人工智能创作的作品。 利用人工智能创作而成的画作近年来越来越受瞩目&#xff0c;有的作品甚至能在知名拍卖行拍得高价。但这类作品仍有不少问题需要解答&#xff0c;比如它的作者是开发出算…

【数据结构与算法】字符串匹配 KMP 算法

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 KMP 算法 KMP 算法是根据三位作者&#xff08;D.E.Knuth&#xff0c;J.H.Morris 和 V.R.Pratt&#xff09;的名字来命名的&#xff0c;算法的全称是 Knuth Morris Pratt 算法&#x…

第五十九期:商用数据库之死:Oracle 面临困境

作者&#xff1a;John Freeman、Fred McClimans 和 Zach Mitchell 我们预计到 2021 年&#xff0c;年产值 296 亿美元的商业数据库市场会收缩 20% 至 30%&#xff0c;认为 Oracle 无法让收入来源足够快地实现转型&#xff08;从传统的商业数据库转向基于云的订购产品&#xff0…

第六十期:华为:希望把VR/AR打造成下个智能手机产业

网易科技讯 10 月 19 日消息&#xff0c;2019 世界 VR 产业大会在江西省南昌市举行。华为轮值董事长郭平发表了《打造 VR/AR 信息高速公路&#xff0c;支撑产业繁荣》的主题演讲。郭平认为&#xff0c;VR/AR 将成为 5G 时代的首批应用&#xff0c;与 5G 产业发展节奏高度匹配并…

【数据结构与算法】字符串匹配 AC自动机

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 AC 自动机 AC 自动机实际上就是在 Trie 树之上&#xff0c;加了类似 KMP 的 next 数组&#xff0c;只不过此处的 next 数组是构建在树上罢了。 AC 自动机的构建 将多个模式串构建成…

第六十一期:中国农民花3000块,发明史上最牛输入法!曾火遍中国20年

投递人 itwriter “王旁青头戋(兼)五一&#xff0c;土十二干士寸雨” 如果你还能熟练的背出这段口诀&#xff0c;恭喜你&#xff0c;又暴露年龄了。 倒回到十几年前&#xff0c;在刀哥被老师带到穿鞋套才能进神秘的机房&#xff0c;练习打字的时候&#xff0c;会五笔的人简直是…

第六十二期:腾讯云发布“小程序·云开发十大优秀实践”:猫眼、唯品会等入选

作者&#xff1a;周小白 【TechWeb】10 月 19 日消息&#xff0c;今日&#xff0c;腾讯云首次对外公布了“小程序云开发十大优秀实践”&#xff0c;包括白鹭引擎、千墨科技、腾讯新闻、即速应用、微盟、唯品会、猫眼、香格里拉、微信读书、微信支付等&#xff0c;涉及多个行业。…