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

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

3天内不再提示

普罗米修斯:接近完美的监控系统

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-17 11:44 次阅读

普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统。当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的监控系统,即普罗米修斯。

普罗米修斯(下称普罗)的作者 Matt T.Proud 在2012年加入SoundCloud公司,他从google的监控系统Borgmon中获得灵感,与另一名工程师Julius Volz合作开发了开源的普罗,后来其他开发人员陆续加入到该项目,最终于2015年正式发布。

普罗基于Go语言开发,其架构图如下:

图片

其中:

  • Prometheus Server: 用数据的采集和存储,PromQL查询,报警配置。
  • Push gateway: 用于批量,短期的监控数据的汇报总节点。
  • Exporters: 各种汇报数据的exporter,例如汇报机器数据的node_exporter,汇报MondogDB信息的 MongoDB_exporter 等等。
  • Alertmanager: 用于高级通知管理。

1.怎么采集监控数据?

要采集目标(主机或服务)的监控数据,首先就要在被采集目标上安装采集组件,这种采集组件被称为Exporter。prometheus.io官网上有很多这种exporter,比如:

Consul exporter ( official )
Memcached exporter ( official )
MySQL server exporter ( official )
Node/system metrics exporter ( official )
HAProxy exporter ( official )
RabbitMQ exporter
Grok exporter
InfluxDB exporter ( official )

这些exporter能为我们采集目标的监控数据,然后传输给普罗米修斯。这时候,exporter会暴露一个http接口,普罗米修斯通过HTTP协议使用Pull的方式周期性拉取相应的数据。

不过,普罗也提供了Push模式来进行数据传输,通过增加 Push Gateway这个中间商实现 ,你可以将数据推送到Push Gateway,普罗再通过Pull的方式从Push Gateway获取数据。

这就是为什么你从架构图里能看到两个 Pull metrics 的原因,一个是采集器直接被Server拉取数据(pull);另一个是采集器主动Push数据到Push Gateway,Server再对Push Gateway主动拉取数据(pull)。

采集数据的主要流程如下:

  1. Prometheus server 定期从静态配置的主机或服务发现的 targets 拉取数据(zookeeper,consul,DNS SRV Lookup等方式)
  2. 当新拉取的数据大于配置内存缓存区的时候,Prometheus会将数据持久化到磁盘,也可以远程持久化到云端。
  3. Prometheus通过PromQL、API、Console和其他可视化组件如Grafana、Promdash展示数据。
  4. Prometheus 可以配置rules,然后定时查询数据,当条件触发的时候,会将告警推送到配置的Alertmanager。
  5. Alertmanager收到告警的时候,会根据配置,聚合,去重,降噪,最后发出警告。

2.采集的数据结构与指标类型

2.1 数据结构

了解普罗米修斯的数据结构对于了解整个普罗生态非常重要。普罗采用键值对作为其基本的数据结构:

图片

Key是指标名字,Value是该指标的值,此外Metadata(元信息)也非常重要,也可称之为labels(标签信息)。这些标签信息指定了当前这个值属于哪个云区域下的哪台机器,如果没有labels,数据有可能会被丢失。

2.2 指标类型

普罗米修斯的监控指标有4种基本类型:

1 . Counter (计数器 ):

计数器是我们最简单的指标类型。比如你想统计某个网站的HTTP错误总数,这时候就用计数器。

计数器的值只能增加或重置为0,因此特别适合计算某个时段上某个时间的发生次数,即指标随时间演变发生的变化。

2.Gauges

Gauges可以用于处理随时间增加或减少的指标,比如内存变化、温度变化。

这可能是最常见的指标类型,不过它也有一定缺点:如果系统每5秒发送一次指标,普罗服务每15秒抓取一次数据,那么这期间可能会丢失一些指标,如果你基于这些数据做汇总分析计算,则结果的准确性会有所下滑。

3.Histogram(直方图 )

直方图是一种更复杂的度量标准类型。它为我们的指标提供了额外信息,例如观察值的总和及其数量,常用于跟踪事件发生的规模。

比如,为了监控性能指标,我们希望在有20%的服务器请求响应时间超过300毫秒时发送告警。对于涉及比例的指标就可以考虑使用直方图。

4.Summary(摘要)

摘要更高级一些,是对直方图的扩展。除了提供观察的总和和计数之外,它们还提供滑动窗口上的分位数度量。分位数是将概率密度划分为相等概率范围的方法。

对比直方图:

  1. 直方图随时间汇总值,给出总和和计数函数,使得易于查看给定指标的变化趋势。
  2. 而摘要则给出了滑动窗口上的分位数(即随时间不断变化)。

3.实例概念

随着分布式架构的不断发展和云解决方案的普及,现在的架构已经变得越来越复杂了。

分布式的服务器复制和分发成了日常架构的必备组件。我们举一个经典的Web架构,该架构由3个后端Web服务器组成。在该例子中,我们要监视Web服务器返回的HTTP错误的数量。

使用普罗米修斯语言,单个Web服务器单元称为实例(主机实例)。该任务是计算所有实例的HTTP错误数量。

图片

事实上,这甚至可以说是最简单的架构了,再复杂一点,实例不仅能是主机实例,还能是服务实例,因此你需要增加一个instance_type的标签标记主机或服务。

再再复杂一点,同样的IP,可能存在于不同云区域下,这属于不同的机器,因此还需要一个cloud标签,最终该数据结构可能会变为:

cpu_usage {job="1", instance="128.0.0.1", cloud="0", instance_type="0"}

4.数据可视化

如果使用过基于InfluxDB的数据库,你可能会熟悉InfluxQL。普罗米修斯也内置了自己的SQL查询语言用于查询和检索数据,这个内置的语言就是PromQL。

我们前面说过,普罗米修斯的数据是用键值对表示的。PromQL也用相同的语法查询和返回结果集。

PromQL会处理两种向量:

即时向量:表示当前时间,某个指标的数据向量。

时间范围向量:表示过去某时间范围内,某个指标的数据向量。

如针对8核CPU的使用率:

图片

知道怎么提取数据后,可视化数据就简单了。

Grafana是一个大型可视化系统,功能强大,可以创建自己的自定义面板,支持多种数据来源,当然也支持普罗米修斯。

通过配置数据源,Grafana会使用相应的SQL拉取并绘制图表,能直接看到普罗米修斯的各个指标数据图表:

图片

更方便的是,Grafana有很多仪表盘模板供你使用,只要import模板进行简单的配置,就能得到以下效果:

图片

5.应用前景

普罗米修斯非常强大,可以应用到各行各业。

5.1 DevOps

为了观察整个服务体系是否在正常运转,运维非常需要监控系统。在实例的创建速度和销毁速度一样快的容器世界中,灵活配置各类容器的监控项并迅速安装启动监控是非常重要的。

5.2 金融行业

金融服务巨头Northern Trust于2017年6月选择普罗米修斯,不是为了进行应用程序的监视,而是为了更好地了解其某些硬件的运作情况。Northern Trust使用普罗米修斯监控其平台上的750多种微服务。

5.3 汽车行业

Life360是一款用于定位、行车安全和家庭成员之间共享信息的移动应用程序,他们需要给用户提供稳定的定位服务,而原有的监控方案都非常局限,无法监视到所有组件的工作状态。

因此该公司使用普罗米修斯来监视其MySQL多主群集和一个12节点的Cassandra环,该环可容纳约4TB的数据。普罗米修斯在初步测试中表现良好。

在普罗米修斯的有限部署之后,Life360报告了监控方面的巨大进步,并设想在其数据中心基础架构的其他部分中使用它。

总而言之,普罗米修斯这样的分布式监控系统,在未来的世界中用处可能会越来越大,它或许将会成为监控领域寡头式的存在,希望我们能熟悉这个工具,并在以后的架构和实践中使用它解决系统和应用监控的问题。

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

    关注

    8

    文章

    7002

    浏览量

    88943
  • 存储
    +关注

    关注

    13

    文章

    4296

    浏览量

    85800
  • 监控系统
    +关注

    关注

    21

    文章

    3904

    浏览量

    174423
  • 开源
    +关注

    关注

    3

    文章

    3309

    浏览量

    42471
