整体分为 采集层、Prometheus 核心层、存储扩展层、可视化层、告警层、业务埋点层、运维 / 分布式增强层,覆盖单机到大规模 K8s 集群全套组件。
一、指标采集层(数据来源)
负责把各类系统 / 中间件 / 业务转换成 Prometheus 标准 metrics
1. Exporter 生态(最主流)
- 服务器硬件 node-exporter:Linux 服务器 CPU / 内存 / 磁盘 / 网卡 / 负载 windows-exporter:Windows 机器指标 ipmi-exporter:服务器硬件温度、风扇、电源 smart-exporter:硬盘健康状态
- 容器 & K8s cAdvisor:容器 CPU、内存、磁盘 IO、网络 kube-state-metrics:K8s 资源对象(Pod/Deployment/Service/Node) kubelet:内置 metrics 接口,无需额外 exporter
- 中间件 / 数据库 mysqld-exporter、postgres-exporter、redis-exporter kafka-exporter、elasticsearch-exporter、rabbitmq-exporter nginx-exporter、apache-exporter、traefik-exporter mongodb-exporter、influxdb-exporter
- 云厂商 / 硬件 blackbox-exporter:拨测 HTTP/TCP/ICMP/DNS(网站存活、端口连通性) snmp-exporter:交换机、路由器、防火墙 SNMP 监控 aws/azure/gcp-exporter:云资源监控
2. PushGateway
适用短时任务:CI 流水线、定时批处理、一次性脚本 短生命周期程序主动推送指标,Prometheus 再拉取网关数据。
3. 客户端 SDK(业务埋点)
业务代码原生暴露指标,四种指标类型(Counter/Gauge/Histogram/Summary) 主流语言官方 SDK: Go、Java (Prometheus Java Client)、Python、NodeJS、C#、Ruby、PHP
4. 服务发现 SD(自动发现 Target)
内置多种服务发现,不用手动填 IP: static_config(静态)、file_sd(文件)、kubernetes_sd、consul_sd、dns_sd、ec2_sd
二、Prometheus 核心组件(基础栈)
- Prometheus Server 核心:抓取器 Retrieval、TSDB 本地时序存储、PromQL 引擎、Rule 管理器、HTTP API 配置文件:prometheus.yml(抓取、规则、告警、远程读写)
- AlertManager 独立告警处理组件:告警分组、去重、抑制、静默、多渠道路由 配置:alertmanager.yml
- Promtool 官方工具:校验配置、规则语法、数据调试、导入导出时序数据
三、存储扩展栈(解决单机存储瓶颈)
原生 TSDB 只适合短期热数据(默认 15 天),大规模 / 长期存储用以下方案:
1. Thanos(CNCF,最通用)
- Sidecar:同步 Prometheus 本地块到对象存储 (S3/MinIO/COS)
- Store Gateway:查询远端归档历史数据
- Query:全局统一查询,聚合多台 Prometheus 数据
- Compactor:压缩、合并旧数据块,降存储成本 适用:多集群、长期数据归档、统一全局大盘
2. VictoriaMetrics(高性能替代)
兼容 PromQL,API 完全对齐 Prometheus,单实例承载千万级指标,压缩率更高 细分组件:vmagent(抓取替代 Prometheus)、vmsingle、vmcluster 集群、vmalert(内置告警,无需 AlertManager)
3. M3DB / Cortex
Cortex:多租户 Prometheus 集群,适合公有云、多业务租户隔离 M3DB:Uber 开源分布式时序数据库,低延迟海量写入
4. Remote 远端存储通用对接
Prometheus 原生支持 remote_write/remote_read,可对接:InfluxDB、TimescaleDB、ClickHouse
四、可视化技术栈
1. Grafana(生产标准)
Prometheus 标配可视化面板 能力:多数据源、模板变量、告警、图表、告警通知、报表、权限管理
2. 备选轻量可视化
- Prometheus Web UI:自带简易查询界面,仅调试使用
- Grafana Loki:搭配做指标 + 日志联动观测
- PromLens:PromQL 可视化调试工具
五、告警通知渠道栈(AlertManager 接收器)
AlertManager 统一分发告警,支持:
- 企业办公:钉钉、企业微信、飞书、Slack
- 传统通知:Email、短信、PagerDuty、VictorOps
- Webhook:自定义告警推送(对接自研运维平台)
六、观测配套栈(可观测三位一体:指标 + 日志 + 链路)
Prometheus 只负责 Metrics,完整可观测体系搭配:
- 日志采集 Loki(Grafana 全家桶,轻量化日志库) + Promtail(日志采集器) ELK/EFK:Elasticsearch、Fluentd、Logstash
- 链路追踪 Tracing Jaeger、Zipkin、SkyWalking、OpenTelemetry
- 统一采集标准 OpenTelemetry 新一代埋点标准,统一生成 metrics/logs/traces,可直接输出给 Prometheus,替代传统 SDK
七、部署 & 运维技术栈
1. 部署方式
- 二进制:虚拟机、物理机快速部署
- Docker Compose:测试环境一键启动全套栈
- Kubernetes + Helm:生产标准,官方 helm-chart
- Operator:Prometheus Operator(K8s 专属,CRD 管理 Prometheus/AlertManager/ 规则)
2. 容器编排
Docker、Kubernetes、Helm、Prometheus Operator Prometheus Operator 核心 CRD: Prometheus、Alertmanager、ServiceMonitor、PodMonitor、PrometheusRule
3. 存储持久化
本地磁盘、MinIO / 阿里云 COS / 腾讯 COS/S3(Thanos 归档)、PVC (K8s)
4. 监控运维配套
- blackbox-exporter:自身监控可用性拨测
- prometheus-mixin:官方标准化 Grafana 面板 + 告警规则模板
- Alertmanager WebUI:静默、告警查看
八、完整两套典型技术栈组合
方案 1:中小型虚拟机 / 单机(轻量基础栈)
node-exporter + prometheus + alertmanager + grafana + blackbox-exporter 适合几十台服务器,短期存储,简单业务监控
方案 2:云原生 K8s 大规模企业完整栈
OpenTelemetry 埋点 → kube-state-metrics + cAdvisor + 各类 Exporter → Prometheus Operator (Prometheus+AlertManager) → Thanos (对象存储长期归档) → Grafana(指标大盘) → Loki+Promtail(日志) → Jaeger(链路追踪) → 飞书 / 钉钉告警渠道
九、栈对比选型总结
- 只想简单监控服务器:基础栈 Prometheus + node-exporter + Grafana
- K8s 集群:必用 Prometheus Operator + kube-state-metrics
- 多集群、保存数月历史数据:叠加 Thanos
- 超高并发百万指标、节约资源:替换为 VictoriaMetrics
- 完整可观测(指标 + 日志 + 链路):OpenTelemetry + Prometheus + Loki + Jaeger

