Grafana 仪表盘

LinuxBeginner
立即练习

介绍

在本实验中,你将学习使用 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:8080->3000/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 虚拟机的反向代理设置,请切换到桌面界面,点击左上角的 Firefox 浏览器,并在地址栏中输入 http://localhost:8080。你应该能看到 Grafana 的登录页面。

使用默认凭据登录:

  • 用户名:admin
  • 密码:admin

系统可能会提示你更改密码。在本实验中,你可以点击 Skip(跳过)。

带有 admin 凭据的 Grafana 登录页面

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

Grafana 在不同版本中会更改左侧边栏的标签和图标,因此你的屏幕可能与截图不完全一致。如果侧边栏已折叠,请先将其展开。

  1. 打开管理数据源的区域。在大多数较新的 Grafana 版本中,请使用 Connections(连接),然后选择 Data sources(数据源)。如果你没有看到 Connections,请使用侧边栏搜索功能,并从中打开 Data sources。
  2. 确认存在一个名为 Prometheus 的预配置数据源。此连接由初始化脚本自动设置,允许 Grafana 查询 Prometheus 容器。

显示 Prometheus 数据源选择的 Grafana UI

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

在 Grafana UI 中创建新仪表盘

在这一步中,你将在 Grafana 界面中创建一个新的空白仪表盘。仪表盘是按网格排列的一个或多个面板的集合。

  1. 在 Grafana UI 中,找到左侧边栏。
  2. 创建一个新仪表盘。具体的菜单标签取决于 Grafana 版本:
    • 如果你看到 + Create 入口,打开它并选择 New dashboard。
    • 如果你在侧边栏看到 Dashboards,打开它并选择 New dashboard。
    • 如果侧边栏布局看起来不同,请使用 Grafana 搜索框并从中打开 New 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(保存)按钮。在某些 Grafana 版本中,此按钮标记为 Apply(应用)。

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

  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 或网络流量。