Ops Agent 的代理政策概览

通过代理政策,可以在符合用户指定条件的一系列 Compute Engine 虚拟机中自动安装和维护 Ops Agent。您可以使用一条命令为 Google Cloud 项目创建一项政策,用以管理与该 Google Cloud 项目关联的现有和新虚拟机,从而确保在这些虚拟机上正确安装和卸载 Ops Agent。

Ops Agent 的代理政策

Google Cloud SDK 提供两个版本级别(正式版和 Beta 版)对 Ops Agent 代理政策的支持。这两种类型的政策都依赖于 VM 管理器提供的 OS Config 功能,但实现方式不同。我们建议您尽可能使用 GA 政策。在大多数情况下,您可以将 Beta 版政策转换为 Google Analytics(分析)政策

本部分介绍了 Beta 版代理政策与 Google Analytics(分析)代理政策之间的区别。如需了解如何创建和管理代理政策,请参阅以下内容:

Beta 版代理政策与 Google Analytics(分析)代理政策之间的区别

Beta 版和正式版 compute instances ops-agents policies 命令组创建的代理政策在以下方面有所不同:

  • 支持旧版 Monitoring 代理和 Logging 代理

    • Beta 版代理政策可以管理旧版 Monitoring 代理和 Logging 代理以及 Ops Agent。
    • Google Analytics(分析)代理政策仅管理 Ops Agent。
  • 代理版本自动升级

    • Beta 版代理政策可以通过升级代理使代理保持最新版本。
    • Google Analytics(分析)代理政策不支持自动升级操作。如需了解替代方法,请参阅替换 Beta 版代理升级政策
  • 将政策应用于命名的 Compute Engine 实例

    • Beta 版代理政策可应用于一系列已命名实例。
    • Google Analytics(分析)代理政策不支持命名实例。 如需了解如何使用 GA 政策实现相同的行为,请参阅将 Beta 版命名实例政策转换为 GA 政策
  • Google Cloud 项目中代理政策的全球或可用区级应用

    • Beta 版代理政策会全局应用于您的 Google Cloud 项目中根据政策条件选择的所有实例。
    • GA 代理政策将应用于该政策指定的可用区内根据政策条件选择的所有实例。例如,在 us-central1-a 区域中创建的政策对其他区域中的虚拟机没有影响。

Beta 版和正式版 compute instances ops-agents policies 命令组的结构也有所不同:

  • gcloud beta compute instances ops-agents policies 命令通过将各个选项传递给命令来描述代理政策,例如:

    gcloud beta compute instances ops-agents policies create ops-agents-test-policy \
      --agent-rules="type=logging,enable-autoupgrade=false;type=metrics,enable-autoupgrade=false" \
      --description="A test policy." \
      --os-types=short-name=centos,version=7 \
      --instances=zones/us-central1-a/instances/test-instance \
      --project PROJECT_ID
    
  • gcloud compute instances ops-agents policies 命令使用 YAML 配置文件和区域描述代理政策,例如:

    gcloud compute instances ops-agents policies create test-policy \
      --zone us-central1-a \
      --file test-policy.yaml \
      --project PROJECT_ID
    

同时使用 Beta 版政策和 GA 政策

您可以将 Beta 版和正式版代理政策与 Ops Agent 搭配使用,只要考虑政策类型之间的差异即可。

Beta 版和 Google Analytics(分析)代理政策之间的最大行为区别在于,GA 政策是可用区级政策,Beta 版代理政策在项目中是全局性的。也就是说,GA 代理政策仅选择创建该政策的可用区中的虚拟机,但 Beta 版政策可以选择 Google Cloud 项目中的任何虚拟机。

如果 Beta 版政策选择了一组虚拟机,而 GA 政策选择了一组不同的虚拟机,则政策不会发生冲突。

您可以对同一虚拟机使用 Beta 版和正式版代理政策,但需要确保政策没有相互冲突的用途,例如,既有用于安装 Ops Agent 的 Beta 版政策,也有用于卸载 Ops Agent 的 GA 政策。

将 Beta 版政策转换为 Google Analytics(分析)政策

您可以将 Ops Agent Beta 版代理政策转换为 GA 代理政策,前提是政策类型之间不存在您无法解决的差异。您无法将旧版 Monitoring 代理或 Logging 代理的 Beta 版代理政策转换为 Google Analytics(分析)代理政策。

如需将 Beta 版代理政策转换为 GA 政策,请执行以下操作:

  1. 运行以下命令,生成项目中所有 Beta 版代理政策的列表:

    gcloud beta compute instances ops-agents policies list --project PROJECT_ID
    
  2. 确定要转换为 Google Analytics(分析)政策的 Beta 版代理政策。

  3. 对于您确定要进行转换的每个测试版政策,请执行以下操作:

    1. 根据 Beta 版政策和 GA 政策之间的差异,创建尽可能接近 Beta 版政策的 YAML 配置文件。如需了解 YAML 配置格式,请参阅描述代理政策

    2. 在您需要该政策的每个可用区中创建一项 GA 代理政策。 如需了解如何创建 Google Analytics(分析)代理政策,请参阅创建代理政策

    3. 通过运行以下命令删除 Beta 版代理政策:

      gcloud beta compute instances ops-agents policies delete POLICY_ID --project PROJECT_ID
      

