arrow_back

创建基于日志的指标并设置提醒

登录 加入
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

创建基于日志的指标并设置提醒

Lab 1 小时 30 分钟 universal_currency_alt 1 个积分 show_chart 入门级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP091

Google Cloud 自定进度实验

概览

基于日志的指标指的是基于日志条目内容的 Cloud Monitoring 指标。这些指标有助于您识别趋势,从日志中提取数值。您还可以设置提醒,通过针对具体事件创建指标,在某个日志条目出现时收到通知。在 Cloud Monitoring 中创建图表和提醒政策时,既可以使用系统定义的基于日志的指标,也可以使用用户定义的基于日志的指标。

显示基于日志的指标的界面按指标类型分为两个窗格:系统指标和用户定义的指标。

系统定义的基于日志的指标由 Cloud Logging 提供,可供所有 Google Cloud 项目使用。这类指标仅根据 Logging 已注入的日志进行计算。如果某个日志已明确排除在注入范围之外,则这类指标中不会包含该日志中的数据。

用户定义的基于日志的指标由用户创建,旨在跟踪用户的 Google Cloud 项目中的特定内容。例如,您可以创建一个基于日志的指标来计算与给定过滤条件匹配的日志条目的数量。

如果选择根据指标创建提醒,您可以根据基于日志的指标创建提醒政策。

目标

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

  • 创建基于日志的提醒
  • 创建系统定义的基于日志的指标
  • 创建用户定义的基于日志的指标
  • 为用户定义的基于日志的指标创建提醒

设置和要求

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

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

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

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

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

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:

    • 打开 Google 控制台按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google 控制台。 该实验会启动资源并打开另一个标签页,显示登录页面。

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

    注意:如果您看见选择帐号对话框,请点击使用其他帐号
  3. 如有必要,请从实验详细信息面板复制用户名,然后将其粘贴到登录对话框中。点击下一步

  4. 请从实验详细信息面板复制密码,然后将其粘贴到欢迎对话框中。点击下一步

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

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

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

注意:您可以点击左上角的导航菜单来查看列有 Google Cloud 产品和服务的菜单。 “导航菜单”图标

激活 Cloud Shell

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

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

如果您连接成功,即表示您已通过身份验证,且当前项目会被设为您的 PROJECT_ID 环境变量所指的项目。输出内容中有一行说明了此会话的 PROJECT_ID

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

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

  2. 现在,输出的内容应如下所示:

输出:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出

[core] project = <project_ID>

输出示例

[core] project = qwiklabs-gcp-44776a13dea667a6 Note: For full documentation of gcloud, in Google Cloud, refer to the gcloud CLI overview guide.

在本实验开始时,系统创建了一个虚拟机。请确保您在开始实验的页面上看到了表示实验正在运行的绿色指示灯,然后再继续后面的操作。

此外,请连接到一个 Google Kubernetes Engine 集群,并验证该集群已正确创建。

  1. gcloud 中设置可用区:
gcloud config set compute/zone us-east1-c
  1. 然后,为 Cloud Shell 授权

  2. 设置项目 ID:

export PROJECT_ID=$(gcloud info --format='value(config.project)')
  1. 部署一个标准 GKE 集群,该集群将提示您为 GKE API 授权并启用该 API。
gcloud container clusters create gmp-cluster --num-nodes=1 --zone us-east1-c

点击检查我的进度以验证是否完成了以下目标:部署 GKE 集群

任务 1. 创建基于日志的提醒

基于日志的提醒可以在日志中出现特定消息时向您发送通知。您可以尝试设置一个基于日志的提醒,在虚拟机停止运行时发送通知。

  1. 在 Cloud 控制台的搜索栏中,输入“logs explorer”,然后点击结果中的 Logs Explorer

  2. 点击显示查询滑动条。

  3. 输入以下参数,创建基于日志的提醒:

resource.type="gce_instance" protoPayload.methodName="v1.compute.instances.stop"
  1. 点击创建提醒链接。

  2. 添加以下参数,然后点击下一步以继续添加后续参数。

  • 提醒名称:stopped vm
  • 选择要包含在提醒中的日志:将自动填充您输入的查询
  • 设置通知频率和自动关闭时长:两次通知之间的间隔时长为 5 分钟,突发事件自动关闭时长为 1 小时。点击下一步

应通知的人员(可选):

  • 点击通知渠道旁边的下拉箭头,然后点击管理通知渠道
  • 系统将在新标签页中显示“通知渠道”页面。
  • 向下滚动页面,然后点击电子邮件部分的新增
  • 电子邮件地址字段中,输入您的个人电子邮件地址,然后输入一个显示名称
  • 点击保存
  • 完成后,返回您之前所在的“Logs Explorer”标签页。
  • 刷新通知渠道,然后选择您刚才创建的渠道。点击确定
  1. 点击保存

点击检查我的进度以验证是否完成了以下目标:创建基于日志的提醒

