Grafana 仪表盘

DockerBeginner
立即练习

介绍

在本实验中,你将学习如何使用 Grafana 创建监控仪表盘的基础知识。Grafana 是一个流行的开源监控和可观测性平台,无论你的数据存储在哪里,它都可以让你查询、可视化、设置告警以及探索你的指标。

我们将使用一个预先配置好的环境,其中包含:

  • Grafana: 你将用于构建仪表盘的可视化工具。
  • Prometheus: 一个时间序列数据库,将作为 Grafana 的数据源。
  • Node Exporter: 一个代理,用于收集主机硬件和操作系统指标,并将其暴露给 Prometheus 进行抓取。

你的目标是从零开始构建一个简单的仪表盘,以显示实验环境的实时 CPU 使用率。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 88%。获得了学习者 100% 的好评率。

探索预配置的环境

在此步骤中,你将熟悉实验环境。设置脚本已启动三个 Docker 容器,它们构成了一个基本的监控堆栈。

首先,让我们验证所有容器是否都在运行。打开终端并执行以下命令:

docker ps

你应该会看到类似以下的输出,列出了 grafanaprometheusnode-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

Grafana 登录页面,显示 admin 凭据

登录后,让我们检查数据源连接。

  1. 在左侧菜单中,点击 Connections 图标(看起来像一个插头或连接器)。
  2. 在 Connections 页面,点击 Data sources
  3. 你会看到一个名为 Prometheus 的预配置数据源。此连接已由初始化脚本自动设置,允许 Grafana 查询 Prometheus 容器。
Grafana UI 显示 Prometheus 数据源选择

你现在已准备好构建你的第一个仪表盘。

在 Grafana UI 中创建新仪表盘

在此步骤中,你将在 Grafana 界面中创建一个新的、空的仪表盘。仪表盘是由一个或多个面板组成的集合,这些面板以网格形式排列。

  1. 在 Grafana UI 中,找到左侧边栏。
  2. 在出现的菜单中,选择 Dashboard
创建新仪表盘

此操作将创建一个新的、空的仪表盘。系统会立即提示你添加第一个面板。面板是 Grafana 中基本的可视化构建块。

点击屏幕中央的 Add visualization 按钮,进入面板编辑器。

添加新面板

你现在已进入面板编辑器,在下一步中,你将在此定义你的数据查询并自定义其可视化。

添加 CPU 使用率的 PromQL 查询面板

在此步骤中,你将向仪表盘添加一个面板,并使用 PromQL(Prometheus 查询语言)查询来获取 CPU 使用率数据。

你应该已经从上一步进入了面板编辑器。

  1. 在编辑器底部,你会找到查询部分。Prometheus 数据源应该已默认选中。
  2. 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 使用率随时间的变化。

Grafana 面板显示查询结果

你的面板现在正在显示数据,但可以通过更好的标签和格式进行改进,你将在下一步中进行操作。

自定义并保存仪表盘

在此步骤中,你将自定义面板的外观并保存仪表盘。一个配置良好的面板更容易一目了然。

  1. 在面板编辑器的右侧,找到 Panel options 部分。
  2. Title 字段中,为你面板输入一个描述性的名称,例如 CPU Usage %。你将看到标题在预览窗格中更新。
  3. 在右侧选项中向下滚动,直到找到 Standard options 部分。
  4. 点击 Unit 下拉菜单。它目前显示为“None”。
  5. 在出现的搜索框中,输入 percent,然后从列表中选择 Percent (0-100)。这将正确格式化你图表的 Y 轴以显示百分比符号。
自定义面板选项

现在面板已配置好,应用更改并返回仪表盘视图。

  1. 点击屏幕右上角的 Save 按钮。

你现在回到了仪表盘界面,其中包含了你新创建的面板。最后一步是保存整个仪表盘。

  1. 点击仪表盘标题栏右上角的 Save dashboard 图标(看起来像一个软盘)。
  2. 将出现一个“Save dashboard”对话框。为你的仪表盘输入一个名称,例如 My System Dashboard
  3. 点击 Save 按钮。
保存仪表盘

恭喜!你已成功创建并保存了你的第一个 Grafana 仪表盘。

总结

在此次实验中,你已成功从零开始构建了一个 Grafana 仪表盘。你从一个预先配置好的监控堆栈开始,并执行了以下关键操作:

  • 探索了由 Grafana、Prometheus 和 Node Exporter 容器组成的运行环境。
  • 导航了 Grafana UI 以创建一个新的、空的仪表盘。
  • 添加了一个可视化面板,并编写了一个 PromQL 查询,从 Prometheus 数据源获取 CPU 使用率数据。
  • 自定义了面板的标题和单位格式,以提高可读性。
  • 保存了完成的仪表盘以供将来使用。

你现在已经掌握了在 Grafana 中创建可视化的基本工作流程。你可以通过向仪表盘添加更多面板来监控其他系统指标,如内存使用率、磁盘 I/O 或网络流量,从而在此基础上扩展你的知识。