Cloud Logging 概览

本文档简要介绍了 Cloud Logging, 具有存储、搜索、分析和监控支持的日志管理系统。 Cloud Logging 会自动从 Google Cloud 资源收集日志数据。 您的应用、本地资源以及来自其他云提供商的资源都可以将日志数据发送到 Cloud Logging。您还可以配置提醒政策,以便 Cloud Monitoring 通知 您会在日志数据中报告特定类型的事件时接收通知。出于法规或安全方面的原因,您可以确定日志数据的存储位置。

从应用和第三方软件收集日志

您可以通过检测 使用 Cloud Build 客户端库。不过,有时 对应用进行插桩所需的操作例如,对于某些配置,您可以使用 Ops Agent 将写入 stdoutstderr 的日志发送到 Google Cloud 项目。

您还可以通过安装 Ops Agent 并将其配置为将该应用的日志写入您的 Google Cloud 项目,从第三方应用(例如 nginx)收集日志数据。

请参阅 您应该使用哪一个:Logging 代理还是客户端库? 可帮助您确定哪种方法最适合 要求。

问题排查和分析日志

您可以使用 Google Cloud 控制台查看和分析日志数据,方法有: 日志浏览器或 Log Analytics 页面。您可以查询和 查看两个界面的日志;但它们使用不同的查询语言 它们具有不同的功能

如需排查问题和分析服务和应用的性能,我们建议您使用日志浏览器。该界面的设计初衷是 让您可以查看各个日志条目并查找相关日志条目。例如,当某个日志条目属于某个错误组时,该条目会带有一个选项菜单注释,以便您访问有关该错误的更多信息。

当您有意 对日志执行汇总操作,例如计算 一段时间内发送到特定网址的 HTTP 请求的平均延迟时间,使用 Log Analytics 界面。借助此接口,您可以使用 SQL 查询日志数据,因此可以使用 SQL 功能来帮助您了解日志数据。

如果您希望以编程方式查询日志数据,可以使用 Cloud Logging API 或 Google Cloud CLI,用于从 Google Cloud 项目。

如需了解详情,请参阅查询和查看日志概览

监控日志

您可以配置 Cloud Logging,以便在出现特定类型的事件时收到通知 会发生在您日志中这些通知可能会在以下情况下发送: 出现在日志条目中,或者在您的日志数据中检测到趋势时。 如果您想查看 Google Cloud 服务的错误率, 那么您可以查看 Cloud Logging 信息中心,该信息中心已预先配置。

例如,如果您想在某个特定时间点 消息,例如发生了与安全性相关的重大事件,那么您可以 创建基于日志的提醒政策。基于日志的提醒政策会监控日志中是否存在特定格式。如果发现该模式,Monitoring 会发送通知并创建突发事件。基于日志的提醒政策适用于重要但罕见的事件, 如下所示:

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

或者,您可能想要监控趋势或事件的发生次数 。对于这些情况,您可以创建基于日志的指标。 基于日志的指标可以统计与某些 也可以提取并整理回复时间等信息 转换为直方图。您还可以配置提醒政策,以便在发生性能变化时通知您,例如响应时间增加到不可接受的水平。基于日志的指标是适合您的需求 执行下列任一操作:

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

如需了解详情,请参阅监控日志

日志存储

您无需配置日志的存储位置。默认情况下,您的 Google Cloud 项目会自动将其收到的所有日志存储在 Cloud Logging 日志存储桶中。例如,如果您的 Google Cloud 项目包含 Compute Engine 实例,则系统会自动为您存储 Compute Engine 生成的所有日志。不过,如有需要,您也可以 您的日志存储空间,例如存储哪些日志; 以及日志的存储位置