收藏 人收藏

    评论

    相关推荐

    普罗米修斯的火种 以色列创新技术和IoT领域专家引到中国创新之都深圳

    创新如同普罗米修斯的火种,为人类文明的延续与发展燃起了希望之光。不论是曾震惊世界的中国古代四大发明、诞生于美国硅谷的第一台可编程计算机,还是令沙漠开出花朵的以色列滴灌技术,都体现出了人类在不同时期
    的头像 发表于 11-27 15:29 1.8w次阅读

    速腾聚创首次发布LiDAR算法 六大模块助力自动驾驶

    、车道标识线检测、障碍物检测、动态物体跟踪、障碍物分类识别等六大功能模块,有助于自动驾驶车辆立刻获得LiDAR感知能力。今年4月份,速腾聚创宣布启动“普罗米修斯”计划,致力于向合作伙伴提供一系列软硬件
    发表于 10-13 16:08

    即插即用的自动驾驶LiDAR感知算法盒子 RS-Box

    "高精度定位、障碍物识别、动态物体跟踪、车道线检查......"你的智能汽车准备好升级L3级别以上的LiDAR算法方案了吗?今年4月份,速腾聚创推出「普罗米修斯」计划。该计划承诺
    发表于 12-15 14:20

    人工智能的神奇复活

    了青春,引发了新一轮研究,例如,公开抓物演示,引起了对机器人的恐惧潮,使得人们重新思考系统设计的某些门类。 图1. 就像“现代普罗米修斯”中的怪物,AI通过对早期概念的修修补补看起来又复活了。
    发表于 07-16 09:00

    普罗米修斯芯片布局

    发表于 02-16 17:48 16次下载

    电解液行业的普罗米修斯什么时候会降临?

    受益新能源车高速发展,电解液未来需求增速高,或将逐渐呈现成长性。预计到2020 年,国内锂电池需求量有望达到153GWh,对应电解液需求量22.7 万吨。
    的头像 发表于 07-11 10:37 2949次阅读

    数字货币交易平台“IX”能做些什么?

    lX是全球首家支持比特币作为平台权益证明的交易所,持有比特币的平台用户,按照在平台。上的比特币持有比例分配平台的部分收入。比特币就是区块链世界的普罗米修斯之火。比特币的火焰应该燃烧在每一个区块链信徒的心灵的圣坛之中。这是我们致敬的方式,也是我们时时照看初心的方式。
    发表于 09-25 10:55 6262次阅读

    中通最新油电混合无人机完成首飞

    12月7日,中通快递最新发布的普罗米修斯1600A油电合物流无人机在国家级贫困县陕西旬阳完成山区恶劣天气条件下首次载货飞行。
    的头像 发表于 12-12 10:58 4201次阅读

    小度在家体验 代表了旗舰标杆的水准

    5月底百度推出了普罗米修斯计划—小度校园Open Day活动开始在全国范围内展开,全年计划走访6大城市的10余所高校,同时选拔高校学子作为小度在家的体验官。
    的头像 发表于 04-12 11:04 2382次阅读

    AI在医疗领域的潜力露出冰山一角 心血管领域痛点问题或能解决

    电影《普罗米修斯》中有一个桥段,女主通过全自动手术机器人取出寄生在体内的外星生物。电影展现的医疗AI,给我们带来了强烈的视觉震撼与对未来无限的遐想!或许某一天电影中的情节能够实现。
    发表于 03-27 10:31 2158次阅读

    1G空白、2G跟随、3G参与、4G追赶,5G同步!中国移动通信发展史

    在这场如普罗米修斯为人间盗火一般的时刻里,中国的有志之士第一次和西方同仁站在了同一起跑线上。
    的头像 发表于 03-28 16:17 1.9w次阅读

    部署普罗米修斯(Prometheus)监控平台前需考虑的六大因素

    企业在采用容器的同时,也将容器的监控问题放在了比较优先的位置上,不少企业使用普罗米修斯(Prometheus)监控容器和微服务,对于规模企业通常会更加激进,所以当他们规模部署时将面临扩展的挑战。
    的头像 发表于 09-07 10:16 5541次阅读

    从仿象到仿真,什么才是真实的世界?

    纵观人类文明史,可以说,技术的发展与人的生存相伴相生。早在古希腊时代,就有柏拉图对于“爱比造人”的技术源发性意义的思考。而普罗米修斯为人类盗来的技术与火种正是人类得以超越自身“缺
    的头像 发表于 10-08 14:00 1790次阅读

    人工智能在医疗影像领域还能走多远

    012年,美国科幻大片《普罗米修斯》中,女主在太空舱里让机器人帮自己做剖腹手术的情节令人印象深刻。8年后,尽管科幻理想尚未照进现实中的手术室,人工智能却已深度介入生命健康管理的各个阶段,在辅助诊断、介入治疗、术后康复和健康监测等方面不断打磨医疗精度。
    的头像 发表于 11-29 10:59 2998次阅读

    网龙子公司普罗米推出ActivPanel LX

    其全球领先的课堂技术子公司普罗米,推出一款价格较低的互动平板ActivPanel LX,为客户提供更优越的易用性及灵活性功能,同时保证产品的质量和使用寿命。随着这一新产品的推出,普罗米
    的头像 发表于 05-05 06:56 474次阅读