创建基于指标的提醒政策

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本文档介绍了如何使用 Google Cloud 控制台创建监控指标的提醒政策。例如,监控虚拟机 (VM) 的 CPU 利用率的提醒政策可能会在政策被触发时通知待命团队。或者,监控正常运行时间检查的政策可能会通知随时待命和开发团队。

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

本文档不会介绍以下内容:

准备工作

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

    如需详细了解 Cloud Monitoring 角色,请参阅访问权限控制

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

  3. 配置您要用于接收任何提醒的通知渠道。如需了解这些步骤,请参阅管理通知渠道

    出于冗余的目的,我们建议您创建多种类型的通知渠道。如需了解详情,请参阅管理通知渠道

创建提醒政策

本部分介绍如何创建提醒政策。默认情况下,当您通过 Google Cloud 控制台开始创建提醒流程时,系统会显示一个菜单驱动的界面。您可以使用这些菜单选择要监控的指标类型并配置政策。如果指标类型有对应的数据,指标选择菜单将列出 Google Cloud 服务生成的所有指标类型和您定义的自定义指标类型。

条件有三种类型。系统会根据超出阈值的指标值、缺少指标数据或指标超过阈值的预测值来触发这些条件。如需了解如何配置这些条件,请参阅本文档的以下部分:

如需为除了 Google Cloud 服务生成的指标类型或您定义的自定义指标类型之外的其他条件创建提醒,请使用专门的创建提醒流程。例如,Google Cloud 控制台中的服务页面包含特定于监控服务等级目标 (SLO) 的引导式创建提醒流程。如需了解您可能感兴趣的特殊提醒政策类型,请参阅以下内容:

关于指标值的提醒

本部分介绍如何创建监控内置指标类型或您创建的自定义指标类型的提醒政策,并将该指标的值与静态阈值进行比较。如需创建将时序值与动态阈值进行比较的政策,您必须使用 MQL。如需了解详情,请参阅使用 MQL 创建动态严重级别

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

