停用所有指标的收集
如需禁止收集所有指标,请停用 Cloud Monitoring API:
控制台
在 Google Cloud 控制台中,选择 Google Cloud 项目,然后转到 API 和服务页面:
选择 Cloud Monitoring API。
点击停用 API。
gcloud
运行以下命令可在当前项目中停用 Cloud Monitoring API:
gcloud services disable monitoring.googleapis.com
如需了解如何使用 Google Cloud CLI 停用 API,请参阅启用和停用服务。
停用进程指标收集
您可以通过多种方式对 Ops Agent(2.0.0 及更高版本)以及 Linux 上的旧版 Monitoring 代理停用对这些指标的收集功能。
这些代理仅在 Compute Engine 虚拟机上运行;对于 Monitoring 代理,则仅在 Amazon Elastic Compute Cloud (EC2) 虚拟机上运行;这些步骤仅适用于这些平台。
如果您运行的是版本低于 2.0.0 的 Ops Agent 或是在 Windows 上运行的旧版 Monitoring 代理,则无法停用收集功能。如果要在 Windows 上停用对这些指标的收集,我们建议您升级到 Ops Agent 2.0.0 或更高版本。如需了解详情,请参阅安装 Ops Agent。
常规流程如下所示:
连接到虚拟机。
创建现有配置文件的副本作为备份。将备份副本存储在代理的配置目录之外,这样代理便不会尝试同时加载这两个文件。例如,以下命令会为 Linux 上的 Monitoring 代理创建配置文件的副本:
cp /etc/stackdriver/collectd.conf BACKUP_DIR/collectd.conf.bak
使用下述选项之一更改配置:
重启代理以选取新配置:
- Monitoring 代理:
sudo service stackdriver-agent restart
- Ops Agent:
sudo service google-cloud-ops-agent restart
- Monitoring 代理:
验证系统不再收集此虚拟机的流程指标:
选择 Metrics Explorer。
点击 MQL。
对于
gce_instance
资源,输入以下查询,并将 VM_NAME 替换为此虚拟机的名称:fetch gce_instance | metric 'agent.googleapis.com/processes/cpu_time' | filter (metadata.system_labels.name == 'VM_NAME') | align rate(1m) | every 1m
对于
aws_ec2_instance
资源,替换查询中的gce_instance
。点击运行查询。
Linux 或 Windows 上的 Ops Agent
Ops Agent 配置文件的位置取决于操作系统:
- 对于 Linux:
/etc/google-cloud-ops-agent/config.yaml
- 对于 Windows:
C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml
如需停用 Ops Agent 对所有进程指标的收集,请将以下内容添加到 config.yaml
文件中:
metrics: processors: metrics_filter: type: exclude_metrics metrics_pattern: - agent.googleapis.com/processes/*
这会在 metrics_filter
处理器中从应用于 metrics
服务中默认流水线的收集中排除进程指标。
如需详细了解 Ops Agent 的配置选项,请参阅配置 Ops Agent。
Linux 上的 Monitoring 代理
您可以通过以下选项停用旧版 Monitoring 代理对进程指标的收集:
以下部分介绍了每个选项并列出了与该选项相关的优势和风险。
修改代理的配置文件
使用此选项,您直接修改代理的主配置文件 /etc/stackdriver/collectd.conf
,以移除支持收集进程指标的部分。
过程
您需要对 collectd.conf
文件进行三组删除:
删除以下
LoadPlugin
指令和插件配置:LoadPlugin processes <Plugin "processes"> ProcessMatch "all" ".*" Detail "ps_cputime" Detail "ps_disk_octets" Detail "ps_rss" Detail "ps_vm" </Plugin>
删除以下
PostCacheChain
指令和PostCache
链的配置:PostCacheChain "PostCache" <Chain "PostCache"> <Rule "processes"> <Match "regex"> Plugin "^processes$" Type "^(ps_cputime|disk_octets|ps_rss|ps_vm)$" </Match> <Target "jump"> Chain "MaybeThrottleProcesses" </Target> Target "stop" </Rule> <Rule "otherwise"> <Match "throttle_metadata_keys"> OKToThrottle false HighWaterMark 5700000000 # 950M * 6 LowWaterMark 4800000000 # 800M * 6 </Match> <Target "write"> Plugin "write_gcm" </Target> </Rule> </Chain>
删除
PostCache
链使用的MaybeThrottleProcesses
链:<Chain "MaybeThrottleProcesses"> <Rule "default"> <Match "throttle_metadata_keys"> OKToThrottle true TrackedMetadata "processes:pid" TrackedMetadata "processes:command" TrackedMetadata "processes:command_line" TrackedMetadata "processes:owner" </Match> <Target "write"> Plugin "write_gcm" </Target> </Rule> </Chain>
优势和风险
- 优势
- 这样即可减少代理消耗的资源,因为系统永远不会收集指标。
- 如果您对
collectd.conf
文件进行了其他更改,也许可以轻松保留这些更改。
- 风险
- 您必须使用
root
账号来修改此配置文件。 - 文件中存在排版错误。
- 您必须使用
替换代理的配置文件
使用此选项,您可以将代理的主配置文件替换为预修改版本,并为您移除相关部分。
过程
将预修改的文件
collectd-no-process-metrics.conf
从 GitHub 代码库下载到/tmp
目录,然后执行以下操作:cd /tmp && curl -sSO https://raw.githubusercontent.com/Stackdriver/agent-packaging/master/collectd-no-process-metrics.conf
将现有的
collectd.conf
文件替换为预修改的文件:cp /tmp/collectd-no-process-metrics.conf /etc/stackdriver/collectd.conf
优势和风险
- 优势
- 这样即可减少代理消耗的资源,因为系统永远不会收集指标。
- 您无需手动将文件修改为
root
。 - 配置管理工具可以轻松替换文件。
- 风险
- 如果您对
collectd.conf
文件进行了其他更改,则必须将这些更改合并到替换文件中。
- 如果您对
问题排查
本文档中所述的过程是代理配置的更改,因此可能会出现下列问题:
- 权限不足,无法修改配置文件。必须通过
root
账号修改配置文件。 - 直接对配置文件中的排版错误引入直接修改。
如需了解如何解决其他问题,请参阅 Monitoring 代理问题排查。
Windows 上的 Monitoring 代理
您无法停用在 Windows 虚拟机上运行的旧版 Monitoring 代理对进程指标的收集。此代理不可配置。如果要在 Windows 上停用对这些指标的收集,我们建议您升级到 Ops Agent 2.0.0 或更高版本。如需了解详情,请参阅安装 Ops Agent。
如果您正在运行 Ops Agent,请参阅 Linux 或 Windows 上的 Ops Agent。