介绍
在本实验中,你将学习如何使用 Grafana 创建监控仪表盘的基础知识。Grafana 是一个流行的开源监控和可观测性平台,无论你的数据存储在哪里,它都可以让你查询、可视化、设置告警以及探索你的指标。
我们将使用一个预先配置好的环境,其中包含:
- Grafana: 你将用于构建仪表盘的可视化工具。
- Prometheus: 一个时间序列数据库,将作为 Grafana 的数据源。
- Node Exporter: 一个代理,用于收集主机硬件和操作系统指标,并将其暴露给 Prometheus 进行抓取。
你的目标是从零开始构建一个简单的仪表盘,以显示实验环境的实时 CPU 使用率。
探索预配置的环境
在此步骤中,你将熟悉实验环境。设置脚本已启动三个 Docker 容器,它们构成了一个基本的监控堆栈。
首先,让我们验证所有容器是否都在运行。打开终端并执行以下命令:
docker ps
你应该会看到类似以下的输出,列出了 grafana、prometheus 和 node-exporter 容器。具体的容器 ID 会有所不同。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1a2b3c4d5e6 grafana/grafana "/run.sh" 15 seconds ago Up 14 seconds 0.0.0.0:3000->8080/tcp grafana
f6e5d4c3b2a1 prom/prometheus "/bin/prometheus --c…" 20 seconds ago Up 19 seconds 0.0.0.0:9090->9090/tcp prometheus
a9b8c7d6e5f4 prom/node-exporter "/bin/node_exporter …" 25 seconds ago Up 24 seconds 0.0.0.0:9100->9100/tcp node-exporter
以下是每个组件的简要说明:
node-exporter: 收集虚拟机系统指标。prometheus: 从node-exporter抓取并存储指标。grafana: 查询 Prometheus 并可视化数据。
现在,让我们访问 Grafana 用户界面。
由于 LabEx VM 的反向代理设置,请切换到桌面界面,点击左上角的 Firefox 浏览器,然后在地址栏输入 http://localhost:8080。你应该会看到 Grafana 登录页面。
使用默认凭据登录:
- 用户名:
admin - 密码:
admin
系统可能会提示你更改密码。在本实验中,你可以点击 Skip。

登录后,让我们检查数据源连接。
- 在左侧菜单中,点击 Connections 图标(看起来像一个插头或连接器)。
- 在 Connections 页面,点击 Data sources。
- 你会看到一个名为
Prometheus的预配置数据源。此连接已由初始化脚本自动设置,允许 Grafana 查询 Prometheus 容器。

你现在已准备好构建你的第一个仪表盘。
在 Grafana UI 中创建新仪表盘
在此步骤中,你将在 Grafana 界面中创建一个新的、空的仪表盘。仪表盘是由一个或多个面板组成的集合,这些面板以网格形式排列。
- 在 Grafana UI 中,找到左侧边栏。
- 在出现的菜单中,选择 Dashboard。

此操作将创建一个新的、空的仪表盘。系统会立即提示你添加第一个面板。面板是 Grafana 中基本的可视化构建块。
点击屏幕中央的 Add visualization 按钮,进入面板编辑器。

你现在已进入面板编辑器,在下一步中,你将在此定义你的数据查询并自定义其可视化。
添加 CPU 使用率的 PromQL 查询面板
在此步骤中,你将向仪表盘添加一个面板,并使用 PromQL(Prometheus 查询语言)查询来获取 CPU 使用率数据。
你应该已经从上一步进入了面板编辑器。
- 在编辑器底部,你会找到查询部分。
Prometheus数据源应该已默认选中。 - 在 Metrics browser 文本框中,输入以下 PromQL 查询。你可以直接复制粘贴。
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
让我们分解一下这个查询:
node_cpu_seconds_total{mode="idle"}: 这是来自 Node Exporter 的一个指标,它计算 CPU 处于“空闲”状态的总秒数。rate(...[5m]): 此函数计算过去 5 分钟内空闲时间的每秒平均增长率。结果是一个介于 0 和 1 之间的值,表示 CPU 空闲的时间比例。avg by (instance): 这会聚合结果,如果你有多个 CPU 或机器,这会很有用。* 100: 这会将分数转换为百分比(例如,0.95 变为 95%)。100 - ...: 最后,我们将空闲百分比从 100 中减去,以获得活动的 CPU 使用率百分比。
输入查询后,预览窗格顶部应该会自动出现一个图表,显示 CPU 使用率随时间的变化。

你的面板现在正在显示数据,但可以通过更好的标签和格式进行改进,你将在下一步中进行操作。
自定义并保存仪表盘
在此步骤中,你将自定义面板的外观并保存仪表盘。一个配置良好的面板更容易一目了然。
- 在面板编辑器的右侧,找到 Panel options 部分。
- 在 Title 字段中,为你面板输入一个描述性的名称,例如
CPU Usage %。你将看到标题在预览窗格中更新。 - 在右侧选项中向下滚动,直到找到 Standard options 部分。
- 点击 Unit 下拉菜单。它目前显示为“None”。
- 在出现的搜索框中,输入
percent,然后从列表中选择 **Percent (0-100)**。这将正确格式化你图表的 Y 轴以显示百分比符号。

现在面板已配置好,应用更改并返回仪表盘视图。
- 点击屏幕右上角的 Save 按钮。
你现在回到了仪表盘界面,其中包含了你新创建的面板。最后一步是保存整个仪表盘。
- 点击仪表盘标题栏右上角的 Save dashboard 图标(看起来像一个软盘)。
- 将出现一个“Save dashboard”对话框。为你的仪表盘输入一个名称,例如
My System Dashboard。 - 点击 Save 按钮。

恭喜!你已成功创建并保存了你的第一个 Grafana 仪表盘。
总结
在此次实验中,你已成功从零开始构建了一个 Grafana 仪表盘。你从一个预先配置好的监控堆栈开始,并执行了以下关键操作:
- 探索了由 Grafana、Prometheus 和 Node Exporter 容器组成的运行环境。
- 导航了 Grafana UI 以创建一个新的、空的仪表盘。
- 添加了一个可视化面板,并编写了一个 PromQL 查询,从 Prometheus 数据源获取 CPU 使用率数据。
- 自定义了面板的标题和单位格式,以提高可读性。
- 保存了完成的仪表盘以供将来使用。
你现在已经掌握了在 Grafana 中创建可视化的基本工作流程。你可以通过向仪表盘添加更多面板来监控其他系统指标,如内存使用率、磁盘 I/O 或网络流量,从而在此基础上扩展你的知识。