现在,您需要让虚拟机停止运行。

  1. 前往 Cloud 控制台中的第 2 个标签页,然后依次前往导航菜单 > Compute Engine > 虚拟机实例

  2. 勾选 instance1 旁边的复选框,点击页面顶部的停止,然后在弹出式窗口中再次点击停止。当实例停止运行后,绿色对勾标记将变成灰色圆圈。

  3. 在搜索栏中输入“monitoring”,然后选择 Monitoring 选项。

  4. 点击提醒标签页。您会发现您的提醒已经注册。在“提醒政策”下,点击查看所有政策链接,您将在列表中看到您创建的基于日志的提醒。

任务 2. 基于日志的指标

借助基于日志的指标,您可以定义一个指标来跟踪日志中的错误,以便在最终用户有所察觉之前主动应对类似的问题和症状。

  1. 在实验开始时,您部署了一个标准 GKE 集群。运行以下命令,确保已创建名为 gmp-cluster 的集群:
gcloud container clusters list 如果您的集群状态显示为“正在预配”,请稍等片刻,然后再次运行上述命令。重复运行命令,直到状态显示为“正在运行”。
  1. 对集群进行身份验证:
gcloud container clusters get-credentials gmp-cluster

您应该会看到以下消息:

Fetching cluster endpoint and auth data. kubeconfig entry generated for gmp-cluster.
  1. 创建一个命名空间以供使用:
kubectl create ns gmp-test
  1. 现在,运行以下命令,以部署一个可在 /metrics 端点发出指标的简单应用:
kubectl -n gmp-test apply -f https://storage.googleapis.com/spls/gsp091/gmp_flask_deployment.yaml kubectl -n gmp-test apply -f https://storage.googleapis.com/spls/gsp091/gmp_flask_service.yaml
  1. 验证命名空间是否准备就绪并发出指标:
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

点击检查我的进度以验证是否完成了以下目标:部署可发出指标的简单应用

  1. 重新运行该命令,直到 External-IP 列中填充地址。

  2. 运行以下命令,检查 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

任务 3. 创建基于日志的指标

  1. 返回 Logs Explorer

  2. 点击创建指标链接。

  3. 在“创建指标”页面上,输入以下内容:

  • 指标类型:保留默认设置“计数器”
  • 基于日志的指标名称:hello-app-error
  • 过滤器选择:将以下内容更新到“版本”过滤器中:
severity=ERROR resource.labels.container_name="hello-app" textPayload: "ERROR: 404 Error page not found"
  1. 点击创建指标

点击检查我的进度以验证是否完成了以下目标:创建基于日志的指标

任务 4. 创建基于指标的提醒

  1. Logging 窗口的左侧窗格中,选择基于日志的指标。然后,在用户定义的指标中,点击所需指标旁边的 3 个竖点,并选择根据指标创建提醒

  2. 选择一个指标下,指标参数将自动进行填充。

  • 将“滚动窗口”更新为 2 分钟
  • 接受其他默认设置。
  • 点击下一步
  1. 您需要设置通知。您可以再次使用之前在实验中创建的渠道。

  2. 将提醒政策命名为 log based metric alert

  3. 点击创建政策

点击检查我的进度以验证是否完成了以下目标:创建基于指标的提醒

任务 5. 生成一些错误

接下来,您需要生成一些错误,以便匹配您所创建的基于日志的指标,进而触发基于指标的提醒。

  1. 在 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'
  1. 返回 Logs Explorer 页面,查看左下方的“严重级别”部分。点击错误严重级别。现在,您可以搜索 404 Error page not found 错误。展开其中一条 404 错误消息,查看更多信息。

  2. 返回 Monitoring 页面,然后点击提醒。您将看到您之前创建的 2 项政策。

  3. 点击提醒政策链接,您应该会在“突发事件”部分看到两个提醒。点击突发事件可查看详细信息。

注意:对于基于日志的指标所触发的提醒,相关问题最终将会自行解决。如果您需要更多时间来进行调查,可以再次运行错误脚本,然后等待该提醒再次触发。点击**检查我的进度**以验证是否完成了以下目标:生成一些错误

恭喜!

恭喜!在本实验中,您创建了一个基于日志的提醒、一个系统定义的基于日志的指标、一个用户定义的基于日志的指标和一个基于指标的提醒。此外,您还生成了一些错误来触发提醒。最后,您学习了如何查看与提醒相关的突发事件及详细信息。

后续步骤/了解详情

  • 阅读这篇博文,了解如何结合使用 BigQuery 和 Cloud Monitoring。
  • 了解如何管理您的提醒政策
  • 如需详细了解如何为基于日志的指标创建提醒政策,请参阅创建提醒政策

Google Cloud 培训和认证

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

上次更新手册的时间:2024 年 1 月 31 日

上次测试实验的时间:2023 年 8 月 7 日

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