首页/云/可观测性速查/数据源 provisioning 化
Grafana 与看板53 条

数据源 provisioning 化

用 YAML 声明数据源并随启动自动加载:配置即代码,适合容器化与多环境复制;默认每 10 秒检查一次文件变更并生效。

可观测性速查云更新于 2026-10-13

数据源 provisioning 是什么

用 YAML 文件声明数据源,Grafana 启动时自动加载,并默认每 10 秒检查文件变更后生效。它把数据源配置变成代码:容器化部署与多环境复制只需同一份文件,避免手工在界面上点选。密码等敏感字段放在 secureJsonData 里,与普通 jsonData 分开管理。

基本信息

配置目录/etc/grafana/provisioning/datasources
文件格式YAML,含 apiVersion: 1
敏感字段secureJsonData
默认 editabletrue(界面可改)
生效方式默认每 10 秒检查变更并加载
配套能力provisioning/dashboards 声明看板

典型使用场景

  • 容器化部署时随镜像外的配置加载数据源,避免每次重建都要点界面
  • 多环境(测试/预发/生产)用同一份模板改一处 URL 即完成复制
  • 把数据源纳入版本管理,变更走评审流程
  • 批量接入多个 Loki 或 Prometheus 实例,统一命名规则
  • 给不同团队 provision 各自的数据源与权限范围
  • 与看板 provisioning 配合,实现整套监控即代码

datasources 配置

datasources 配置
# 文件:/etc/grafana/provisioning/datasources/prom.yml
apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    url: http://prometheus:9090
    access: proxy
    isDefault: true
    editable: false
    jsonData:
      httpMethod: POST
      timeInterval: 15s
    secureJsonData:
      basicAuthPassword: ${PROM_PASSWORD}   # 密码走安全字段

常用字段

字段作用注意
name / type数据源名称与类型name 是查询引用键
url访问地址容器内要用服务名
isDefault默认数据源看板未指定时使用
editable是否允许界面修改设为 false 防止被覆盖
secureJsonData敏感字段密码、Token 放这里
密码类字段放 secureJsonData,普通 jsonData 的明文内容可以通过 API 读回,放密码等于公开。
editable 留空(默认 true)时界面仍可修改,改完会在下次 provision 时被文件覆盖回去,表现为「改了又变回原样」。
provision 文件里写死密码会进入镜像与仓库,生产环境应引用密钥管理或环境变量注入。
provisioning 与手工创建的数据源并存时容易混淆:建议统一走文件,界面侧把 editable 关掉,避免出现同名两份配置。
多数据源共存时用 isDefault 指定一个默认值,否则新建看板会随机挑一个,做出来的面板在不同环境表现不一致。
数据源改名等于换引用键:引用该数据源的看板与告警会找不到数据源,改名要连同引用一起改。

易错点

  • editable 留空(默认 true)时 UI 仍可改,改完会在下次 provision 时被文件覆盖回去
  • provision 文件里写死密码会进入镜像与仓库,生产应引用密钥管理或环境变量
  • 同名数据源手工与文件各建一份会造成困惑,命名与 ediable 设置要统一
  • url 写成宿主机地址而非容器内服务名,容器化部署下必然连不通
  • 文件权限或挂载路径不对时 provision 静默失败,只表现为数据源缺失
  • 数据源改名后旧看板全部报找不到数据源,改名属于破坏性变更,需先评估引用范围

数据来源与参考

  • Grafana 官方文档 · Provisioning data sources
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