查看路由到 Pub/Sub 的日志

本文档介绍了如何查找您从中路由的日志条目 将 Cloud Logging 导入 Pub/Sub 主题 进行更深入的分析 建议使用 Pub/Sub 进行集成 使用第三方软件创建 Cloud Logging 日志。

将日志条目路由到 Pub/Sub 主题时 日志记录 将每个日志条目作为 Pub/Sub 消息发布, Logging 会收到该日志条目。路由的日志条目包括 99% 的日志条目在 60 秒内显示。

准备工作

有关接收器的概念性讨论,请参阅 路由和存储模型概览:接收器

如需了解如何路由日志条目,请参阅 将日志路由到支持的目标位置

查看日志

如需在通过 Pub/Sub 流式传输日志时查看日志, 执行以下操作:

  1. 在 Google Cloud 控制台中,前往主题页面:

    转到主题

    如果您使用搜索栏找到此页面,请选择子标题为 Pub/Sub

  2. 针对日志接收器中使用的主题查找或创建订阅,并从中提取日志条目。您可能需要等待一段时间,新的日志条目才会发布。

组织日志

每条消息的 data 字段都是采用 base64 编码的 LogEntry 对象。 例如,Pub/Sub 订阅者可能会从正在接收日志条目的主题中提取以下对象。显示的对象中有一个含单条消息的列表,但如果有多个日志条目可用,Pub/Sub 可能会返回多条消息。data 值(大约 600 个字符)和 ackId 值 (约 200 个字符)的代码缩短了,以便于阅读:

{
 "receivedMessages": [
  {
   "ackId": "dR1JHlAbEGEIBERNK0EPKVgUWQYyODM...QlVWBwY9HFELH3cOAjYYFlcGICIjIg",
   "message": {
    "data": "eyJtZXRhZGF0YSI6eyJzZXZ0eSI6Il...Dk0OTU2G9nIjoiaGVsbG93b3JsZC5sb2cifQ==",
    "attributes": {
     "compute.googleapis.com/resource_type": "instance",
     "compute.googleapis.com/resource_id": "123456"
    },
    "messageId": "43913662360"
   }
  }
 ]
}

如果您解码 data 字段并设置其格式,则会获得以下结果 LogEntry 对象:

{
  "log": "helloworld.log",
  "insertId": "2015-04-15|11:41:00.577447-07|10.52.166.198|-1694494956",
  "textPayload": "Wed Apr 15 20:40:51 CEST 2015 Hello, world!",
  "timestamp": "2015-04-15T18:40:56Z",
  "labels": {
    "compute.googleapis.com\/resource_type": "instance",
    "compute.googleapis.com\/resource_id": "123456"
  },
  "severity": "WARNING"
  }
}

Pub/Sub 与第三方集成

您将日志条目路由到 Pub/Sub 主题。第三个 方通过订阅同一主题来接收您的日志条目。 Logging 支持与第三方进行日志记录集成,如 例如 Splunk 或 Datadog如需查看最新的集成列表, 如需了解 Google Cloud Observability 集成,请参阅合作伙伴

要执行集成,您需要执行如下操作:

  1. 在日志条目所属的项目中,创建 Pub/Sub 主题 默认订阅

    1. 启用 Pub/Sub API。

      启用 API

    2. 在 Google Cloud 控制台中,前往主题页面:

      转到主题

      如果您使用搜索栏找到此页面,请选择子标题为 Pub/Sub

    3. 点击创建主题

    4. 主题 ID 字段中,输入主题 ID。 例如 projects/my-project-id/topics/my-pubsub-topic

      发送到该主题的每条消息都包含 Pub/Sub 消息 attributes 中路由的日志条目的时间戳;例如:

      "attributes": {
        "logging.googleapis.com/timestamp": "2024-07-01T00:00:00Z"
      }
      
    5. 保留添加默认订阅选项。请勿选择任何其他选项 选项。

    6. 点击创建主题

  2. 在日志条目所属的项目中,配置 进行日志记录以将日志条目路由到您的主题:

    1. 在 Google Cloud 控制台中,转到日志路由器页面:

      前往日志路由器

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

    2. 点击创建接收器。 为此接收器输入名称和说明,然后点击下一步
    3. 接收器服务菜单中,选择 Cloud Pub/Sub 主题。 选择 Pub/Sub 主题,然后点击下一步
    4. 选择要包含在接收器中的日志条目,然后点击下一步
    5. 可选:选择要排除的日志条目。
    6. 点击创建接收器

      此时会出现一个对话框并显示已创建接收器消息。这个 则表明已成功创建接收器 拥有将将来匹配的日志条目路由到目标位置的权限 。

    7. 授予 Pub/Sub 发布者 (roles/pubsub.publisher) 接收器的写入者身份。如需详细了解如何获取 写入者身份和授予角色,请参阅 设置目标位置权限

    Cloud Logging 现在正在向您的 Pub/Sub 发送日志条目 主题。

  3. 创建订阅。

    例如,如果您使用 Dataflow 从 Pub/Sub 主题中拉取数据并将其发送到 Datadog,则您需要执行两个步骤:

    1. 创建或获取服务账号,然后向其授予 订阅您的主题所需的 IAM 角色。在 服务账号需要以下角色:

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

    2. 通过模板创建作业,然后运行该作业。 在此示例中,您应使用 Pub/Sub to Datadog 模板

您的第三方应该立即开始接收日志条目。

使用 Pub/Sub,请参阅 Cloud Logging 数据导出场景:Splunk

问题排查

如果您发现接收器的目标位置似乎缺少日志条目, 假设您的接收器没有正确路由日志条目,则查看 排查路由日志问题

价格

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

Cloud Logging 不会针对复制日志或通过 日志浏览器页面或日志分析页面。

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