如需创建提醒政策,以将该指标的值与静态阈值进行比较,请执行以下操作:

  1. 在 Google Cloud 控制台中,选择 Monitoring 或点击以下按钮:
    转到 Monitoring

  2. 在导航窗格中,选择 提醒,然后点击创建政策

  3. 选择要监控的时序

    1. 点击选择指标,然后在过滤条件栏中输入相关指标类型或资源类型的名称。例如,如果您在过滤条件栏中输入“虚拟机实例”,系统就只会列出虚拟机实例的指标类型。如果输入“CPU”,则菜单仅会显示名称中包含“CPU”的指标类型。

    2. 浏览菜单以选择指标,然后点击应用

      如果您要监控的指标类型未列出,请在选择指标菜单中停用仅显示有效资源和指标。如需了解详情,请参阅问题排查:菜单中未列出指标

    3. 可选:如需监控您在上一步中选择的指标和资源类型的时序子集,请点击添加过滤条件。在过滤条件对话框中,依次选择作为过滤依据的标签、比较运算符以及过滤条件值。例如,过滤条件 zone =~ ^us.*.a$ 使用正则表达式匹配区域名称以 us 开头并以 a 结尾的所有时序数据。如需了解详情,请参阅过滤所选数据

    4. 可选:要更改时序中各个点的对齐方式,请在转换数据部分中设置滚动窗口滚动窗口函数

      这些字段用于指定窗口中记录的点的组合方式。例如,假设窗口为 15 分钟,窗口函数为 max。对齐点是最近 15 分钟内记录的所有样本的最大值。如需了解详情,请参阅对齐时序

    5. 可选:当需要减少政策监控的时序数量或者希望仅监控时序的集合时,可以合并时序。例如,您可能希望监控按可用区平均的虚拟机实例的 CPU 利用率。默认情况下,时序不合并。

      如需组合所有时序,请执行以下操作:

      1. 点击跨时序标题中的 展开
      2. 时间序列聚合字段设置为 none 以外的值。例如,当您选择 mean 时,显示的时序中的每个点是各个时序的平均值。
      3. 确保时间序列分组依据字段为空。

      如需按标签值合并或对时序进行分组,请执行以下操作:

      1. 点击跨时序标题中的 展开
      2. 时序聚合字段设置为 none 以外的值。
      3. 时间序列分组依据字段中,选择要分组的一个或多个标签。

      例如,如果您按 zone 分组,然后将汇总字段设置为 mean,则该图表会针对每个可用区显示一个时序。特定可用区显示的时序是该可用区的所有时序的平均值。

      默认情况下,次要数据转换字段处于停用状态。启用后,这些操作将在主要数据转换后应用。

      如需了解详情,请参阅组合时序

    6. 点击下一步

  4. 配置条件触发器

    1. 条件类型字段保留为默认值阈值

    2. 提醒触发器菜单选择一个值。借助此菜单,您可以指定必须在触发条件之前违反阈值的时序子集。

    3. 使用阈值位置阈值字段,在指标值违反阈值时输入数值。例如,如果您将这些值设置为阈值0.3,则任何高于 0.3 的测量值都会违反阈值。

    4. 可选:如需选择测量结果在超出阈值多久后必须触发提醒,请展开 Advanced options,然后使用 Retest window 菜单。

      默认值为 No retest。使用此设置时,一次测量可以引发通知。如需了解详情并查看示例,请参阅校准时间段和时长

    5. 可选:如需指定 Monitoring 在数据停止到达时如何评估条件,请展开 Advanced options,然后使用 Evaluation missing data 菜单。

      重新测试窗口的值为不重新测试时,评估缺失数据菜单会处于停用状态。

      Google Cloud 控制台
      “缺少数据的评估”字段
      总结 详情
      缺少数据 未结突发事件保持打开状态。
      系统不会打开新的突发事件。

      对于满足的条件,当数据停止到达时,该条件将继续得到满足。如果突发事件因该条件而未结,则突发事件会保持未解决状态。当突发事件处于未结状态,且数据未到达时,自动关闭计时器会延迟至少 15 分钟。如果计时器到期,则突发事件会被关闭。

      如果不满足条件,当数据停止到达时,系统将不再满足条件。

      缺少被视为违反政策状况的数据点 未结突发事件保持打开状态。
      您可以创建新突发事件。

      对于满足的条件,当数据停止到达时,该条件将继续得到满足。如果突发事件因该条件而未结,则突发事件会保持未解决状态。如果突发事件未解决,持续 24 小时内没有任何数据到达,突发事件将被关闭。

      如果不满足条件,此设置会使指标阈值条件的行为类似于 metric-absence condition。 如果数据未在重新测试期指定的时间内到达,则评估该条件是否满足条件。对于具有一个条件的提醒政策,满足该条件会导致打开突发事件。

      缺失数据点被视为不违反政策条件的值 未结突发事件已关闭。
      系统不会打开新的突发事件。

      对于满足的条件,当数据停止到达时,条件不再满足。如果某个突发事件因该条件而未结,则该事件会被关闭。

      如果不满足条件,当数据停止到达时,系统将不再满足条件。

    6. 点击下一步

  5. 可选:创建包含多个条件的提醒政策。

    大多数政策会监控一种指标类型,例如,某项政策可能会监控写入虚拟机实例的字节数。如果要监控多个指标类型,请创建多个条件政策。每个条件会监控一种指标类型。创建条件后,请指定条件的组合方式。如需了解相关信息,请参阅具有多个条件的政策

    如需创建具有多个条件的提醒政策,请执行以下操作:

    1. 对于其他每个条件,请点击添加提醒条件,然后配置该条件。
    2. 点击下一步,然后配置条件的组合方式。
    3. 点击下一步,继续查看通知和文档设置。
  6. 配置通知和文档

    1. 展开通知渠道菜单并选择通知渠道。为了实现冗余,我们建议您向提醒政策中添加多种类型的通知渠道。如需了解详情,请参阅管理通知渠道

    2. 可选:要在突发事件关闭时收到通知,请选择突发事件关闭时通知。默认情况下,当您通过 Google Cloud 控制台创建提醒政策时,系统只会在创建突发事件时发送通知。

    3. 可选:如需更改 Monitoring 在数据停止到达后关闭突发事件前的等待时间,请从事件自动关闭时长菜单中选择一项。 默认情况下,当数据停止到达时,Monitoring 会等待七天才能关闭未结突发事件。

    4. 可选:如需向提醒政策添加自定义标签,请在政策用户标签 (Policy user labels) 部分中执行以下操作:

      1. 点击添加标签,然后在字段中输入标签的名称。标签名称必须以小写字母开头,可以包含小写字母、数字、下划线和短划线。例如,输入 severity
      2. 点击,然后为您的标签输入一个值。标签值可以包含小写字母、数字、下划线和短划线。例如,输入 critical

      如需了解如何使用政策标签来帮助管理提醒,请参阅为提醒政策添加严重级别

    5. 可选:如需在通知中包含自定义文档,请在文档部分中输入相应内容。如需设置文档格式,您可以使用 Markdown。如需从政策本身提取信息来定制文档内容,您可以使用变量。 例如,文档可能包含如 Addressing High CPU Usage 之类的标题和标识项目的详细信息:

      ## Addressing High CPU Usage
      
      This note contains information about high CPU Usage.
      
      You can include variables in the documentation. For example:
      
      This alert originated from the project ${project}, using
      the variable $${project}.
      

      创建通知后,Monitoring 会将变量替换为其值。这些值仅替换通知中的变量。预览窗格和 Google Cloud 控制台中的其他位置仅显示 Markdown 格式:

      使用 markdown 撰写文档备注的示例。

      如需了解详情,请参阅在文档模板中使用 Markdown 和变量以及使用渠道控件

    6. 点击提醒名称,然后输入提醒政策的名称。

  7. 点击创建政策

