GSP091

概览
基于日志的指标指的是基于日志条目内容的 Cloud Monitoring 指标。这些指标有助于您识别趋势,从日志中提取数值。您还可以设置提醒,通过针对具体事件创建指标,在某个日志条目出现时收到通知。在 Cloud Monitoring 中创建图表和提醒政策时,既可以使用系统定义的基于日志的指标,也可以使用用户定义的基于日志的指标。
显示基于日志的指标的界面按指标类型分为两个窗格:系统指标和用户定义的指标。
系统定义的基于日志的指标由 Cloud Logging 提供,可供所有 Google Cloud 项目使用。这类指标仅根据 Logging 已注入的日志进行计算。如果某个日志已明确排除在注入范围之外,那么该日志将不会计入这类指标中。
用户定义的基于日志的指标由用户创建,旨在跟踪用户的 Google Cloud 项目中的特定内容。例如,您可以创建一个基于日志的指标来计算与给定过滤条件匹配的日志条目的数量。
如果选择根据指标创建提醒,您可以根据基于日志的指标创建提醒政策。
学习内容
在本实验中,您将学习如何完成以下操作:
- 创建基于日志的提醒。
- 创建基于日志的指标。
- 创建基于指标的提醒。
- 测试提醒。
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 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 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南。
任务 1. 部署 GKE 集群
在此任务中,您将部署一个 Google Kubernetes Engine (GKE) 集群,以便在后续任务中用来生成基于日志的指标。
- 在 Cloud Shell 中,为本实验环境设置可用区:
gcloud config set compute/zone {{{ project_0.default_zone | "ZONE" }}}
如果出现提示,点击授权,为 Cloud Shell 授权。
- 为本实验环境设置项目 ID:
export PROJECT_ID=$(gcloud info --format='value(config.project)')
- 部署一个标准 GKE 集群:
gcloud container clusters create gmp-cluster --num-nodes=1 --zone {{{ project_0.default_zone | "ZONE" }}}
集群部署完毕后,在输出结果中,这个名为 gmp-cluster 的集群的状态会显示为“正在运行”。
注意:集群可能需要几分钟时间才能部署完毕。您可以继续完成任务 2,之后再回来使用以下检查选项来验证该任务的进度。
点击检查我的进度以验证是否完成了以下目标:
部署 GKE 集群
任务 2. 创建基于日志的提醒
基于日志的提醒可以在日志中出现特定消息时向您发送通知。您可以尝试设置一个基于日志的提醒,以便在虚拟机停止运行时发送通知。
-
在 Google Cloud 控制台标题栏的搜索字段中,输入 Logs Explorer,然后点击搜索结果中的 Logs Explorer。
-
如果需要,请启用显示查询滑动条。
-
复制以下参数并将其粘贴到查询窗口中,以创建基于日志的提醒:
resource.type="gce_instance" protoPayload.methodName="v1.compute.instances.stop"
-
在操作(位于“结果”部分顶部)下,点击创建日志提醒。
-
添加以下参数;每添加一个值后,点击下一步即可进入下一部分:
-
提醒政策名称:stopped vm
-
选择要包含在提醒中的日志:此部分将自动填充您之前输入的查询
-
设置通知频率和自动关闭时长:将通知间隔时间设为
5 分钟,突发事件自动关闭时长设为 1 小时。
-
点击下一步。
-
在 Who should be notified(应通知的人员)部分,完成以下操作:
- 点击通知渠道旁边的下拉箭头,然后点击管理通知渠道。(系统将在新标签页中显示“通知渠道”页面。)
- 向下滚动页面,然后点击电子邮件部分的新增。
- 在电子邮件地址字段中,输入电子邮件地址,然后输入显示名称。如果您想查看电子邮件,可以输入您的个人电子邮件地址;也可以提供实验用户名 (),但您将无法查看电子邮件。
- 点击保存。
- 点击通知渠道页面顶部的“X”图标关闭该页,您即会返回之前所在的“Logs Explorer”标签页。
- 刷新通知渠道,然后选择您刚才创建的渠道。点击确定。
- 点击保存。
点击检查我的进度以验证是否完成了以下目标:
创建基于日志的提醒
测试基于日志的提醒
如需测试此基于日志的提醒,请先关停虚拟机,然后检查日志记录,看看提醒是否已注册:
-
打开一个新的 Google Cloud 控制台浏览器标签页,前往导航菜单 > Compute Engine > 虚拟机实例。
-
勾选 instance1 旁边的复选框,点击页面顶部的停止,然后在弹出式窗口中再次点击停止。
此过程可能需要一些时间。实例停止运行后,绿色对勾标记会变为灰色圆圈。
-
在控制台标题栏的搜索字段中输入监控,然后在搜索结果中选择监控(产品)。
-
在左侧窗格中,点击检测下的提醒。
您会发现您的提醒已经注册。
-
在政策下,点击查看所有政策,您将看到之前创建的基于日志的提醒 stopped vm。
任务 3. 创建 Docker 仓库
在本部分中,您将在 Artifact Registry 中创建一个专用 Docker 仓库,并将映像添加到其中。这需要使用仓库名称标记映像以指定其目标位置,然后将其推送到 Artifact Registry。
- 在 Cloud Shell 中运行以下命令,以便在位置 中新建一个名为 docker-repo 的 Docker 仓库,该仓库带有“Docker repository”(Docker 仓库)说明。
gcloud artifacts repositories create docker-repo --repository-format=docker \
--location={{{project_0.default_region | Region}}} --description="Docker repository" \
--project={{{project_0.project_id| Project ID}}}
-
在控制台标题栏的搜索字段中,输入 Artifact Registry,然后点击搜索结果中的“Artifact Registry”。
-
在 Artifact Registry 仓库页面上,验证您能否看到自己的仓库 docker-repo。
-
在 Cloud Shell 中,从存储桶加载预构建的映像:
wget https://storage.googleapis.com/spls/gsp1024/flask_telemetry.zip
unzip flask_telemetry.zip
docker load -i flask_telemetry.tar
- 运行以下命令,将映像标记为
flask-telemetry:v1:
docker tag gcr.io/ops-demo-330920/flask_telemetry:61a2a7aabc7077ef474eb24f4b69faeab47deed9 \
{{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
- 运行以下命令,将 Docker 映像推送到 Artifact Registry:
docker push {{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
点击检查我的进度以验证是否完成了以下目标:
创建 Docker 仓库
任务 4. 部署可发出指标的简单应用
借助基于日志的指标,您可以定义一个指标来跟踪日志中的错误,以便在最终用户有所察觉之前主动应对类似的问题和症状。
- 运行以下命令,以检查您在任务 1 中部署的集群是否已完全预配完毕:
gcloud container clusters list
注意:如果您的集群状态显示为正在预配,请稍等片刻,然后再次运行上述命令。重复运行命令,直到集群状态显示为正在运行,此时您就可以继续执行后续步骤了。
- 对集群进行身份验证:
gcloud container clusters get-credentials gmp-cluster
您应该会看到以下消息:
Fetching cluster endpoint and auth data.
kubeconfig entry generated for gmp-cluster.
- 创建一个命名空间以供使用:
kubectl create ns gmp-test
- 获取可在
/metrics 端点发出指标的应用:
wget https://storage.googleapis.com/spls/gsp1024/gmp_prom_setup.zip
unzip gmp_prom_setup.zip
cd gmp_prom_setup
-
在此步骤中,您将更新 flask_deployment.yaml,以便使用您在上一步中推送的映像的名称:
- 使用 nano 打开
flask_deployment.yaml:
nano flask_deployment.yaml
- 将
<ARTIFACT REGISTRY IMAGE NAME> 替换为以下内容:
{{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
- 按 CTRL+X 键、Y 键和 Enter 键,以保存更新后的文件并关闭 nano。
-
现在运行以下命令,以部署一个可在 /metrics 端点发出指标的简单应用:
kubectl -n gmp-test apply -f flask_deployment.yaml
kubectl -n gmp-test apply -f flask_service.yaml
- 验证命名空间是否准备就绪并发出指标:
kubectl get services -n gmp-test
您应该会看到以下输出内容:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello LoadBalancer 10.0.12.114 34.83.91.157 80:32058/TCP 71s
点击检查我的进度以验证是否完成了以下目标:
部署可发出指标的简单应用
-
重新运行该命令,直到 External-IP 列中填充地址。
-
运行以下命令,检查 Python Flask 应用是否在产生指标:
curl $(kubectl get services -n gmp-test -o jsonpath='{.items[*].status.loadBalancer.ingress[0].ip}')/metrics
您应该会看到以下输出内容:
# HELP flask_exporter_info Multiprocess metric
# TYPE flask_exporter_info gauge
flask_exporter_info{version="0.18.5"} 1.0
任务 5. 创建基于日志的指标
-
返回 Logs Explorer。
-
在操作下,点击创建指标链接。
-
在“创建指标”页面上,输入以下内容:
-
指标类型:保留默认设置(计数器)
-
基于日志的指标名称:hello-app-error
-
过滤器选择:在构建过滤条件窗口中提供以下信息:
severity=ERROR
resource.labels.container_name="hello-app"
textPayload: "ERROR: 404 Error page not found"
- 点击创建指标。
点击检查我的进度以验证是否完成了以下目标:
创建基于日志的指标
任务 6. 创建基于指标的提醒
-
从日志记录的左侧菜单中,点击配置下方的基于日志的指标。
-
在用户定义的指标中,点击 hello-app-error 指标旁的更多操作 (
),然后选择根据指标创建提醒。
-
在选择一个指标下,系统会自动填充指标参数。
- 将“滚动窗口”更新为 2 分钟。
- 接受其他默认设置。
- 点击两次下一步。
-
使用您之前在实验中创建的渠道设置通知。
-
将提醒政策命名为:log based metric alert
-
点击创建政策。
点击检查我的进度以验证是否完成了以下目标:
创建基于指标的提醒
任务 7. 生成一些错误
接下来,您需要生成一些错误,使其匹配您所创建的基于日志的指标,从而触发基于指标的提醒。
- 在 Cloud Shell 中运行以下命令,以生成一些错误:
timeout 120 bash -c -- 'while true; do curl $(kubectl get services -n gmp-test -o jsonpath='{.items[*].status.loadBalancer.ingress[0].ip}')/error; sleep $((RANDOM % 4)) ; done'
-
返回 Logs Explorer 页面,查看左下方的“严重级别”部分。
-
点击错误严重级别。
现在,您可以搜索 404 Error page not found 错误。展开其中一条 404 错误消息,查看更多信息。
-
返回监控页面,然后点击提醒。
您应该会看到之前创建的 2 项政策。
-
在提醒政策下,点击查看全部。
您应该会在“突发事件”部分看到两个提醒。
-
点击突发事件可查看详细信息。
注意:对于基于日志的指标所触发的提醒,相关问题最终将会自行解决。如果您需要更多时间来进行调查,可以再次运行代码来生成错误,然后等待该提醒再次被触发。
点击检查我的进度以验证是否完成了以下目标:
生成一些错误
恭喜!
在本实验中,您创建了一个基于日志的提醒、一个系统定义的基于日志的指标、一个用户定义的基于日志的指标和一个基于指标的提醒。此外,您还生成了一些错误来触发提醒。最后,您学习了如何查看与提醒相关的突发事件及详细信息。
后续步骤/了解详情
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2025 年 9 月 25 日
本实验的最后测试时间:2025 年 9 月 25 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。