对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

将日志导出到 AWS S3 存储桶

您可以将 M10+ Atlas集群配置为每分钟将系统日志导出到 AWS S3 存储桶。

这种集成允许您:

  • 指定要导出到 S3 存储桶的 MongoDB日志文件。 Atlas支持导出以下日志类型:

    • mongod

    • mongos

    • mongod-audit

    • mongos-audit

  • 最多可设置 10 导出路径,允许您将日志同时导出到多个 AWS S3 存储桶。

  • 通过配置与 S3 多区域访问点 (MRAP) ARN 的集成,将日志发送到 MRAP。您目前只能使用Atlas Administration API配置 MRAP ARN。不支持 MRAP 别名。

重要

日志可能包含敏感信息(包括 PII)。您负责存储和处理 AWS S3 存储桶中的日志。要让Atlas在导出日志之前编辑某些信息,联系MongoDB支持部门。

要将日志导出到 AWS S3 存储桶,您必须拥有Atlas的 Project Owner 或 Organization Owner访问权限。

  • 每台Atlas托管每天通常会生成 1 GB的日志。导出日志会产生数据传输费用。确切的数据传输费用因目的地、地区和云提供商而异。

  • 网络问题或重试可能会导致 AWS S3 存储桶出现重复的日志条目。

  • AWS IAM角色和 S3 存储桶必须属于同一 AWS 账户。

您需要:

  • 具有 sts:AssumeRole 的 AWS IAM角色,用于授予Atlas访问权限您的 AWS资源的权限,并将最大会话持续时间设立为 12 小时。

  • 现有的 AWS S3 存储桶。

  • 运行MongoDB 7.0 或更高版本的 M10+ Atlas 集群。

要将日志导出到 AWS S3 存储桶,请完成以下步骤。

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 图标 Project Overview 旁边的图标。

显示项目设置页面。

2

单击 Integrations 标签页。

显示“项目集成”页面。

3
4
  1. 从 Authorize an AWS IAM Role 下拉列表中,选择您的 ARN。要添加 ARN,请参阅设置统一 AWS 访问。

  2. 单击 Next(连接)。

5
  1. 在 Bucket Name字段中,输入 AWS 账户中显示的 S3 存储桶的名称。

  2. 在 Prefix字段中,输入目录名称以组织 S3 存储桶的内容。示例,输入 logs/ 会在您的 S3存储桶中创建一个 logs目录,用于存储导出的日志。

  3. 在 Log Type 下,选择要导出的日志类型。

    要学习;了解有关MongoDB日志的更多信息,请参阅查看和下载MongoDB日志。

  4. (可选)如果要加密 S3 存储桶中的日志,请在 KMS Key字段中输入您的 AWS Key Management Service ( KMS ) 密钥 ARN。要学习;了解更多信息,请参阅使用 AWS KMS管理客户数密钥。

  5. 单击 Next(连接)。

6
  1. 单击 复制Atlas生成的访问权限策略并保存在本地,文件名为 AtlasS3LogExportPolicy。

  2. 单击 复制Atlas生成的CLI命令,然后在终端中运行该命令,将访问权限策略附加到您的 AWS IAM 角色。

  3. 在启用导出之前,单击 Validate 以确认您的配置和凭证正确无误。

7

Atlas将日志作为具有结构化元元数据的JSON对象导出到 S3 存储桶。每个日志条目都包含原始MongoDB日志消息以及标识源集群、托管和日志类型的其他上下文字段。

导出的日志使用与旧版 基于推送的日志导出 (PBLE) 系统不同的结构化格式。这种新格式为日志路由、过滤器和分析提供了增强的元数据。

每个导出的日志条目都是一个 JSON 对象,具有以下顶级字段:

字段
说明

service.name

标识服务类型的字符串。默认设置为 mongodb。

log

作为 JSON 编码的 string 的原始 MongoDB 日志消息。这包含来自 MongoDB 的结构化日志数据,包括 t (时间戳)、s (严重程度)、c (组件)、id (消息 ID)、ctx (上下文)、msg (消息文本)和 attr (属性)等字段。

host.name

生成日志条目的 MongoDB 托管的完全合格域名(例如 atlas-cluster-shard-00-00.example.mongodb.net)。

mongodb.group.id

Atlas 项目 ID(也称为群组 ID(group ID)),其中包含集群。

mongodb.cluster.name

Atlas 使用的内部集群标识符。

mongodb.customer.cluster.name

用户定义的集群名称,如 Atlas 用户界面中所示。

mongodb.log.type

