Prometheus入门

一、Prometheus

1、什么是Prometheus

Prometheus是一个开源监控系统,它前身是SoundCloud告警工具包。现在已经加入到了CHCF基金会称为继k8s之hi偶第二个在CNCF托管的项目。在k8s容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报。Prometheus性能可以支持上万规模的集群。

2、Prometheus的特点

①多维度数据模型:每一个时间序列数据都由metric度量指标名称和它的标签labels键值对集合唯一确定。
②灵活的查询语言(PromQL):可以对采集的metrics指标进行假发、乘法、连接等操作。
③可以直接在本地部署,不依赖其他分布式存储
④通过基于http的pull方式采集时序数据。
⑤可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server端。
⑥可以通过服务发现或者静态配置来反线目标服务对象(targets)。
⑦有多种可视化图形界面,例如Grafana等。
⑧高效的存储,每个采样数据占3.5bytes左右,300w的时间序列,30s间隔,保留60天,消耗磁盘大概200G。
⑨高可用,可以对数据做异地备份,部署多台prometheus,pushgateway上报数据。

3、样本

在时间序列中的每一个点称为一个样本,样本由三个部分组成

①指标(metric)

指标名称和描述当前样本特征的labelsets

②时间戳(timestamp)

一个精确到毫秒的时间戳

③样本值(value)

一个folat64的浮点型数据表示当前样本的值。

4、组件

①prometheus server

用于收集和存储时间序列数据

②client library

客户端库,检测应用程序代码。当prometheus抓取实例的http端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。

③exporters

prometheus支持多种exporter,通过exporter可以采集metrics数据然后发送到prometheus server端。所有向prometheus server端提供监控数据的程序都可以被称为exporter。

④alertmanager

从prometheus server端接收到alerts后会进行去重、分组、并发送给到镶银的接收方,发出报警。常见的接收方式有:电子邮件、微信、丁丁等。

⑤grafana

监控仪表盘,可以可视化监控数据。

⑥pushgateway

各个目标主机可上报数据到pushgateway然后prometheus server同意从pushgateway拿取数据。

5、工作流程

①Prometheus server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据;
②Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;
③Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager;
④Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等;
⑤Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据;
⑥Grafana可接入prometheus数据源,把监控数据以图形化形式展示出。

二、prometheus的四种数据类型

1、计数器类型(counter)

①counter用于累计值;
②只会增加,不会减少;
③重启进程后将会重置。
counter类型数据可以让用户方便的了解时间长省的速率的变化,在PromQL内置的相关操作函数可以提供相应的分析。

2、测量器类型(gauge)

①gauge时常规数值,例如温度变化、内存使用变化;
②可变大变小;
③重启进程后会被重置。

3、柱状图(histogram)

①在一段时间时间范围内对数据进行采样(通常时请求持续时间或响应大小等),并将其iru可配置的存储桶中。后续可通过指定区间筛选样本,也可以统计样本总数,最后一般将数据展示为直方图。
②对每个采样点值累计和(sum)。
③对采样点的次数累计和(count)。

4、summary

用于表示一段时间内的数据采样结果(通常是请求持续时间或响应大小等),但可以直接存储分位数(通过客户端计算然后展示出阿来)而不是通过区间来计算。
①对每个采样点进行统计并形成分位图。
②统计样本值大小和(sum)。
③统计样本总数(count)。

三、Prometheus安装部署

①解压缩并改为prometheus

在这里插入图片描述

②启动Prometheus

前台启动
在这里插入图片描述
后台启动

③访问

浏览器访问ip:9090
Prometheus默认端口9090
在这里插入图片描述


版权声明:本文为sjc090132原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。