从里程碑 77 开始,Container-Optimized OS 包含 节点问题检测器 。您可以使用此功能来监控 COS 实例的系统运行状况。节点问题检测器监控实例健康状况并报告与健康状况相关的 上传到 Cloud Monitoring 的容量和错误指标, 您可以使用 Google Cloud Observability 信息中心直观呈现数据。 从默认配置收集的指标是免费的。Google 将使用汇总指标来了解节点问题并提高 Container-Optimized OS 的可靠性。
代理已预先配置了一组要导出的指标。目前不支持为内置代理自定义报告指标。Node Problem Detector 是一种开源软件。您可以查看 源代码 和配置 分别存储在各自的源代码库中
启用运行状况监控
默认情况下,在启动时 Node Problem Detector 代理处于停用状态。您可以启用 此功能:
使用启动脚本
您可以使用启动脚本来启用节点问题检测器。
使用 cloud-init
cloud-init
示例介绍了配置 Container-Optimized OS 实例的基础知识。您可以使用 cloud-init
通过以下 cloud-config
示例启用运行状况监控功能:
#cloud-config
runcmd:
- systemctl start node-problem-detector
使用元数据
在 Container-Optimized OS 里程碑 88 及更高版本中,您还可以在自定义元数据部分中将 google-monitoring-enabled
的值设置为 true
,从而启用节点问题检测器。
如需在创建实例时启用监控功能,请运行以下命令:
gcloud compute instances create VM_NAME \ --image=IMAGE \ --image-project=cos-cloud \ --metadata=google-monitoring-enabled=true
替换以下内容:
VM_NAME
: 新虚拟机的名称IMAGE
: 特定版本的公开 Container-Optimized OS 映像。例如--image=cos-113-18244-85-29
。
如需在现有实例中启用监控功能,请运行以下命令:
gcloud compute instances add-metadata VM_NAME \ --metadata=google-monitoring-enabled=true
将 VM_NAME
替换为虚拟机名称。
从里程碑 97 开始,您可以在项目元数据中启用监控:
gcloud compute project-info add-metadata \
--metadata google-monitoring-enabled=true
执行后,node-problem-detector 服务将启用。
使用用户定义的访客政策
Container-Optimized OS 包含 OS Config 代理,该代理可使用操作系统实用程序来维护虚拟机的状态 。如需详细了解客机政策,请参阅启用 OS Config 代理和创建客机政策。以下访客政策会在所有实例上启用 Node Problem Detector 代理。
recipes:
- name: recipe-enable-npd
desiredState: INSTALLED
installSteps:
- scriptRun:
interpreter: SHELL
script: |-
#!/bin/bash
systemctl start node-problem-detector
查看收集的指标
Node Problem Detector 会报告针对 Compute Engine 实例受监控的资源的指标列表。这些指标记录在 Monitoring 指标列表中,其前缀为 compute.googleapis.com/guest/
。您可以使用 Monitoring Metrics Explorer 查看收集的指标:
在 Google Cloud 控制台中,前往 Monitoring 或使用以下按钮:
在 Monitoring 导航窗格中,点击 Metrics Explorer。
对于资源类型,选择 Compute Engine 虚拟机实例。
选择一个指标,例如“Problem Count”。
您应该在右侧看到图表和统计信息。如需查看特定 Container-Optimized OS 实例的结果,请将过滤条件设置为
"instance_id=[INSTANCE_ID]"
,并将 [INSTANCE_ID] 替换为所需实例的 ID。
停用运行状况监控
如需停用已通过 cloud-config
或启动脚本启用的服务,请移除 systemctl start node-problem-detector
步骤,然后重新启动 Container-Optimized OS 实例。如果服务是通过使用元数据启用的,请确保将 google-monitoring-enabled
键设置为 false
。