自定义 Grafana 仪表板设计指南

Grafana 的强大之处在于其灵活的仪表板系统,你可以根据自己的需求创建个性化的监控面板。本文将详细介绍如何在 Grafana 中设计和优化自定义仪表板,涵盖面板类型、变量模板、查询优化和布局设计等方面。

一、创建新仪表板

登录 Grafana 后,点击左侧菜单「Dashboards」→「New」→「New Dashboard」。你会进入一个空白的仪表板编辑界面,可以开始添加各种面板。

二、面板类型选择

Grafana 提供了多种面板类型,每种适合不同的数据展示场景:

2.1 时间序列(Time Series)

最常用的面板类型,适合展示随时间变化的指标数据:

# CPU 使用率趋势
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# 内存使用趋势
(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100

2.2 仪表盘(Gauge)

适合展示单一数值的当前状态,如 CPU 使用率百分比、磁盘使用率等。可以设置阈值颜色:绿色(正常)、黄色(警告)、红色(危险)。

2.3 统计面板(Stat)

展示单一数值及其变化趋势,适合显示关键指标的当前值,如服务器在线时长、当前连接数等。

2.4 表格(Table)

以表格形式展示数据,适合对比多个实例的指标:

# 各服务器磁盘使用情况
(1 - node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100

2.5 日志面板(Logs)

配合 Loki 数据源,直接在仪表板中展示日志流。

2.6 柱状图(Bar Chart)

适合展示分类数据的对比,如不同服务器的资源使用对比。

三、变量模板

变量模板是 Grafana 最强大的功能之一,可以让仪表板动态切换显示不同的主机、服务或时间范围。

3.1 创建变量

在仪表板设置中点击「Variables」→「Add variable」:

  • Name:变量名,如 instance
  • Type:选择「Query」。
  • Data source:选择 Prometheus。
  • Querylabel_values(node_cpu_seconds_total, instance)
  • Multi-value:启用后可同时选择多个值。
  • Include All option:添加「All」选项。

3.2 在查询中使用变量

# 使用 instance 变量过滤
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle", instance=~"$instance"}[5m])) * 100)

# 使用 job 变量
up{job=~"$job"}

3.3 常用变量类型

  • Query:从数据源动态获取值列表。
  • Custom:手动定义值列表,如 5m,15m,30m,1h
  • Interval:时间间隔变量,用于动态调整聚合粒度。
  • Data source:在多数据源环境中切换数据源。

四、面板配置技巧

4.1 单位设置

在面板设置的「Standard options」→「Unit」中选择合适的单位:

  • CPU 使用率:选择「Percent (0-100)」。
  • 内存/磁盘大小:选择「Data / bytes(IEC)」或「Data / bytes(SI)」。
  • 网络速率:选择「Data rate / bytes/sec(IEC)」。
  • 时间延迟:选择「Time / seconds」。

4.2 阈值配置

在「Thresholds」中设置颜色阈值,让面板直观反映指标状态:

  • 绿色:0-60%(正常范围)。
  • 黄色:60-80%(需要关注)。
  • 红色:80-100%(需要处理)。

4.3 数据覆写(Override)

使用 Override 功能为特定指标设置独立的样式。例如在同一面板中展示 CPU 和内存使用率时,可以设置不同的颜色和 Y 轴。

五、布局设计建议

  • 顶部概览行:使用 Stat 面板展示关键指标的当前值(在线服务器数、平均 CPU、内存使用率)。
  • 中部趋势行:使用时间序列面板展示 CPU、内存、网络的历史趋势。
  • 底部详情行:使用表格面板展示各服务器的详细指标对比。
  • 使用 Row 分组:将相关面板归入同一行,行可以折叠以节省空间。

六、仪表板注解

注解(Annotations)可以在图表上标记重要事件,如部署、故障、配置变更等:

  • 进入仪表板设置 →「Annotations」→「Add Annotation Query」。
  • 数据源选择 Prometheus,查询表达式如 changes(process_start_time_seconds[5m]) > 0 标记服务重启事件。
  • 也可以手动在图表上添加注解来标记维护窗口。

七、仪表板链接与导航

在面板中添加链接实现仪表板之间的导航跳转:

  • Dashboard links:在仪表板设置中添加链接到其他仪表板。
  • Data links:在面板设置中添加,点击图表数据点可跳转到详情页面。
  • 使用变量传递参数:/d/dashboard-id?var-instance=${__data.fields.instance}

八、导出与分享

8.1 导出 JSON

点击仪表板设置图标 → 「JSON Model」,可以复制或下载仪表板的 JSON 定义。这个 JSON 可以导入到其他 Grafana 实例中。

8.2 快照分享

点击分享图标 → 「Snapshot」,创建包含当前数据的静态快照,可以发送链接给其他人查看。

8.3 嵌入面板

单个面板可以生成嵌入链接或 iframe 代码,嵌入到其他网页中展示:

<iframe src="http://your-grafana:3000/d-solo/dashboard-id/panel-id?orgId=1&panelId=2" width="800" height="400"></iframe>

九、性能优化

  • 减少查询数量:每个面板尽量只包含 1-3 个查询。
  • 使用合适的时间范围:不要默认加载过长的时间范围。
  • 设置刷新间隔:根据场景选择合理的自动刷新间隔(10s/30s/1m)。
  • 使用 $__rate_interval:代替硬编码的时间范围,让 Grafana 自动优化。
  • 延迟加载:大仪表板可以将不常用的 Row 设为折叠状态。

十、实用仪表板模板

推荐导入的社区仪表板:

  • 1860:Node Exporter Full,全面的服务器监控。
  • 3662:Prometheus 2.0 Overview,Prometheus 状态监控。
  • 7587:Blackbox Exporter,网站端点监控。
  • 893:Docker and System Monitoring,Docker 容器监控。
  • 12486:Nginx Monitoring,Nginx 性能监控。

总结

精心设计的 Grafana 仪表板能让你快速把握服务器的运行状态。建议从社区模板开始,逐步根据自己的需求进行定制。配合 PrometheusNode Exporter,可以构建专业的 VPS 监控系统。选购搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。