Ops Agent 会收集 Compute Engine 实例上的日志和指标,并将日志发送到 Cloud Logging,将指标发送到 Cloud Monitoring。
准备工作
要安装该代理,请确保您拥有以下必备组件:
- Google Cloud 项目中受支持的虚拟机实例。 
- 虚拟机实例上授权与 Cloud Logging 和 Cloud Monitoring 进行通信的凭据。默认情况下,Compute Engine 虚拟机实例通常具有正确的凭据。如果您运行的是非常旧的 Compute Engine 实例,或者您在未使用默认凭据的情况下创建了 Compute Engine 实例,则您可能没有正确的凭据。您必须完成授权 Ops Agent 过程。 
- 确保已为 Cloud Logging API 和 Cloud Monitoring API 启用服务。 
- 确保您的虚拟机没有安装旧版 Cloud Logging 代理或 Cloud Monitoring 代理,否则可能会导致系统提取重复的日志或者导致系统在提取指标时发生冲突。此外,此代理会使用与旧代理不兼容的新配置文件。 - 如果您安装了旧版代理,请保存 Cloud Monitoring 代理的自定义配置文件以及 Cloud Logging 代理的自定义配置文件,然后完成 Cloud Monitoring 代理的卸载步骤以及 Cloud Logging 代理的卸载步骤。 
- 如果用户使用的是无法访问远程软件包库的虚拟机,请参阅没有远程软件包访问权限的虚拟机部分以了解详情。 
在创建虚拟机期间自动安装代理
如需了解详情,请参阅在创建虚拟机期间安装 Ops Agent。
通过命令行安装代理
如需使用命令行安装代理,请按照以下说明操作。
安装最新版本的代理
如需安装最新版本的代理,请完成以下步骤。
Linux
- 使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有 - sudo访问权限。
- 切换到您具有写入权限的目录,例如您的主目录。 
- 使用以下命令下载并运行代理安装脚本: - curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh sudo bash add-google-cloud-ops-agent-repo.sh --also-install- 安装完成后,代理会自动启动。 
Windows
- 使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。 
- 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。 
- 运行以下 PowerShell 命令: - (New-Object Net.WebClient).DownloadFile("https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.ps1", "${env:UserProfile}\add-google-cloud-ops-agent-repo.ps1") Invoke-Expression "${env:UserProfile}\add-google-cloud-ops-agent-repo.ps1 -AlsoInstall"
安装特定版本代理
如需安装特定版本的代理,请完成以下步骤。
Linux
- 使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有 - sudo访问权限。
- 切换到您具有写入权限的目录,例如您的主目录。 
- 下载代理安装脚本: - curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh- 运行 - add-google-cloud-ops-agent-repo.sh脚本时,您还可以设置以下标志:- --verbose:在脚本执行期间启用详细日志记录。
- --also-install:添加代理软件包代码库后安装代理。
- --version:设置要安装的脚本的代理版本。 如需了解版本信息,请参阅列出所有代理版本。
- --uninstall:卸载代理。
- --remove-repo:安装或卸载代理后移除相应的代理软件包代码库。
- --dry-run:仅触发脚本执行的试运行,并输出应执行的命令。
 - --uninstall-standalone-logging-agent:卸载旧版 Logging 代理 (- StackdriverLogging)。
- --uninstall-standalone-monitoring-agent:卸载旧版 Monitoring 代理 (- StackdriverMonitoring)。
 - 如需了解详情并查看示例注释,请参阅脚本注释。 
- 添加代理的软件包代码库并安装代理: - 如需列出可用的代理版本,请参阅列出所有代理版本。 
- 对于生产环境,您可能需要固定到某个主要版本,以避免安装可能包含向后不兼容更改的主要版本。如需固定到某个主要版本,请运行以下命令: - sudo bash add-google-cloud-ops-agent-repo.sh --also-install \ --version=MAJOR_VERSION.*.*- 例如,如果要固定到代理的 1.x.x 版本,请运行以下命令: - sudo bash add-google-cloud-ops-agent-repo.sh --also-install \ --version=1.*.*
- 如需安装代理的特定版本,请运行以下命令: - sudo bash add-google-cloud-ops-agent-repo.sh --also-install \ --version=MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION
 