指标缺失提醒

如需在停止接收指定时长内的指标数据时接收通知,请创建具有指标缺失条件的提醒政策。指标缺失条件要求在安装或修改政策后的最长时长内,至少成功测量一次(检索数据)。如果使用 Google Cloud 控制台,最长可配置时长为 24 小时;如果使用 Cloud Monitoring API,则最长可配置 24.5 小时。

如需创建具有指标缺失条件的提醒政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,选择 Monitoring 或点击以下按钮:
    转到 Monitoring
  2. 在导航窗格中,选择 提醒,然后点击创建政策
  3. 选择要监控的指标、添加过滤条件,并指定数据的转换方式。对于所有类型的条件,这些步骤都是相同的。如需详细了解这些步骤,请参阅关于指标值的提醒:选择时序
  4. 配置条件触发器:

    1. 选择指标缺失作为条件类型。
    2. 提醒触发器菜单选择一个值。借助此菜单,您可以指定在触发条件之前不得具有数据的时序子集。
    3. 使用触发缺失时间字段指定在提醒发出通知之前必须缺失的指标数据的时长。

    Monitoring 会始终评估指标缺失条件,并将滚动时间范围设置为 24 小时。控制台会显示一条消息,指明您输入的值已被替换。

  5. 为您的提醒政策配置通知渠道、文档和名称。如需了解详情,请参阅关于指标值的提醒:通知和文档

  6. 查看您的提醒政策,然后点击 Create policy

针对指标的预测值发出提醒

如需在提醒政策预测预测窗口内将超出阈值时接收通知,请创建预测条件。预测条件旨在监控限制条件指标。限制条件指标包括记录配额、内存和存储空间用量的指标。

