监控系统的基本架构(Metric monitoring)

news2024/11/18 3:44:12

前言

最近准备做一个监控系统,正好看到了这篇文章,这篇文章很简单,但很清晰,结合原文的图片,我进行一下翻译。

原文地址

ByteByteGo

原文

A well-designed metric monitoring and alerting system plays a key role in providing clear visibility into the health of the infrastructure to ensure high availability and reliability. The diagram below explains how it works at a high level.
Metrics source: This can be application servers, SQL databases, message queues, etc.
Metrics collector: It gathers metrics data and writes data into the time-series database.
Time-series database: This stores metrics data as time series. It usually provides a custom query interface for analyzing and summarizing a large amount of time-series data. It maintains indexes on labels to facilitate the fast lookup of time-series data by labels.
Kafka: Kafka is used as a highly reliable and scalable distributed messaging platform. It decouples the data collection and data processing services from each other.
Consumers: Consumers or streaming processing services such as Apache Storm, Flink and Spark, process and push data to the time-series database.
Query service: The query service makes it easy to query and retrieve data from the time-series database. This should be a very thin wrapper if we choose a good time-series database. It could also be entirely replaced by the time-series database’s own query interface.
Alerting system: This sends alert notifications to various alerting destinations.
Visualization system: This shows metrics in the form of various graphs/charts.

在这里插入图片描述

翻译

一个不错的指标监管系统和报警系统可以提供很清晰的可视化,来去确保系统的健康运行,保证它的可用性以及可靠性,下面的架构图回答了监管系统是如何工作的。

  1. Metrics source:这代表了一个应用服务,也就是被监控的对象,可以是Oracle、MySQL、Linux、Docker等等。
  2. Metrics collector:负责收集采集到的各项被监控指标,之后存到时序数据库中。
  3. Kafka:被用来作为一个高可靠且可扩展的分布式消息平台,它解耦了数据采集和数据运行服务间的关系。
  4. Consumers:“消费者”,或者流处理服务像是Spark、Flink等,进行实时计算然后推送到时序数据库。
  5. Time-series database:将各项指标数据作为时间序列进行存储,它会提供一个自定义的接口来实现对庞大的时间序列数据的分析和汇总。它通过维护标签上的索引来促进快速的时间序列数据的搜索。
  6. Query service:可以从时序数据库中查询数据,如果数据库性能比较好,这会是一个轻量的封装,甚至有的时序数据库自带查询的实现。
  7. Alerting system:通过不同的方式发送告警通知。
  8. Visualization system:用表或图的方式对数据进行可视化展示。

文章批注

备注:这些东西我都没有使用过,只是简单批注。
1)Time-series database
时序数据库简称TSDB,可以理解为时间是它的index,比较出名的有InfluxDB。
TSDB有很多应用场景,像是监控系统,需要实时的或是每间隔几秒就要收集一个监控对象的相关指标。
那传统的关系型数据库将时间作为一个表的index来存数据库就是TSDB吗?肯定不是,因为要实时,数据量是非常大的,像传统的关系型数据库,处理大数据时的效果非常糟糕,数据量太大会给记录和查询操作带来严重的性能问题,而且写入还是以非常快的速度,这就需要用到一些非关系型数据库。而且TSDB是以时间为核心的,肯定会针对时间单独进行一些设计,提高性能,更能适应像监控系统这种非常依赖于时间的应用场景。

2)Message queues
消息队列,简单来讲,我觉得MQ就像一个比较高级的缓冲池。知乎文章里高赞举了一个比较通俗的例子,写的非常清楚。比如说小红和小明,小红要经常给小明书看,在这个背景下,可以造一个书架,这个书架就是消息队列。这样带来了很多好处:

  1. 解耦:小红可以不用关心啥时候取走了书,小明也不需要知道书啥时候来了,需要看的时候自己去取就行,两个人不需要建立联系。
  2. 提速:小红把书放到书架上就行了,不用非要等小明来拿。
  3. 广播:如果又有小张想看书,那小红依然是可以把书放在书架上。
  4. 消峰:小明拿到书后,没看完可以不用急着去取书,否则都堆在自己手上压力太大。