您可能无法为 Ops Agent 编写与现有 Beta 版代理政策完全相同的 GA 代理政策。但是,除了 Beta 版代理政策的自动升级选项外,您可以获得等效的行为。

以下部分介绍了如何处理以下情况:

将 Beta 版命名实例政策转换为正式版政策

如需转换应用于一组指定虚拟机实例的 Beta 版代理政策,您可以执行以下操作:

  1. 将标签应用于您要选择的虚拟机集中的实例。 如需将标签应用于现有虚拟机,请使用 gcloud compute instances add-labels 命令,如以下命令所示:

    gcloud compute instances add-labels INSTANCE_NAME --labels=KEY=VALUE
    
  2. 描述一项正式版代理政策,该政策使用配置中的 instanceFilter 结构选择具有新标签的虚拟机。以下示例会创建一个名为 config.yaml 的文件,其中包含与上一步中应用的标签匹配的政策:

    cat > config.yaml << EOF
    agentsRule:
      packageState: installed
      version: 2.47.0
    instanceFilter:
      inclusionLabels:
      - labels:
        KEY: VALUE
    EOF
    

    如需详细了解如何描述 Google Analytics(分析)代理政策,请参阅代理政策的配置文件

  3. 在具有带有新标签的虚拟机的每个可用区中创建 GA 代理政策:

    gcloud compute instances ops-agents policies create POLICY_ID \
      --zone ZONE \
      --file config.yaml
      --project PROJECT_ID
    

    如需详细了解如何创建 GA 代理政策,请参阅创建代理政策

替换 Beta 版代理升级政策

如需替换用于升级代理的 Beta 版代理政策,您可以选择以下选项:

  • 为了确保 Ops Agent 始终是最新版本,请使用 OS Patch 创建并运行操作系统修补作业,使代理保持最新版本。
  • 如需执行一次性升级,请执行以下操作:

    1. 参阅 GitHub 上的 Ops Agent 版本说明,确定 Ops Agent 的最新版本。
    2. 创建或修改会安装最新代理版本的代理政策。 例如,如果最新版本为 2.46.0,则可以使用类似于以下内容的代理政策 YAML:

      agentsRule:
        packageState: installed
        version: 2.46.0
      instanceFilter:
      [...]
      
    3. 将该政策应用于每个可用区中的虚拟机。

支持的操作系统

您可以将代理政策应用于运行下表所示操作系统的 Compute Engine 虚拟机实例:

操作系统 Ops Agent
(正式版和 Beta 版 政策)
Logging 代理
(仅限 Beta 版 政策)
Monitoring 代理
(仅限 Beta 版 政策)
CentOS 8
Rocky Linux 8
RHEL 6
RHEL 7:
rhel-7、rhel-7-6-sap-ha、rhel-7-7-sap-ha、rhel-7-9-sap-ha
RHEL 8:
rhel-8、rhel-8-4-sap-ha、rhel-8-6-sap-ha、rhel-8-8-sap-ha
Debian 9 (Stretch)
Debian 11 (Bullseye)
基于 Debian 11 (Bullseye) 的 Deep Learning VM Image 映像
Ubuntu LTS 18.04 (Bionic Beaver):
ubuntu-1804-lts、ubuntu-minimal-1804-lts
Ubuntu LTS 20.04 (Focal Fossa):
ubuntu-2004-lts、ubuntu-minimal-2004-lts
Ubuntu LTS 22.04 (Jammy Jellyfish):
buntu-2204-lts、ubuntu-minimal-2204-lts
SLES 12:
sles-12、sles-12-sp5-sap
SLES 15:
sles-15、sles-15-sp2-sap、sles-15-sp3-sap、sles-15-sp4-sap、sles-15-sp5-sap、sles-15-sp6-sap
OpenSUSE Leap 15:
opensuse-leap (opensuse-leap-15-3-*,
opensuse-leap-15-4-*)
Windows Server:
2016、2019、2022、Core 2016、Core 2019、Core 2022
  在 Beta 版代理政策中,代理列会映射到为 gcloud beta compute instances ops-agents policies create 调用指定的代理类型
  • Ops Agent 会映射到代理类型 ops-agent
  • Logging 代理会映射到代理类型 logging
  • Monitoring 代理会映射到代理类型 metrics
rhel-7-9-sap-harhel-8-2-sap-harhel-8-4-sap-ha 不支持 Monitoring 代理。

后续步骤

如需了解如何使用代理政策管理 Ops Agent,请参阅以下内容: