首页/云/可观测性速查/Prometheus 架构与组件概览
Prometheus 与采集64 条

Prometheus 架构与组件概览

Prometheus 是拉取模型的时序监控系统:服务端按配置抓取目标、写入本地 TSDB,规则引擎持续评估记录与告警规则,通过 HTTP API 供 Grafana 等消费。

可观测性速查云更新于 2026-10-13

Prometheus 是什么

Prometheus 是开源的时序监控与告警系统,采用拉取模型:按配置定期通过 HTTP 抓取目标的 metrics 端点,把样本写入本地时序库,再由规则引擎持续评估记录规则与告警规则。它由 SoundCloud 开源后成为 CNCF 毕业项目,其查询语言 PromQL 被大量同类系统沿用,是容器与云原生环境监控的事实标准。

基本信息

采集模型拉取为主,短生命周期任务可经 Pushgateway 中转
默认端口Prometheus 9090,Pushgateway 9091,Alertmanager 9093
数据存储本地时序库,默认保留 15 天,按时间分块并压实
查询接口HTTP API:/api/v1/query 与 /api/v1/query_range
配置文件/etc/prometheus/prometheus.yml

典型使用场景

  • 主机与容器资源监控:配合 node_exporter 采集 CPU、内存、磁盘、网络
  • 应用指标与告警:服务暴露请求数、错误数、耗时直方图,规则引擎自动判定异常
  • 容器编排集成:从 Kubernetes API 自动发现目标并按标签分片抓取
  • SLO 度量:以 PromQL 计算成功率与延迟,为错误预算提供数据
  • 统一数据出口:通过远程写把样本转发到长期存储,或用联邦汇总多集群

核心组件

组件职责默认端口
Prometheus Server抓取、存储、查询、规则评估9090
Exporter把目标系统指标转换为 metrics 端点9100(node_exporter)等
Pushgateway接收短生命周期任务的推送指标9091
Alertmanager告警去重、分组、抑制、静默与通知9093
Grafana查询与可视化,常与整套体系搭配使用3000

组件关系示意

组件关系示意
[exporters] --scrape--> [Prometheus] --alerts--> [Alertmanager] --notify--> 值班通道
                             |  HTTP API (/api/v1/query)
                             v
                          [Grafana]
                             |
                        remote_write --> 长期存储(Thanos / Mimir / VictoriaMetrics)

验证服务是否正常

验证服务是否正常
curl -s http://127.0.0.1:9090/-/healthy          # 存活探针
curl -s 'http://127.0.0.1:9090/api/v1/targets' | head -c 400   # 抓取目标状态
curl -s 'http://127.0.0.1:9090/api/v1/query?query=up' | head -c 400  # 查询 up 指标

拉取模型的取舍

方面优势代价
目标可发现性服务端集中配置节奏,目标上下线可观测动态环境需依赖服务发现而非手工登记
采集可控性抓取间隔与超时由服务端统一调整短生命周期任务需要 Pushgateway 补齐
容量边界单实例抓取与存储能力有明确上限大规模要靠分片、联邦或远程写扩展
Prometheus 默认单机存储、无内置长期归档:跨集群汇总与多年留存通常配合远程写、Thanos 或 Mimir 一类方案,本地只保留热数据。
热加载只作用于配置文件:数据保留期等命令行参数改动必须重启进程,重启期间规则评估会短暂中断。

一次抓取的完整链路

抓取的链路是:服务发现产出目标列表,relabel 阶段改写目标标签,随后按间隔发起 HTTP 请求,样本先写入预写日志再异步压实落盘,最后由查询引擎对外提供。这条链路也给出了定位思路:目标列表为空属于服务发现问题,目标抓到却报错属于网络或鉴权问题,查询变慢则多半与序列基数有关。

为什么 PromQL 要单独学

PromQL 是围绕时间序列设计的查询语言:选择器先筛出序列,函数把序列转换成速率、分位或趋势,聚合运算符再裁剪维度。它与 SQL 的思维差别明显,速率计算与向量匹配是最容易踩坑的两处,也是排障时最常被误用的部分。

规模变大后的常见问题

  • 抓取超时:目标数量与端点耗时同时增长时,抓取耗时先逼近超时阈值
  • 规则评估变慢:单个规则组负担过重会拖长评估周期,表现为告警延迟
  • 存储吃紧:高基数指标同时推高内存与磁盘占用,需要提前做指标治理
  • 查询变慢:面板一次拉取过多序列,通常靠聚合与降采样缓解
  • 配置膨胀:多个抓取任务叠加大量 relabel 规则后,配置文件需要拆分与评审

易错点

  • 把 Prometheus 当长期存储用:默认保留期有限,历史数据依赖远程存储方案补齐
  • 单实例承载过多目标:先遇到的往往是抓取与规则评估瓶颈,需要按功能分区或多实例分片
  • 规则评估周期与抓取周期不匹配:评估过密会读到不完整样本,过疏则告警延迟明显
  • 外部标签未规划:多集群汇总时样本会互相覆盖,需要提前设计 cluster、replica 等标识

数据来源与参考

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