监控虚拟机上的进程数

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

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

准备工作

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

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

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

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

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

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

创建提醒政策

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

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

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  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 监控该过程。