首页
/ kube-prometheus-stack中Grafana监控指标缺失问题排查与解决

kube-prometheus-stack中Grafana监控指标缺失问题排查与解决

2025-06-07 21:52:07作者:曹令琨Iris

问题背景

在使用kube-prometheus-stack(版本68.1.0)部署监控系统时,用户发现Grafana仪表板中部分监控指标显示为空值,特别是与Kubernetes集群状态相关的指标无法正常显示。虽然集群中确实运行着相关Pod(如argocd命名空间下的多个Pod),但这些资源的使用情况并未被正确采集和展示。

问题现象

通过检查Grafana仪表板,可以观察到以下异常情况:

  1. 节点资源使用率图表显示为空
  2. Pod资源使用情况指标缺失
  3. 部分Kubernetes核心组件监控数据不可见

根本原因分析

经过深入排查,发现问题根源在于values.yaml配置文件中一个关键参数的设置:

prometheusOperator:
  kubeletService:
    enabled: false

当此参数设置为false时,Prometheus Operator不会自动创建用于监控kubelet的Service资源。kubelet是Kubernetes节点上的核心组件,负责Pod生命周期管理和资源监控,缺少对kubelet的监控将导致以下数据无法采集:

  1. 节点级别的CPU、内存、磁盘等资源使用指标
  2. 运行在节点上的Pod资源使用情况
  3. 容器级别的性能指标

解决方案

将配置修改为:

prometheusOperator:
  kubeletService:
    enabled: true

这一变更将确保Prometheus Operator自动创建必要的Service资源,使Prometheus能够正确采集kubelet暴露的监控指标。

配置建议

对于生产环境中的kube-prometheus-stack部署,建议考虑以下配置最佳实践:

  1. 基础监控配置
prometheusOperator:
  kubeletService:
    enabled: true
  kubeControllerManager:
    enabled: true
  kubeScheduler:
    enabled: true
  kubeEtcd:
    enabled: true
  1. 资源限制
prometheus:
  prometheusSpec:
    resources:
      limits:
        cpu: 2
        memory: 4Gi
      requests:
        cpu: 1
        memory: 2Gi
  1. 存储配置
prometheus:
  prometheusSpec:
    storageSpec:
      volumeClaimTemplate:
        spec:
          storageClassName: "standard"
          accessModes: ["ReadWriteOnce"]
          resources:
            requests:
              storage: 50Gi

验证方法

配置修改并重新部署后,可通过以下方式验证监控系统是否正常工作:

  1. 访问Prometheus UI,检查是否有kubelet_开头的指标
  2. 在Grafana中查看Kubernetes集群仪表板,确认节点和Pod资源使用情况图表是否显示数据
  3. 执行以下命令检查Service是否已创建:
kubectl get svc -n kube-prometheus-stack | grep kubelet

总结

kube-prometheus-stack作为Kubernetes监控的完整解决方案,其配置参数的准确性直接影响监控数据的完整性。kubeletService参数的启用是确保节点和Pod级别监控数据正常采集的关键配置。通过合理配置和定期验证,可以构建稳定可靠的Kubernetes监控体系,为集群运维和故障排查提供有力支持。

登录后查看全文
热门项目推荐
相关项目推荐