核心 · Key Idea
一句话:Prometheus 抓指标、TSDB 存、Alertmanager 告警;Grafana 展示。kube-prometheus-stack Helm Chart 一键装齐,包含 node-exporter / kube-state-metrics / cAdvisor,覆盖主机 + K8s + 应用。
是什么#
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install monitoring prometheus-community/kube-prometheus-stack \
-n monitoring --create-namespace装完得到:
- Prometheus:指标 TSDB
- Alertmanager:告警分组 / 静默 / 通知
- node-exporter:主机 CPU / 内存 / 磁盘 / 网络
- kube-state-metrics:K8s 对象状态
- Grafana:可视化 + 预置仪表板
打个比方#
打个比方 · Analogy
Prometheus 是收集 + 算账的会计;
Grafana 是展板 —— 把账本变成图表挂墙上;
Alertmanager 是前台秘书:账目不对就给你打电话 / 发微信 / 飞书。
关键概念#
ServiceMonitor / PodMonitor声明抓取目标
Operator CRD:把『抓哪些 Pod / Svc 的 /metrics』描述成 K8s 对象。
Recording Rule预聚合规则
把昂贵 PromQL 的结果**周期性算好存成新指标**,仪表板加载快。
Alert Rule告警规则
PromQL 返回非空 + for: 5m → 触发。
Dashboard仪表板
Grafana JSON。可从 grafana.com 找官方 / 社区现成的导入。
Datasource数据源
Prometheus / Loki / Tempo / MySQL —— Grafana 是统一观测面板。
Long-term Storage长期存储
Prometheus 默认 15 天本地。Mimir / Thanos / VictoriaMetrics 提供长期 + 多集群联邦。
怎么工作#
实操要点#
- kube-prometheus-stack 是事实默认:Helm 装完即用。直接看
Kubernetes / Compute Resources / Node、Kubernetes / API server等仪表板。 - 告警分级:critical(页人)/ warning(不页人但要看)/ info。别什么都 critical,否则告警疲劳。
- 抑制规则:
Prometheus down时屏蔽下游targets unreachable,否则一震出几十条告警。 - 静默 (silence):维护窗口前在 Alertmanager 里建 silence。
- 持久化 PV:Prometheus 数据要 PVC,Pod 重建不丢;Grafana 数据库默认 sqlite,多副本得切 Postgres。
- Grafana 单点登录:接 OAuth / OIDC,统一登录态。
- Datasource 加 Loki + Tempo:日志 + Trace 同一个 Grafana 面板,指标→日志→Trace 一键跳转。
易混点#
Prometheus 自身存储
本地磁盘,**单节点**。
保留期短(默认 15 天)。
保留期短(默认 15 天)。
Mimir / Thanos / VictoriaMetrics
远端对象存储,**水平扩展 + 多集群**。
保留期数月到数年。
保留期数月到数年。