监控虚拟机上的进程数

本文档介绍如何使用 Google Cloud 控制台创建提醒政策,以监控满足您指定的条件的虚拟机 (VM) 上运行的进程数量。此类提醒政策有时称为“process-health”提醒政策。例如,您可以计算根用户启动的进程数量。您还可以统计调用命令包含特定字符串的进程数量。提醒政策可以在进程数量超过或小于阈值时向您发出通知。如需了解哪些进程可以监控,请参阅受监控的进程

此内容不适用于基于日志的提醒政策。如需了解基于日志的提醒政策(该政策在特定消息显示在日志中时通知您),请参阅监控日志

准备工作

  1. 如需获取使用 Google Cloud 控制台创建和修改提醒政策所需的权限,请让管理员授予您项目的 Monitoring Editor (roles/monitoring.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

    如需详细了解 Cloud Monitoring 角色,请参阅使用 Identity and Access Management 控制访问权限

  2. 确保您熟悉提醒政策的一般概念。如需了解这些主题,请参阅提醒概览

  3. 配置您要用于接收任何提醒的通知渠道。为实现冗余,我们还建议您创建多种类型的通知渠道。如需了解这些步骤,请参阅创建和管理通知渠道

  4. 确保您已在要监控的虚拟机上安装 Ops Agent。如需了解详情,请参阅 Google Cloud 可观测性代理

创建提醒政策

如需使用 Cloud Monitoring API 创建提醒政策来监控虚拟机上运行的进程数,过滤条件表达式必须指定时序选择器。如需查看指定此选择器的 JSON 文件示例,请参阅进程运行状况政策

如需创建提醒政策来监控虚拟机上运行的进程数,请执行以下操作:

  1. 在 Google Cloud 控制台的导航面板中,选择 Monitoring,然后选择  提醒

    进入提醒

  2. 选择创建政策
  3. 选择 ?(在选择指标部分的标题中),然后选择提示中的直接过滤模式

  4. 输入 Monitoring 过滤条件。

    例如,如需计算名称包含 nginx 的 Compute Engine 虚拟机实例上运行的进程数,请输入以下命令:

    select_process_count("monitoring.regex.full_match(\".*nginx.*\")")
    resource.type="gce_instance"
    

    如需语法信息,请参阅以下资源:

  5. 完成提醒政策。您必须配置条件触发器、通知、文档和政策名称,然后点击创建政策

    如需了解详情,请参阅创建指标阈值提醒政策

受监控的进程

系统中并非所有进程都可通过进程运行状况条件进行监控。此条件可通过使用调用进程的命令行的正则表达式来选择要监控的进程。命令行字段不可用时,无法监控该进程。

确定进程是否可以通过进程运行状况条件监控的一种方法是查看活跃进程。例如,在 Linux 系统上,您可以使用 ps 命令:

    ps aux | grep nfs
    USER      PID  %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      1598  0.0  0.0      0     0 ?        S<   Oct25   0:00 [nfsd4]
    root      1639  0.0  0.0      0     0 ?        S    Oct25   2:33 [nfsd]
    root      1640  0.0  0.0      0     0 ?        S    Oct25   2:36 [nfsd]

如果 COMMAND 条目用方括号括起来(例如 [nfsd]),则无法获取该进程的命令行信息。在这种情况下,您无法使用 Cloud Monitoring 监控该过程。