您可以将日志条目路由或转发到以下目标位置,这些目标位置可以位于同一 Google Cloud 项目中,也可以位于其他 Google Cloud 项目中:

  • Cloud Logging 存储桶:在 Cloud Logging 中提供存储空间。日志桶可以存储多个 Google Cloud 项目收到的日志条目。日志存储桶可以位于日志条目来源的项目中,也可以位于其他项目中。如需了解如何查看存储在日志存储桶中的日志条目,请参阅查询和查看日志概览以及查看路由到 Cloud Logging 存储桶的日志

    您可以将 通过升级日志存储桶来使用 Cloud Logging 数据和其他数据 Log Analytics,然后创建关联的数据集,该数据集是只读的, 可通过 BigQuery StudioLooker Studio 查询的数据集 页面。

  • BigQuery 数据集:提供 可写 BigQuery 数据集BigQuery 数据集 可以属于日志条目所属的同一项目,也可以位于不同的 项目。 您可以对存储的日志条目使用大数据分析功能。 如需了解如何查看路由到 BigQuery 的日志条目,请参阅 查看路由到 BigQuery 的日志

  • Cloud Storage 存储桶:在 Cloud Storage 中提供日志条目的存储空间。Cloud Storage 存储桶可以位于日志条目来源的项目中,也可以位于其他项目中。日志条目存储为 JSON 文件。如需了解如何查看路由到 Cloud Storage 的日志条目,请参阅查看路由到 Cloud Storage 的日志
  • Pub/Sub 主题:为第三方集成提供支持。 日志条目会格式化为 JSON 格式,然后路由到 Pub/Sub 主题。主题可以位于日志条目来源的项目中,也可以位于其他项目中。如需了解如何查看路由到 Pub/Sub 的日志条目,请参阅查看路由到 Pub/Sub 的日志

  • Google Cloud 项目:将日志条目路由到另一个 Google Cloud 项目。在此配置中,目标项目中的接收器会处理日志条目。

如需了解详情(包括数据区域性支持),请参阅 路由和存储概览

日志类别

日志类别旨在帮助描述可供您使用的日志记录信息;这些类别并非互斥:

  • 平台日志是您的 Google Cloud 服务写入的日志。这些记录 可以帮助您调试和排查问题,也有助于您更好地了解 您正在使用的 Google Cloud 服务

  • 组件日志与平台日志类似, 在您的系统上运行的 Google 提供的软件组件。对于 例如,GKE 提供了软件组件 在他们自己的虚拟机上运行,也可以在自己的数据中心运行。日志是通过 用户的 GKE 实例,并将其发送到 Google Cloud 项目。GKE 使用日志或其元数据来提供用户支持。

  • 安全日志可帮助您回答“何时何地何人做了何事”

    • Cloud Audit Logs 提供有关以下各项的信息: 您在 Google Cloud 控制台内的管理活动和访问权限 Google Cloud 资源。 启用审核日志有助于提高安全性、审核和合规性 实体会监控 Google Cloud 数据和系统, 漏洞或外部数据滥用。 如需查看 Google Cloud 支持的服务列表,请参阅 具有审核日志的 Google 服务
  • 用户写入的日志是由自定义应用和服务写入的日志。 通常,这些日志是通过以下方法之一写入 Cloud Logging 的:

日志的数据模型

Cloud Logging 用于整理日志数据的数据模型 决定了您可以查询数据的维度。例如: 由于日志是单个条目的已命名集合,因此您可以查询 按日志名称指定您的数据同样,由于每个日志都由格式为 LogEntry 对象的日志条目组成,因此您可以编写查询,以便仅检索 LogEntry 字段的值与某些条件匹配的日志条目。例如,只能展示 severity 字段的值为 ERROR 的日志条目。

每个日志条目都用于记录状态或描述特定事件(例如虚拟机实例的创建),并且至少包含以下内容:

  • 时间戳,用于指示事件发生的时间或 Cloud Logging 收到事件的时间。
  • 日志条目来源的相关信息。此来源称为 受监控的资源。受监控资源的示例包括 Compute Engine 虚拟机实例和 Google Kubernetes Engine 容器 如需查看受监控的资源类型的完整列表,请参阅 受监控的资源和服务
  • 载荷(也称为“消息”),以 JSON 格式的非结构化文本数据或结构化文本数据形式提供。
  • 所属日志的名称。日志的名称包括日志条目所属的资源的完整路径,后跟标识符。以下是日志名称的示例:

    • projects/my-project/logs/stderr
    • projects/my-project/logs/stdout
    • projects/my-project/compute.googleapis.com/activity

访问权限控制

Identity and Access Management 角色用于控制主账号访问日志的能力。 您可以向主体授予预定义角色,也可以创建自定义角色。如需详细了解所需权限,请参阅访问权限控制

保留

日志条目会在日志存储分区中存储指定的时长,然后被删除。如需了解详情,请参阅 转送和存储概览:保留

价格

Cloud Logging 不会将日志路由到 支持的目标位置;不过,目标位置可能会产生费用。 除了 _Required 日志存储桶之外, Cloud Logging 将日志流式传输到日志存储分区和 超过日志存储桶默认保留期限的存储。

Cloud Logging 不收取复制日志的费用, 用于定义日志范围 或通过 日志浏览器日志分析页面。

有关详情,请参阅以下文档: