Bitnami Helm部署Grafana配置数据源不生效问题排查
问题根因
- 配置路径完全错误:
grafana.ini是Grafana的主服务配置文件,采用ini格式,原生不支持直接在文件内写入datasources字段定义数据源。Grafana自动加载预置数据源的provisioning机制,只会读取/opt/bitnami/grafana/conf/provisioning/datasources/目录下的独立yaml格式配置文件,你将数据源定义写入主配置文件,Grafana启动时会直接忽略不识别的配置段,不会加载任何数据源。 - Chart参数误用:你通过
grafanaIniConfigMap参数将自定义ConfigMap挂载覆盖了默认的grafana.ini文件,但你的ConfigMap中grafana.ini键对应的内容是yaml格式的数据源定义,完全不符合主配置的ini语法要求,既破坏了默认主配置的加载,也没有把数据源配置放到正确的provisioning路径下。 - 你在容器内看到的
grafana.ini文件内容本身就是非法的ini格式,Grafana不会解析其中的yaml内容,这就是UI看不到数据源的直接原因。
修复方案
推荐直接使用Bitnami Grafana Helm Chart内置的数据源provisioning配置能力,无需手动创建独立ConfigMap,修正后的完整配置如下:
kind: Namespace apiVersion: v1 metadata: name: monitoring annotations: name: monitoring labels: name: monitoring --- apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: name: prometheus namespace: monitoring spec: interval: 5m chart: spec: chart: kube-prometheus version: "8.0.7" sourceRef: kind: HelmRepository name: bitnami namespace: flux-system interval: 1m --- apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: name: grafana namespace: monitoring spec: interval: 5m chart: spec: chart: grafana version: "7.9.8" sourceRef: kind: HelmRepository name: bitnami namespace: flux-system interval: 1m values: # 删除原有错误的config配置段,使用内置datasources配置 datasources: secretDefinition: apiVersion: 1 datasources: - name: Prometheus type: prometheus access: proxy url: http://prometheus-kube-prometheus-prometheus.monitoring.svc.cluster.local:9090 isDefault: true
如果你需要手动管理数据源ConfigMap,按以下规则调整即可:
- 原有ConfigMap中
grafana.ini键改名为prometheus-datasource.yaml,内容保持现有的apiVersion+datasources yaml配置不变 - 删除HelmRelease values中错误的
config.useGrafanaIniFile、config.grafanaIniConfigMap配置 - 添加额外挂载配置,将该ConfigMap挂载到容器内
/opt/bitnami/grafana/conf/provisioning/datasources/目录下
验证步骤
- 重新应用配置等待Grafana Pod滚动重启完成
- 进入Grafana容器执行
ls /opt/bitnami/grafana/conf/provisioning/datasources/,确认目录下存在对应的数据源yaml文件 - 登录Grafana UI,进入数据源列表页即可看到自动加载的Prometheus数据源
内容的提问来源于stack exchange,提问作者puppeteer701
相关产品推荐
相关产品推荐

