使用提醒政策监控 SQL 查询结果

本文档介绍如何创建提醒政策来监控结果 。提醒政策会在查询结果发生时通知您 满足您指定的条件。例如,您可以配置提醒政策,以便在特定时间段内至少有 25% 的日志条目的严重性为 ERROR 时收到通知。

您可以通过三种不同的方法来接收通知 内容或模式出现在日志数据中的时间:

  • 如需扫描单个日志条目以查找特定短语,请创建一个 基于日志的提醒政策。当您希望收到与安全相关事件等方面的通知时,请使用这些提醒政策。

  • 如需监控日志条目数据中的事件,您可以创建基于日志的指标,然后创建提醒政策来监控该指标。如果您希望 监控日志条目数据随时间变化的趋势。不过,如果您预计只有少量事件,这些方法的效果就不会那么理想。

  • 对日志条目数据执行汇总分析,然后监控 在 Log Analytics 中编写一个 SQL 查询, 分析日志条目数据。然后, 创建提醒政策来监控查询结果表。 这种类型的提醒政策称为基于 SQL 的提醒政策

    基于 SQL 的提醒政策最适合评估多个日志条目的确切值。如果您想通过评估 无需监控确切的值,即可创建 基于日志的提醒政策,使用 日志记录查询语言

本文档的其余部分介绍了如何使用基于 SQL 的提醒政策。

如需了解 Log Analytics 的一般信息,请参阅 查询和查看日志概览

提醒政策的工作原理

提醒政策描述了您希望在什么情况下 以及您希望以何种方式接收突发事件通知。提醒政策可以监控 SQL 查询的结果。当查询结果满足提醒政策的条件时,Cloud Monitoring 会创建突发事件,然后通过通知渠道发送有关突发事件的通知。

突发事件是指导致条件发生异常的数据记录 以及其他相关信息这些信息可帮助您排查导致突发事件的问题。您可以使用 Google Cloud 控制台查看相应事故。如需了解详情,请参阅基于 SQL 的提醒政策的突发事件

提醒政策组成部分

基于 SQL 的提醒政策包含条件和时间表:

  • condition 包含 query,后者是一种 SQL 查询,用于查询 日志视图条件 还可以定义查询结果 会导致 Monitoring 创建突发事件。

  • 时间安排用于定义提醒政策运行其查询的频率。时间安排还定义了回溯期(一种过滤条件)的大小 以仅选择 自上次评估该查询以来收到的请求数量。例如,如果您 将时间表设置为 60 分钟,然后运行查询 每 60 分钟投放一次广告 分钟的日志条目。

SQL 提醒政策的评估类型

用于监控 SQL 结果的条件支持两种类型的评估:

  • 行数阈值:当 查询结果大于、等于或小于 阈值。

    例如,假设您希望在超过 50 个 回溯期内日志条目的严重级别大于 200。 创建一个查询,用于报告严重级别为 大于 200。然后,您可以配置条件,选择行数阈值,并将阈值设置为 50。

  • 布尔值:当查询结果表中的特定布尔值列包含值为 true 的任何行时,则满足此条件。

    例如,假设您希望在回溯期内超过 25% 的日志条目严重级别为 ERROR 时收到通知。创建一个计算百分比的查询 严重级别为 ERROR 的日志条目的数量。如果该百分比超过 25%,查询结果会将 true 写入 notify 列。接下来,您需要创建一个条件,将类型设置为 Boolean,并将该条件配置为监控 notify 列。

监控 SQL 查询结果的提醒政策只能有一个条件。

提醒政策和 BigQuery

当提醒政策运行 SQL 查询时,该查询会使用定义提醒政策的 Google Cloud 项目中预留的 BigQuery 槽运行。如需了解详情,请参阅使用槽预留

让提醒政策使用预留的 BigQuery 槽来查询 日志视图,则必须将该日志视图配置为包含关联的数据集。借助关联的数据集,您可以对 SQL 查询返回的数据执行 BigQuery 函数。如需了解详情,请参阅 创建关联的 BigQuery 数据集

