排查 Ops Agent 的虚拟机扩展程序管理器政策问题

如需诊断管理 Ops Agent 的虚拟机扩展程序管理器政策的问题,请使用本文档中所述的问题排查方法。如需了解如何排查 Ops Agent 问题,请参阅排查 Ops Agent 问题。

gcloud compute zone-vm-extension-policies 命令失败

当 gcloud compute zone-vm-extension-policies 命令失败时,响应会包含问题排查建议。按照出错提示的建议,更正命令标志或参数中的所有错误。

如果命令输出提及 IAM 权限不足,请查看授予使用虚拟机扩展程序管理器所需的角色中所述的必要角色和权限。

扩展程序政策已创建,但 Ops Agent 状态为“未检测到”

您已成功创建扩展程序政策,但 Ops Agent 在虚拟机上显示“未检测到”状态。

如果出现以下任一情况,Ops Agent 可能会显示为“未检测到”:

  • 扩展程序政策未能安装 Ops Agent。
  • 已安装的 Ops Agent 遇到阻止其运行的错误条件。

以下部分介绍了如何诊断这些情况。

验证 Ops Agent 是否已由政策安装

虚拟机扩展程序管理器政策使用 Compute Engine 客机代理将 Ops Agent 作为虚拟机扩展程序进行管理。

如需确定 Ops Agent 是否由扩展程序政策安装,请使用以下方法之一查找客机代理中的日志条目:

日志浏览器

  1. 在 Google Cloud 控制台中,前往 Logs Explorer 页面:

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 输入以下查询,然后点击运行查询:

    log_id("GCEGuestAgentManager")

Linux

在 Compute Engine 虚拟机上运行以下命令:

journalctl -u google-guest-agent-manager

Windows

在 Compute Engine 虚拟机上运行以下命令:

Get-Eventlog -Source google_guest_agent_manager -LogName Application

如果您看到包含 Failed to install plugin "ops-agent-plugin" ... 等字符串的日志,或者查询未返回任何日志,则表示扩展程序政策未能安装 Ops Agent。如需了解后续步骤,请参阅扩展程序政策无法安装 Ops Agent。

如果您看到包含 Successfully installed plugin "ops-agent_nnnnnnnn" 等字符串的日志,则表示扩展程序政策已成功安装 Ops Agent。如需了解后续步骤,请参阅已安装的 Ops Agent“未检测到”。

扩展程序政策未能安装 Ops Agent

如果存在以下任一情况,扩展程序政策可能无效:

  • 虚拟机上未安装客机代理。如需诊断和解决此问题,请执行以下操作:

    1. 验证虚拟机使用的是 Compute Engine 客机环境支持的操作系统之一。

    2. 查看虚拟机上安装的软件包,以验证是否包含 google-guest-agent。

    3. 如果未安装 google-guest-agent,请安装客机代理。

  • 客机代理已安装,但已过时。如需诊断和解决此问题,请执行以下操作:

    1. 验证客机环境,以确定 google-guest-agent 软件包的版本。虚拟机扩展程序管理器需要 20241209.01 或更高版本。

    2. 如果 google-guest-agent 的版本低于 20241209.01,请更新客机环境。

  • 虚拟机扩展程序管理器不支持虚拟机的操作系统。如需了解详情,请参阅查看支持的操作系统。

已安装的 Ops Agent 的状态为“未检测到”

如果满足以下任一条件,则 Ops Agent 的状态可能为“未检测到”:

验证 Ops Agent 配置是否有效

您通过创建或更新扩展政策向 Ops Agent 提供了自定义配置,但代理状态为“未检测到”。问题可能是自定义配置中存在错误。使用客机代理调试日志查找配置错误。

启用客机代理调试日志记录

如需了解如何为客机代理启用调试日志记录,请参阅查看客机代理的调试日志。

检查调试日志

日志浏览器

  1. 在 Google Cloud 控制台中,前往 Logs Explorer 页面:

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 输入以下查询,然后点击运行查询:

    severity>=DEBUG log_id("GCEGuestAgentManager") "The agent config file is not valid"

Linux

在 Linux Compute Engine 虚拟机上运行以下命令:

journalctl -u google-guest-agent-manager | grep "The agent config file is not valid"

Windows

在 Windows Compute Engine 虚拟机上运行以下命令:

Get-Eventlog -Source google_guest_agent_manager -LogName Application | Where-Object {$_.Message -like "*The agent config file is not valid*"}

如果您看到包含字符串 The agent config file is not valid 的日志,则表示您在创建或更新扩展程序政策时提供的 Ops Agent 自定义配置无效。

如需解决此问题,请执行以下操作:

  • 请参阅配置 Ops Agent,更正配置。 如需了解 Ops Agent 配置文件的结构,请参阅

  • 使用更正后的配置更新扩展程序政策。

Linux systemctl status 和 Windows Get-Service 命令不适用于 Ops Agent

您运行了 sudo systemctl status google-cloud-ops-agent"*" 之类的命令,但它没有返回任何信息。

当 Ops Agent 由虚拟机扩展程序管理器安装和管理时,Ops Agent 不由操作系统的系统管理服务(即 Linux 上的 systemd 或 Windows 上的 Windows 服务管理器)管理。

如需查找由虚拟机扩展程序管理器管理的 Ops Agent 的状态信息,请参阅以下内容:

Linux systemctl restart 和 Windows Restart-Service 命令不适用于 Ops Agent

您运行了 sudo systemctl restart google-cloud-ops-agent 等命令,但 Ops Agent 未重启。

当 Ops Agent 由虚拟机扩展程序管理器安装和管理时,Ops Agent 不由操作系统的系统管理服务(即 Linux 上的 systemd 或 Windows 上的 Windows 服务管理器)管理。因此,您无法手动停止或启动 Ops Agent,并且以下命令不适用于 Ops Agent:

  • Linux:sudo systemctl [stop|start|restart]
  • Windows:Stop-Service、Start-Service、Restart-Service

如需停止或重启由虚拟机扩展程序管理器管理的 Ops Agent,您必须通过删除扩展程序政策来卸载该代理。如需详细了解如何停止或重启 Ops Agent,请参阅重启由扩展程序政策安装的 Ops Agent。

其他问题排查信息

如需详细了解如何排查虚拟机扩展程序管理器政策的创建和使用问题,请参阅排查虚拟机扩展程序问题。

如需详细了解如何排查 Ops Agent 问题,请参阅排查 Ops Agent 问题。