ArcLibrary

Prometheus + Grafana 栈

事实标准的监控可视化组合 —— 几乎每个 K8s 集群必装。

PrometheusGrafana监控
核心 · 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 / NodeKubernetes / 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 天)。
Mimir / Thanos / VictoriaMetrics
远端对象存储,**水平扩展 + 多集群**。
保留期数月到数年。

延伸阅读#