SQL查询结合Grafana仪表盘实现趋势分析 - 第2节

2.1 Grafana 是什么?

Grafana 是一款开源的可视化与监控分析平台。它能够将存储在各类数据库(如 PostgreSQL、MySQL、Prometheus、InfluxDB 等)中的时序数据或业务数据,通过丰富的图表、表格、仪表盘等形式呈现出来,帮助用户快速理解数据趋势、发现异常并做出决策。

在《SQL查询结合Grafana仪表盘实现趋势分析》这门课程中,Grafana 充当“前端画布”,而 SQL 则是“数据画笔”。两者结合,可以灵活地绘制出任何业务维度的趋势图。

核心定位:Grafana 不是数据存储引擎,而是数据可视化与告警的统一控制台。它不生产数据,只做数据的“搬运工”和“化妆师”。

2.2 核心概念:Dashboard、Panel、Data Source

理解 Grafana 的三大核心概念是入门的第一步。它们之间的关系可以用一个简单的层级结构来概括:

Grafana 核心概念层级关系 Data Source(数据源) Dashboard(仪表盘) 包含多个 Panel 的容器 Panel 1 折线图 Panel 2 表格 Panel 3 柱状图 一个 Data Source 可被多个 Dashboard 共用;一个 Dashboard 可包含多个 Panel。

2.2.1 Data Source(数据源)

数据源是 Grafana 与外部存储系统之间的连接配置。Grafana 本身不存储数据,它通过数据源插件查询后端数据库。对于本课程,我们主要使用支持 SQL 的数据源,如 PostgreSQL 或 MySQL。

数据源类型适用场景查询语言
PostgreSQL关系型业务数据、时序日志SQL
MySQLWeb 应用数据、电商订单SQL
Prometheus云原生监控指标PromQL
InfluxDBIoT 传感器、高性能时序InfluxQL / Flux
课程约定:后续章节均以 PostgreSQL 作为默认数据源进行演示。你可以在 Grafana 的 Configuration > Data Sources 中完成添加。

2.2.2 Dashboard(仪表盘)

Dashboard 是一个包含多个 Panel 的容器,用于组织和管理可视化图表。你可以将 Dashboard 理解为一个“监控大屏”或“数据分析报告”。每个 Dashboard 都有自己的 URL、权限设置和刷新策略。

  • 组织维度:按业务模块(如“电商核心指标”)、按团队(如“SRE 团队看板”)或按时间周期(如“每日运营日报”)创建。
  • 变量支持:Dashboard 支持定义模板变量(如 $region、$timeRange),让用户通过下拉框动态切换查询范围。
  • 导入导出:Dashboard 可以导出为 JSON 文件,方便版本管理和团队共享。

2.2.3 Panel(面板)

Panel 是 Grafana 中最基本的可视化单元。每一个 Panel 对应一个独立的查询(Query)和一种可视化类型(Visualization)。

常见的 Panel 可视化类型包括:

  • Time series(时序图):最常用的趋势分析图,支持多条线、区域填充、阈值线。
  • Stat(统计值):显示单个关键数值,如当前在线人数、今日销售额。
  • Table(表格):以行列形式展示原始数据,支持排序和条件样式。
  • Bar gauge / Pie chart:用于占比或进度展示。
常见 Panel 可视化类型 Time series Stat 1,284 当前在线用户 Table 地区销售额 华东¥12.5k 华南¥9.8k Bar chart

2.3 安装与初始配置

Grafana 支持多种安装方式,包括 Docker、二进制包、APT/YUM 仓库等。对于学习和开发环境,推荐使用 Docker 一键部署,快速体验。

2.3.1 使用 Docker 安装(推荐)

确保你的机器已安装 Docker。执行以下命令即可启动 Grafana 容器:

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -e "GF_SECURITY_ADMIN_PASSWORD=admin123" \
  grafana/grafana:latest

参数说明:

  • -p 3000:3000:将宿主机的 3000 端口映射到容器内的 Grafana Web 端口。
  • -e GF_SECURITY_ADMIN_PASSWORD:设置管理员密码(默认用户名为 admin)。
  • grafana/grafana:latest:官方最新稳定版镜像。

启动后,在浏览器中访问 http://localhost:3000,使用用户名 admin 和密码 admin123 登录。

2.3.2 初始配置:添加第一个 Data Source

登录 Grafana 后,第一步是配置数据源。以下是添加 PostgreSQL 数据源的步骤:

  1. 点击左侧齿轮图标 Configuration > Data Sources。
  2. 点击 Add data source 按钮,在列表中选择 PostgreSQL。
  3. 填写连接信息:
    • Host: localhost:5432
    • Database: your_database_name
    • User: your_username
    • Password: your_password
    • TLS/SSL: 开发环境可选择 disable
  4. 点击页面底部的 Save & Test 按钮。如果看到绿色提示 "Database Connection OK",则表示配置成功。
添加 PostgreSQL 数据源流程 1. 进入配置 Configuration > Data Sources 2. 选择类型 选择 PostgreSQL 3. 填写连接 Host / DB / User / Pwd 4. 保存测试 Save & Test 提示:如果测试失败,请检查数据库地址是否可达、端口是否开放、用户权限是否足够。 Grafana 默认使用 UTC 时间,可在 Data Source 设置中调整时区。

2.3.3 验证安装:创建一个简单的 Dashboard

数据源配置完成后,可以快速创建一个测试 Dashboard 来验证环境是否正常:

  1. 点击左侧 + 图标,选择 Dashboard。
  2. 点击 Add panel > Add a new panel。
  3. 在右侧 Query 区域,选择你刚刚添加的 PostgreSQL 数据源。
  4. 输入一条简单的 SQL 查询,例如:SELECT NOW() AS current_time;
  5. 点击右上角 Apply,然后点击 Save dashboard 并命名。

如果 Panel 中成功显示了当前数据库时间,说明 Grafana 与 PostgreSQL 的连接已经打通,你已经完成了从安装到第一个可视化的全流程。

常见问题:如果 Panel 显示 "No data" 或 "Query error",请检查 SQL 语句是否能在数据库客户端中正常执行,以及 Grafana 中 Data Source 的时区设置是否与数据库一致。

2.4 本章小结