监控日志

本文档介绍如何使用 Cloud Monitoring 观察日志数据中的趋势,并在出现您指定的条件时通知您。为了向 Cloud Monitoring 提供日志中的数据,Logging 支持以下功能:

  • 您可以根据日志条目生成自定义指标。这些指标称为基于日志的指标。您还可以创建基于指标的提醒政策,以便在基于日志的指标满足某个条件时通知您。如需了解详情,请参阅使用基于日志的指标直观呈现日志条目数据

  • 您可以使用提醒政策来近乎实时地监控日志条目中何时出现消息。这些提醒政策称为基于日志的提醒政策。如需了解详情,请参阅监控单个日志条目的消息

  • 您可以在 Log Analytics 中编写 SQL 查询,并创建用于监控查询结果的提醒政策。这些提醒政策称为基于 SQL 的提醒政策。如需了解详情,请参阅监控 SQL 查询结果

    基于 SQL 的提醒政策目前为公开预览版。

本文档的其余部分介绍了这三种提醒政策之间的区别,并提供了授权、费用和限制的相关信息。

使用基于日志的指标直观呈现日志条目数据

如果要在一段时间内监控日志数据中的周期性事件,请使用基于日志的指标。基于日志的指标通过日志数据生成数值数据,如果您要执行以下任一操作,则可使用基于日志的指标:

  • 计算日志数据中消息(例如警告或错误)的出现次数,并在出现次数超过阈值时接收通知。
  • 观察数据中的趋势(例如日志数据中的延迟时间值),并在这些值以不可接受的方式更改时接收通知。
  • 创建图表以显示提取的数值数据。

由于基于日志的指标通过日志数据生成数值数据,因此您可以在提醒政策中使用这些指标,并在图表中显示这些指标。如需了解如何为基于日志的指标创建提醒政策和图表,请参阅为基于日志的指标配置通知

Cloud Monitoring 提供一组预定义的基于日志的指标,您可以定义自己的指标。如需查看系统定义的基于日志的指标的列表,请点击以下 按钮:

用户定义的基于日志的指标

您可以创建基于日志的指标,以从日志数据中提取数值数据。用户定义的基于日志的指标可通过包含的日志条目和排除的日志条目计算值。

默认情况下,用户定义的基于日志的指标会从 Google Cloud 项目中的日志路由器收到的所有日志条目中收集数据,但您可以定义基于日志的指标,以便从路由到特定日志存储桶的日志条目中收集数据。

如果您定义自己的基于日志的指标,可能会产生费用。如需详细了解与指标注入相关的费用,请参阅待付款指标

监控单个日志条目中的消息

如果您希望在日志条目中出现特定消息时收到通知,请使用基于日志的提醒政策。基于日志的提醒政策有助于捕获日志条目中的安全相关事件,例如:

  • 如果您希望事件出现在审核日志中时收到通知;例如,自然人用户访问服务账号的安全密钥。
  • 您的应用将部署消息写入日志,并且您希望在记录部署更改时收到通知。

基于日志的提醒政策非常适合您认为极少见和重要的事件。您不想要了解趋势或模式,而是想知道发生了什么情况。

基于日志的提醒政策是在项目中定义的,当满足以下条件时,它们会扫描日志条目:

  • 结算功能已启用。
  • 日志条目源自某个项目。
  • 日志条目源自的项目或日志条目路由到的项目中的接收器会将日志条目路由到日志存储桶。

    例如,假设某个日志条目源自项目 A。如果项目 A 中的日志接收器将日志条目路由到日志存储桶,则在项目 A 中定义的基于日志的提醒政策会扫描该日志条目。

    再举一个例子,假设某个日志条目源自项目 X,并且项目 X 中的某个日志接收器将该日志条目路由到项目 Y。那么,如果项目 Y 中的接收器将日志条目路由到日志存储桶,则在项目 X 和项目 Y 中定义的基于日志的提醒政策会扫描该日志条目。

您无法使用基于日志的提醒政策来监控源自文件夹、结算账号或组织的日志条目,也无法监控未存储在日志存储桶中的日志条目。如果您创建了汇总接收器,则这些接收器可能会拦截日志条目,并阻止日志条目被其源自的项目中的接收器路由。

如需了解如何创建基于日志的提醒政策,请参阅配置基于日志的提醒政策

监控 SQL 查询结果

