48小时系统班试听入口

什么是 Promethues | 普罗米修斯( 集群监控系统 )

发布作者:新盟教育 发布日期:2022-12-05 浏览人数:2145人

运维技术详解

资源放送 

  • ↓ 扫一扫 

  • 领取Promethues录屏资料

  • 网页同步文章.png


Prometheus是什么


Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。

Prometheus用Go语言开发,是Google BorgMon监控系统的开源版本。

前面我们说一个较为完整数仓集群,不管是离线数仓,还是实时数仓,为了很好的管理集群,我们还需任务调度框架、资源管理框架、元数据管理、权限管理和监控管理等框架。

集群资源监控就是实现对集群资源监控的一种框架,通常搭配Grafan数据可视化展示数据。

类似功能的还有GangliaZabbix等。


监控系统

什么是监控系统?

监控系统在这里特指对数据中心的监控,主要针对数据中心内的硬件和软件进行监控和告警。

随着技术不断迭代,越来越复杂的数据中心环境对监控系统提出了更越来越高的要求:

  • 需要监控不同的对象,例如容器,分布式存储,SDN网络,分布式系统。

  • 需要采集和存储大量的监控数据,例如每天数TB数据的采集汇总。

  • 以及基于这些监控数据的智能分析,告警及预警等。


在每个企业的数据中心内,或多或少都会使用一些开源或者商业的监控系统。从监控对象的角度来看,可以将监控分为网络监控,存储监控,服务器监控和应用监控等。

因为需要监控数据中心的各个方面。所以监控系统需要做到面面俱到,在数据中心中充当“天眼“角色。

监控分类


Google指出,监控分为白盒监控和黑盒监控之分。

  • 白盒监控:通过监控内部的运行状态及指标判断可能会发生的问题,从而做出预判或对其进行优化。

  • 黑盒监控:监控系统或服务,在发生异常时做出相应措施。

监控目的


  • 根据历史监控数据,对为了做出预测;

  • 发生异常时,及时报警,或做出相应措施;

  • 根据监控报警及时定位问题根源;

  • 通过可视化图表展示,便于直观获取信息。

简介

描述


2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation),将Prometheus纳入其下第二大开源项目。

Prometheus性能也足够支撑上万台规模的集群。

应用场景

适用场景:

它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。

Prometheus在记录纯数字时间序列方面表现非常好。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。它的搭建过程对硬件和服务没有很强的依赖关系。

不适用场景:

Prometheus它的价值在于可靠性,甚至在很恶劣的环境下,你都可以随时访问它和查看系统服务各种指标的统计信息,如果你对统计数据需要100%的精确,它并不适用,例如:它不适用于实时监控系统。

Promethue的优点

1、强大的多维度数据模型:

  • 时间序列数据通过metri名和键值对来区分。

  • 所有的metric都可以设置任意的多维标签。

  • 数据模型更随意,不需要刻意设置为以点分隔的字符串。

  • 可以对数据模型进行聚合,切割和切片操作。

  • 支持双精度浮点类型,标签可以设为unicode。

2、灵活而强大的查询语句(PromQL):

在同一个查询语句,可以对多metric进行乘法、加法、连接、取分数位等操作。

3、易于管理:

Prometheusserve是一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储

4、高效:

平均每个采样点仅3.bytes,且一Prometheusserve可以处理数百万的 metrics。

5、采用pul模式采集时间序列数据:

这样不仅有利于本机测试而且可以避免有问题的服务器推送坏metrics。

6、采用pushgatewa推送数据:

采用pushgatewa的方式把时间序列数据推送Prometheusserve端。

7、可以通过服务发现或者静态配置去获取监控targets。

8、有多种可视化图形界面和易于伸缩。


111111111111111111111111111111111111.png


软件架构


Prometheus Server

Prometheus ServePrometheu组件中的核心部分,负责实现对监控数据的获取,存储以及查询。

Prometheus Serve可以通过静态配置管理监控目标,也可以配合使用 Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。

Prometheus Serve需要对采集到的监控数据进行存储,Prometheus Server 本身就是一个时序数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。

Prometheus Serve对外提供了自定义的PromQ语言,实现对数据的查询以及分析。

Prometheus Serve内置Express Browser UI,通过这个UI可以直接通过 PromQL实现数据的查询以及可视化。


Client Library

客户端库,为需要监控的服务生成相应的metrics并暴露给Prometheus server。

当Prometheus server来pull时,直接返回实时状态metrics。


Push Gateway

主要用于短期的jobs。由于这类job存在时间较短,可能在Prometheus来 pull 之前就消失了。

为此,这次jobs可以直接向Prometheusserver端推送它们的metrics。

这种方式主要用于服务层面的metrics,对于机器层面的metrices,需要使用 node exporter。


Exporters

用于暴露已有的第三方服务的metrics给Prometheus。

主要用来采集数据,并通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的接口,即可获取到需要采集的监控数据。

常见的Exporter有很多,例如node_exporter、mysqld_exporter、haproxy_exporter等,支持如 HAProxy、StatsD、Graphite、Redis此类的服务监控。


Alertmanager

警报管理器。从Prometheus server端接收到alerts后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。

常见的接收方式有:电子邮件,pagerduty,OpsGenie, webhook等。


工作流程

1、Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态

任意组件只要提供对应的HTTP接口就可以接入监控。

2、输出被监控组件信息的HTTP接口被叫exporter。

3、prometheus根据配置定时去拉取各个节点的数据,默认使用的拉取方式是pull。也可以使用pushgateway提供的push方式获取各个监控节点的数据。

将获取到的数据存入TSDB(时序型数据库)。

4、此时prometheus已经获取到了监控数据,可以使用内置的PromQL进行查询。

它的报警功能使用Alertmanager提供,Alertmanager是prometheus的告警管理和发送报警的一个组件。

5、在Grafana或其他API客户端中,可视化收集的数据。


PromQL


概念

PromQL(Prometheus Query Language)是Prometheus自己开发的数据查询DSL 语言。

说明

1、Prometheus数据展现除了自带的WebUI还可以通过Grafana,他们本质上都是通过HTTP + PromQL的方式查询Prometheus数据。

2、和关系型数据库的SQL类似,Prometheus也内置了数据查询语言PromQL,它提供对时间序列数据丰富的查询,聚合以及逻辑运算的能力。

数据运算方式:

  • +(加法)

  • -(减法)

  • *(乘法)

  • /(除法)

  • %(求余)

  • ^(幂运算)


聚合函数:

  • sum(求和)

  • min(最小值)

  • max(最大值)

  • avg(平均值)

  • stddev(标准差)

  • stdvar(标准差异)

  • count(计数)

  • count_values(对value进行计数)

  • bottomk(后n条)

  • topk(前n条)

  • quantile(分布统计)






1671585dc74035d34ac554d5f2ae42fc.jpg


推荐阅读

>>>新手必备-Linux入门之云计算是什么

>>>红帽认证入门-Linux系统介绍及企业版本选型

>>>新手必备-Linux系统安装配置+Xshell远程连接

>>>Linux常用命令行合集之绝对路径和相对路径

>>>软连接与硬连接

客服电话 15822722968 邮箱 799830458@qq.com 地址 天津市红桥区光荣道157号宝能创业中心2号楼-1、2门-907号
官方公众号
商务合作