本文档简要介绍了 Cloud Logging,这是一个实时日志管理系统,支持存储、搜索、分析和监控。Cloud Logging 会自动从 Google Cloud 资源中收集日志数据。您的应用、本地资源以及来自其他云提供商的资源都可以将日志数据发送到 Cloud Logging。您还可以配置提醒政策,以便在日志数据中报告特定类型的事件时,Cloud Monitoring 向您发送通知。出于法规或安全方面的原因,您可以确定日志数据的存储位置。
从应用和第三方软件收集日志
您可以使用客户端库对应用进行插桩处理,从而从您编写的应用收集日志。不过,对应用进行插桩处理并不总是必要的。例如,对于某些配置,您可以使用 Ops Agent 将写入 stdout
或 stderr
的日志发送到 Google Cloud 项目。
您还可以通过安装 Ops Agent 并将其配置为将该应用的日志写入您的 Google Cloud 项目,从第三方应用(例如 nginx
)收集日志数据。
如需了解有助于您确定哪种方法最符合您的要求的信息,请参阅您应该使用哪个:Logging 代理还是客户端库?。
排查和分析日志
您可以使用 Google Cloud 控制台中的日志浏览器或“日志分析”页面查看和分析日志数据。您可以使用这两个界面查询和查看日志;不过,它们使用不同的查询语言,并且具有不同的功能。
如需排查问题和分析服务和应用的性能,我们建议您使用日志浏览器。此界面旨在让您查看各个日志条目并查找相关日志条目。例如,当某个日志条目属于某个错误组时,该条目会带有一个选项菜单注释,以便您访问有关该错误的更多信息。
如果您有兴趣对日志执行汇总操作(例如,计算一段时间内向特定网址发出的 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 Studio 和 Looker 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 服务。
- Access Transparency 可为您提供有关 Google 员工在访问您的 Google Cloud 内容时所采取的操作的日志。Access Transparency 日志可帮助您跟踪对您组织的法律和法规要求的遵从情况。如需查看受 Google Cloud 支持的服务列表,请参阅具有 Access Transparency 日志的 Google 服务。
用户写入的日志是指由自定义应用和服务写入的日志。通常,这些日志是通过以下方法之一写入 Cloud Logging 的:
- Ops Agent 或 Logging 代理:如需查看可用日志的列表,请参阅默认 Logging 代理日志。
- 多云日志和混合云日志是指来自 Microsoft Azure 等其他云提供商的日志,以及来自本地基础架构的日志。
日志的数据模型
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 不会对复制日志、定义日志范围或通过日志浏览器或 Log Analytics 页面发出的查询收费。
有关详情,请参阅以下文档:
- Cloud Logging 价格摘要
目标位置费用:
- 如果您在发送 Virtual Private Cloud 流日志后又从 Cloud Logging 中排除这些日志,则需支付 VPC 流日志生成费用。