坏处就是,使得系统的复杂度增加,而且会造成暂时的不一致性,比如说小红给你了一本书,理论上小明手里应该有一本,但小明还没有去拿。
消息队列有很多,应该学哪个呢?网上有很多分析的文章,下面这个来自知乎一篇文章的总结。

  1. 如果消息队列不是将要构建系统的重点,对消息队列功能和性能没有很高的要求,只需要一个快速上手易于维护的消息队列,建议使用 RabbitMQ。
  2. 如果系统使用消息队列主要场景是处理在线业务,比如在交易系统中用消息队列传递订单,需要低延迟和高稳定性,建议使用 RocketMQ。
  3. 如果需要处理海量的消息,像收集日志、监控信息或是埋点这类数据,或是你的应用场景大量使用了大数据、流计算相关的开源产品,那 Kafka 是最适合的消息队列。

3)Consumer里提到了“streaming processing services”,还提到了Spark,所以Spark和Streaming有什么关系?
Spark主要用来做数据计算,而Spark Streaming针对实时数据做计算的。Spark程序是使用一个Spark应用实例一次性对一批历史数据进行处理,Spark Streaming是将持续不断输入的数据流转换成多个batch分片,使用一批spark应用实例进行处理,侧重点在Steaming上面。具体的应用场景比如说机器学习这种需要计算大量数据。
4)Metrics collector
比如说Zabbix,用它自己的方式,可以采集Windows、Linux等各项指标内容。
5)Query service
主要就是指对TSDB提供一种查询方式,类似于关系型数据库的SQL。

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

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

相关文章

YoLoV1~YoLoV3 SPP

截止到今日,差不多对深度学习有了一定了解了,从图像分类的各种神经网络再到YOLO系列的目标检测,一步一步的逐渐实现相应功能,但对于一些具体的代码细节、部分理论,后期可能还需要加强学习和理解。但是转眼也快开学了&a…

IB 课程的挑战 (一)

近年来许多学校都引入 IB 课程 (国际预科文凭课程),让家长在为子女安排升学路途上能有更多的选择。然而,学生在修读IB课程时会遇到什么挑战呢?以下我们就会为大家分享几个有关IB课程的挑战,让各位家长得以参考。 挑战一:时间分配…

ConstraintLayout 使用详解,减少嵌套 UI, 提升性能

前言 对于初学者来说,可能觉得ConstraintLayout属性多,且属性长而弃用它,那你错失了这个大宝贝。 因为在复杂布局,我们会一直用RelativeLayout和LinearLayout去嵌套,因为嵌套的ViewGroup会导致手机多次测量和绘制&am…

解剖华为 Mate 50 Pro主板

华为Mate 50 Pro整体拆解难度中等,可还原性强。主板则是采用堆叠结构,主板1正面主要IC包括高通骁龙84G处理器芯片…… 日前,有拆解机构对华为Mate 50 Pro整机进行了拆解,表示其内部的配件大约有90%是国产元器件,如屏幕…

【Node.js实战】一文带你开发博客项目之Express重构(初始化环境,处理 session,连接 redis)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

循环UI列表

先看一下效果 支持自定义选项数量,按钮切换,鼠标滑动切换,当前项框选提示,选项缩放等功能 SlideSwitch:鼠标切换选项开关,关闭只能点击按钮切换 SlideOffset:滑动触发值,鼠标X轴向滑动大于此值切换选项,小于不触发 ScaleSwitch:缩放开关,开启…

乘法逆元 +数论分块 +平方和公式

年后准备学习啦,开学还得准备考试。 乘法逆元: 因为涉及到除法,所以取余这个操作就错误。 所以如果我们要求(a/b)%mod,我们可以假设 (a/b)%mod a*c%mod 那么c就是b的逆元。 怎么求逆元呢,其实有很多方法…

指定加拿大UBC|临床肿瘤专业应届博士成功获访问学者offer

G博士指定加拿大UBC,本人具有多年的临床工作经验,但科研产出较少。经过努力,最终我们落实了该校的访问学者职位。又历经半年的流程,G博士终于获得加拿大签证,前往UBC报到。建议:提前申请,预留出…

