Prometheus 安装

DockerBeginner
立即练习

介绍

Prometheus 是一个强大的开源监控和告警工具集,最初在 SoundCloud 构建。它已成为云原生环境中监控的标准。其主要特点包括多维数据模型、灵活的查询语言 (PromQL) 以及多种可视化选项。

在本实验中,你将学习使用 Docker 启动和运行 Prometheus 实例的最直接方法。这种方法避免了复杂的安装步骤,让你能够快速开始探索 Prometheus。你将拉取官方 Docker 镜像,将其作为容器运行,并与其 Web 界面进行交互。

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

拉取 Prometheus Docker 镜像

在此步骤中,你将从 Docker Hub 拉取官方 Prometheus Docker 镜像。Docker Hub 是一个公共的 Docker 镜像注册中心,而 prom/prometheus 是由 Prometheus 团队维护的官方镜像。

docker pull 命令会将指定的镜像下载到你的本地机器,使其可以作为容器运行。

在你的终端中执行以下命令,以拉取最新版本的 Prometheus 镜像:

docker pull prom/prometheus

你将看到输出指示镜像层正在下载。完成后,镜像将存储在本地。

预期输出 (版本号可能有所不同):

Using default tag: latest
latest: Pulling from prom/prometheus
a4ca46b05734: Pull complete
542b5806d2b7: Pull complete
...
Digest: sha256:2c785d4e9af2224941598d142337931a5f8333065916938c6444294020b45f50
Status: Downloaded newer image for prom/prometheus
docker.io/prom/prometheus

在端口 9090 上运行 Prometheus 容器

在此步骤中,你将使用刚刚拉取的镜像来运行 Prometheus 容器。我们将使用 docker run 命令来创建和启动容器。

以下是我们使用的命令选项的详细说明:

  • -d: 以分离模式 (后台) 运行容器。
  • -p 9090:9090: 将宿主机的端口 9090 映射到容器的端口 9090。Prometheus 的 Web UI 默认运行在端口 9090。
  • --name prometheus: 为容器分配一个易于引用的名称 prometheus
  • prom/prometheus: 指定用于创建容器的镜像。

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

docker run -d -p 9090:9090 --name prometheus prom/prometheus

该命令将输出一个长的容器 ID,确认容器已启动。

为了验证容器是否正在运行,你可以使用 docker ps 命令,该命令会列出所有正在运行的容器。

docker ps

你应该在列表中看到 prometheus 容器,其状态为 "Up"。

预期输出:

CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                    NAMES
a1b2c3d4e5f6   prom/prometheus   "/bin/prometheus --c…"   A few seconds ago   Up a few seconds   0.0.0.0:9090->9090/tcp   prometheus

访问 localhost:9090 上的 Prometheus Web UI

在此步骤中,你将访问 Prometheus Web 界面,它现在正在运行并暴露在端口 9090 上。LabEx 环境提供了一种便捷的方式来访问虚拟机内部运行的 Web 服务。

点击实验室界面顶部的 + (新建标签页) 按钮。

选择 Web Service 选项,然后输入 9090 作为端口。

Prometheus web service port input

这将打开一个新的浏览器标签页,连接到你的实验环境中运行的服务。

由于我们映射了端口 9090,Prometheus UI 将可用。你应该会看到 Prometheus Expression Browser,这是主登录页面。此界面允许你编写和执行 PromQL 查询来探索指标。

Prometheus Expression Browser landing page

此页面的出现确认了你的 Prometheus 容器正在正确运行并且可以访问。

验证 Prometheus 服务状态

在此步骤中,你将使用 Prometheus UI 来验证 Prometheus 服务本身的状态和运行时信息。

在你上一步打开的 Prometheus Web UI 中,通过点击顶部导航栏中的 Status 菜单,然后选择 Runtime & Build Information 来导航到状态页面。

此页面显示了运行中的 Prometheus 实例的详细信息,包括其版本、构建日期以及编译时使用的 Go 版本。这是确认服务完全正常运行的好方法。

检查 Prometheus 服务器的健康状况和指标的另一种方法是访问其 /metrics 端点。此端点公开了大量关于 Prometheus 本身的内部指标。你可以使用终端中的 curl 命令查看这些数据。

curl http://localhost:9090/metrics

输出将是以 Prometheus exposition 格式显示的一长串指标。查找类似 prometheus_build_info 的指标以确认端点正在工作。

部分预期输出:

## HELP prometheus_build_info A metric with a constant '1' value labeled with the version, revision, branch, and goversion from which prometheus was built.
## TYPE prometheus_build_info gauge
prometheus_build_info{branch="HEAD",goversion="go1.19.5",revision="233d305681c0da67c694b01d832131d173a0552b",version="2.41.0"} 1
...

探索 Prometheus UI 中的默认目标

在此步骤中,你将探索 Prometheus 中的“目标”(targets)概念。目标是 Prometheus 从中抓取(pull)指标的端点。默认情况下,Prometheus 服务器配置为监控自身。

在 Prometheus Web UI 中,通过点击 Status 菜单然后选择 Targets 来导航到目标页面。

在此页面上,你将看到所有已配置的抓取目标列表。你应该会看到一个名为 prometheus 的目标组,其中包含一个端点:http://localhost:9090/metrics。这是 Prometheus 服务器自身的指标端点。

Prometheus UI showing self-monitoring target UP

注意 State 列。它应该显示绿色的 UP。这表示 Prometheus 正在成功连接到目标并抓取其指标。如果连接目标时出现问题,状态将是“DOWN”。此页面对于诊断指标收集问题至关重要。

总结

恭喜!你已成功使用 Docker 安装并运行了一个 Prometheus 实例。本次实验为你提供了行业中最受欢迎的监控工具之一的入门实践。

在本次实验中,你已学会了如何:

  • 从 Docker Hub 拉取官方 Prometheus Docker 镜像。
  • 运行 Prometheus 容器并将其端口映射到宿主机。
  • 访问和导航 Prometheus Web UI。
  • 通过 UI 和指标端点验证服务状态。
  • 探索默认的监控目标配置。

你现在对如何部署 Prometheus 有了基础的了解。接下来的步骤可能包括学习如何创建自定义配置文件来监控其他应用程序和服务。