如需创建基于预测创建提醒的提醒政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,选择 Monitoring 或点击以下按钮:
    转到 Monitoring
  2. 在导航窗格中,选择 提醒,然后点击创建政策
  3. 选择要监控的指标、添加过滤条件,并指定数据的转换方式。对于所有类型的条件,这些步骤都是相同的。如需详细了解这些步骤,请参阅关于指标值的提醒:选择时序

    选择值类型为 double 或 int64 的约束条件指标,并且不要为 Amazon 虚拟机实例选择指标。如果监控超过 64 个时序,则 Monitoring 会针对值最接近阈值或已经超出阈值的 64 个时序进行预测。对于其他时序,其值将与阈值进行比较。

  4. 配置条件触发器:

    1. 选择预测作为条件类型。

    2. 提醒触发器菜单选择一个值。借助此菜单,您可以指定必须在触发条件之前违反阈值的时序子集。

    3. 预测窗口选择一个值。您选择的值是预测的未来时间。您必须将此值设为至少 1 小时(3600 秒)和最多 7 天(604800 秒)。

    4. 使用阈值位置阈值字段,输入所选指标的预测值违反阈值时的情况。例如,如果您将这些值设置为阈值10,则任何高于 10 的预测值都会违反阈值。

    5. 可选:展开高级选项,并设置重新测试窗口的值。此字段的默认值为 No retest。 我们建议您将此字段至少设置为 10 分钟。

      例如,假设您将预测条件配置为任何时序都可能导致条件被触发。另外,假设重新测试期设置为 15 分钟,预测期设置为 1 小时,并且当时序的值高于阈值(设置为 10)时,会发生违规行为。如果出现以下任一情况,则会触发条件:

      • 时序的所有值都会大于 10,并且至少保留 15 分钟。
      • 以 15 分钟为间隔,每个时序的每次预测都预测到,其值在接下来的一小时内将高于阈值 10。
    6. 可选:如需指定 Monitoring 在数据停止到达时如何评估条件,请展开 Advanced options,然后使用 Evaluation missing data 菜单。

      重新测试窗口的值为不重新测试时,评估缺失数据菜单会处于停用状态。

      如果数据缺失超过 10 分钟,预测条件会停止进行预测,而是使用评估缺失数据字段的值来确定如何管理突发事件。当观察重启时,预测会重新开始。

      Google Cloud 控制台
      “缺少数据的评估”字段
      总结 详情
      缺少数据 未结突发事件保持打开状态。
      系统不会打开新的突发事件。

      对于满足的条件,当数据停止到达时,该条件将继续得到满足。如果突发事件因该条件而未结,则突发事件会保持未解决状态。当突发事件处于未结状态,且数据未到达时,自动关闭计时器会延迟至少 15 分钟。如果计时器到期,则突发事件会被关闭。

      如果不满足条件,当数据停止到达时,系统将不再满足条件。

      缺少被视为违反政策状况的数据点 未结突发事件保持打开状态。
      您可以创建新突发事件。

      对于满足的条件,当数据停止到达时,该条件将继续得到满足。如果突发事件因该条件而未结,则突发事件会保持未解决状态。如果突发事件未解决,持续 24 小时内没有任何数据到达,突发事件将被关闭。

      如果不满足条件,此设置会使指标阈值条件的行为类似于 metric-absence condition。 如果数据未在重新测试期指定的时间内到达,则评估该条件是否满足条件。对于具有一个条件的提醒政策,满足该条件会导致打开突发事件。

      缺失数据点被视为不违反政策条件的值 未结突发事件已关闭。
      系统不会打开新的突发事件。

      对于满足的条件,当数据停止到达时,条件不再满足。如果某个突发事件因该条件而未结,则该事件会被关闭。

      如果不满足条件,当数据停止到达时,系统将不再满足条件。

    7. 点击下一步

  5. 为您的提醒政策配置通知渠道、文档和名称。如需了解详情,请参阅关于指标值的提醒:通知和文档

  6. 查看您的提醒政策,然后点击 Create policy

指标变化提醒

如需在指标的更改率超过阈值时收到通知,请创建变化率提醒政策。例如,如需在 CPU 利用率过高时收到通知,请创建此类政策。

如需创建此类政策,请按照有关指标值的提醒中所述的步骤操作。不过,请务必将滚动窗口函数字段设置为 percent change

当您选择百分比变化函数时,Monitoring 会执行以下操作:

  1. 如果时序具有 DELTACUMULATIVE 指标种类,则该时序将转换为具有 GAUGE 指标种类的时序。如需了解转换,请参阅种类、类型和转换
  2. 计算方法是将最近 10 分钟的窗口期值与重新测试期前 10 分钟窗口期的平均值进行比较。

    10 分钟的回溯期是一个固定值;您无法更改此设置。 不过,您可以在创建条件时指定重新测试窗口。

关于虚拟机上运行的进程数量的提醒

如需监控在满足指定条件的虚拟机上运行的进程数量,请创建进程运行状况提醒政策。例如,您可以统计根用户启动的进程数。 您还可以统计调用命令包含特定字符串的进程数量。当进程数超过或小于阈值时,提醒政策可以通知您。如需了解可监控的进程,请参阅受监控的进程

当 Ops Agent 或 Monitoring 代理在受监控的资源上运行时,可以使用进程运行状况指标。如需详细了解这些代理,请参阅 Google Cloud 操作套件代理

