Prometheus 全方位监控实战(三): Grafana快速入门
·
内容概览
| 模块 | 核心内容 |
|---|---|
| 01 插件安装 | grafana-cli命令、插件管理、重启生效 |
| 02 自定义Dashboard | 新建面板、Row、PromQL配置 |
| 03 变量配置 | 变量类型、正则过滤、变量引用 |
| 04 表格制作 | 表格面板、数据转换 |
| 05 权限管理 | RBAC、用户角色、权限配置 |
| 06 备份恢复 | JSON导出、导入恢复 |
一、Grafana简介
Grafana是一款开源的图形化展示工具,支持从多个数据源读取数据,包括Prometheus、MySQL、ElasticSearch、PostgreSQL等主流数据库。
官方文档:https://grafana.com/grafana/
默认访问信息:
- URL:http://10.0.0.31:3000/
- 用户名:admin
- 密码:admin(首次登录需修改)

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

所有评论(0)