您可以配置使用 Log Analytics 对日志条目数据运行 SQL 查询的提醒政策。如果您想根据无法通过基于日志的提醒政策评估的模式(例如日志条目中的复杂模式或日志数据的汇总)收到通知,那么这些类型的提醒政策非常有效。如需了解详情,请参阅使用提醒政策监控 SQL 查询结果

提醒选项比较

本部分对根据基于日志的指标构建的提醒政策、基于日志的提醒政策和基于 SQL 的提醒政策进行比较。

摘要表

下表总结了提醒方法,并提供了其他信息的链接:

基于指标的提醒政策 基于日志的提醒政策 基于 SQL 的提醒政策 更多信息
基于源自日志条目的指标 基于单个日志条目中的字符串 基于通过对日志条目运行 SQL 查询而返回的表 基于日志的指标
基于日志的提醒
基于 SQL 的提醒
用于通知您一段时间内的趋势 用于在日志中显示特定消息时通知您 用于在日志条目窗口中出现某种模式时通知您 基于日志的指标
基于日志的提醒
基于 SQL 的提醒
计算依据:
  • 包含的日志条目(系统定义的基于日志的指标)
  • 包含和排除的日志条目(用户定义的基于日志的指标)
仅匹配包含的日志条目 根据滑动窗口中的日志条目计算得出 可用的日志条目
基于 SQL 的提醒
处理范围限定项目的指标范围内的所有项目的指标 对满足以下条件的日志条目执行操作:
  • 日志条目源自定义了政策的项目。
  • 日志条目源自的项目或日志条目被路由到的项目中的接收器会将日志条目路由到日志存储桶。
对可通过关联的数据集访问的日志视图执行操作。关联的数据集可以位于任何项目中。 指标范围
关联的数据集
当指标的值在指定时间段内满足条件时,系统会创建突发事件 每当特定日志条目与过滤条件匹配时,系统都会创建突发事件 当查询结果表满足条件时,系统会创建突发事件 突发事件和通知
在 Monitoring 中创建和管理 在 Logging 中创建;
在 Monitoring 中管理
在 Log Analytics 中创建;在 Monitoring 中管理 创建和管理提醒政策
基于 SQL 的提醒
在 Monitoring 中查看 在 Monitoring 中查看 在 Monitoring 中查看 查看提醒政策
可以使用 Monitoring 支持的任何通知渠道 可以使用 Monitoring 支持的任何通知渠道 可以使用 Monitoring 支持的任何通知渠道 通知渠道

可用的日志条目

用户定义的基于日志的指标是根据 Logging API 接收到的有关 Google Cloud 项目的所有日志条目计算得出的,不考虑可能应用于该 Google Cloud 项目的任何包含项过滤条件排除项过滤条件。如果您根据用户定义的基于日志的指标创建提醒政策,则该政策会监控所有日志条目中的数据。

系统定义的基于日志的指标仅根据已存储在Google Cloud 项目的日志存储桶中的日志条目进行计算。如果某日志已明确排除在外,则不包含在这些指标中。如果您根据系统定义的基于日志的指标创建提醒政策,则该政策仅监控包含的日志条目中的数据。

基于日志的提醒政策是在项目中定义的,当满足以下条件时,它们会扫描日志条目:

  • 结算功能已启用。
  • 日志条目源自某个项目。
  • 日志条目源自的项目或日志条目路由到的项目中的接收器会将日志条目路由到日志存储桶。

    例如,假设某个日志条目源自项目 A。如果项目 A 中的日志接收器将日志条目路由到日志存储桶,则在项目 A 中定义的基于日志的提醒政策会扫描该日志条目。

    再举一个例子,假设某个日志条目源自项目 X,并且项目 X 中的某个日志接收器将该日志条目路由到项目 Y。那么,如果项目 Y 中的接收器将日志条目路由到日志存储桶,则在项目 X 和项目 Y 中定义的基于日志的提醒政策会扫描该日志条目。

您无法使用基于日志的提醒政策来监控源自文件夹、结算账号或组织的日志条目,也无法监控未存储在日志存储桶中的日志条目。如果您创建了汇总接收器,则这些接收器可能会拦截日志条目,并阻止日志条目被其源自的项目中的接收器路由。

基于 SQL 的提醒政策会查询日志存储桶中的日志视图。这些日志存储桶必须升级为使用 Log Analytics,然后关联到 BigQuery 数据集。如需详细了解基于 SQL 的提醒政策,请参阅使用提醒政策监控 SQL 查询结果

监控多个项目的指标

