Prometheus架构解析

一、整体架构模式

Prometheus主体是Pull(拉取)模型:Prometheus Server主动去各个target拉取指标;

只有短生命周期任务使用Push(推送),推送到Pushgateway

二、各个组件拆解

1.被监控端(监控目标targets)

①exporter(Jobs/exporters)

-- 持续运行的客户端采集程序,采集CPU、内存、磁盘、网络等metrics指标

-- 对外暴露/metrics接口,Prometheus server pull 拉取指标数据

例子:node_exporter、cAdvisor、mysqld_exporter

②短作业程序Short-lived jobs

程序执行完就退出,不会持续运行,不能等待Prometheus来拉取

解决办法:程序结束时,push推送指标给Pushgateway

2.Pushgateway(中间人,临时存放数据)

作用:专门接收短生命周期任务推送过来的监控指标,做临时存储

-- 注意:不是给普通exporter使用,只给一次性短作业使用

3.Service discovery 服务发现

自动发现监控target目标,不用手动写大量targets

①kubernetes:对接k8s,自动发现pod、service

②file_sd:读取配置文件,动态加载监控目标

4.Prometheus Server 服务核心(三大模块)

①Retrieval 抓取模块

按照scrape_interval抓取间隔(图中标15s),主动pull拉取各个target的metrics指标

②TSDB时序数据库

把采集到的指标,以时间序列格式持久化保存到磁盘(HDD/SSD)

时间序列:指标名+标签+时间戳+数值

③HTTP server API

对外提供API接口,支持PromQL查询,提供Web UI访问

5.告警链路

①Prometheus内部根据告警规则计算,产生警告,push推送给Alertmanager

②Alertmanager告警管理器:接受告警,做去重、分组、降噪

③通知渠道:Email邮件、pagerduty、微信、短信、电话等通知运维工程师

6.查询与可视化

①PromQL:Prometheus专属查询语句,用来查询时序指标数据

②Prometheus web UI:自带简易web页面,可以写PromQL查询,自带图表

③Grafana:专业可视化组件,调用Prometheus API,做丰富仪表盘、图形展示

④API clients:其他程序调用 Prometheus API 获取监控数据

7.完整两条数据流

①长期运行服务(exporter)

被监控主机exporter采集指标 → Prometheus Server(Retrieval 拉取 → TSDB 磁盘存储) → Grafana/webUI 展示;触发告警交给 Alertmanager 发送通知

②短生命周期一次性任务

短作业程序 push推送指标 → Pushgateway 临时保存 → Prometheus Server pull 拉取数据 → 存储、查询、告警展示

8.五大核心组件

①Prometheus server:核心,抓取、存储、计算告警规则

②exporter:被监控端采集指标

③grafana:可视化绘图

④alertmanager:告警管理、发送通知

⑤pushgateway:短作业推送指标的中间件

相关推荐
程序员-Benothing1 小时前
Linux系统监控工具全家桶:sar、dstat、glances、Prometheus
linux·运维·prometheus
wzq11_6665 小时前
Prometheus监控——云原生与非云原生监控
云原生·prometheus
东风微鸣1 天前
把 Tailscale 接进 Prometheus 监控
java·数据库·prometheus
Kendra9191 天前
运维监控平台(Prometheus + Grafana)部署与维护
运维·grafana·prometheus
Dovis(誓平步青云)1 天前
一年1956亿行:智能电表场景下的时序数据存储实践
运维·前端·自动化·音视频·prometheus
空空dream2 天前
06 | Prometheus打通FastAPI云原生数据采集
云原生·prometheus·fastapi
Dovis(誓平步青云)3 天前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus
龙腾-虎跃6 天前
Docker 一键启动服务合集:Redis、MySQL、Kafka、MinIO、Prometheus 等(网盘转存防失效)
redis·mysql·docker·kafka·prometheus·小龙虾·miniio
Duang007_7 天前
生产可观测性:从“系统慢“到“根因“的完整链路(Go / TypeScript)
后端·python·golang·typescript·prometheus
JWASX7 天前
go 学习 - prometheus 指标学习
学习·golang·prometheus