031-Prometheus监控部署配置

本文介绍了Prometheus的核心概念,包括指标、数据采集、数据处理、数据存储、数据查询和告警。Prometheus采用pull方式收集监控数据,支持数据处理操作,如relabel和replace。数据存储可以选择本地或远程。告警功能需要配合Alertmanager使用。文章还详细阐述了Prometheus的组件,如server端、client端、Push Gateway、Exporters和Alertmanager的功能。最后,提供了Prometheus的安装部署步骤,包括docker服务端和客户端部署,涉及node_exporter、Prometheus和Grafana的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

prometheus 相关核心概念

a)、指标

prometheus 所有的监控指标(Metric) 被统一定义为

<metric name >{
   
	<label name>=<label value>,
	 ...
	 }

prometheus 的每一个时间序列数据都由metric(指标名称)和它的标签(labels)键值对集合唯一确定指标名称: 说明了指标的含义,例如: tcp_request_total 代表 tcp 的请求总数,指标名称必须由字母、数值下画线或者冒号组成,符合正则表达式,如 [a-zA-Z:][a-zA-Z0-9:]*。标签(label) 则用于过滤和聚合;

b)、数据采集

prometheus 采用pull 方式采集监控数据,和采用push 方式采集监控数据不同,

push 方式: agent 主动上报数据,可以将采集的数据立即上报到监控中心,push 方式本地不会保存采集的数据,agent 本身是无状态的服务,master 需要维护各种agent 状态

pull 方式: master 主动拉取 agent 的数据,周期性采集,采集时间为30s 或者更长时间,
agent 本身需要一定的数据存储能力,master 只负责简单的数据拉取

c)、数据处理

prometheus 支持数据处理,主要包括 relabel 、replace、keep、drop

d)、数据存储

prometheus 支持本地存储和远程存储两种方式

e)、数据查询

prometheus 使用promQL 查询

f)、告警

prometheus 本身不会对报警进行处理、需要借助一个组件alertmanager ,prometheus 会配置alertmanager 地址,这样prometheus 发出的告警记录变可以发送到alertmanager 进行处理。
在这里插入图片描述
Prometheus通过配置文件中指定的服务发现方式来确定要拉取监控指标的目标(Target),接着从要拉取的目标(应用容器和Pushgateway)发起HTTP请求到特定的端点(Metric Path),将指标持久化至本身的TSDB中,TSDB最终会把内存中的时间序列压缩落到硬盘,除此之外,Prometheus会定期通过PromQL计算设置好的告警规则,决定是否生成告警到Alertmanager,后者接收到告警后会负责把通知发送到邮件或企业内部群聊中。

Prometheus的指标名称:只能由 ASCII 字符、数字、下划线以及冒号组成,而且有一套命名规范:

使用基础Unit(如seconds而非milliseconds)
指标名以application namespace作为前缀,如:
process_cpu_seconds_total
http_request_duration_seconds
用后缀来描述Unit,如:
http_request_duration_seconds
node_memory_usage_bytes
http_requests_total
process_cpu_seconds_total
foobar_build_info

prometheus 组件:

1)prometheus server 端 :

负责定时在目标上抓取metrics(指标)数据,每个抓取目标都需要暴露一个http 服务接口用于 prometheus 定时抓取,这种调用监控对象获取监控数据的方式称为pull

2)prometheus client 端:

为需要监控的服务生成相应的 metrics 并暴露给 Prometheus server

3)Push Gateway:

主要用于短期的 jobs。由于这类 jobs 存在时间较短,可能在Prometheus 来 pull 之前就消失了。为此,这次 jobs 可以直接向 Prometheus server 端推送它们的 metrics。这种方式主要用于服务层面的 metrics,对于机器层面的 metrices,需要使用 node exporter。

4)Exporters:

支持如 HAProxy,StatsD,Graphite,Redis 一类的服务;

5)Alertmanager:

从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty,OpsGenie, webhook 等。

安装部署过程

目标:

安装部署prometheus服务监控端
监控一个远端机器
监控一个服务:mysql

docker服务端部署:

1、部署node_exporter数据采集:

docker run -d --name=node
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度学习0407

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值