Grafana 可视化详解:从安装到自定义 Dashboard

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 作为数据源

步骤:

  1. 登录 Grafana(http://localhost:3000
  2. 点击左侧 ⚙️ ConfigurationData Sources
  3. 点击 Add data source
  4. 选择 Prometheus
  5. 配置连接信息:
字段示例值说明
NamePrometheus数据源名称
HTTP > URLhttp://prometheus:9090Prometheus Server 地址(Docker 网络需可达)
Scrape interval15s与 Prometheus 保持一致
AccessServer (default)Grafana 代理请求
  1. 点击 Save & Test,显示 “Data source is working” 即成功。

✅ 如果 Prometheus 在 Docker 中,确保 Grafana 能访问其网络(如 --network 共享网络)。


三、导入现成的 Dashboard

Grafana 提供了丰富的 官方模板库Grafana Dashboards),可一键导入,快速搭建专业监控面板。

1. 导入 Node Exporter 主机监控(Dashboard ID: 1860)

用途:监控服务器 CPU、内存、磁盘、网络等系统指标。

步骤:
  1. 访问 https://grafana.com/grafana/dashboards/1860
  2. 复制 Dashboard ID:1860
  3. 在 Grafana 中:
    • 点击 +Import
    • 输入 1860
    • 选择 Prometheus 数据源
    • 点击 Import
效果:
  • 显示 CPU 使用率、内存使用、磁盘 I/O、网络流量等
  • 支持多实例切换(通过 instance 变量)

✅ 适用于 node_exporter 采集的主机指标。


2. 导入 JVM Micrometer 应用监控(Dashboard ID: 4701)

用途:监控 Spring Boot 应用的 JVM、HTTP、GC、线程等。

步骤:
  1. 访问 https://grafana.com/grafana/dashboards/4701
  2. 导入 ID 4701
  3. 选择 Prometheus 数据源
  4. 点击 Import
效果:
  • JVM 内存使用(heap, non-heap)
  • GC 次数与耗时
  • HTTP 请求速率与延迟(http_server_requests
  • 线程数、类加载数
  • 支持 applicationinstance 变量切换

✅ 适用于使用 Micrometer + Spring Boot 的应用。


四、创建自己的 Dashboard

1. 创建新 Dashboard

  • 点击左侧 +DashboardCreate Dashboard
  • 或点击 CreateDashboard

2. 添加面板(Panel)

每个面板显示一个图表或指标。

步骤:
  1. 点击 Add a new panel
  2. 进入面板编辑模式

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 变量
  1. Dashboard 设置(齿轮图标)→ VariablesAdd variable
  2. 配置:
    • Name: job
    • Type: Query
    • Data source: Prometheus
    • Query: label_values(job)
    • Refresh: On Dashboard Load
  3. 在 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名称用途
1860Node Exporter Full主机监控
4701JVM (Micrometer)Spring Boot 应用
395Prometheus StatsPrometheus 自身监控
11074Kubernetes Cluster (Prometheus)K8s 集群监控
9276Spring Boot Application另一个 Micrometer 模板

七、总结

Grafana 是 Prometheus 监控体系的“眼睛”,通过以下步骤可快速构建专业监控系统:

  1. 安装 Grafana(Docker 最简单)
  2. 添加 Prometheus 数据源
  3. 导入现成 Dashboard(如 1860 和 4701)
  4. 创建自定义面板:写 PromQL + 选图表
  5. 使用变量实现动态监控
  6. 保存并分享 Dashboard

核心价值:

“让指标说话,让问题可见。”

通过 Grafana,你可以将抽象的 PromQL 查询转化为直观的图表,帮助团队快速理解系统状态,提升故障排查效率,真正实现数据驱动的运维与决策

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值