准备工作

  1. 如需获取使用 Log Analytics 所需的权限, 请让管理员授予您 对您的日志存储分区或日志视图拥有以下 IAM 角色:

    • 如需查询 _Required_Default 日志存储分区,请执行以下操作: 日志查看器 (roles/logging.viewer)。
    • 如需查询项目中的所有日志视图,请使用以下角色: Logs View Accessor (roles/logging.viewAccessor)。
    • 如需查询特定日志视图中的日志,请执行以下操作: 为日志视图创建 IAM 政策,或将 Logs View Accessor (roles/logging.viewAccessor) 角色限制为某一特定日志视图。如需了解详情,请参阅控制对日志视图的访问权限

    如需了解其他角色,请参阅日志记录角色
  2. 对于您要查询的日志视图,请转到日志存储页面。 并验证存储这些日志视图的日志存储分区是否已升级到 使用 Log Analytics。如有必要,请升级日志存储桶。
  3. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

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

  4. 如需在预留的 BigQuery 槽上运行查询,请执行以下操作: 以下:
    1. 如果您计划查询的日志桶没有关联的数据集,请为其创建关联的数据集
    2. 配置预留的 BigQuery 槽 然后将其分配给您的 Google Cloud 项目

  5. 如需获得创建和管理基于 SQL 的提醒政策所需的权限,请让管理员向您授予以下 IAM 角色:

    如需了解如何授予对数据集的访问权限,请参阅授予对数据集的访问权限

  6. 确保监控服务账号存在且具有以下角色:

    1. Monitoring Service Agent (monitoring.notificationServiceAgent) 角色 项目级别
    2. BigQuery Data Viewer (roles/bigquery.dataViewer) 角色 关联数据集上。

    如果监控服务账号不存在,请参阅问题排查:没有监控服务账号

  7. 配置您要用于接收突发事件通知的通知渠道。为实现冗余,我们建议您 创建多种类型的通知渠道。如需了解详情,请参阅 创建和管理通知渠道

创建基于 SQL 的提醒政策

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

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Log Analytics 页面:

    转到 Log Analytics

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

  2. Log Analytics 页面上的查询编辑器中,输入日志视图的 SQL 查询。

    如需详细了解如何为日志视图编写 SQL 查询,请参阅查询日志视图

  3. 在工具栏中,点击 Run on BigQuery(在 BigQuery 上运行)。

    Log Analytics 在 BigQuery 引擎上运行您的查询, 在结果表格中显示结果。

    如果系统未显示在 BigQuery 上运行,请点击 选择查询引擎,然后点击 BigQueryRun query(运行查询)按钮会更改为 Run on BigQuery(在 BigQuery 中运行)。

  4. 日志分析页面的结果表格中,点击  创建提醒

    Log Analytics 页面会显示创建 SQL 提醒政策窗口,其中的 SQL 查询部分会显示您的查询。

  5. 提醒条件部分中, 配置提醒政策的条件和时间安排。

  6. 配置提醒政策的提醒详情。

    1. 可选:添加提醒政策标签文档

    2. 添加通知渠道,然后点击下一步

  7. 查看您的提醒政策,然后点击保存以创建提醒政策。

Cloud Monitoring API

您可以使用 alertPolicies.create 方法以编程方式创建提醒政策。Condition 提醒政策的类型必须为 conditionSql,它是 SqlCondition。 这种条件类型允许 使用 SQL 定义提醒政策。

要定义时间表 为 minuteshoursdays 之一设置 periodicity 值 字段。例如,如果您希望查询每 12 小时运行一次,则将 将 hours 字段的周期设置为 12。

如需定义条件,请使用以下字段:

  • boolean_test:配置提醒政策,以便满足其条件 当查询结果表中布尔列的某个行包含 true 时 值。
  • row_count_test:配置提醒政策,以便在查询结果表中的行数达到特定阈值时满足其条件。

有关字段和定义的完整列表,请参阅 Cloud Monitoring API 文档中的 SqlCondition

如需详细了解用于提醒政策的 Monitoring API,请参阅使用 API 管理提醒政策

限制

当提醒政策运行预定的 SQL 查询时, 提醒政策提供 15 分钟的延迟 留出时间让日志条目传播到日志存储桶。 如果日志条目需要超过 15 分钟才能到达,则提醒政策不会对其进行评估。

引入 15 分钟延迟会影响日志条目生成与监控检测到满足条件之间的时间。例如,假设您有一个预定的 SQL 查询 每 30 分钟运行一次当提醒政策定期评估 条件,它会查询时间戳介于 15 到 45 之间的日志条目 分钟前。

如需了解与提醒政策相关的限制,请参阅Monitoring 限制

价格

如需了解价格,请参阅以下文档:

后续步骤

如需了解如何根据 Log Analytics 数据创建图表,请参阅使用 Log Analytics 绘制查询结果图表