Grafana面板配置指南摘要

本文系统介绍了Grafana面板的核心配置方法,包含以下要点:

  1. 面板基础:详解Timeseries、Stat等8种面板类型及其适用场景
  2. 配置流程:从创建面板到设置PromQL查询、单位转换、阈值配色的完整步骤
  3. 监控模板:提供CPU/内存/磁盘/网络等20+常用PromQL表达式
  4. 动态变量:实现节点/网卡/分区等多级联动筛选
  5. 表格优化:字段合并、属性覆盖、值映射等高级技巧
  6. 可视化技巧:Bargauge仪表盘、Stat统计面板的专项配置
  7. 阈值规范:制定CPU(70%橙/80%红)、磁盘IO(10MB/s橙)等通用阈值标准

附快速参考卡:包含单位转换路径、变量语法、表格配置流程图等实用信息。


一、Grafana 面板(Panel)基础

1.1 什么是 Panel

  • Panel(面板)是 Grafana 中最基本的可视化单元
  • 每种面板类型都提供Query Editor,可对接不同数据源(如 Prometheus)
  • 通过面板查询监控数据并以可视化方式展现

1.2 内置面板类型汇总

面板类型

说明

典型使用场景

Time series

时间序列(默认/主要图形)

CPU/内存/网络趋势图

Stat

统计数据(单值展示)

当前状态、总数

Bar gauge

条形仪表盘

使用率对比展示

Gauge

圆形仪表盘

百分比展示

Table

表格

节点信息汇总

Pie chart

饼状图

占比分析

Bar chart

条形图

分类对比

Heatmap

热力图

延迟分布

State timeline

状态时间表

状态随时间变化

Text

文本面板

支持 Markdown/HTML

Dashboard list

仪表盘列表

导航

Alert list

告警列表

告警概览


二、Panel 核心配置项

2.1 面板创建流程

  1. Dashboard → 点击 Add Panel → 选择可视化类型
  2. 在 Query Editor 中输入 PromQL 表达式,选择数据源为 Prometheus
  3. 在右侧 Panel Options 调整面板名称、单位、颜色等配置

2.2 常用配置项速查

配置位置

功能

操作路径

面板标题

修改面板名称

Panel Options → Title

数据单位

设置指标单位

Standard options → Unit

最大/最小值

限制坐标轴范围

Standard options → Max / Min

保留小数位

数字精度

Standard options → Decimals

颜色方案

整体配色

Standard options → Color scheme

阈值

分级配色阈值

Thresholds

Tooltip 模式

鼠标悬停显示方式

Tooltip → Tooltip mode → All

排序

Tooltip 数值排序

Tooltip → Values sort order

图例展示

表格/列表/最大最小值

Legend → Mode → Table

曲线别名

序列自定义名称

Options → Legend → Custom

属性覆盖

对单个序列单独设置属性

Add field override

2.3 常用单位选项

单位类型

路径

适用场景

Percent(0-100)

Misc → Percent(0-100)

CPU/内存/磁盘使用率(乘以100的)

Percent(0.0-1.0)

Misc → Percent

使用率(0~1之间的值)

bytes(IEC)

Data → bytes(IEC)

内存/磁盘大小(KiB/MiB/GiB)

bytes/sec(SI)

Data Rate → bytes/sec(SI)

磁盘读写速率

bits/sec(SI)

Data Rate → bits/sec(SI)

网络带宽

bits/sec(IEC)

Data Rate → bits/sec(IEC)

网络流量(精确值)

seconds(s)

Time → seconds(s)

运行时长

2.4 曲线别名(Legend 自定义名称)

  • 在 Query 的 Options → Legend → Custom 中设置
  • 支持使用 {{标签名}} 引用指标的标签值
  • 示例:{{instance}} CPU使用率 → 实际显示为 prom-node01:9100 CPU使用率

2.5 属性覆盖(Add field override)

适用场景:同一 Panel 中多个序列单位不同时(如:总内存用 Bytes,使用率用 %)

