You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Prometheus Helm Chart采集Otel Collector指标并禁用默认Job

解决Prometheus采集Otel指标不显示及禁用默认Kubernetes采集任务问题

一、禁用kubernetes-apiservers等默认采集任务

你可以通过两种方式精准或全局禁用默认采集任务:

方式1:全局禁用所有默认采集任务

如果不需要任何Kubernetes组件的默认采集,直接在values.yaml中添加:

prometheus:
  prometheusSpec:
    scrapeConfigSelectorNilUsesHelmValues: false

此配置会让Prometheus仅加载你自定义的采集任务,忽略Chart自带的所有默认scrape配置(包括apiserver、kubelet、coredns等)。

方式2:精准禁用单个默认采集任务

如果只想禁用特定组件(比如仅关闭apiserver采集),在values.yaml中对应组件设置enabled: false:

# 禁用apiserver采集
kubeApiServer:
  enabled: false

# 按需禁用其他组件
kubelet:
  enabled: false
kubeControllerManager:
  enabled: false
coreDns:
  enabled: false

二、排查extraScrapeConfigs不显示Otel Collector目标的问题

按以下步骤逐一排查:

1. 确认extraScrapeConfigs格式正确

Otel Collector的采集配置需符合Prometheus scrape规则,示例配置如下(注意YAML缩进层级):

extraScrapeConfigs:
  - job_name: 'otel-collector'
    scrape_interval: 15s
    static_configs:
      - targets: ['otel-collector.<你的命名空间>.svc:8888'] # 替换为实际的Otel Service地址和metrics端口(默认8888)

2. 验证Prometheus已加载自定义配置

进入Prometheus Pod查看配置文件,确认自定义job是否存在:

kubectl exec -n <你的命名空间> <prometheus-pod名称> -- cat /etc/prometheus/prometheus.yml | grep -A 10 'otel-collector'

如果无输出,说明Helm升级未生效,重新执行:

helm upgrade prometheus prometheus-community/prometheus -n <你的命名空间> -f values.yaml

3. 检查Prometheus与Otel Collector的网络连通性

在Prometheus Pod内测试能否访问Otel的metrics端点:

kubectl exec -n <你的命名空间> <prometheus-pod名称> -- curl http://otel-collector.<你的命名空间>.svc:8888/metrics

若返回连接失败,检查:

  • Otel Collector的Service是否正常创建
  • Service的端口是否与配置中一致
  • 是否有网络策略阻止Prometheus访问Otel的端口

4. 查看Prometheus日志定位错误

检查Prometheus日志中是否有采集任务相关的报错:

kubectl logs -n <你的命名空间> <prometheus-pod名称>

常见错误包括目标地址错误、权限不足、metrics端点格式不符合Prometheus规范等,根据日志提示调整配置。

内容的提问来源于stack exchange,提问作者har17bar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 00:48:18