蓝桥杯刷题-入门题(终章一)

你是如风的少年~😃 空 清新民谣版 - 汪小敏 - 单曲 - 网易云音乐 自在的少年 - 要不要买菜 - 单曲 - 网易云音乐 最后15道入门题,做完这15道,NEWOJ就91道题AC了 目录 一,数根 二,最大值和最小值(I&…

Qt扫盲-QTime理论总结

QTime理论总结一、概述二、使用1. 属性获取2. 时间加减3. 字符串与QTime互转一、概述 QTime对象包含一个时钟时间,可以用小时数、分钟数、秒数和毫秒数来表示。它提供了比较时间和通过添加毫秒数来操作时间的函数。 QTime使用24小时时钟格式;它没有AM/…

bigemap如何设置等高线坐标系并输出

如何设置等高线坐标系并输出发布时间:2018-01-17 版权:投影设置及数据导出矢量等高线生成完成后(详细生成过程参加上一章节:矢量等高线生成),我们就能够设置投影和导出等高线数据。投影设置我们生成等高线默认的坐标是…

大数据集群环境搭建

文章目录本文要点内容大纲一、大数据集群环境搭建1.1、分布式、集群概念初识1.2、集群环境搭建1.2.1、虚拟机克隆1.2.2、修改IP、主机名1.2.3、主机名和IP映射配置1.2.4、防火墙关闭1.2.5、集群机器间免密登录1.2.6、跨机器远程copy文件1.2.7、集群的时间同步问题二、Centos软件…

【3】Linux权限管控

学习笔记目录 初识Linux--入门Linux基础命令--会用Linux权限管控--懂权限Linux实用操作--熟练实战软件部署--深入掌握脚本&自动化--用的更强项目实战--学到经验云平台技术--紧跟潮流 认知root用户 root用户(超级管理员) 无论是Windows、MacOS、L…

【iMessage苹果家庭推推送源码】掀开应用程序“终端”,输入CDDESKTOP运转指令证书

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

沁恒CH32V307单片机入门(01):基础说明与流程体验

文章目录目的基础说明芯片介绍资料与工具开发环境流程体验开发调试下载总结目的 工作这几年单片机主要就接触过 Atmel、Renesas、Microchip、ST 这些厂家的,最近几年因为内部外部的各种因素单片机的价格和供应都挺不稳定的,将来会发生什么也不好说。另外…

python jenkins使用方法/使用笔记

笔者也经常在网上查询信息,但发现很多信息都是照搬,内容甚至有错误,可用性很低.笔者就认为如果要分享就应该把遇到的问题真实的分享出来,让更多同路人少走弯路.节约时间.觉得这篇文章有帮助的同学可以点个赞!将真有用的信息传递给更多人!常用的方法安装 jenkins 依赖pip instal…

python+django校园失物招领系统_13i29.

用户注册:用户填写用户名、密码、年级、姓名、电话号码、邮箱 ,然后点击注册按钮进行注册。 用户登录:用户填写已经注册的用户名和密码并输入验证码,点击登录按钮进行登录。 搜索:用户可以在搜索栏输入关键字进行检索&…

京阳科技拟在上交所上市:计划募资12亿元,业绩波动较大

近日,山东京阳科技股份有限公司(下称“京阳科技”)预披露招股书,准备在上海证券交易所主板上市。本次冲刺上市,京阳科技计划募资12亿元,用于10万吨/年新能源锂电池材料前驱体项目。 据招股书介绍&#xff0…

【刷题】珠玑妙算

至此,我终于明白了哈希表真正的妙用。 目录 文章目录 前言 一、珠玑妙算 二、具体实现 1.哈希表的构建 2.总结规律 1)给出两个字符串:"YBBY","GYYB",构建哈希表:(少猜了一个…

ch2 计算机的发展史

1. 计算机的发展史 人类活动的需求, 推动因素: 电子技术的发展计算机体系结构技术的发展 1. 1 计算机的体系结构 冯诺依曼 体系结构的计算机; 以运算器为核心的 冯诺依曼结构; IBM 360 : 提出计算机系统结构的概念…