监控

kube-prometheus-stack 组件说明

·9 分钟阅读·3450 字

kube-prometheus-stack 中 Prometheus、Grafana、Alertmanager 和 Exporter 组件作用说明

📋 目录

kube-prometheus-stack 组件说明

整体关系先看:

                 Kubernetes API Server
                         |
                         |
                 kube-state-metrics
                         |
                         |
Node Exporter ---> Prometheus <---- ServiceMonitor
                         |
                         |
                  Alertmanager
                         |
                         |
                    Grafana

简单理解:

  • Prometheus:负责采集和存储指标

  • Grafana:负责展示指标

  • Alertmanager:负责告警

  • Node Exporter:负责采集服务器指标

  • kube-state-metrics:负责采集 Kubernetes 对象状态

  • Prometheus Operator:负责管理 Prometheus


1. prometheus-monitoring-kube-prometheus-prometheus-0

执行:

kubectl get pod -n monitoring
prometheus-monitoring-kube-prometheus-prometheus-0
READY 2/2 Running

这是整个监控系统的核心。

Prometheus 是什么?

Prometheus 是一个时间序列数据库。

它不断主动去访问目标:

Prometheus
     |
     |
     ↓
  /metrics

例如:

Node Exporter:

http://node-exporter:9100/metrics

返回:

node_cpu_seconds_total 123456
node_memory_MemAvailable_bytes 123456

Prometheus 保存:

时间
 |
指标
 |
数值

例如:

2026-07-20 10:00

cpu_usage = 20%

2026-07-20 10:01

cpu_usage = 30%

所以它可以查询:

最近一天 CPU 使用率变化?


Prometheus 负责:

服务器指标

例如:

CPU
内存
磁盘
网络

Kubernetes指标

例如:

Pod数量
Pod状态
Node状态
Deployment副本数

2. monitoring-grafana

:

monitoring-grafana-58b87475bf-v4zrk

READY 3/3

这是 Grafana。

作用:

把 Prometheus 的数据变成人能看的图。

例如:

Prometheus 返回:

node_cpu_seconds_total

Grafana显示:

CPU
 |
 |       ___
 |     /
 |___/
 
 时间 →

你打开 Grafana 后看到的:

  • CPU Dashboard

  • Memory Dashboard

  • Kubernetes Cluster Dashboard

都是 Grafana画出来的。


Grafana 不存数据

很多新人容易误解:

错误:

Grafana存监控数据

实际:

Grafana
   |
   |
查询
   |
   ↓
Prometheus

Grafana只是展示层。


3. alertmanager-monitoring-kube-prometheus-alertmanager-0

:

alertmanager...
READY 2/2

负责:

接收告警,并通知人。

流程:

Prometheus
    |
发现CPU超过90%
    |
发送告警
    |
Alertmanager
    |
    |
微信
邮件
钉钉
Slack

例如:

Prometheus规则:

alert:
 HighCPU

expr:
 cpu_usage > 90

for:
 5m

意思:

CPU超过90%,持续5分钟。

然后:

Prometheus
       |
       v
Alertmanager
       |
       v
发送通知

4. monitoring-kube-prometheus-operator

:

monitoring-kube-prometheus-operator
READY 1/1

这个非常重要。

它是 Kubernetes Operator。


传统方式:

你想创建 Prometheus:

需要写:

Deployment
Service
ConfigMap
RBAC
Volume

几十个 YAML。

Operator之后:

只需要:

apiVersion: monitoring.coreos.com/v1

kind: Prometheus

Operator自动创建:

Prometheus Pod
Service
Config
Storage

它管理:

Prometheus
Alertmanager
ServiceMonitor
PodMonitor
Rules

可以理解:

Operator
    |
    |
管理
    |
    +---- Prometheus
    |
    +---- Alertmanager

5. monitoring-kube-state-metrics

:

monitoring-kube-state-metrics
READY 1/1

这个是 Kubernetes 专属指标采集器。

注意:

它不是采集服务器CPU。

它采集:

Kubernetes对象状态

例如:

集群:

Deployment nginx
replica=3

kube-state-metrics生成:

kube_deployment_status_replicas=3

Pod状态:

Running
Pending
Failed

转换:

kube_pod_status_phase

例如:

问题:

Pod ImagePullBackOff

kube-state-metrics可以告诉Prometheus:

这个Pod异常

然后告警。


6. monitoring-prometheus-node-exporter

:

monitoring-prometheus-node-exporter-fmkhq

这个负责:

Linux节点指标

它运行在每个节点:

DaemonSet。

采集:

CPU

node_cpu_seconds_total

内存

node_memory_MemAvailable_bytes

磁盘

node_filesystem_avail_bytes

网络

node_network_receive_bytes_total

例如:

Ubuntu服务器:

CPU 20%
Memory 8GB
Disk 100GB

都是它采集。


组件之间数据流

完整过程:

第一步

Node Exporter:

Ubuntu
 |
 |
9100端口
 |
 metrics

↓

第二步

Prometheus:

拉取数据

保存历史

↓

第三步

Grafana:

查询Prometheus

展示Dashboard

↓

第四步

异常:

Prometheus Rule

CPU >90%

↓

Alertmanager

↓

通知

为什么 kube-state-metrics 需要单独存在?

这是很多初学者疑惑点。

Node Exporter:

关注:

机器怎么样?

例如:

CPU
内存
磁盘

kube-state-metrics:

关注:

Kubernetes怎么样?

例如:

Pod死了吗?
Deployment少副本了吗?
Node Ready了吗?

所以:

组件关注对象
Node ExporterLinux服务器
kube-state-metricsKubernetes状态
Prometheus数据存储和查询
Grafana展示
Alertmanager告警
Operator管理整个监控系统

当前这套环境实际上已经是很多公司的 Kubernetes基础监控平台。

下一步建议你不要急着装更多东西,可以开始深入:

  1. 看 Prometheus Targets(理解采集)

  2. 学 PromQL(查询语言)

  3. 自己写一个 ServiceMonitor

  4. 接入 Python/Go 服务指标

  5. 最后再进入 AIops Agent:

Prometheus API
        |
        |
      LLM
        |
        |
 自动分析故障

这会和你之前提到的 运维 Agent / AIops 方向直接衔接。

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro