借助虚拟机扩展程序管理器政策,您可以在一组 Compute Engine 虚拟机上安装 Ops Agent。扩展程序政策可以在 Google Cloud 项目中或特定可用区内全局安装 Ops Agent,使代理版本保持最新,并对代理应用自定义配置。
准备工作
在创建虚拟机扩展程序管理器扩展程序政策以管理 Ops Agent 之前,请执行以下操作:
查看支持的操作系统,验证您的操作系统是否支持 Ops Agent 和虚拟机扩展程序管理器。
启用 Ops Agent 和虚拟机扩展程序管理器使用的 API。
如果您想使用命令行界面创建和管理扩展程序政策,请安装 Google Cloud CLI。
您可以使用Google Cloud 控制台或 Google Cloud CLI (gcloud) 创建和管理可用区级虚拟机扩展政策。您可以使用 gcloud 创建和管理全局虚拟机扩展程序政策。
移除现有的可观测性代理
在为 Ops Agent 创建虚拟机扩展程序管理器政策之前,请确保虚拟机上没有 Ops Agent 或旧版 Monitoring 代理和 Logging 代理的实例。在同一虚拟机上运行 Ops Agent 和旧版代理可能会导致提取重复的日志或导致指标提取冲突。
如果您使用扩展程序政策在已安装其他可观测性代理的虚拟机上安装 Ops Agent,则该政策会安装该代理,但由于检测到冲突,该代理无法运行。
移除现有代理的方式取决于这些代理的安装方式。
由虚拟机管理器操作系统配置政策安装的代理,包括:
- 在创建虚拟机期间使用 Google Cloud 控制台安装的 Ops Agent。
- Ops Agent 由正式版虚拟机管理器 OS Config 政策安装。
- 由 Beta 版虚拟机管理器 OS Config 政策安装的 Ops Agent 或旧版 Monitoring 代理或 Logging 代理。
如需了解如何使用这些政策识别虚拟机,请参阅查找 Ops Agent 操作系统政策涵盖的虚拟机。
如需了解如何卸载代理和移除 OS Config 政策,请参阅在 Ops Agent 操作系统政策涵盖的虚拟机上卸载 Ops Agent。
使用安装脚本手动安装的代理。如需了解如何卸载代理,请参阅以下内容:
启用使用 Ops Agent 所需的 API
如需使用 Ops Agent 写入日志和指标,您必须在 Google Cloud 项目中启用 Cloud Logging API 和 Cloud Monitoring API。
启用 API 所需的角色
如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。
授予使用 Ops Agent 所需的角色
如需获得使用 Ops Agent 写入日志和指标所需的权限,请让管理员为您授予服务账号的以下 IAM 角色:
-
写入日志:Logging Logs Writer (
roles/logging.logWriter) -
写入指标:Monitoring Metric Writer (
roles/monitoring.metricWriter)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需详细了解角色和 Ops Agent,请参阅向 Ops Agent 授权。
启用虚拟机扩展程序管理器使用的 API
虚拟机扩展程序管理器使用 Compute Engine API。 在 Google Cloud 项目中启用此 API(如果尚未启用)。
授予使用虚拟机扩展程序管理器所需的角色
如需获得创建虚拟机扩展程序政策所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
创建扩展程序政策:VM Extension Policy Admin (
roles/compute.vmExtensionPolicyAdmin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供创建虚拟机扩展程序政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建虚拟机扩展程序政策需要以下权限:
-
创建扩展程序政策:
compute.vmExtensionPolicies.create
如需详细了解 Compute Engine 中的 IAM 角色和权限,请参阅 Compute Engine 角色和权限。
安装 Google Cloud CLI
您可以使用 Google Cloud 控制台或 Google Cloud CLI (gcloud) 创建和管理虚拟机扩展程序政策。如需使用 gcloud,您必须先安装 Google Cloud CLI。
如需查看已安装的组件,请运行以下命令:
gcloud components list
如需验证您是否拥有最新版本,请运行以下命令:
gcloud components update
政策冲突和优先级
虚拟机扩展程序管理器会为每个新政策关联一个优先级,数字越小,优先级越高;默认优先级为 1000。虚拟机可以由 Ops Agent 等扩展程序的多个政策涵盖,但 Ops Agent 扩展程序只有一个政策在虚拟机上有效。
虚拟机扩展程序管理器会使用优先级来解决应用于虚拟机的政策之间的冲突。如需详细了解解决流程,请参阅政策优先级和冲突解决。
全球政策的政策发布计划
虚拟机扩展程序管理器全局政策使用发布计划来确定如何将政策分发到目标虚拟机。发布方案有两种类型:
预定义发布方案。有两种预定义的发布方案,通过 gcloud CLI 命令的
--rollout-predefined-plan选项使用的值进行选择。慢速发布:在一段时间内,逐步在不同可用区中部署 Ops Agent。建议采用此发布计划。
使用
--rollout-predefined-plan=slow_rollout选项指定此发布计划。快速发布:立即将 Ops Agent 部署到所有可用区和区域中的所有目标虚拟机。
使用
--rollout-predefined-plan=fast_rollout选项指定此发布计划。
自定义发布计划,通过使用 gcloud CLI 命令的
--rollout-custom-plan选项指定。通过将自定义发布计划添加到 Google Cloud 项目中的发布计划集来创建自定义发布计划;如需了解详情,请参阅 Compute Engine API 方法
rolloutPlans.insert。
如需详细了解发布计划,请参阅 全局政策的发布计划。
创建虚拟机扩展程序政策以安装 Ops Agent
借助虚拟机扩展程序管理器,您可以创建政策,声明要在虚拟机上安装哪些扩展程序。Ops Agent 是可用的扩展程序之一。通过定义政策,您可以确保在符合您指定的条件(例如虚拟机标签)的任何虚拟机上安装和维护受支持的扩展程序(包括 Ops Agent)。
您可以使用 Ops Agent 的扩展程序政策来执行以下任务:
整组安装:在以下位置安装 Ops Agent:
- Google Cloud 项目中一个或多个可用区内的所有虚拟机。
- 全球范围内的所有虚拟机(在您的 Google Cloud 项目中)。
- 可用区中的一部分虚拟机,由标签标识。
- Google Cloud 项目中跨可用区的一组虚拟机,由标签标识。
版本控制:
- 将 Ops Agent 更新到最新版本。
- 将 Ops Agent 版本固定到特定版本。
配置管理:将自定义配置应用于由政策管理的所有虚拟机上的 Ops Agent。
以下部分提供了根据特定条件安装 Ops Agent 的政策示例。
如果 Ops Agent 是通过扩展程序政策安装的,则虚拟机扩展程序管理器支持 Ops Agent 2.58.0 或更高版本。 虚拟机扩展程序管理器无法管理早期版本的 Ops Agent、通过其他方式安装的 Ops Agent 实例,或旧版 Monitoring 代理或 Logging 代理。
在所有虚拟机上安装最新的 Ops Agent
如需创建在可用区或全球范围内的所有虚拟机上安装最新版本的 Ops Agent 的政策,并在发布新版本时更新 Ops Agent,请执行以下操作:
控制台
如需创建可用区级政策,您可以使用 Google Cloud 控制台。
-
在 Google Cloud 控制台中,前往扩展程序政策页面:
如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。
- 点击 + 创建。
- 在名称字段中,输入政策的名称。
- 可选:在说明字段中,输入政策的说明。
- 在优先级字段中,指定一个优先级编号,以解决政策之间的冲突。数字越小,优先级越高。默认值为 1000。
- 在可用区列表中,选择要应用此政策的可用区。
- 在管理扩展程序部分中,点击添加扩展程序,然后执行以下操作:
- 从扩展程序列表中,选择
Google Cloud's Extension for Ops Agent。 - 将版本字段留空。
- 从扩展程序列表中,选择
- 点击创建。
gcloud
如需创建可用区级或全球级政策,您可以使用 gcloud CLI。
可用区级
使用以下 gcloud compute zone-vm-extension-policies create 命令创建政策:
gcloud compute zone-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--extensions=ops-agent
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- ZONE:目标可用区,例如
us-central1-f。
gcloud compute zone-vm-extension-policies create 命令接受 --version 选项。
如果您省略 --version 选项,则该政策会安装最新版本,并在新版本发布时更新 Ops Agent。
全球
使用以下 gcloud compute global-vm-extension-policies create 命令创建政策:
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-predefined-plan=slow_rollout
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
gcloud compute global-vm-extension-policies create 命令接受 --version 选项。
如果您省略 --version 选项,则该政策会安装最新版本,并在新版本发布时更新 Ops Agent。
在所有虚拟机上将 Ops Agent 固定到特定版本
如需创建在可用区或全球范围内的所有虚拟机上安装特定版本 Ops Agent 的政策,请执行以下操作:
控制台
如需创建可用区级政策,您可以使用 Google Cloud 控制台。
-
在 Google Cloud 控制台中,前往扩展程序政策页面:
如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。
- 点击 + 创建。
- 在名称字段中,输入政策的名称。
- 可选:在说明字段中,输入政策的说明。
- 在优先级字段中,指定一个优先级编号,以解决政策之间的冲突。数字越小,优先级越高。默认值为 1000。
- 在可用区列表中,选择要应用此政策的可用区。
- 在管理扩展程序部分中,点击添加扩展程序,然后执行以下操作:
- 从扩展程序列表中,选择
Google Cloud's Extension for Ops Agent。 - 从版本列表中,选择要安装的版本。 使用 2.58.0 或更高版本。
- 从扩展程序列表中,选择
- 点击创建。
gcloud
如需创建可用区级或全球级政策,您可以使用 gcloud CLI。
可用区级
使用以下 gcloud compute zone-vm-extension-policies create 命令创建政策:
gcloud compute zone-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--extensions=ops-agent \
--version=ops-agent=VERSION
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- ZONE:目标可用区,例如
us-central1-f。 - VERSION:要安装的 Ops Agent 版本。
使用 2.58.0 或更高版本。
如果您省略
--version选项,则政策会安装最新版本,并在新版本发布时更新 Ops Agent,如安装最新版本的示例所示。
全球
使用以下 gcloud compute global-vm-extension-policies create 命令创建政策:
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-predefined-plan=slow_rollout \
--version=ops-agent=VERSION
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- VERSION:要安装的 Ops Agent 版本。
使用 2.58.0 或更高版本。
如果您省略
--version选项,则政策会安装最新版本,并在新版本发布时更新 Ops Agent,如安装最新版本的示例所示。
如需查看 Ops Agent 版本列表,请参阅 GitHub 上的 Ops Agent 版本页面。
在具有特定标签的虚拟机上安装 Ops Agent
如需创建一项政策,以便在可用区或全球范围内具有特定标签的虚拟机上安装最新版本的 Ops Agent,请执行以下操作:
控制台
如需创建可用区级政策,您可以使用 Google Cloud 控制台。
-
在 Google Cloud 控制台中,前往扩展程序政策页面:
如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。
- 点击 + 创建。
- 在名称字段中,输入政策的名称。
- 可选:在说明字段中,输入政策的说明。
- 在优先级字段中,指定一个优先级编号,以解决政策之间的冲突。数字越小,优先级越高。默认值为 1000。
- 在可用区列表中,选择要应用此政策的可用区。
- 在管理扩展程序部分中,点击添加扩展程序,然后执行以下操作:
- 从扩展程序列表中,选择
Google Cloud's Extension for Ops Agent。 - 将版本字段留空。
- 从扩展程序列表中,选择
- 在目标虚拟机实例部分中,选择要应用该政策的虚拟机。如需选择具有特定标签的虚拟机,请点击添加标签,然后添加键值对。
- 点击创建。
gcloud
如需创建可用区级或全球级政策,您可以使用 gcloud CLI。
可用区级
使用 gcloud compute zone-vm-extension-policies create 命令的 --inclusion-labels 选项指定逗号分隔列表形式的键值对:
gcloud compute zone-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--extensions=ops-agent
--inclusion-labels=KEY1=VALUE1,KEY2=VALUE2
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- ZONE:目标可用区,例如
us-central1-f。 - KEY1=VALUE1,KEY2=VALUE2:以英文逗号分隔的键值对列表,用于为选择器定义包含标签。虚拟机必须具有选择器中指定的所有标签(逻辑“与”)才能包含在内。如果您多次指定
--inclusion_labels选项,则政策会以与任何选择器中的所有标签匹配的虚拟机为目标(逻辑 OR)。如果您省略此选项,则政策会以指定可用区中的所有虚拟机为目标。
全球
使用 gcloud compute global-vm-extension-policies create 命令的 --inclusion-labels 选项指定逗号分隔列表形式的键值对:
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-predefined-plan=slow_rollout \
--inclusion-labels=KEY1=VALUE1,KEY2=VALUE2
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- KEY1=VALUE1,KEY2=VALUE2:以英文逗号分隔的键值对列表,用于为选择器定义包含标签。虚拟机必须具有选择器中指定的所有标签(逻辑“与”)才能包含在内。如果您多次指定
--inclusion_labels选项,则政策会以与任何选择器中的所有标签匹配的虚拟机为目标(逻辑 OR)。如果您省略此选项,则政策会以指定可用区中的所有虚拟机为目标。
在所有虚拟机上安装具有自定义配置的 Ops Agent
如需创建一项政策,在可用区或全球范围内的所有虚拟机上安装最新版本的 Ops Agent,并为 Ops Agent 提供自定义配置,请执行以下操作:
控制台
如需创建可用区级政策,您可以使用 Google Cloud 控制台。
-
在 Google Cloud 控制台中,前往扩展程序政策页面:
如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。
- 点击 + 创建。
- 在名称字段中,输入政策的名称。
- 可选:在说明字段中,输入政策的说明。
- 在优先级字段中,指定一个优先级编号,以解决政策之间的冲突。数字越小,优先级越高。默认值为 1000。
- 在可用区列表中,选择要应用此政策的可用区。
- 在管理扩展程序部分中,点击添加扩展程序,然后执行以下操作:
- 从扩展程序列表中,选择
Google Cloud's Extension for Ops Agent。 - 将版本字段留空。
- 在配置文件内容字段中,输入 Ops Agent 的 YAML 配置字符串。
- 从扩展程序列表中,选择
- 点击创建。
gcloud
如需创建可用区级或全球级政策,您可以使用 gcloud CLI。
可用区级
使用 gcloud compute zone-vm-extension-policies create 命令的 --config-from-file 选项指定配置文件:
gcloud compute zone-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--extensions=ops-agent
--config-from-file=ops-agent="OPS_AGENT_CONFIG_PATH"
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- ZONE:目标可用区,例如
us-central1-f。 - OPS_AGENT_CONFIG_PATH:包含 Ops Agent 的 YAML 配置字符串的文件的路径。此文件必须存在于您运行 gcloud 命令的环境中。
Ops Agent 的配置 YAML 可能很长。与尝试在命令行中输入格式正确的 YAML 相比,将配置放入文件中并将文件传递给 gcloud CLI 的出错率要低得多。在创建政策后更改此文件不会更新政策;如需更新政策,请使用
gcloud compute zone-vm-extension-policiesupdate命令。
全球
使用 gcloud compute global-vm-extension-policies create 命令的 --config-from-file 选项指定配置文件:
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-predefined-plan=slow_rollout \
--config-from-file=ops-agent="OPS_AGENT_CONFIG_PATH"
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- OPS_AGENT_CONFIG_PATH:包含 Ops Agent 的 YAML 配置字符串的文件的路径。此文件必须存在于您运行 gcloud 命令的环境中。
Ops Agent 的配置 YAML 可能很长。与尝试在命令行中输入格式正确的 YAML 相比,将配置放入文件中并将文件传递给 gcloud CLI 的出错率要低得多。在创建政策后更改此文件不会更新政策;如需更新政策,请使用
gcloud compute global-vm-extension-policiesupdate命令。
如果您在创建或更新扩展程序政策时为 Ops Agent 提供自定义配置,则该政策会使用自定义配置部署 Ops Agent。您无需手动重启代理。
配置会与扩展程序政策一起存储,因此请勿在配置中包含密码等敏感数据。由于配置存储在扩展程序政策中,因此修改配置文件不会更改代理的配置。您必须使用相应的 gcloud 命令更新随政策存储的配置:
- 对于可用区级政策,请使用
gcloud compute zone-vm-extension-policiesupdate命令。 - 对于全球政策,请使用
gcloud compute global-vm-extension-policiesupdate命令。
当您为 Ops Agent 提供自定义配置时,虚拟机扩展程序管理器会将该配置复制到目标虚拟机上 Ops Agent 用于 用户指定配置文件的位置:
- Linux:
/etc/google-cloud-ops-agent/config.yaml - Windows:
C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml
如果虚拟机上存在 config.yaml 文件,则扩展程序政策会覆盖该文件。
如需了解如何使用Google Cloud 控制台和 gcloud CLI 创建虚拟机扩展程序政策,请参阅 使用扩展程序政策安装虚拟机扩展程序。
以更高的优先级(仅限全局)通过快速发布计划安装 Ops Agent
如需创建全局政策,以使用高于默认优先级的优先级和快速发布计划安装最新版本的 Ops Agent,请使用以下 gcloud compute global-vm-extension-policies create 命令:
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-predefined-plan=fast_rollout \
--priority=500
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
在 Google Cloud 项目中的部分可用区上安装 Ops Agent(仅限全球)
如需创建仅适用于Google Cloud 项目中部分可用区的全局政策,您必须使用自定义发布计划,该计划指定要应用政策的可用区。如需了解如何创建自定义发布计划,请参阅
发布计划简介。如需指定一组可用区,请在创建发布计划时使用 locationSelector.includedLocations 字段。
如需创建使用自定义发布方案的扩展程序政策,请使用以下 gcloud compute global-vm-extension-policies create 命令:
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-custom-plan=projects/PROJECT_ID/locations/global/rolloutPlans/CUSTOM_PLAN_NAME
替换命令中的以下变量:
- POLICY_NAME:虚拟机扩展程序政策的名称。
- PROJECT_ID:项目的标识符。
- CUSTOM_PLAN_NAME:与自定义发布方案关联的名称。
验证 Ops Agent 的安装
本部分介绍了如何执行以下操作:
验证 Ops Agent 安装的状态或版本
如需确定 Ops Agent 的状态或版本,请使用以下Google Cloud 控制台页面之一:
Compute Engine
-
在 Google Cloud 控制台中,前往虚拟机实例页面:
如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。
- 从列表中选择一个虚拟机。
- 点击可观测性标签页。
Cloud Monitoring
-
在 Google Cloud 控制台中,前往虚拟机实例页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 选择列表视图。
在虚拟机上安装 Ops Agent 并且该代理正在收集日志和指标时,代理的状态会标记为 Ops Agent 标签旁边的绿色对勾标记。
如需确定已安装代理的版本,请将鼠标悬停在 Compute Engine 或 Monitoring 信息中心上的 Ops Agent 标签上。
验证 Ops Agent 是否正在收集遥测数据
如果 Ops Agent 已成功安装并正常运行,则它会将指标发送到 Cloud Monitoring,并将日志发送到 Cloud Logging。
- 如需了解如何验证指标收集,请参阅代理在运行,但没有注入数据。
- 如需了解如何验证日志收集,请参阅验证是否成功收集了日志。
后续步骤
- 通过更新扩展程序政策来修改安装。
- 排查扩展程序政策中的问题。
- 详细了解虚拟机扩展程序管理器。
- 查看有关配置 Ops Agent 的详细信息。