3、数据源接入与配置

数据源是 Grafana 可观测性体系的基石。本章将系统讲解如何接入 Prometheus、Loki 和 CloudWatch 三种核心数据源,并深入数据源代理与认证机制。正确配置数据源,是后续面板设计与告警阈值可视化的前提。

3.1 数据源接入总览

Grafana 支持多种数据源类型,每种数据源对应不同的后端存储与查询语言。下表对比了三种常用数据源的核心特性:

数据源 数据类型 查询语言 典型场景 默认端口
Prometheus 时序指标 PromQL 基础设施监控、应用性能 9090
Loki 日志 LogQL 日志聚合、故障排查 3100
CloudWatch 云指标与日志 Metric Math / Filter AWS 资源监控 443 (HTTPS)
选型建议: 指标优先选 Prometheus,日志优先选 Loki,云原生 AWS 环境选 CloudWatch。混合场景可同时接入多个数据源,在同一个面板中通过混合查询(Mixed Query)实现关联分析。

3.2 添加 Prometheus 数据源

Prometheus 是 Grafana 最常用的时序数据源。添加步骤如下:

  1. 进入 Configuration > Data Sources > Add data source。
  2. 选择 Prometheus。
  3. 填写 URL,例如 http://prometheus.example.com:9090。
  4. 设置 Access 模式:Server(推荐)或 Browser。
  5. 点击 Save & Test 验证连接。

关键配置参数说明:

参数 说明 推荐值
URL Prometheus 服务地址 http://localhost:9090
Access 请求代理模式 Server
Scrape interval 抓取间隔,影响面板刷新 15s
HTTP Method 查询请求方式 POST
注意: 如果使用 Browser 模式,浏览器会直接请求 Prometheus API,可能触发跨域(CORS)问题。生产环境始终推荐 Server 模式。

3.3 添加 Loki 数据源

Loki 是 Grafana Labs 推出的日志聚合系统,与 Prometheus 共享标签机制。添加步骤:

  1. 进入 Configuration > Data Sources > Add data source。
  2. 选择 Loki。
  3. 填写 URL,例如 http://loki.example.com:3100。
  4. 配置 Derived fields(派生字段),用于从日志中提取指标或链接。
  5. 点击 Save & Test 验证。

Loki 数据源特有的派生字段配置:

字段 作用 示例
Name 字段标识 traceID
Regex 从日志行提取值的正则 trace_id=(\w+)
URL 点击后跳转的链接模板 ${__value.raw}
最佳实践: 将 Loki 与 Prometheus 使用相同的标签体系(如 job、instance),可以在面板中实现指标与日志的无缝切换。

3.4 添加 CloudWatch 数据源

CloudWatch 数据源用于接入 AWS 云监控指标和日志。配置需要 AWS 认证信息:

  1. 进入 Configuration > Data Sources > Add data source。
  2. 选择 CloudWatch。
  3. 选择 Auth Provider:Access Key、Credentials file 或 ARN。
  4. 填写 Default Region,例如 us-east-1。
  5. 可选配置 Assume Role ARN 实现跨账户访问。
  6. 点击 Save & Test 验证。

认证方式对比:

认证方式 适用场景 安全等级
Access Key 开发测试环境 中
Credentials File EC2 实例部署 高
Assume Role 跨账户监控 高
安全提醒: 避免在 Grafana 配置中明文存储 Access Key。优先使用 IAM 角色或 AWS Secrets Manager 管理凭证。

3.5 数据源代理与认证

Grafana 的数据源代理机制决定了请求如何从浏览器到达后端数据源。理解代理模式对网络规划和安全性至关重要。

数据源代理模式对比 Server 代理模式(推荐) 浏览器 → Grafana Server → 数据源 优点:统一认证、CORS 无问题 缺点:增加 Grafana 服务器负载 Browser 直连模式 浏览器 → 数据源(直接请求) 优点:减轻 Grafana 负载 缺点:需处理 CORS、暴露数据源 认证流程 1. 用户登录 Grafana → 获取 Session 2. Grafana 使用数据源配置中的认证信息(Basic Auth / / IAM) 3. 代理转发请求,数据源返回结果 → Grafana → 浏览器

代理配置中的关键认证方式:

认证类型 适用数据源 配置位置
Basic Auth Prometheus、Loki 数据源设置页
Prometheus、Loki HTTP Headers
IAM Role CloudWatch AWS 认证配置
OAuth 2.0 部分第三方数据源 自定义 HTTP 头
生产建议: 始终使用 Server 代理模式 + 环境变量注入敏感信息(如 GF_DATASOURCE_PROMETHEUS_URL),避免在 UI 中明文存储密码。

3.6 数据源配置验证与排错

配置完成后,务必执行验证测试。常见问题及解决方法:

  • Connection refused:检查数据源服务是否运行,防火墙是否放行端口。
  • 401 Unauthorized:认证信息错误,检查用户名/密码或 。
  • 403 Forbidden:权限不足,检查数据源侧的访问控制列表。
  • CORS error:Browser 模式下常见,切换为 Server 模式解决。
  • Timeout:网络延迟或数据源负载过高,调整 Grafana 的 datasource.timeout 配置。
调试技巧: 使用 Grafana 内置的 Explore 功能,直接对数据源执行查询语句,快速验证数据源是否正常工作。

通过以上步骤,你已经掌握了 Prometheus、Loki 和 CloudWatch 三种数据源的接入方法,以及代理与认证的核心原理。正确配置的数据源将为后续的面板设计和告警阈值可视化提供稳定可靠的数据基础。