一、一句话定义
Prometheus 是一套开源、时序型监控告警系统,由 Google Borg 监控体系衍生,2016 年加入 CNCF 并毕业,现在是云原生标准监控方案,专门用来采集服务器、容器、数据库、中间件、业务程序的指标(Metrics)。
二、核心特性
- 时序数据存储 所有监控数据带时间戳,格式:
指标名{标签key=value} 数值 时间戳,适合 CPU、内存、QPS、延迟这类持续变化数值。 - Pull 拉取采集模型 Prometheus 主动定期去各服务拉指标,而非服务主动上报;配套支持 PushGateway 接收短生命周期任务(CI/Job)推送数据。
- 多维标签(Label) 通过标签区分实例、环境、集群、接口,例如
http_requests_total{env="prod",instance="10.0.0.1",path="/api/list"},灵活聚合筛选。 - 内置强大查询语言 PromQL 可做求和、平均值、速率、环比、聚合、阈值判断,用于绘图和告警规则。
- 独立告警组件 AlertManager 分离告警逻辑,支持告警分组、抑制、静默、路由,对接钉钉、企业微信、邮件、短信等。
- 无强依赖,单机可部署 自带本地时序数据库,不需要额外存储;大规模集群可搭配远程存储(Thanos、Mimir)。
- 丰富生态 Exporter 各类组件专用采集程序,开箱即用。
三、整体架构组件
1. Prometheus Server(核心服务)
- 抓取目标指标(Scrape)
- 本地存储时序数据
- 提供 PromQL 查询接口
- 加载告警规则,生成告警发送给 AlertManager
2. Exporter(指标采集器)
业务 / 组件本身不暴露 Prometheus 格式指标,靠 Exporter 转换输出:
- node-exporter:服务器 CPU、内存、磁盘、网络
- mysqld-exporter /redis-exporter:数据库监控
- nginx-exporter:Nginx 流量、连接数
- kube-state-metrics:K8s 集群资源指标
- blackbox-exporter:端口、HTTP、DNS 拨测
- 自定义:业务代码埋点暴露
/metrics接口(Java/Python/Go 都有 SDK)
3. Push Gateway
针对批处理、一次性任务(定时脚本、CI 任务),程序主动把指标推送到网关,再由 Prometheus 拉取。
4. AlertManager
接收 Prometheus 产生的告警,做二次处理:
- 去重、分组
- 告警抑制(宕机后屏蔽关联子告警)
- 告警静默(临时屏蔽)
- 分发到各类通知渠道
5. Grafana(配套可视化)
Prometheus 只存数据、提供查询,无美观大屏;Grafana 对接 Prometheus 做监控大盘、曲线图、仪表盘。
四、数据采集流程
- 被监控端(程序 / Exporter)开放
/metricsHTTP 接口,输出纯文本格式指标; - Prometheus 根据配置
scrape_configs定时 HTTP 请求拉取数据; - 数据存入本地时序库;
- Grafana 使用 PromQL 查询渲染图表;
- 满足告警阈值时,推送告警至 AlertManager 发送通知。
五、典型使用场景
- 服务器基础设施监控(Linux/Windows)
- Kubernetes 容器、Pod、节点监控(云原生首选)
- 中间件、数据库性能监控
- 业务埋点监控:接口 QPS、错误率、响应耗时、在线用户数
- 站点 / 端口可用性拨测监控
六、和传统监控(Zabbix)核心区别
| 维度 | Prometheus | Zabbix |
|---|---|---|
| 数据类型 | 时序指标 Metrics | 指标 + 日志 + 触发器 |
| 采集模式 | Pull 主动拉取 | Agent 被动上报 |
| 云原生适配 | 完美适配容器 / K8s | 偏重传统物理机虚拟机 |
| 扩缩容 | 自动服务发现(K8s/DNS/consul) | 需手动配置主机 |
| 存储 | 轻量本地时序库 | 关系型数据库 MySQL |
| 可视化 | 依赖 Grafana | 自带 Web 界面 |
七、最简工作示例
- 启动 node-exporter 暴露机器指标;
- Prometheus 配置 target 抓取 node-exporter;
- PromQL 查询
100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)获取 CPU 使用率; - Grafana 用这条语句绘制 CPU 曲线;
- 配置规则:CPU > 85% 持续 5 分钟触发告警,通过 AlertManager 发企业微信提醒。

