Cloud Monitoring 代理从虚拟机实例收集系统和应用指标,并将其发送到 Monitoring。您还可以配置 Monitoring 代理以监控第三方应用。
本指南介绍如何在 Compute Engine 和 Amazon Elastic Compute Cloud (EC2) 虚拟机上安装用于 Monitoring 的 Cloud Monitoring 代理。代理不是强制使用的,但我们建议您对 Compute Engine 虚拟机实例使用。对于这些虚拟机,Monitoring 无需代理即可从虚拟机的 Hypervisor 访问某些指标,包括 CPU 利用率、某些磁盘流量指标、网络流量和正常运行时间。Amazon Elastic Compute Cloud (EC2) 虚拟机需要使用代理。
在运行 Microsoft Windows 系统的实例上,代理可记录 CPU 使用率和内存、页面文件和卷使用情况。如果您运行的是 IIS 或 SQL Server,则默认情况下,代理会从这些服务中收集指标。
须知事项
要安装该代理,请确保您拥有以下必备组件:
Google Cloud 项目或 Amazon Web Services (AWS) 账号中受支持的虚拟机实例。
- 运行 Monitoring 代理建议至少使用 250 MiB 的常驻 (RSS) 内存。
此外,请确保您的虚拟机运行的是受支持的操作系统。
虚拟机实例上授权与 Cloud Logging 或 Cloud Monitoring 进行通信的凭据。默认情况下,Compute Engine 虚拟机实例通常具有正确的凭据。如果您属于以下任一种情况,则说明您可能没有正确的凭据,必须完成为 Monitoring 代理授权过程:
运行 AWS EC2 虚拟机实例时,您必须先在虚拟机上安装授权凭据,然后才能安装代理。
运行非常旧的 Compute Engine 实例或者在未使用默认凭据的情况下创建的 Compute Engine 实例。
如需检查您是否具有正确的凭据,请运行验证 Compute Engine 凭据过程。
如需了解价格信息,请参阅 Google Cloud Observability 价格。
如果您使用的虚拟机无权访问远程软件包代码库,请参阅没有远程软件包访问权限的虚拟机部分。
通过命令行安装代理
如需使用命令行安装代理,请按照以下说明操作。
安装最新版本的代理
如需安装最新版本的代理,请完成以下步骤。
Linux
使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有
sudo
访问权限。切换到您具有写入权限的目录,例如您的主目录。
使用以下命令下载并运行代理安装脚本:
curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh sudo bash add-monitoring-agent-repo.sh --also-install
安装后,代理会自动启动。
Windows
使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。
运行以下 PowerShell 命令:
(New-Object Net.WebClient).DownloadFile("https://repo.stackdriver.com/windows/StackdriverMonitoring-GCM-46.exe", "${env:UserProfile}\StackdriverMonitoring-GCM-46.exe") & "${env:UserProfile}\StackdriverMonitoring-GCM-46.exe"
安装特定版本代理
如需安装特定版本的代理,请完成以下步骤。
Linux
使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有
sudo
访问权限。切换到您具有写入权限的目录,例如您的主目录。
下载代理安装脚本:
curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh
运行
add-monitoring-agent-repo.sh
脚本时,您还可以设置以下标志:--verbose
:在脚本执行期间启用详细日志记录。--also-install
:添加代理软件包代码库后安装代理。--version
:设置要安装的脚本的代理版本。 如需了解版本信息,请参阅列出所有代理版本。--uninstall
:卸载代理。--remove-repo
:安装或卸载代理后移除相应的代理软件包代码库。--dry-run
:仅触发脚本执行的试运行,并输出应执行的命令。
如需了解详情并查看示例注释,请参阅脚本注释。
添加代理的软件包代码库并安装代理:
如需列出可用的代理版本,请参阅列出所有代理版本。
对于生产环境,您可能需要固定到某个主要版本,以避免安装可能包含向后不兼容更改的主要版本。如需固定到某个主要版本,请运行以下命令:
sudo bash add-monitoring-agent-repo.sh --also-install \ --version=MAJOR_VERSION.*.*
例如,如需固定到代理的 6.x.x 版本,请运行以下命令:
sudo bash add-monitoring-agent-repo.sh --also-install \ --version=6.*.*
如需安装代理的特定版本,请运行以下命令:
sudo bash add-monitoring-agent-repo.sh --also-install \ --version=MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION
启动代理服务
sudo service stackdriver-agent start
您可以在安装脚本成功运行后将其删除。
如需验证代理是否按预期工作,请运行以下命令:
sudo service stackdriver-agent status
代理的状态应为 OK。
您还可以检查日志并确保没有错误:
sudo grep collectd /var/log/{syslog,messages} | tail
如果您在安装时遇到问题,请参阅问题排查页面。
Windows
使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。
运行以下 PowerShell 命令:
(New-Object Net.WebClient).DownloadFile("https://repo.stackdriver.com/windows/StackdriverMonitoring-GCM-46.exe", "${env:UserProfile}\StackdriverMonitoring-GCM-46.exe") & "${env:UserProfile}\StackdriverMonitoring-GCM-46.exe"
或者,您可以转到以下网址以下载并运行代理的安装程序:
https://repo.stackdriver.com/windows/StackdriverMonitoring-GCM-46.exe
要以静默方式安装代理,请将
/S
选项附加到安装程序的调用命令中:& "${env:UserProfile}\StackdriverMonitoring-GCM-46.exe" /S
在“静默”模式下,请使用
/D
选项指定安装目录,例如:& "${env:UserProfile}\StackdriverMonitoring-GCM-46.exe" /S /D="C:\Stackdriver\Monitoring\"
您可以在安装程序成功完成安装后将其删除。
如果您在安装时遇到问题,请参阅问题排查页面。
使用 Google Cloud 控制台查看代理信息
您可以在预配置的 Monitoring 虚拟机实例信息中心中找到有关代理的状态信息。如需访问此信息中心,请执行以下操作:
在 Google Cloud 控制台中,进入虚拟机实例信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
信息中心的清单标签页上的列表视图列出了所有虚拟机,并包含代理的状态列,如以下屏幕截图所示:
代理列会报告以下值:
未检测到:未安装代理或代理未运行。如果您不确定是否已安装代理,则可以查询已安装的版本。如果您已安装代理,则可以重启代理。
Ops Agent:您正在运行 Ops Agent。 如果您在条目旁边没有看到绿色对勾标记,则表示根据检测到的虚拟机操作系统,有可用的代理升级。
将鼠标悬停在表中的 Ops Agent 指示标志上时,您会看到有关 Ops Agent 版本的信息。如果您运行的是较旧版本,则还会看到升级代理的建议。
待处理:正在安装或升级 Ops Agent。
旧版代理:您正在运行旧版 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 来更改此默认行为。
可选任务
本部分介绍如何执行常见的维护任务。
配置 Monitoring 代理
如需调整代理配置,请参阅配置 Monitoring 代理。
配置 HTTP 代理
如果使用 HTTP 代理将请求代理到 Logging API 和 Monitoring API,则请执行以下操作:
Linux
修改以下配置文件(如果尚不存在,请创建该文件):
对于代理版本 6.0.0 及更高版本,请修改:
/etc/default/stackdriver-agent
对于 6.0.0 以下版本的代理,请修改您的操作系统对应的文件:
对于 Debian 和 Ubuntu,请修改:
/etc/default/stackdriver-agent
对于 CentOS 和 SLES,请修改:
/etc/default/stackdriver-collectd
将以下内容添加到该文件中:
export http_proxy="http://proxy-ip:proxy-port" export https_proxy="http://proxy-ip:proxy-port" export no_proxy=169.254.169.254 # Skip proxy for the local Metadata Server.
通过在虚拟机实例上运行以下命令来重启该代理。
sudo service stackdriver-agent restart
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 169.254.169.254 /m
确定代理版本
要确定系统上 Monitoring 代理的版本,请在您的虚拟机实例上运行以下命令:
AMAZON LINUX AMI/CENTOS/RHEL
在 Amazon Linux、Red Hat 或 CentOS Linux 上运行以下命令:
rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' stackdriver-agent
DEBIAN/UBUNTU
在 Debian 或 Ubuntu 上运行以下命令:
dpkg-query --show --showformat '${Package} ${Version} ${Architecture} ${Status}\n' stackdriver-agent
SLES/SUSE
在 SUSE 上运行以下命令:
rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' stackdriver-agent
WINDOWS
目前无法确定在 Windows 系统上运行的 Monitoring 代理的版本。
重启代理
您必须重启 Monitoring 代理才能才能使配置文件中的更改生效。要重启代理,请按以下说明操作。
LINUX
在您的实例上运行以下命令:
sudo service stackdriver-agent restart
Windows
使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。
运行以下 PowerShell 命令:
Restart-Service -Name StackdriverMonitoring
升级代理
要将 Monitoring 代理升级到最新版本,请按以下说明操作:
Linux
如需将代理升级到最新版本,请运行以下命令:
sudo bash add-monitoring-agent-repo.sh --also-install
如需将代理升级到特定主要版本的最新版本,请运行以下命令:
sudo bash add-monitoring-agent-repo.sh --also-install \
--version=MAJOR_VERSION.*.*
Windows
如需升级到最新的代理版本,请按照此页面上在 Windows 上安装部分的说明安装最新代理。安装程序会提示您卸载以前的代理版本。
列出所有代理版本
如需列出代理的可用版本,请运行以下命令:
AMAZON LINUX AMI/CENTOS/RHEL
列出代理的可用版本:
sudo yum list --showduplicates stackdriver-agent
DEBIAN/UBUNTU
列出代理的可用版本:
sudo apt-cache madison stackdriver-agent
SLES/SUSE
列出代理的可用版本:
sudo zypper search -s stackdriver-agent
WINDOWS
不支持在 Windows 上安装代理的较早版本。
卸载代理
要移除 Monitoring 代理及其配置文件,请按以下说明操作。
卸载代理后,Google Cloud 控制台最多可能需要一小时才能报告此更改。
Linux
运行以下命令:
sudo bash add-monitoring-agent-repo.sh --uninstall
(可选)如需在卸载代理之外移除代码库,请将 --remove-repo
附加到上一个命令中。
Windows
在 Windows 控制面板中,选择卸载程序。您应该在可以卸载的程序列表中看到 Monitoring 代理。您还可以从 Monitoring 代理的安装目录运行 uninstall.exe
。
没有远程软件包访问权限的虚拟机
安装 Monitoring 代理时需要访问远程软件包代码库以获得代理软件包及其依赖项(在 Linux 上)。
如果您使用的是 VPC-SC 或专用网络,则网络配置还可能会影响您能否从上游代码库安装代理依赖项。您可以使用专用 Google 访问通道来访问代理软件包本身。 您可以按照启用专用 Google 访问通道中的说明进行配置。
如果虚拟机主机的安全政策拒绝访问远程软件包代码库,我们建议在预装代理的情况下创建自定义虚拟机映像,并在该映像中停用软件包管理。