Grafana 安装

DockerBeginner
立即练习

介绍

Grafana 是一个领先的开源监控与可观测性平台。无论你的指标存储在哪里,它都能让你查询、可视化、设置告警并理解这些指标。通过 Grafana,你可以与团队创建、探索和共享仪表盘,并培养数据驱动的文化。

在本实验中,你将使用 Docker 快速部署 Grafana。你会先启动作为数据源的 Prometheus,再启动 Grafana。镜像下载在 Terminal 中显示,方便观察进度并在失败后重试。你的目标是在独立容器中安装 Grafana 并连接 Prometheus,为后续数据可视化做好准备。

准备 Prometheus 并拉取 Grafana 镜像

在此步骤中,你将准备指标服务并下载 Grafana。Prometheus 收集指标,Grafana 查询这些指标并进行可视化。初始 Prometheus 配置文件已为你准备好;容器由你自行启动。

在项目目录中操作。

cd /home/labex/project

每个固定标签都指定了本实验使用的版本。下载可能需要几分钟。请等待每条命令返回提示符。如果拉取失败,重新执行同一条拉取命令;Docker 会复用已完成的镜像层。下载未完成时不要继续。

docker pull prom/prometheus:v3.3.0
docker pull grafana/grafana:11.6.0

docker network create 创建一个允许容器按名称互相解析的网络。docker run -d 在后台启动容器;--name 指定名称,--network 加入网络,-p 将主机端口映射到容器端口。只读绑定挂载(-v ...:ro)让 Prometheus 读取已准备的配置。

docker network create monitoring
docker run -d --name prometheus --network monitoring -p 9090:9090 -v /home/labex/project/prometheus.yml:/etc/prometheus/prometheus.yml:ro prom/prometheus:v3.3.0

这些 curl 选项会报告 HTTP 失败,并对暂时的启动错误最多重试 30 次,每次间隔两秒。容器运行后可能仍在初始化,因此必须等待健康检查成功再继续。

curl --fail --silent --show-error --retry 30 --retry-delay 2 --retry-connrefused --retry-all-errors http://localhost:9090/-/ready

成功响应会显示 Prometheus Server is Ready.。Grafana 镜像也已下载完成,可在下一步使用。

在主机端口 8080 上运行 Grafana 容器

在此步骤中,你将运行 Grafana 镜像作为容器。我们将使用 docker run 命令,它会根据指定的镜像创建一个新容器并启动它。

我们还将使用几个标志来配置容器:

  • -d: 以分离模式(在后台)运行容器。
  • -p 8080:3000: 将宿主机端口 8080 映射到容器的端口 3000。这使得 Grafana Web UI 可以从你的浏览器访问,同时避免与已使用端口 3000 的服务发生冲突。
  • --name grafana: 为容器分配一个自定义名称,以便于引用。
  • --network monitoring: 将容器连接到 monitoring 网络。这一点至关重要,因为它允许此 Grafana 容器使用其容器名称与 Prometheus 容器(位于同一网络上)进行通信。

运行以下命令来启动你的 Grafana 容器:

docker run -d -p 8080:3000 --name grafana --network monitoring grafana/grafana:11.6.0

该命令将输出一个长字符串,这是新创建容器的唯一 ID。

a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6

你可以使用 docker ps 命令来验证容器是否正在运行。

docker ps

你应该会看到列出的 grafana 容器状态为 Up。

这些 curl 选项会报告 HTTP 失败,并对暂时的启动错误最多重试 30 次,每次间隔两秒。容器运行后可能仍在初始化,因此必须等待健康检查成功再继续。

curl --fail --silent --show-error --retry 30 --retry-delay 2 --retry-connrefused --retry-all-errors http://localhost:8080/api/health

响应中必须包含 "database": "ok"。

打开 Grafana 界面

在此步骤中,你将打开已启动的服务。健康检查成功后,选择实验的 Grafana 标签页。如果浏览器阻止内嵌登录,使用标签页的在浏览器中打开控件,将它放到新的浏览器标签页中。

你应该看到 Grafana 登录表单。这个界面打开的是 VM 内运行的 Grafana;在你自己的浏览器中使用 localhost 会指向你的电脑,而不是 VM。保留 Terminal,以便检查容器。

首次登录与密码设置

在此步骤中,你将首次登录 Grafana。新的 Grafana 实例会在初次登录后提供修改密码的页面。

默认凭据是用户名 admin 和密码 admin。在登录表单中输入它们,然后点击 Log in。

在修改密码页面点击 Skip。本次临时实验需保留默认凭据,因为验证检查会使用它们查看你的数据源。在生产部署中,应将默认凭据替换为强密码。

你现在应该看到 Grafana 主页,可以开始配置与 Prometheus 的连接。

在 Grafana 中添加 Prometheus 作为数据源

在此步骤中,你将把 Grafana 连接到第一步中自行启动的 Prometheus 实例,使 Grafana 能够查询 Prometheus 指标。

请在 Grafana UI 中按照以下说明操作:

在左侧菜单中,点击 Connections 图标(看起来像一个插头或连接器)。 在 Connections 页面,点击 Data sources。 在 Data sources 页面,点击 Add data source 按钮。 在可用的数据源类型列表中,选择 Prometheus。

将 Name 设置为 Prometheus。

现在你需要配置连接设置。最重要的设置是 URL。

  • 在 Prometheus server URL 字段中,输入 http://prometheus:9090。

此 URL 之所以有效,是因为 Grafana 和 Prometheus 容器都连接到同一个 Docker 网络(monitoring)。Docker 的内部 DNS 允许同一网络中的容器通过其容器名称(在此例中为 prometheus)解析彼此。

输入 URL 后,滚动到页面底部,然后点击 Save & test 按钮。

Grafana 将尝试连接到 Prometheus 服务器。如果连接成功,你将看到一个绿色的通知,显示“Successfully queried the Prometheus API”。

现在你可以按照指南探索 Grafana 的功能了。添加 Prometheus 作为数据源后,请随意点击左侧菜单中的 Explore。在这里,你可以针对你的 Prometheus 数据运行查询,并实时可视化结果。尝试不同的查询,熟悉 Grafana 如何与你的指标交互!

总结

恭喜你!你已成功完成本次实验。

在本次实验中,你学习了使用 Grafana 和 Docker 的几项基本技能:

  • 如何从 Docker Hub 拉取官方 Docker 镜像。
  • 如何使用特定的网络和端口配置运行 Docker 容器。
  • 如何访问运行在容器内的 Web 应用程序。
  • 如何为新的 Grafana 实例执行初始安全设置。
  • 如何在共享的 Docker 网络中将 Grafana 连接到 Prometheus 数据源。

现在你拥有了一个功能齐全的 Grafana 实例,已连接到数据源,可以开始构建强大的仪表板来可视化你的数据了。