您可以在安装脚本成功运行后将其删除。
- 如需验证代理是否按预期工作,请运行以下命令: - sudo systemctl status google-cloud-ops-agent"*"- 验证组件“Logging 代理”和“指标代理”是否正在运行。 
如果您在安装时遇到问题,请参阅问题排查页面。
Windows
- 使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。 
- 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。 
- 下载代理安装脚本: - (New-Object Net.WebClient).DownloadFile("https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.ps1", "${env:UserProfile}\add-google-cloud-ops-agent-repo.ps1")- 运行 - add-google-cloud-ops-agent-repo.ps1脚本时,您还可以设置以下标志:- -Verbose:在脚本执行期间启用详细日志记录。
- -AlsoInstall:添加代理软件包代码库后安装代理。
- -Version:设置要安装的脚本的代理版本。 如需了解版本信息,请参阅列出所有代理版本。
- -Uninstall:卸载代理。
- -RemoveRepo:安装或卸载代理后移除相应的代理软件包代码库。
- -WhatIf:仅触发脚本执行的试运行,并输出应执行的命令。
- -UninstallStandaloneLoggingAgent:卸载旧版 Logging 代理 (- StackdriverLogging)。
- -UninstallStandaloneMonitoringAgent:卸载旧版 Monitoring 代理 (- StackdriverMonitoring)。
 - 如需了解详情并查看示例注释,请参阅脚本注释。 
- 添加代理的软件包代码库并安装代理: - 如需列出可用的代理版本,请参阅列出所有代理版本。 
- 对于生产环境,您可能需要固定到某个主要版本,以避免安装可能包含向后不兼容更改的主要版本。如需固定到某个主要版本,请运行以下命令: - Invoke-Expression "${env:UserProfile}\add-google-cloud-ops-agent-repo.ps1 -AlsoInstall -Version MAJOR_VERSION.*.*"- 例如,如果要固定到代理的 1.x.x 版本,请运行以下命令: - Invoke-Expression "${env:UserProfile}\add-google-cloud-ops-agent-repo.ps1 -AlsoInstall -Version 1.*.*"
- 如需安装代理的特定版本,请运行以下命令: - Invoke-Expression "${env:UserProfile}\add-google-cloud-ops-agent-repo.ps1 -AlsoInstall -Version version-number"- 例如: - Invoke-Expression "${env:UserProfile}\add-google-cloud-ops-agent-repo.ps1 -AlsoInstall -Version 1.0.1"
 
