3. Grafana 数据源配置:数据源概念、支持的数据源类型与添加配置

数据源是 Grafana 的“数据引擎”。没有数据源,仪表盘只是一张空白的画布。本章将系统讲解数据源的核心概念、Grafana 支持的主流数据源类型,并手把手完成第一个数据源的添加与配置。

3.1 数据源概念

在 Grafana 中,数据源(Data Source) 是一个抽象层,它定义了 Grafana 如何连接到外部存储系统、如何查询数据以及如何解析返回的结果。每个仪表盘上的面板(Panel)都必须绑定一个数据源,才能渲染出图表或表格。

核心要点:数据源本身不存储数据,它只负责“桥接”Grafana 与后端数据库或监控系统。Grafana 通过数据源插件(Plugin)与不同类型的后端通信。

数据源配置的核心属性包括:

  • 名称(Name): 在 Grafana 中唯一标识该数据源,仪表盘面板通过名称引用。
  • 类型(Type): 指定后端系统类型,如 Prometheus、MySQL 等。
  • 连接地址(URL): 后端服务的 HTTP/HTTPS 或 TCP 端点。
  • 认证信息(Auth): 包括 Basic Auth、、TLS 证书等。
  • 数据库/存储路径(Database/Path): 部分数据源需要指定具体数据库名或路径。
Grafana 数据源桥接概念图 Grafana 数据源桥接概念 Grafana 仪表盘 数据源抽象层 Prometheus InfluxDB MySQL 数据源不存储数据,只负责桥接 Grafana 与后端系统,通过插件协议通信

3.2 支持的数据源类型

Grafana 支持数十种数据源,按使用场景可分为以下几大类。以下表格列出了最常用的数据源及其典型用途:

数据源类型 协议/查询语言 典型场景 推荐用途
Prometheus PromQL (HTTP API) 云原生监控、Kubernetes、微服务指标 实时指标监控、告警
InfluxDB InfluxQL / Flux (HTTP API) IoT 时序数据、DevOps 指标 高写入吞吐的时序数据
MySQL SQL (TCP) 业务数据库、用户行为分析 结构化业务数据报表
PostgreSQL SQL (TCP) 地理空间数据、复杂分析查询 需要 JOIN 或窗口函数的报表
Elasticsearch Elasticsearch DSL (HTTP API) 日志分析、全文搜索 日志聚合与可视化
CloudWatch AWS API AWS 云资源监控 EC2、RDS、Lambda 等指标
Loki LogQL (HTTP API) 日志聚合(轻量级) 与 Prometheus 配合的日志分析
选型建议:时序监控首选 Prometheus 或 InfluxDB;业务报表优先考虑 MySQL/PostgreSQL;日志场景推荐 Elasticsearch 或 Loki。Grafana 支持同时配置多个不同类型的数据源,一个仪表盘可以混合使用。

3.3 添加与配置第一个数据源

下面以 Prometheus 为例,演示添加数据源的完整步骤。Prometheus 是 Grafana 最常用的数据源之一,也是本课程后续实践的核心数据源。

步骤 1:进入数据源管理页面

  1. 登录 Grafana Web UI(默认地址 http://localhost:3000)。
  2. 点击左侧导航栏的 齿轮图标(Configuration) → Data Sources。
  3. 点击页面右上角的 Add data source 蓝色按钮。

步骤 2:选择数据源类型

在数据源类型列表中,找到并点击 Prometheus。Grafana 会自动跳转到 Prometheus 的配置页面。

步骤 3:填写核心配置项

配置页面包含多个选项卡,核心配置集中在 Settings 标签下:

配置项 说明 示例值
Name 数据源名称,仪表盘引用时使用 Prometheus-Prod
URL Prometheus 服务 HTTP 地址 http://localhost:9090
Access 访问模式:Server(推荐)或 Browser Server
Scrape interval 数据抓取间隔,影响时间范围精度 15s
HTTP Method 查询请求方法,默认 GET GET

步骤 4:保存并测试

  1. 填写完配置后,点击页面底部的 Save & Test 按钮。
  2. Grafana 会尝试连接 Prometheus 并执行一个简单的测试查询。
  3. 如果连接成功,页面顶部会显示绿色提示 "Data source is working"。
常见错误:如果测试失败,请检查:① Prometheus 服务是否已启动;② URL 地址是否正确(注意端口号);③ 网络防火墙是否阻止了 Grafana 到 Prometheus 的访问;④ 如果使用 Browser 访问模式,浏览器跨域策略可能阻止请求。
添加 Prometheus 数据源流程图 添加 Prometheus 数据源流程图 1. 进入 Data Sources 2. 点击 Add data source 3. 选择 Prometheus 类型 4. 填写 URL 等配置 5. 点击 Save & Test 配置要点 • Name 需唯一 • URL 含端口号 • Access 选 Server

3.4 配置验证与常见问题

成功添加数据源后,建议执行以下验证操作:

  • 查看数据源列表: 在 Data Sources 页面确认新数据源显示为 绿色对勾 状态。
  • 使用 Explore 功能: 点击左侧导航栏的 Explore(指南针图标),选择刚添加的数据源,输入一个简单查询(如 up{})验证数据返回。
  • 检查日志: 如果数据源状态异常,查看 Grafana 服务日志(/var/log/grafana/grafana.log)获取详细错误信息。
最佳实践:建议为每个数据源设置清晰的命名规范,例如 Prometheus-Prod、MySQL-Business,避免在仪表盘面板中混淆。生产环境中,建议使用 Server 访问模式,避免浏览器跨域问题。

3.5 多数据源配置示例

以下是一个典型的混合数据源配置场景,展示如何在同一个 Grafana 实例中同时配置 Prometheus 和 MySQL:

# 数据源配置清单(示例)
# 1. Prometheus 数据源
#    Name: Prometheus-Prod
#    URL: http://10.0.1.100:9090
#    Access: Server
#    Scrape interval: 15s

# 2. MySQL 数据源
#    Name: MySQL-Business
#    URL: mysql://10.0.1.200:3306
#    Database: sales_db
#    User: grafana_reader
#    Password: ******
#    Max open: 10
#    Max idle: 5
#    Allow cleartext passwords: false

配置完成后,在仪表盘编辑面板时,可以在 Query 选项卡的 Data source 下拉菜单中选择不同的数据源,实现同一仪表盘内混合展示时序指标和业务数据。

多数据源混合架构图 多数据源混合架构 Grafana 实例 Prometheus (时序) MySQL (业务) Elasticsearch (日志) 同一仪表盘可混合使用多个数据源,实现时序指标 + 业务数据 + 日志的联合分析

3.6 数据源配置的进阶技巧

  • 使用环境变量: 在 Grafana 配置文件 grafana.ini 中,可以通过 GF_DATASOURCE_* 环境变量预设数据源,适合容器化部署。
  • 数据源代理: 如果 Grafana 无法直接访问数据源,可以配置反向代理或使用 Grafana 的 Data source proxy 功能。
  • 权限控制: 在 Grafana 的 Organization 和 Team 设置中,可以限制特定用户或团队只能使用特定的数据源。
  • 备份与迁移: 数据源配置存储在 Grafana 的 SQLite 或 MySQL 数据库中,可以通过导出 grafana.db 或使用 API 进行备份。
小技巧:在配置多个同类型数据源时(如多个 Prometheus 实例),可以在名称中加入环境标识(如 Prometheus-Prod、Prometheus-Staging),并在仪表盘面板中使用变量(Variable)动态切换数据源,实现多环境复用。