实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 Managed Service for Prometheus 通过导出器收集指标

实验 20 分钟 universal_currency_alt 5 个点数 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP1026

Google Cloud 自学实验的徽标

概览

在本实验中,您将使用 Managed Service for Prometheus,通过导出器从其他基础架构来源收集指标。

目标

在本实验中,您将学习如何完成以下操作:

  1. 部署 GKE 实例
  2. 配置 PodMonitoring 自定义资源和 node-exporter 工具
  3. 在本地构建 GMP 二进制文件并将其部署到 GKE 实例
  4. 应用 Prometheus 配置以开始收集指标

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 部署 GKE 集群

  • 运行以下命令以部署一个基本的 GKE 集群:
gcloud beta container clusters create gmp-cluster --num-nodes=1 --zone {{{project_0.default_zone | Zone}}} --enable-managed-prometheus gcloud container clusters get-credentials gmp-cluster --zone={{{project_0.default_zone | Zone}}}

任务 2. 设置命名空间

  • 创建 gmp-test Kubernetes 命名空间,用于存放示例应用中创建的资源:
kubectl create ns gmp-test 检查是否已部署 Prometheus

任务 3. 部署示例应用

该托管式服务提供了一个示例应用清单文件,该应用会在其指标端口上发出 Prometheus 指标。该应用使用三个副本。

  • 要部署该示例应用,请运行以下命令:
kubectl -n gmp-test apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.2.3/examples/example-app.yaml

任务 4. 配置 PodMonitoring 资源

要注入示例应用发出的指标数据,您需要使用目标抓取。目标抓取和指标注入通过 Kubernetes 自定义资源进行配置。该托管式服务使用 PodMonitoring 自定义资源 (CR)。

PodMonitoring 自定义资源仅会在部署该自定义资源的命名空间中抓取目标。如需抓取多个命名空间中的目标,请在每个命名空间中都部署同一 PodMonitoring 自定义资源。您可以运行 kubectl get podmonitoring -A 命令,来验证 PodMonitoring 资源是否安装在预期的命名空间中。

如需查看所有 Managed Service for Prometheus 自定义资源的参考文档,请参阅 prometheus-engine/doc/api 参考文档

以下清单文件在 gmp-test 命名空间中定义了一个名为 prom-example 的 PodMonitoring 资源。该资源会使用 Kubernetes 标签选择器,来查找该命名空间中标签为 app 且值为 prom-example 的所有 Pod。每 30 秒,就会在名为 metrics 的端口上通过 /metrics HTTP 路径抓取一次匹配的 Pod。

apiVersion: monitoring.googleapis.com/v1alpha1 kind: PodMonitoring metadata: name: prom-example spec: selector: matchLabels: app: prom-example endpoints: - port: metrics interval: 30s
  • 要应用此资源,请运行以下命令:
kubectl -n gmp-test apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.2.3/examples/pod-monitoring.yaml

您的托管式收集器现在正抓取匹配的 Pod。

要配置横向收集,以便对所有命名空间中的一系列 Pod 进行抓取,请使用 ClusterPodMonitoring 资源。ClusterPodMonitoring 资源提供与 PodMonitoring 资源相同的接口,但不会限定只能在给定的命名空间中发现匹配的 Pod。

注意:一个附加的“targetLabels”字段提供了简化的 Prometheus 式标签重写配置。您可以使用标签重写,将 Pod 标签添加到注入的时序上。您无法覆盖强制性的目标标签;如需查看这些标签的列表,请参阅 prometheus_target 资源

如果您在 GKE 上运行,则可以执行以下操作:

  • 如需查询示例应用注入的指标,请参阅“从 Prometheus 服务中查询数据”。
  • 如需了解如何过滤导出的指标以及如何调整 prom-operator 资源,请参阅“托管式收集的其他主题”。

任务 5. 下载 Prometheus 二进制文件

  • 从以下存储桶下载 Prometheus 二进制文件:
git clone https://github.com/GoogleCloudPlatform/prometheus && cd prometheus git checkout v2.28.1-gmp.4 wget https://storage.googleapis.com/kochasoft/gsp1026/prometheus chmod a+x prometheus

任务 6. 运行 Prometheus 二进制文件

  1. 将您的项目 ID 保存到变量中:
export PROJECT_ID=$(gcloud config get-value project)
  1. 将您的可用区保存到变量中。运行 Prometheus 二进制文件时将会使用这些值。
export ZONE={{{project_0.default_zone | Zone}}}
  1. 使用以下命令,在 Cloud Shell 中运行该 Prometheus 二进制文件:
./prometheus \ --config.file=documentation/examples/prometheus.yml --export.label.project-id=$PROJECT_ID --export.label.location=$ZONE

在该 Prometheus 二进制文件开始运行后,您应该能够在控制台界面中前往托管式 Prometheus 服务,然后运行 PromQL 查询“up”,以查看该 Prometheus 二进制文件是否可用(如果可用,将显示 localhost 正在运行的实例作为实例名称)。

任务 7. 下载并运行节点导出器

  1. 在 Cloud Shell 中打开新标签页,以运行 node_exporter 命令。

  2. 在 Cloud Shell 环境中下载并运行该导出器:

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz cd node_exporter-1.3.1.linux-amd64 ./node_exporter 注意:在接下来的几个步骤中,您将使用 node_exporter 工具所运行的端口来修改 Prometheus 的配置。

您应该会看到类似以下输出,表明 Node Exporter 此时正在运行,并且通过端口 9100 暴露指标:

ts=2023-03-01T10:27:17.262Z caller=node_exporter.go:199 level=info msg="Listening on" address=:9100 ts=2023-03-01T10:27:17.263Z caller=tls_config.go:195 level=info msg="TLS is disabled." http2=false

创建 config.yaml 文件

  1. 在 Cloud Shell 的第一个标签页中停止正在运行的 Prometheus 二进制文件,然后准备一个将会通过节点导出器采集指标的新配置文件:
vi config.yaml
  1. 创建一个 config.yaml 文件,其规范如下:
global: scrape_interval: 15s scrape_configs: - job_name: node static_configs: - targets: ['localhost:9100']
  1. 上传您创建的 config.yaml 文件进行验证:
export PROJECT=$(gcloud config get-value project) gsutil mb -p $PROJECT gs://$PROJECT gsutil cp config.yaml gs://$PROJECT gsutil -m acl set -R -a public-read gs://$PROJECT 检查是否已正确配置 config.yaml
  1. 通过运行以下命令,重新运行 Prometheus 并指向新的配置文件:
./prometheus --config.file=config.yaml --export.label.project-id=$PROJECT --export.label.location=$ZONE

使用通过导出器采集的以下统计指标,在 PromQL 查询中查看其计数。

  1. 在 Cloud Shell 中,点击网页预览图标。

web_preview

  1. 选择更改预览端口,将端口设置为 9090,然后点击更改并预览进行预览。

在 PromQL 查询编辑器中,输入以 node_ 为前缀的任意查询。这会显示一个指标输入列表,您可以从中选择所需的指标,使之在图形化编辑器中可视化。

  • “node_cpu_seconds_total”给出了图形化数据。

node_export

请尝试选择所显示的其他指标,查看导出的数据。

恭喜!

在本实验中,您部署了一个 GKE 实例并配置了 node-exporter。然后,您配置了 GMP 二进制文件,用于从 node-exporter 注入指标,并且查看了这些指标。

后续步骤/了解详情

您可以详细了解 Google Cloud Managed Service for Prometheus

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 4 月 16 日

上次测试实验的时间:2023 年 10 月 27 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。