操作步骤:

  1. 右侧最下方 → Add field override
  2. 选择 Fields with name → 选定目标序列
  3. Add override property → 设置该序列专属的单位/颜色/阈值

三、常用 PromQL 表达式汇总

3.1 CPU 监控

# CPU 整体使用率%(乘以100)
(1 - avg(rate(node_cpu_seconds_total{job=~"node_exporter",mode="idle"}[5m])) by (instance)) * 100

# CPU user 模式使用率
avg(rate(node_cpu_seconds_total{job=~"node_exporter",mode="user"}[5m])) by (instance) * 100

# CPU 核心数
count(node_cpu_seconds_total{mode="idle",job="node_exporter"}) by (instance)

3.2 内存监控

# 内存使用率%
(node_memory_MemTotal_bytes{job=~"node_exporter"} - node_memory_MemAvailable_bytes{job=~"node_exporter"}) 
/ node_memory_MemTotal_bytes{job=~"node_exporter"} * 100

# 总内存
node_memory_MemTotal_bytes{job="node_exporter"}

3.3 磁盘监控

# 分区使用率%(根分区)
(node_filesystem_size_bytes{job="node_exporter",mountpoint="/"} - node_filesystem_avail_bytes{job="node_exporter",mountpoint="/"}) 
/ node_filesystem_size_bytes{job="node_exporter",mountpoint="/"} * 100

# 磁盘写速率
max(rate(node_disk_written_bytes_total{job=~"node_exporter"}[5m])) by (instance)

# 磁盘读速率
max(rate(node_disk_read_bytes_total{job=~"node_exporter"}[5m])) by (instance)

3.4 网络监控

# 下载带宽(bits/sec)
max(rate(node_network_receive_bytes_total{job=~"node_exporter"}[5m]) * 8) by (instance)

# 上传带宽(bits/sec)
max(rate(node_network_transmit_bytes_total{job=~"node_exporter"}[5m]) * 8) by (instance)

# 结合动态变量(instance + nic)的入流量
max(rate(node_network_receive_bytes_total{job=~"node_exporter",instance=~"$instance",device=~"$nic"}[5m]) * 8) by (instance)

3.5 节点状态和运行时间

# 节点状态(1=正常,0=异常)
up{instance=~"$instance"}

# 节点运行时长(秒)
sum(time() - node_boot_time_seconds{job=~"node_exporter",instance=~"$instance"}) by (instance)

# 节点基本信息(hostname/内核版本)
node_uname_info{job=~"node_exporter"}

3.6 流量同环比分析

# 入流量环比(最近1h vs 过去1h)
(rate(node_network_receive_bytes_total{...}[1h]) 
 - rate(node_network_receive_bytes_total{...}[1h] offset 1h)) 
/ rate(node_network_receive_bytes_total{...}[1h] offset 1h) * 100

四、Grafana 动态变量

4.1 动态变量的作用

  • 当 Dashboard 中面板数量多、节点数量多时,通过下拉菜单快速定位特定节点
  • 用户选定变量后,所有面板自动刷新,只展示该变量对应的数据
  • 可以按 instance(实例)、job(任务)、env(环境)等维度过滤

4.2 创建动态变量步骤

入口:Dashboard 右上角 → 仪表盘设置 → 变量 → Add Variable

常用变量类型:

变量类型

说明

配置方式

Custom

手动输入固定选项

直接填写选项值

Query

从数据源查询动态获取

填写 PromQL 查询标签值

通过 up 获取所有 job 或 instance 的方法:

  • Query Type:Label Values
  • Label:instance(或 job)
  • Metric:up

4.3 在 Panel 中使用变量

  • 在 PromQL 中以 $变量名 或 ${变量名} 引用
  • 示例:node_load1{instance=~"$instance"}
  • 变量未关联到面板表达式时,切换变量不会触发面板更新

4.4 动态变量嵌套

