Grafana 仪表盘

DockerBeginner
立即练习

简介

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

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

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

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

探索预配置环境

在这一步中,你将熟悉实验环境。设置脚本已经启动了三个 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: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(添加可视化)按钮,进入面板编辑器。

添加新面板

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

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

在这一步中,你将向仪表盘添加一个面板,并使用 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 或网络流量。