您可以通过配置指标范围来监控多个项目的指标。指标范围列出了其监控的所有项目和账号。范围限定的项目托管指标范围。范围界定项目会存储您为指标范围创建的提醒政策和其他配置。指标范围的范围界定项目是由 Google Cloud 控制台项目选择器选择的项目。

基于基于日志的指标的提醒政策(如基于其他指标的提醒政策)适用于范围划定项目的指标范围内的所有项目。

指标范围与基于日志条目的提醒政策(例如基于日志的政策和基于 SQL 的政策)无关。

如需详细了解指标范围(包括多项目指标范围)以及范围限定的项目,请参阅以下内容:

突发事件和通知

当满足提醒政策的条件时,Monitoring 会开启突发事件,并向相应提醒政策的通知渠道发送通知。如需查看突发事件的详细信息,请点击通知消息中的查看突发事件,或直接前往 Monitoring 中的突发事件页面。

基于指标的提醒政策的突发事件

提醒行为中所述,与 Monitoring 中所有其他基于指标的提醒政策一样,通过基于日志的指标触发的提醒政策也会生成突发事件和通知。如需详细了解如何管理基于指标的提醒政策的突发事件,请参阅基于指标的提醒政策的突发事件

基于日志的提醒政策的突发事件

基于日志的提醒政策不是基于指标的提醒政策。当有日志条目满足基于日志的提醒政策的条件时,Monitoring 会按如下方式创建突发事件和通知:

  • Cloud Logging 首次将与提醒政策的查询匹配的日志条目写入日志存储桶时,系统会创建一个突发事件并发送通知。如果随后又写入另一个匹配的日志条目,则仅当上一个突发事件已关闭时,才会创建新突发事件。但是,已关闭的突发事件最多可能需要三分钟才能被完全清除。如果在关闭突发事件后的三分钟内又收到匹配的日志条目,系统可能会重新打开该突发事件,而不是创建新突发事件。

  • 创建基于日志的提醒政策时,您可以指定通知之间的最短时间间隔。例如,您选择 10 分钟作为通知间隔时间。如果基于日志的提醒政策的条件在该时间段内满足两次,则您只会收到一条通知。

    基于日志的提醒政策的突发事件发生频率上限为每 5 分钟 1 起。 如果基于日志的提醒政策的查询提取标签值,则提取的每个值组合都代表自己的事件时间轴。例如,假设基于日志的提醒政策会提取标签的值,并且该标签可以有两个值。在此配置下,在同一 5 分钟时间窗口内可打开两个突发事件,每个标签值各一个。

  • 每个基于日志的提醒政策每天最多只能开启 20 个突发事件。如果您达到此限制,则通知中将包含一条消息,提示您已达到此上限。

  • 当自动关闭时长到期后,突发事件会自动关闭。默认情况下,自动关闭时长为 7 天。

    自动关闭时长指定在突发事件关闭之前,必须经过的时间(在此期间,突发事件的原因不会重复发生)。因此,当突发事件处于未结状态且导致该突发事件的原因再次发生时,该突发事件未结状态的持续时间可能会超过自动关闭时长。

如需详细了解如何管理基于日志的提醒政策的突发事件,请参阅管理基于日志的提醒政策的突发事件

基于 SQL 的提醒政策的突发事件

对于基于 SQL 的提醒政策,当 SQL 查询结果首次满足政策中指定的条件时,Cloud Monitoring 会创建突发事件。每项提醒政策只能有一个未结突发事件。在一个突发事件处于未结状态期间,如果再次满足条件,Monitoring 不会创建更多突发事件,也不会发送更多通知。Monitoring 会在 7 天后关闭基于 SQL 的突发事件,除非您配置了更短的突发事件关闭时长或自行关闭突发事件。

如需详细了解如何管理基于 SQL 的提醒政策的突发事件,请参阅管理基于 SQL 的提醒政策的突发事件

创建和管理提醒政策

您可以根据 Cloud Monitoring 中基于日志的指标创建、修改和删除提醒政策,像任何其他基于指标的提醒政策一样。如需了解详情,请参阅管理政策

您可以使用Logs Explorer或 Cloud Monitoring API 创建基于日志的提醒政策。您可以在 Monitoring 中或使用 Cloud Monitoring API 修改和删除基于日志的提醒政策。如需了解详情,请参阅管理基于日志的提醒政策

您可以使用日志分析或 Cloud Monitoring API 创建基于 SQL 的提醒政策。您可以在 Monitoring 中或使用 Cloud Monitoring API 修改和删除基于 SQL 的提醒政策。如需了解详情,请参阅使用提醒政策监控 SQL 查询结果

查看提醒政策

