Grafana 可视化详解:从安装到自定义 Dashboard
Grafana 是一款开源的指标可视化和监控分析平台,与 Prometheus 深度集成,是云原生可观测性体系中的“展示层”核心组件。它支持丰富的图表类型、灵活的仪表盘(Dashboard)设计和强大的交互能力。
本文将系统讲解如何使用 Grafana 实现 Prometheus 指标的可视化,涵盖 安装、数据源配置、导入现成 Dashboard、创建自定义面板等完整流程。
一、安装 Grafana
1. Docker 安装(推荐,快速启动)
docker run -d \
-p 3000:3000 \
--name=grafana \
-e "GF_SECURITY_ADMIN_PASSWORD=yourpassword" \
grafana/grafana-enterprise
- 默认访问地址:
http://localhost:3000- 默认账号:
admin- 默认密码:
yourpassword(或首次登录时设置)
2. Linux 安装(Ubuntu/Debian)
# 添加仓库
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/enterprise/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
# 安装
sudo apt-get update
sudo apt-get install grafana
# 启动
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
3. 其他方式
- Kubernetes:使用 Helm Chart 安装
- Windows/macOS:下载二进制包
- 云服务:AWS Managed Grafana、Grafana Cloud
二、添加 Prometheus 作为数据源
步骤:
- 登录 Grafana(
http://localhost:3000) - 点击左侧 ⚙️ Configuration → Data Sources
- 点击 Add data source
- 选择 Prometheus
- 配置连接信息:
| 字段 | 示例值 | 说明 |
|---|---|---|
| Name | Prometheus | 数据源名称 |
| HTTP > URL | http://prometheus:9090 | Prometheus Server 地址(Docker 网络需可达) |
| Scrape interval | 15s | 与 Prometheus 保持一致 |
| Access | Server (default) | Grafana 代理请求 |
- 点击 Save & Test,显示 “Data source is working” 即成功。
✅ 如果 Prometheus 在 Docker 中,确保 Grafana 能访问其网络(如
--network共享网络)。
三、导入现成的 Dashboard
Grafana 提供了丰富的 官方模板库(Grafana Dashboards),可一键导入,快速搭建专业监控面板。
1. 导入 Node Exporter 主机监控(Dashboard ID: 1860)
用途:监控服务器 CPU、内存、磁盘、网络等系统指标。
步骤:
- 访问 https://grafana.com/grafana/dashboards/1860
- 复制 Dashboard ID:
1860 - 在 Grafana 中:
- 点击 + → Import
- 输入
1860 - 选择 Prometheus 数据源
- 点击 Import
效果:
- 显示 CPU 使用率、内存使用、磁盘 I/O、网络流量等
- 支持多实例切换(通过
instance变量)
✅ 适用于
node_exporter采集的主机指标。
2. 导入 JVM Micrometer 应用监控(Dashboard ID: 4701)
用途:监控 Spring Boot 应用的 JVM、HTTP、GC、线程等。
步骤:
- 访问 https://grafana.com/grafana/dashboards/4701
- 导入 ID
4701 - 选择 Prometheus 数据源
- 点击 Import
效果:
- JVM 内存使用(heap, non-heap)
- GC 次数与耗时
- HTTP 请求速率与延迟(
http_server_requests) - 线程数、类加载数
- 支持
application、instance变量切换
✅ 适用于使用 Micrometer + Spring Boot 的应用。
四、创建自己的 Dashboard
1. 创建新 Dashboard
- 点击左侧 + → Dashboard → Create Dashboard
- 或点击 Create → Dashboard
2. 添加面板(Panel)
每个面板显示一个图表或指标。
步骤:
- 点击 Add a new panel
- 进入面板编辑模式
3. 配置面板
(1)查询(Query)选项卡
- Data source:选择
Prometheus - PromQL 输入框:输入查询语句
示例 1:HTTP 请求速率
rate(http_server_requests_seconds_count[5m])
示例 2:P99 延迟
histogram_quantile(0.99, sum(rate(http_server_requests_seconds_bucket[5m])) by (le, job))
示例 3:JVM 堆内存使用率
jvm_memory_used_bytes{area="heap"} / jvm_memory_max_bytes{area="heap"}
✅ 使用
Legend format自定义图例,如{{job}} - {{method}}
(2)可视化(Visualization)选项卡
选择图表类型:
| 图表类型 | 适用场景 |
|---|---|
| Time series | 时间序列曲线(最常用) |
| Stat | 显示当前值(如内存使用量) |
| Gauge | 仪表盘(0~100%) |
| Bar gauge | 条形仪表 |
| Table | 表格展示 |
| Heatmap | 热力图(适合直方图) |
示例:Stat 面板显示错误率
- Query:
rate(http_server_requests_seconds_count{status=~"5.."}[5m]) / rate(http_server_requests_seconds_count[5m]) - Visualization: Stat
- Unit:
percent (0.0-1.0) - Thresholds: 设置红/黄/绿阈值
(3)面板标题与描述
- Title:如 “HTTP Request Rate”
- Description:可写 PromQL 说明或业务含义
4. 使用变量(Variables)实现动态切换
让 Dashboard 支持下拉选择,提升灵活性。
示例:添加 job 变量
- Dashboard 设置(齿轮图标)→ Variables → Add variable
- 配置:
- Name:
job - Type:
Query - Data source:
Prometheus - Query:
label_values(job) - Refresh:
On Dashboard Load
- Name:
- 在 PromQL 中使用:
job="$job"
✅ 支持
instance,application,namespace等常用变量。
5. 保存 Dashboard
- 点击右上角 Save dashboard(磁盘图标)
- 输入名称,如
My Spring Boot App Monitor - 点击 Save
五、Dashboard 管理最佳实践
| 实践 | 说明 |
|---|---|
| ✅ 使用变量 | 支持多实例、多服务切换 |
| ✅ 分组布局 | 按 CPU、内存、请求、延迟等分区域 |
| ✅ 设置刷新频率 | 30s 或 1m,避免频繁查询 |
| ✅ 添加注释(Annotations) | 标记发布、变更事件 |
| ✅ 共享 Dashboard | 导出 JSON 或分享链接 |
| ✅ 使用文件夹组织 | 按服务或团队分类 |
六、常用 Dashboard 推荐
| Dashboard ID | 名称 | 用途 |
|---|---|---|
| 1860 | Node Exporter Full | 主机监控 |
| 4701 | JVM (Micrometer) | Spring Boot 应用 |
| 395 | Prometheus Stats | Prometheus 自身监控 |
| 11074 | Kubernetes Cluster (Prometheus) | K8s 集群监控 |
| 9276 | Spring Boot Application | 另一个 Micrometer 模板 |
七、总结
Grafana 是 Prometheus 监控体系的“眼睛”,通过以下步骤可快速构建专业监控系统:
- ✅ 安装 Grafana(Docker 最简单)
- ✅ 添加 Prometheus 数据源
- ✅ 导入现成 Dashboard(如 1860 和 4701)
- ✅ 创建自定义面板:写 PromQL + 选图表
- ✅ 使用变量实现动态监控
- ✅ 保存并分享 Dashboard
核心价值:
“让指标说话,让问题可见。”
通过 Grafana,你可以将抽象的 PromQL 查询转化为直观的图表,帮助团队快速理解系统状态,提升故障排查效率,真正实现数据驱动的运维与决策。
1355

被折叠的 条评论
为什么被折叠?



