2. Grafana 基础回顾:数据源配置与面板仪表盘概念
在进入黄金指标面板复用之前,必须夯实 Grafana 最核心的两个基础能力:数据源配置与面板/仪表盘的基本概念。本章将快速梳理 Prometheus、InfluxDB、Elasticsearch 三种主流数据源的接入方式,并厘清 Panel、Dashboard、Row 等核心对象的层级关系。
2.1 数据源配置:三大引擎的接入要点
Grafana 通过数据源插件与后端存储通信。配置路径统一为:Configuration → Data Sources → Add data source。不同数据源的连接参数差异较大,下表列出最关键的配置字段:
| 数据源类型 | 默认端口 | 必填字段 | 典型 URL 示例 | 认证方式 |
|---|---|---|---|---|
| Prometheus | 9090 | HTTP URL | http://prometheus.example.com:9090 |
Basic Auth / 无认证 |
| InfluxDB | 8086 | HTTP URL、Database、User、Password | http://influxdb.example.com:8086 |
Basic Auth + |
| Elasticsearch | 9200 | HTTP URL、Index name、Time field name | http://es.example.com:9200 |
Basic Auth / |
💡 配置建议:Prometheus 数据源建议开启 Scrape interval 与 Query timeout 的显式设置,避免面板因超时出现空白。InfluxDB 使用 Flux 查询时,需在数据源版本中选择 “Flux” 而非 “InfluxQL”。
2.2 面板与仪表盘的核心概念
Grafana 的可视化体系由三个层级构成:Dashboard(仪表盘)→ Row(行)→ Panel(面板)。理解这个层级是复用面板的前提。
- Dashboard:顶级容器,包含变量、时间范围、布局与多个 Row。
- Row:逻辑分组单元,用于将相关 Panel 组织在同一行或折叠区域。
- Panel:最小可视化单元,包含查询、图表类型、样式与告警规则。
2.3 面板的核心构成要素
每个 Panel 由以下四部分构成,理解它们才能高效复用:
- Query(查询):从数据源获取时序数据或日志数据,支持 PromQL、InfluxQL/Flux、ES DSL 等。
- Visualization(可视化):图表类型,如 Time series、Stat、Table、Bar gauge、Pie chart 等。
- Options(选项):控制图表样式、单位、阈值、颜色、图例等。
- Alert(告警):基于查询结果定义告警规则,支持通知渠道。
🔑 复用关键:面板复用本质上是将 Query 与 Options 的配置模板化,通过 Dashboard 变量(Variables)实现数据源、指标、标签的动态替换。
2.4 三种数据源的查询语言对比
不同数据源使用不同的查询语法,下表对比最常用的查询模式:
| 数据源 | 查询语言 | 典型查询示例 | 适用场景 |
|---|---|---|---|
| Prometheus | PromQL | rate(http_requests_total[5m]) |
指标聚合、速率计算 |
| InfluxDB | Flux | from(bucket:"telegraf") |> range(start:-1h) |> filter(fn:(r) => r._measurement == "cpu") |
灵活管道式查询 |
| Elasticsearch | Lucene / ES DSL | {"query":{"match":{"status":"error"}}} |
日志搜索与聚合 |
2.5 数据源配置的常见陷阱
⚠️ 避坑指南:
- Prometheus 数据源:如果面板显示 “No data”,首先检查数据源 URL 是否可达,其次确认 Prometheus 的
--web.external-url是否与 Grafana 配置一致。 - InfluxDB 数据源:使用 Flux 时,必须确保数据源版本选择 “Flux”,且 Bucket 名称正确(非 Database 名称)。
- Elasticsearch 数据源:Time field name 必须设置为
@timestamp或实际时间字段,否则面板无法按时间过滤。
2.6 面板复用的前置条件
在开始复用面板之前,请确保你的 Grafana 环境满足以下条件:
- ✅ 所有目标数据源已正确配置并测试通过(Data Source → Test)。
- ✅ 理解 Dashboard 变量(Variables)的用法,至少掌握 Query 与 Custom 两种变量类型。
- ✅ 熟悉 Panel 的 JSON Model 结构(Dashboard Settings → JSON Model),这是面板复用的底层数据格式。
- ✅ 掌握 Panel 的复制(Duplicate)与导入(Import)功能,这是最基础的复用操作。