您可以在安装脚本成功运行后将其删除。
- 如需验证代理是否按预期工作,请运行以下命令: - Get-Service google-cloud-ops-agent- 代理的状态应为 - Running。
如果您在安装时遇到问题,请参阅问题排查页面。
使用 Google Cloud 控制台安装代理
您可以使用 Cloud Monitoring 或 Compute Engine 页面中的Google Cloud 控制台在一个或多个 Compute Engine 虚拟机上安装 Ops Agent。
Cloud Monitoring
在 Google Cloud 控制台中,前往虚拟机实例信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
信息中心的清单标签页上的列表视图列出了所有虚拟机,并包含代理的状态列,如以下屏幕截图所示:
 
 
代理列会报告以下值:
- 未检测到:未安装代理或代理未运行。如果您不确定是否已安装代理,则可以查询已安装的版本。如果您已安装代理,则可以重启代理。 如果您已安装并启动 Ops Agent,但状态仍为未检测到,则表示代理可能未正确启动或无法发送指标。 - 如需排查启动问题,请参阅代理已安装,但无法运行。如需排查指标注入问题,请参阅排查数据注入问题。常规的代理诊断脚本和健康检查可能也有用。 
- Ops Agent:您正在运行 Ops Agent。 如果您在条目旁边没有看到绿色对勾标记,则表示根据检测到的虚拟机操作系统,有可用的代理升级。 - 将鼠标悬停在表中的 Ops Agent 指示标志上时,您会看到有关 Ops Agent 版本的信息。如果您运行的是较旧版本,则还会看到升级代理的建议。 
- 待处理:正在安装或升级 Ops Agent。 - 如果代理安装处于待处理状态超过 10 分钟,则应用 Ops Agent 操作系统政策或启动代理时会出现问题。如需了解问题排查信息,请参阅自动安装政策的代理诊断工具。 
- 代理安装失败:Ops Agent 安装失败。 如需了解问题排查信息,请参阅代理安装失败。 
- 未收集遥测数据:Ops Agent 安装成功,但代理尚未发送遥测数据。 - 新代理通常需要大约 10 分钟才能开始传输遥测数据。您可以刷新页面以更新状态。如果此状态持续超过 10 分钟,则表明遥测数据的提取可能存在问题。如需了解详情,请参阅代理已安装,但未运行。 
- 旧版代理:您正在运行旧版 Monitoring 或 Logging 代理。如需了解如何转换到 Ops Agent,请参阅从旧版代理迁移到 Ops Agent。 
- 不适用:此虚拟机不属于运行代理的受支持平台。 
- 虚拟机已停止:虚拟机未运行,因此代理的状态未知。 
您可以通过执行以下操作来安装 Ops Agent:
- 选择要在其中安装代理的虚拟机实例。
- 点击实例表中的安装/更新 Ops Agent 选项。
您还可以从特定虚拟机的虚拟机详情页面安装或更新 Ops Agent。
尽可能使用 Ops Agent 操作系统政策安装代理。如需了解详情,请参阅管理 Ops Agent 操作系统政策涵盖的虚拟机。并非所有操作系统的所有版本都支持 Ops Agent 操作系统政策。在这种情况下,点击安装/更新 Ops Agent 可提供一系列在 Cloud Shell 中运行的命令。
Ops Agent 默认会收集指标和日志。您可以通过配置 Ops Agent 来更改此默认行为。
Compute Engine
- 
在 Google Cloud 控制台中,前往虚拟机实例页面: 如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。 
- 点击要在其中安装代理的虚拟机的名称。 
- 点击可观测性标签页。 
- 点击安装 Ops Agent。 - 尽可能使用 Ops Agent 操作系统政策安装代理。如需了解详情,请参阅管理 Ops Agent 操作系统政策涵盖的虚拟机。并非所有操作系统的所有版本都支持 Ops Agent 操作系统政策。在这种情况下,点击安装/更新 Ops Agent 可提供一系列在 Cloud Shell 中运行的命令。 - Ops Agent 默认会收集指标和日志。您可以通过配置 Ops Agent 来更改此默认行为。 - 如果代理安装处于待处理状态超过 10 分钟,则应用 Ops Agent 操作系统政策或启动代理时会出现问题。如需了解问题排查信息,请参阅自动安装政策的代理诊断工具。 
验证 Ops Agent 是否正在运行
如需验证 Ops Agent 是否正在运行,您可以使用以下任一方式:
- 虚拟机实例信息中心:此信息中心可让您查看虚拟机舰队中的代理安装状态。但是,如果虚拟机缺少必要的访问权限范围,或者关联的服务账号没有足够的 IAM 角色,则状态可能不准确。 
- gcpdiag:gcpdiag 提供的代理状态相关信息比虚拟机实例信息中心更可靠且更强大,可验证代理安装和来自虚拟机的遥测数据传输。使用 gcpdiag 有一些前提条件,可更好地监控代理状态。 
使用虚拟机实例信息中心
在 Google Cloud 控制台中,前往虚拟机实例信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
信息中心的清单标签页上的列表视图列出了所有虚拟机,并包含代理的状态列。
代理列会报告以下值:
- 未检测到:未安装代理或代理未运行。如果您不确定是否已安装代理,则可以查询已安装的版本。如果您已安装代理,则可以重启代理。 如果您已安装并启动 Ops Agent,但状态仍为未检测到,则表示代理可能未正确启动或无法发送指标。 - 如需排查启动问题,请参阅代理已安装,但无法运行。如需排查指标注入问题,请参阅排查数据注入问题。常规的代理诊断脚本和健康检查可能也有用。 
- Ops Agent:您正在运行 Ops Agent。 如果您在条目旁边没有看到绿色对勾标记,则表示根据检测到的虚拟机操作系统,有可用的代理升级。 - 将鼠标悬停在表中的 Ops Agent 指示标志上时,您会看到有关 Ops Agent 版本的信息。如果您运行的是较旧版本,则还会看到升级代理的建议。 
- 待处理:正在安装或升级 Ops Agent。 - 如果代理安装处于待处理状态超过 10 分钟,则应用 Ops Agent 操作系统政策或启动代理时会出现问题。如需了解问题排查信息,请参阅自动安装政策的代理诊断工具。 
- 代理安装失败:Ops Agent 安装失败。 如需了解问题排查信息,请参阅代理安装失败。 
- 未收集遥测数据:Ops Agent 安装成功,但代理尚未发送遥测数据。 - 新代理通常需要大约 10 分钟才能开始传输遥测数据。您可以刷新页面以更新状态。如果此状态持续超过 10 分钟,则表明遥测数据的提取可能存在问题。如需了解详情,请参阅代理已安装,但未运行。 
- 旧版代理:您正在运行旧版 Monitoring 或 Logging 代理。如需了解如何转换到 Ops Agent,请参阅从旧版代理迁移到 Ops Agent。 
- 不适用:此虚拟机不属于运行代理的受支持平台。 
- 虚拟机已停止:虚拟机未运行,因此代理的状态未知。 
使用 gcpdiag
如需了解如何使用 gcpdiag ,请参阅使用 gcpdiag 验证代理状态。
可选任务
本部分介绍如何执行常见的维护任务。
配置 HTTP 代理
如果使用 HTTP 代理将请求代理到 Logging API 和 Monitoring API,则请执行以下操作:
Linux
- 修改以下配置文件(如果尚不存在,请创建该文件): - /etc/systemd/system.conf
- 将以下内容添加到该文件中: - DefaultEnvironment="HTTP_PROXY=http://proxy-ip:proxy-port" "HTTPS_PROXY=http://proxy-ip:proxy-port" "NO_PROXY=http://metadata.google.internal" # Skip proxy for the local Metadata Server.
- 重新加载环境变量: - sudo systemctl daemon-reload
- 通过在虚拟机实例上运行以下命令来重启该代理。 - sudo systemctl restart google-cloud-ops-agent"*"
Windows
- 如果您使用的是 HTTP 代理,请通过管理员命令提示符运行以下命令。这样会设置 - HTTP_PROXY和- HTTPS_PROXY环境变量,以便代理可以使用出站 HTTPS 发送数据:- setx HTTP_PROXY http://proxy-ip:proxy-port /m setx HTTPS_PROXY http://proxy-ip:proxy-port /m setx no_proxy "metadata.google.internal,169.254.169.254" /m
确定代理版本
如需确定系统中 Ops Agent 的版本,请在虚拟机实例上运行以下命令:
Google Cloud 控制台
如需查看虚拟机上 Ops Agent 的版本,请执行以下操作:
- 在 Monitoring 虚拟机实例页面的实例表中,找到虚拟机条目。如需了解导航信息,请参阅使用 Google Cloud 控制台安装代理。 
- 将鼠标悬停在表条目中的 Ops Agent 指示标志上。 
CENTOS/RHEL
在 Red Hat 或 CentOS Linux 上运行以下命令:
rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' google-cloud-ops-agent
DEBIAN/UBUNTU
在 Debian 或 Ubuntu 上运行以下命令:
dpkg-query --show --showformat '${Package} ${Version} ${Architecture} ${Status}\n' google-cloud-ops-agent
SLES/SUSE
在 SUSE 上运行以下命令:
rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' google-cloud-ops-agent
WINDOWS
在 Windows 上运行以下命令:
googet installed google-cloud-ops-agent
重启代理
您必须重启 Ops Agen 才能使配置文件中的更改生效。要重启代理,请按以下说明操作。
LINUX
在您的实例上运行以下命令:
     sudo systemctl restart google-cloud-ops-agent