概念:一个变量的候选值依赖于另一个变量当前选定的值

示例场景:

  • 变量 $instance:选择节点(prom-node01/node02/node03)
  • 变量 $nic:随 $instance 动态更新,只显示该节点的网卡列表

NIC 网卡变量配置:

  • 变量名:nic
  • 类型:Query
  • Query Type:Label Values
  • Label:device
  • Metric:node_network_info
  • Label Filter:instance =~ $instance + device =~ eth.*

Mountpoint 分区变量配置:

  • 变量名:Mountpoint
  • 类型:Query
  • Label:mountpoint
  • Metric:node_filesystem_size_bytes
  • Label Filter:instance =~ $instance + mountpoint !~ /run.*(排除不需要的分区)

五、Grafana 表格(Table)

5.1 表格创建步骤

  1. 创建 Panel → 选择 Table 可视化类型
  2. 添加多条查询语句(每条对应一列数据)
  3. 将每条查询的 Format 修改为 Table,Type 修改为 Instant

5.2 表格合并(Merge 转换)

问题:多条查询语句各自生成独立表格,需要合并为一张

步骤:

  1. 点击 Transformations → Add transformation
  2. 选择 Merge series/tables(合并具有相同维度的多张表为一张)

5.3 字段整理(Organize Fields)

步骤:

  1. Transformations → Add transformation → Organize fields by name
  2. 可以:隐藏不需要的字段、重命名字段、调整顺序

5.4 表格字段属性覆盖

节点状态字段设置示例:

属性

配置内容

值映射

0 → 节点状态异常(红色);1 → 节点状态正常(绿色)

字体颜色

Cell Options → Cell type → Colored text

各字段参考配置:

字段

PromQL 指标

单位

说明

节点状态

up{job=~"node_exporter"}

值映射(0/1)

值映射 + 颜色

节点运行时间

sum(time() - node_boot_time_seconds{...}) by (instance)

seconds(s)

节点名称

node_uname_info{...}

无

取 nodename 字段

内核版本

node_uname_info{...}

无

取 release 字段

总内存

node_memory_MemTotal_bytes{...}

bytes(IEC)

CPU 核心数

count(node_cpu_seconds_total{mode="idle",...}) by (instance)

无

CPU 使用率%

(1 - avg(rate(...idle...))) * 100

Percent(0-100)

Gauge,阈值70%橙/80%红

内存使用率%

同上格式

Percent(0-100)

同 CPU 配置

分区使用率%

根分区空间公式

Percent(0-100)

同 CPU 配置

磁盘写速率

max(rate(node_disk_written_bytes_total{...}[5m])) by (instance)

bytes/sec(SI)

阈值 10MB/s 橙/20MB/s 红

磁盘读速率

max(rate(node_disk_read_bytes_total{...}[5m])) by (instance)

bytes/sec(SI)

同磁盘写速率

下载带宽

rate(...receive...) * 8

bits/sec(SI)

阈值 30MB/s 橙/50MB/s 红

上传带宽

rate(...transmit...) * 8

bits/sec(SI)

同下载带宽


六、Bar Gauge 仪表盘

6.1 适用场景

  • 展示单个实例的多项资源使用率(CPU / 内存 / 磁盘)
  • 条形方式直观对比,支持阈值渐变配色

6.2 创建步骤

  1. 创建 Panel → 选择 Bar gauge
  2. 添加查询:CPU 使用率、内存使用率、磁盘使用率
  3. 面板标题使用变量:[$instance]实例资源总览
  4. 样式配置:
    • Bar gauge → Orientation → Horizontal(水平方向)
    • Display mode → Retro LCD(复古 LCD 风格)
    • Value display → Text color

七、Stat 统计面板

7.1 常规统计面板(单值展示)

面板名称

PromQL 表达式

配置要点

节点状态

up{instance=~"$instance"}

Graph mode: None;值映射 0=异常(红)/1=正常(绿)

节点运行时长

sum(time() - node_boot_time_seconds{...}) by (instance)

