Prometheus架构解析 📅 2026/8/16 4:44:59 一、整体架构模式Prometheus主体是Pull拉取模型Prometheus Server主动去各个target拉取指标只有短生命周期任务使用Push推送推送到Pushgateway二、各个组件拆解1.被监控端监控目标targets①exporterJobs/exporters-- 持续运行的客户端采集程序采集CPU、内存、磁盘、网络等metrics指标-- 对外暴露/metrics接口Prometheus server pull 拉取指标数据例子node_exporter、cAdvisor、mysqld_exporter②短作业程序Short-lived jobs程序执行完就退出不会持续运行不能等待Prometheus来拉取解决办法程序结束时push推送指标给Pushgateway2.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.查询与可视化①PromQLPrometheus专属查询语句用来查询时序指标数据②Prometheus web UI自带简易web页面可以写PromQL查询自带图表③Grafana专业可视化组件调用Prometheus API做丰富仪表盘、图形展示④API clients其他程序调用 Prometheus API 获取监控数据7.完整两条数据流①长期运行服务exporter被监控主机exporter采集指标 → Prometheus ServerRetrieval 拉取 → TSDB 磁盘存储 → Grafana/webUI 展示触发告警交给 Alertmanager 发送通知②短生命周期一次性任务短作业程序 push推送指标 → Pushgateway 临时保存 → Prometheus Server pull 拉取数据 → 存储、查询、告警展示8.五大核心组件①Prometheus server核心抓取、存储、计算告警规则②exporter被监控端采集指标③grafana可视化绘图④alertmanager告警管理、发送通知⑤pushgateway短作业推送指标的中间件