如需监控虚拟机上运行的进程数,请执行以下操作:

  1. 在 Google Cloud 控制台中,选择 Monitoring 或点击以下按钮:
    转到 Monitoring

  2. 在导航窗格中,选择 提醒,然后点击创建政策

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

  4. 输入 Monitoring 过滤条件。

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

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

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

  5. 完成提醒政策对话框。这些步骤仅在本部分中概述。如需了解完整详情,请参阅关于指标值的提醒

    1. 可选:查看并更新数据转换设置。
    2. 点击下一步并配置条件触发器。
    3. 点击下一步,完成通知和文档步骤。
    4. 点击提醒名称,然后输入提醒政策的名称。
    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]

在使用方括号(例如 [nfsd])封装 COMMAND 条目时,无法获得进程的命令行信息。在这种情况下,您无法使用 Cloud Monitoring 监控进程。

违反 SLO 时发出提醒

如需在系统面临违反定义的服务等级目标 (SLO) 的风险时收到通知,请创建提醒政策。例如,某些系统的 SLO 可能是在某个日历周的可用性为 99%。不同的 SLO 可能会指定,在滚动的 30 天内,只有 5% 的请求的延迟时间可能会超过 300 毫秒。

如需了解如何为 SLO 创建提醒,请参阅以下文档:

为了在使用 Cloud Monitoring API 时创建 SLO 提醒政策,您向 API 提供的数据包含时序选择器。如需了解这些选择器,请参阅检索 SLO 数据

您可以使用 Google Cloud 控制台中的提醒界面创建 SLO 提醒政策。为此,请按照创建进程运行状况提醒政策中所述的步骤操作。但是,当您进入进入 Monitoring 过滤条件的步骤时,请输入时间序列选择器,而不是进程运行状况表达式。

拨测失败时发出提醒

我们建议您创建提醒政策,以便在拨测失败时通知您。正常运行时间检查基础架构包含引导式提醒创建流程。如需详细了解这些步骤,请参阅拨测提醒

将条件限制为资源组

如果您要监控资源集合(其中的资源由某些条件定义),则可以创建资源组并监控资源组。例如,您可以为用于生产环境的 Compute Engine 虚拟机实例定义资源组。创建该实例组后,您可以创建一个仅监控该实例组的提醒政策。当您添加与组条件匹配的虚拟机时,提醒政策会自动监控该虚拟机。

您可以使用 Google Cloud 控制台创建资源组提醒政策。为此,请按照创建进程运行状况提醒政策中所述的步骤操作。但是,在选择指标后,请添加过滤条件,将时序限制为符合组条件的过滤条件。

如需创建监控资源组的提醒政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,选择 Monitoring 或点击以下按钮:
    转到 Monitoring

  2. 在导航窗格中,选择 提醒,然后点击创建政策

  3. 选择要监控的时序:

    1. 点击选择指标,然后在过滤条件栏中输入相关指标类型或资源类型的名称。例如,如果您在过滤条件栏中输入“虚拟机实例”,系统就只会列出虚拟机实例的指标类型。如果输入“CPU”,则菜单仅会显示名称中包含“CPU”的指标类型。

    2. 浏览菜单以选择指标,然后点击应用

      如果您要监控的指标类型未列出,请在选择指标菜单中停用仅显示有效资源和指标。如需了解详情,请参阅问题排查:菜单中未列出指标

    3. 点击添加过滤条件,然后选择群组

    4. 展开 ,然后选择群组名称。

    5. 点击完成

  4. 按照有关指标值的提醒:配置触发器中的说明配置提醒政策。

问题排查:指标未在菜单中列出

默认情况下,选择指标菜单会列出包含其数据的每个指标类型。例如,如果您不使用 Pub/Sub,这些菜单将未列出任何 Pub/Sub 指标。

即使您希望提醒监控的数据尚不存在,您也可以配置提醒:

  • 如需创建监控 Google Cloud 指标的提醒,请按照有关指标值的提醒中所述的步骤操作。但是,在选择指标的步骤中,请在选择指标菜单中停用仅显示活跃的资源和指标。停用后,菜单会列出 Google Cloud 服务的所有指标以及所有包含数据的指标。

  • 如需在自定义指标类型生成数据之前为自定义指标类型配置提醒,请按照创建进程运行状况提醒政策中所述的步骤操作。进入输入 Monitoring 过滤条件的步骤时,输入指定指标类型和资源的过滤条件。以下是指定指标类型的 Monitoring 过滤条件的示例:

    metric.type="compute.googleapis.com/instance/disk/write_bytes_count"
    resource.type="gce_instance"