正在导出的日志类型。可能的值: mongod 、 mongos 、 mongod-audit 、 mongos-audit 。

timestamp

生成日志条目的 ISO 8601 时间戳。

以下示例显示了典型的导出日志条目:

{
"service.name": "mongodb",
"log": "{\"t\":{\"$date\":\"2026-05-19T21:58:00.309+00:00\"},\"s\":\"I\",\"c\":\"NETWORK\",\"id\":6723804,\"ctx\":\"conn928\",\"msg\":\"Ingress TLS handshake complete\",\"attr\":{\"durationMillis\":26}}",
"host.name": "atlas-cluster-shard-00-00.nzmz4k.mongodb.net",
"mongodb.group.id": "682f18ee72a6a02c8182cab3",
"mongodb.cluster.name": "atlas-cluster",
"mongodb.customer.cluster.name": "Cluster0",
"mongodb.log.type": "mongod",
"timestamp": "2026-05-19T21:58:00.309Z"
}

log字段包含原始MongoDB日志消息。解析时,它会显示标准MongoDB日志消息结构:

{
"t": {"$date": "2026-05-19T21:58:00.309+00:00"},
"s": "I",
"c": "NETWORK",
"id": 6723804,
"ctx": "conn928",
"msg": "Ingress TLS handshake complete",
"attr": {
"durationMillis": 26
}
}

注意

attr 对象中字段的顺序可能因日志条目而异,并且可能与旧版 PBLE 格式不同。您的日志解析工具不应依赖在 attr 中的字段顺序。

外部日志汇总格式包含对旧版 基于推送的日志导出 (PBLE) 系统的多项更改:

更改
说明

嵌套日志内容

MongoDB 日志消息现在作为 JSON 编码的 string 嵌套在 log 字段下,而不是在顶层。这需要额外的 JSON 解析步骤才能提取日志消息字段。

其他元数据字段

新的顶级字段提供有关日志源的上下文:service.name、host.name、mongodb.group.id、mongodb.cluster.name、mongodb.customer.cluster.name、mongodb.log.type和 timestamp。

日志条目排序

S3 中日志条目的出现顺序可能与 PBLE 不同。请勿依赖日志条目顺序进行时间分析。请使用 log 内容中的 timestamp 字段或 t.$date 字段进行准确的基于时间的处理。

属性字段排序

attr 对象中的字段顺序可能与 PBLE 不同。将 attr 解析为 JSON 对象,而不依赖字段顺序。

处理导出的日志时:

  • 两级 JSON 解析:首先解析外层 JSON 对象以访问元数据字段,然后将 log 字段解析为 JSON 以访问 MongoDB 日志消息。

  • 字段提取:要提取特定的 MongoDB 日志字段(如 msg、c 或 attr),请先解析 log 字段。

  • 时间戳处理:顶级 timestamp 字段使用 ISO 8601 格式,而 log 内容中的 t.$date 字段可能使用 MongoDB 的扩展 JSON 格式。两者都表示相同时间。

  • 集群识别:使用 mongodb.customer.cluster.name 按 Atlas UI 中显示的集群名称过滤日志。mongodb.cluster.name 字段包含内部识别符。

基于推送的日志导出于 10 月 30 2026 停止接受新配置,并于 2 月 4 2027 终止使用。如果您仍使用基于推送的日志导出,请创建使用相同 IAM角色和存储桶的 S3日志导出集成,验证传输,然后禁用基于推送的日志导出。要保留基于推送的每日文件夹路径结构,请在创建集成时将 useLegacyPathStructure设立为 true。要学习;了解更多信息,请参阅将日志推送到 AWS S3 存储桶。

当日志导出失败或通过为所有项目启用的默认警报恢复时, Atlas会自动通知您。

默认下,所有具有外部日志接收器的项目启用以下警报:

这些警报是信息性的,这意味着当满足警报条件时, Atlas立即向所有具有 Project Owner角色的用户发送电子邮件通知,并将警报记录到 Project Activity Feed。这些警报不会显示在 Project Alerts 页面的 Open Alerts 或 Closed Alerts 标签页上。您可以在 Project Alerts 设置中自定义通知收件人和方法。要学习;了解有关信息警报生命周期的更多信息,请参阅警报工作流。

除了警报之外, Atlas还会将以下信息事件记录到 Project Activity Feed:

  • Log export has recovered. Queued logs are ready to resume sending.

  • Log export has recovered. Queued logs are now being sent.

  • All queued logs have been delivered to sink.

要查看这些事件,请参阅查看操作日志。

有关配置警报通知的更多信息,请参阅配置警报。