本文档介绍了如何查找从 Cloud Logging 路由到 Pub/Sub 主题的日志条目,这些条目近乎实时地发生。我们建议使用 Pub/Sub 将 Cloud Logging 日志与第三方软件集成。
当您将日志路由到 Pub/Sub 主题时,Logging 会在收到每个日志条目后立即将该日志条目作为 Pub/Sub 消息发布。路由日志在到达 Logging 后的几秒内即可正式发布,其中 99% 的日志在 60 秒内可用。
准备工作
如需了解接收器的概念讨论,请参阅路由和存储模型概览:接收器。
如需了解如何路由日志,请参阅将日志路由到支持的目标位置。
查看日志
如需查看通过 Pub/Sub 流式传输的日志,请执行以下操作:
-
在 Google Cloud 控制台的导航面板中,选择 Pub/Sub,然后选择主题:
针对日志接收器中使用的主题查找或创建订阅,并从中提取日志条目。您可能需要等待一段时间,新的日志条目才会发布。
组织日志
每条消息的 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 与第三方集成
Logging 可与第三方(如 Splunk)进行日志集成。如需查看最新的集成列表,请参阅适用于 Google Cloud Observability 集成的合作伙伴。
您通过 Pub/Sub 主题路由日志,而第三方通过订阅相同的主题来接收日志。
要执行集成,您需要执行如下操作:
从第三方获取一个基于其 Google Cloud 项目创建的 Google Cloud 服务帐号名称。例如
12345-xyz@developer.gserviceaccount.com
。您将使用此名称向第三方授予接收日志的权限。在包含日志的项目中,启用 Pub/Sub API。
-
启用 Pub/Sub API。
创建 Pub/Sub 主题。您可以在配置日志接收器时创建主题,也可以通过以下步骤创建主题:
-
在 Google Cloud 控制台的导航面板中,选择 Pub/Sub,然后选择主题:
选择创建主题,并输入主题名称,例如
projects/my-project-id/topics/my-pubsub-topic
。您可以将日志路由到此主题。发送到该主题的每条消息都包含 Pub/Sub 消息
attributes
中路由的日志条目的时间戳;例如:"attributes": { "logging.googleapis.com/timestamp": "2018-10-01T00:00:00Z" }
点击创建主题。
授权 Logging 将日志路由到该主题。有关说明,请参阅设置目标位置权限。
-
授权第三方订阅主题:
-
在 Google Cloud 控制台的导航面板中,选择 Pub/Sub,然后选择主题:
- 选择您的主题。
- 选择权限。
- 选择添加权限,然后输入第三方的服务帐号名称。
- 在选择角色菜单中,选择 Pub/Sub Subscriber。
- 点击保存。
-
向第三方提供 Pub/Sub 主题的名称;例如
projects/my-project-number/topics/my-pubsub-topic
。第三方先订阅该主题,然后您才能开始路由。在第三方订阅主题后开始路由日志:
-
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择日志路由器:
- 在包含要路由的日志的项目中,点击创建接收器。
- 为接收器输入名称和说明,然后点击下一步。
- 在接收器服务菜单中,选择 Cloud Pub/Sub 主题。
- 在 Cloud Pub/Sub 主题菜单中,选择第三方订阅的 Pub/Sub 主题,然后点击下一步。
- 选择要包含在接收器中的日志,然后点击下一步。
- 可选:选择要排除的日志。
点击创建接收器。
此时会出现一个对话框并显示已创建接收器消息。此消息表示您已成功创建接收器,且该接收器有权将未来的匹配日志写入您选择的目标位置。
-
您的第三方应该立即开始接收日志条目。
如需了解使用 Pub/Sub 的常见日志路由场景,请参阅导出 Cloud Logging 数据的场景:Splunk。
问题排查
如果接收器的目标位置似乎缺少日志,或者您怀疑接收器未正确路由日志,请参阅对路由日志进行问题排查。
价格
在将日志路由到受支持的目标位置时,Cloud Logging 不会产生费用;但是,目标位置可能会产生费用。除 _Required
日志存储桶外,Cloud Logging 会针对将日志流式传输到日志存储桶,以及对超出日志存储桶默认保留期限的存储收费。
Cloud Logging 不对日志复制或通过 Logs Explorer 页面或 Log Analytics 页面发出的查询收费。
有关详情,请参阅以下文档:
- Cloud Logging 价格摘要
目标页面费用:
- 如果您在 Cloud Logging 中发送 Virtual Private Cloud 流日志然后又将其排除,需支付 VPC 流日志生成费用。