Graph mode: None;单位 seconds(s)

CPU 核心数

count(node_cpu_seconds_total{mode="idle",...}) by (instance)

Graph mode: None

节点总内存

node_memory_MemTotal_bytes{...}

Graph mode: None;单位 bytes(IEC)

Graph mode: None 表示不显示背景趋势图,只显示数值

7.2 带背景色 Stat 面板

适用场景:入/出流量、同环比分析

关键配置:

  • Stat styles → Color mode → Background Gradient(带渐变背景色)
  • Standard options → Color scheme → Single color(自定义背景颜色)

同环比 Stat 面板额外配置:

  • 单位:Percent
  • 方向:Standard options → Orientation → Horizontal
  • 阈值:Base 红色,0 绿色(正增长绿色,负增长红色)

八、核心概念速查

8.1 Grafana 配置层次

Dashboard(仪表盘)
  └── Row(行,用于组织 Panel)
       └── Panel(面板)
              ├── Query(PromQL 查询)
              ├── Visualization(可视化类型)
              ├── Panel Options(标题、链接)
              ├── Standard options(单位、最大最小值)
              ├── Thresholds(阈值配色)
              ├── Legend(图例)
              ├── Tooltip(悬停提示)
              ├── Transformations(数据转换)
              └── Add field override(字段属性覆盖)

8.2 Transformations 常用转换器

转换器

作用

Merge series/tables

将多条查询的表格合并为一张

Organize fields by name

隐藏/重命名/排序字段

Calculate field

基于现有字段计算新字段

Filter data by values

按值过滤行数据

8.3 值映射(Value Mappings)

  • 路径:Panel → Value mappings → Add Value mappings
  • 支持将原始数值映射为文字说明并绑定颜色
  • 示例:1 → 节点状态正常(绿色);0 → 节点状态异常(红色)

8.4 Thresholds 阈值颜色规则

阈值设置

含义

Base(绿色)

0 到第一个阈值之间

第一个值(橙色)

超过该值进入橙色区间

第二个值(红色)

超过该值进入红色区间

常用阈值:

  • CPU/内存使用率:70% 橙,80% 红
  • 磁盘读写速率:10MB/s(10485760) 橙,20MB/s(20971520) 红
  • 网络带宽:30MB/s(30485760) 橙,50MB/s(52428800) 红

九、快速参考卡

面板可视化类型:
  Time series   → 趋势图(默认,最常用)
  Table         → 表格(汇总信息)
  Stat          → 单值统计(状态、总量)
  Bar gauge     → 条形仪表(使用率对比)
  Gauge         → 圆形仪表

常用单位路径:
  CPU/内存使用率  → Misc → Percent(0-100)
  内存/磁盘大小  → Data → bytes(IEC)
  磁盘读写速率  → Data Rate → bytes/sec(SI)
  网络带宽      → Data Rate → bits/sec(SI)
  运行时长      → Time → seconds(s)

动态变量:
  入口:Dashboard 设置 → 变量 → Add Variable
  类型:Query(动态)/ Custom(固定选项)
  引用:PromQL 中用 $变量名 或 ${变量名}
  获取所有 instance:Label Values → instance → Metric: up
  嵌套变量:Label Filter 中引用父变量 $instance

Table 配置流程:
  1. 添加多条查询 → Format: Table,Type: Instant
  2. Transformations → Merge series/tables(合并)
  3. Transformations → Organize fields(重命名/隐藏字段)
  4. Add field override(单独设置字段属性)
  5. Value mappings(值映射 + 颜色)

Cell 颜色类型:
  Colored text      → 字体颜色跟随阈值
  Colored background → 背景色跟随阈值
  Gauge             → 条形进度颜色

同环比公式:
  (最近N小时 - 过去N小时)/ 过去N小时 * 100
  PromQL: offset 关键字获取过去时段数据
  阈值:Base 红,0 绿(正增长=绿,负增长=红)

更多推荐