Windows
- 使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。 
- 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。 
- 运行以下 PowerShell 命令: 
Restart-Service google-cloud-ops-agent -Force
升级代理
要将 Ops Agen 升级到最新版本,请按以下说明操作:
Google Cloud 控制台
您可以使用 Cloud Monitoring 安装说明来升级 Ops Agent。如需了解详情,请参阅使用Google Cloud 控制台安装代理。
Linux
如需将代理升级到最新版本,请运行以下命令:
sudo bash add-google-cloud-ops-agent-repo.sh --also-install
如需将代理升级到特定主要版本的最新版本,请运行以下命令:
sudo bash add-google-cloud-ops-agent-repo.sh --also-install \
  --version=MAJOR_VERSION.*.*
Windows
如需升级到最新的代理版本,请执行以下操作:
- 使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。 
- 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。 - Copy-Item -Path "C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml" -Destination "C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.bak"
- 运行以下 PowerShell 命令以移除已安装的代理并运行安装命令: - googet -noconfirm remove google-cloud-ops-agent googet -noconfirm install google-cloud-ops-agent
列出所有代理版本
如需列出代理的可用版本,请运行以下命令:
CENTOS/RHEL
列出代理的可用版本:
sudo yum list --showduplicates google-cloud-ops-agent
DEBIAN/UBUNTU
列出代理的可用版本:
sudo apt-cache madison google-cloud-ops-agent
SLES/SUSE
列出代理的可用版本:
sudo zypper search -s google-cloud-ops-agent
WINDOWS
列出代理的可用版本:
googet available google-cloud-ops-agent
卸载代理
要移除 Ops Agen 及其配置文件,请按以下说明操作。
卸载代理后, Google Cloud 控制台最多可能需要一小时才能报告此更改。
Linux
运行以下命令:
sudo bash add-google-cloud-ops-agent-repo.sh --uninstall
(可选)如需在卸载代理之外移除代码库,请将 --remove-repo 附加到上一个命令中。
Windows
如需卸载 Ops Agent,请按照以下步骤操作:
- 使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。 
- 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。 
- 运行以下 PowerShell 命令: - googet -noconfirm remove google-cloud-ops-agent
没有远程软件包访问权限的虚拟机
安装 Ops Agen 时需要访问远程软件包代码库,以获得代理软件包及(在 Linux 上)其依赖项。
如果您使用的是 VPC-SC 或专用网络,则网络配置还可能会影响您能否从上游代码库安装代理依赖项。您可以使用专用 Google 访问通道来访问代理软件包本身。 您可以按照启用专用 Google 访问通道中的说明进行配置。
如果虚拟机主机的安全政策拒绝访问远程软件包代码库,我们建议在预装代理的情况下创建自定义虚拟机映像,并在该映像中停用软件包管理。
后续步骤
- 如需了解如何查看日志,请参阅使用 Logs Explorer。