内容概览

模块 核心内容
01 插件安装 grafana-cli命令、插件管理、重启生效
02 自定义Dashboard 新建面板、Row、PromQL配置
03 变量配置 变量类型、正则过滤、变量引用
04 表格制作 表格面板、数据转换
05 权限管理 RBAC、用户角色、权限配置
06 备份恢复 JSON导出、导入恢复

一、Grafana简介

Grafana是一款开源的图形化展示工具,支持从多个数据源读取数据,包括Prometheus、MySQL、ElasticSearch、PostgreSQL等主流数据库。

官方文档https://grafana.com/grafana/

默认访问信息

二、Grafana插件安装

2.1 插件概述

Grafana支持安装第三方插件扩展功能。当导入某些Dashboard时,可能会遇到如下错误:

Panel plugin not found: natel-discrete-panel

这说明缺少必要的插件,需要手动安装。

2.2 默认数据目录

[root@prometheus-server31 ~]# ll /var/lib/grafana/
total 1940
drwxr-xr-x  5 grafana grafana    4096 May 12 14:46 ./
drwxr-xr-x 61 root    root       4096 May 12 10:38 ../
drwxr-x---  3 grafana grafana    4096 May 12 10:38 alerting/
drwx------  2 grafana grafana    4096 May 12 10:38 csv/
-rw-r-----  1 grafana grafana 1961984 May 12 14:46 grafana.db
drwx------  2 grafana grafana    4096 May 12 10:38 png/

2.3 插件管理命令

列出本地安装的插件

[root@prometheus-server31 ~]# grafana-cli plugins ls
Error: ✗ stat /var/lib/grafana/plugins: no such file or directory

安装指定的插件

[root@prometheus-server31 ~]# grafana-cli plugins install natel-discrete-panel
✔ Downloaded and extracted natel-discrete-panel v0.1.1 zip successfully to /var/lib/grafana/plugins/natel-discrete-panel

Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary.

验证插件安装

[root@prometheus-server31 ~]# grafana-cli plugins ls
installed plugins:
natel-discrete-panel @ 0.1.1

[root@prometheus-server31 ~]# ll /var/lib/grafana/plugins/
total 12
drwxr-xr-x 3 root    root    4096 May 12 14:49 ./
drwxr-xr-x 6 grafana grafana 4096 May 12 14:49 ../
drwxr-xr-x 4 root    root    4096 May 12 14:49 natel-discrete-panel/

[root@prometheus-server31 ~]# ll /var/lib/grafana/plugins/natel-discrete-panel/
total 180
drwxr-xr-x 4 root root   4096 May 12 14:49 ./
drwxr-xr-x 3 root root   4096 May 12 14:49 ../
-rw-r--r-- 1 root root   1891 May 12 14:49 CHANGELOG.md
drwxr-xr-x 2 root root   4096 May 12 14:49 img/
-rw-r--r-- 1 root root   1079 May 12 14:49 LICENSE
-rw-r--r-- 1 root root   2650 May 12 14:49 MANIFEST.txt
-rw-r--r-- 1 root root  30629 May 12 14:49 module.js
-rw-r--r-- 1 root root    808 May 12 14:49 module.js.LICENSE.txt
-rw-r--r-- 1 root root 108000 May 12 14:49 module.js.map
drwxr-xr-x 2 root root   4096 May 12 14:49 partials/
-rw-r--r-- 1 root root   1590 May 12 14:49 plugin.json
-rw-r--r-- 1 root root   3699 May 12 14:49 README.md

重启Grafana使配置生效

[root@prometheus-server31 ~]# systemctl restart grafana-server.service

三、自定义Dashboard

3.1 新建Dashboard

操作路径:
1. 登录Grafana
2. 点击左侧菜单栏的"+"图标
3. 选择"Dashboard"
4. 进入空白Dashboard页面

3.2 新建可视化面板

操作路径:
1. 在Dashboard页面点击"Add visualization"
2. 选择数据源(Prometheus)
3. 进入Panel编辑界面

3.3 统计CPU相关信息

CPU相关的PromQL语句

	1.CPU使用率
(1 - sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) /  sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100

3.4 添加Row(行)

作用:使用Row对Panel(面板)进行折叠管理和分组

操作路径:
1. 点击Dashboard页面上的"Add panel"
2. 选择"Add row"
3. 输入Row标题
4. 可将多个Panel拖拽到Row中

3.5 对已有Panel进行编辑

操作路径:
1. 点击Panel标题栏
2. 选择"Edit"
3. 进入编辑模式修改配置

3.5 保存Dashboard

操作路径:
1. 点击Dashboard页面右上角的"Save dashboard"图标
2. 输入Dashboard名称
3. 点击"Save"确认

⚠️ 注意:如果不保存,刷新当前页面后所有配置将丢失!

四、Dashboard配置详解

4.1 Panel编辑界面说明

区域 功能
Query 编写PromQL查询语句
Visualization 选择图表类型(Time series、Bar chart、Table等)
Panel options 设置面板标题、描述等
Legend 设置图例显示方式
Axes 设置坐标轴(Y轴单位、刻度等)

4.2 常用图表类型

图表类型 适用场景
Time series 时间序列数据(CPU、内存变化趋势)
Bar chart 横向对比(各节点资源使用情况)
Table 详细数据列表
Stat 单个数值显示(当前连接数)
Gauge 百分比仪表盘
Pie chart 占比分布

4.3 常用PromQL语句配置

CPU使用率
(1 - sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100
系统模式占用的时间
(sum(increase(node_cpu_seconds_total{mode="system"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100
系统等待时间
(sum(increase(node_cpu_seconds_total{mode="iowait"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100
CPU空闲时间
(sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100
统计各节点CPU核心数
count(node_cpu_seconds_total{mode="idle"}) by (instance)

五、变量配置

5.1 变量概述

变量可以实现Dashboard的动态过滤,用户可以通过下拉菜单选择不同的主机、实例等,无需修改PromQL语句。

5.2 进入设置页面

操作路径:
1. 打开要编辑的Dashboard
2. 点击右上角的"设置"图标(齿轮图标)
3. 选择"Variables"

5.3 进入变量页面

操作路径:
1. 点击"Add variable"按钮
2. 进入变量配置界面

5.4 定义变量

变量配置参数说明

参数 说明 示例
Name 变量名称(引用时使用$变量名) myhost
Label 显示标签 主机
Type 变量类型 Query / Interval / Constant
Data source 数据源 Prometheus
Query 查询语句 label_values(node_cpu_seconds_total, instance)

常用变量类型

类型 说明 使用场景
Query 查询结果作为变量值 动态获取主机列表
Interval 时间间隔 设置查询时间范围
Constant 固定值 定义固定参数
Text box 文本框 用户手动输入

5.5 基于instance进行过滤

配置文件中job_name

Query配置:
label_values(node_cpu_seconds_total{job="oldboyedu-node-exporter"}, instance)

说明:查询qingyang-node-exporter任务下的所有instance值

5.6 引用变量

# 在Panel的Query中使用$变量名引用
count(node_cpu_seconds_total{mode="idle", job="oldboyedu-node-exporter", instance="$myhost"}) by (instance)

# 多变量组合使用
node_cpu_seconds_total{instance="$myhost", cpu="$cpuid"}

5.7 变量正则过滤

# 匹配以10.0.0开头的instance
/^10\.0\.0\..*:9100$/

# 匹配特定格式
/.*:9100$/

5.8 保存Dashboard

配置完变量后,Dashboard顶部会出现下拉选择框
可以选择不同的变量值来动态刷新所有Panel数据

六、表格制作案例

6.1 创建表格面板

配置颜色

6.2 表格常用PromQL

# 节点信息表格
node_uname_info

# 节点内存使用情况
node_memory_MemTotal_bytes / 1024 / 1024 / 1024

# 节点CPU核心数
count(node_cpu_seconds_total{mode="idle"}) by (instance)

6.3 表格配置优化

配置项 说明
Column width 设置列宽
Sort by 设置默认排序字段
Transform 数据转换(时间序列→表格)
Override 单独设置某列的格式(单位、颜色等)

七、RBAC权限管理

7.1 Grafana角色说明

角色 权限
Viewer 只读查看Dashboard
Editor 创建修改Dashboard
Admin 管理数据源、插件、用户
Grafana Admin 超级管理员

7.2 用户管理

操作路径:
1. 左侧菜单 → "Configuration""Users"
2. 可添加、编辑、删除用户
3. 可邀请用户加入组织

7.3 Dashboard权限设置

操作路径:
1. 打开Dashboard
2. 点击"Settings""Permissions"
3. 可为不同角色设置不同权限
权限级别 操作
View 查看Dashboard
Edit 编辑Dashboard
Admin 管理Dashboard权限

八、备份和恢复

8.1 Dashboard备份

操作路径:
1. 打开要备份的Dashboard
2. 点击"Settings"(齿轮图标)
3. 选择"JSON Model"
4. 复制全部JSON内容
5. 保存到本地文件(如dashboard-backup.json)

8.2 Dashboard恢复

操作路径:
1. 点击左侧菜单"+""Import"
2. 点击"Upload JSON file"
3. 选择备份的JSON文件
4. 选择数据源(Prometheus)
5. 点击"Import"

8.3 完整备份方法

方法一:逐个导出Dashboard JSON

适用于少量Dashboard,手动备份。

方法二:备份Grafana数据库

# 备份数据库
cp /var/lib/grafana/grafana.db /backup/grafana.db.$(date +%Y%m%d)

# 恢复数据库
systemctl stop grafana-server
cp /backup/grafana.db.20250101 /var/lib/grafana/grafana.db
chown grafana:grafana /var/lib/grafana/grafana.db
systemctl start grafana-server

方法三:备份整个Grafana目录

# 备份
tar czf grafana-backup.tar.gz /var/lib/grafana/

# 恢复
tar xzf grafana-backup.tar.gz -C /
systemctl restart grafana-server

九、Grafana常用操作快捷键

操作 快捷键
保存Dashboard Ctrl + S
刷新Dashboard Ctrl + Shift + R
快速查找 Ctrl + K
新建Dashboard Ctrl + N
全屏模式 F
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