Monitoring 中的政策页面列出了您的 Google Cloud 项目中的所有提醒政策。此列表包括使用基于日志的指标的政策和基于日志的提醒政策。

  1. 在 Google Cloud 控制台中,前往  提醒页面:

    进入提醒

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

  2. 选择查看所有政策

基于日志的提醒政策会显示在列表中,类型列中为 Logs 值。基于指标(包括基于日志的指标)的提醒政策会显示在列表中,类型列中为 Metrics 值。基于 SQL 的提醒政策会显示在列表中,类型列中为 SQL 值。以下屏幕截图显示了政策列表的摘录:

如需按类型查看提醒政策,请使用提醒政策列表中的“类型”列。

通知渠道

您可以将任何类型的提醒政策的通知发送到 Monitoring 支持的任何通知渠道。您必须先配置这些渠道,然后才能在提醒政策中使用它们。

如需了解详情,请参阅管理通知渠道

授权要求

使用基于日志的指标或基于日志的提醒政策需要获得对 Cloud Logging 和 Cloud Monitoring 的授权。

费用和限制

如果您定义了自己的基于日志的指标,则需遵守以下要求:

  • 用户定义的基于日志的指标的数量和结构存在限制。如需详细了解这些限制,请参阅基于日志的指标限制
  • 您可能需要为用户定义的基于日志的指标付费。如需详细了解与指标提取相关的费用,请参阅待付款指标
  • 基于 SQL 的提醒政策在您的 Google Cloud 项目中的 BigQuery 预留中运行。拥有 BigQuery 预留可能会产生费用。如需详细了解与 BigQuery 预留相关的费用,请参阅 BigQuery 价格

使用基于基于日志的指标的提醒政策无需付费。

以下 Monitoring 限制相关提醒政策的应用:

类别 政策类型1
每个指标范围的提醒政策(指标和日志的总和)2 2,000 指标、日志
每项基于指标的提醒政策的条件数量 6 指标
每个基于 SQL 的提醒政策可包含的条件数量(公开预览版) 1 SQL
基于 SQL 的提醒政策的查询执行时间上限(公开预览版) 5 分钟 SQL
指标缺失条件评估的
最长时间段3
1 天 指标
指标阈值条件评估的
最长时间段3
23 小时 30 分钟 指标
在指标阈值条件中使用的
过滤条件的长度上限
2,048 个 Unicode 字符 指标
最多由预测条件监控的
时序数
64 指标
最短预测时段 1 小时(3,600 秒) 指标
预测时段上限 2.5 天(216,000 秒) 指标
每项提醒政策的通知渠道数量 16 全部
基于日志的提醒的
突发事件率上限4
每 5 分钟发生 1 起突发事件 日志
基于日志的提醒的
突发事件数量上限
每个基于日志的提醒政策每天 20 起突发事件 日志
基于日志的提醒的每个突发事件的
通知数量上限为 5
每天每起突发事件 20 条通知 日志
每个项目同时触发的提醒政策
数量上限
80,000 全部
每项提醒政策同时打开的突发事件数量上限
1000 全部
无新数据突发事件的
自动关闭期
7 天 指标、SQL
非手动关闭的突发事件最长持续时间 7 天 日志
已关闭的突发事件的保留期限 13 个月 不适用
未结突发事件的保留期限 无限期 不适用
每个指标范围的通知渠道 4000 不适用
每个稍后提醒的提醒政策数量上限 16 全部
稍后提醒的保留期限 13 个月 不适用
1指标:基于指标数据的提醒政策;日志:基于日志消息的提醒政策(基于日志的提醒)
2您可以请求将此限制从每个指标范围的默认值 2,000 个政策提高到每个指标范围的 10,000 个政策。
3条件评估的最长时间段是校准时间段和时长窗口值的总和。例如,如果将校准时间段设置为 15 小时,并将时长窗口设置为 15 小时,则需要 30 小时的数据来评估条件。
4如果基于日志的提醒政策的查询提取标签值,则提取的每个值组合都代表自己的事件时间轴。例如,假设基于日志的提醒政策会提取标签的值,并且该标签可以有两个值。在同一 5 分钟时间窗口内可创建两个事件,每个标签值各一个。
5对于基于日志的提醒,如果收到与过滤条件匹配的日志条目,并且自上次通知发出以来至少已过去 5 分钟,Monitoring 会为未解决的事件发送新通知。每次突发事件每天最多发送 20 条通知。系统会将每条通知发送到为提醒政策配置的所有通知渠道。