Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs 菜单
Docs 主页
/ /

Full Time Diagnostic Data Capture

为了帮助MongoDB工程师分析服务器行为, mongodmongos进程包括全时诊断数据捕获 (FTDC) 机制。 FTDC默认处于启用状态。 由于 FTDC 在调试部署中的重要性,FTDC 线程故障是致命的,会停止父mongodmongos进程。

注意

Windows 上的 FTDC 用户权限

在 Windows 上,要收集磁盘、CPU 和内存等系统数据,FTDC 需要以下群组的 Microsoft 访问权限:

  • 性能监控用户

  • Performance Log Users

如果运行mongodmongos 的用户不是管理员,请将其添加到这些群组中以日志FTDC 数据。有关更多信息,请参阅 Microsoft文档

FTDC 定期收集以下命令产生的统计数据:

根据主机操作系统,诊断数据可能包括以下一项或多项利用率统计信息:

  • CPU使用率

  • 内存利用率

  • 磁盘利用率与性能相关。FTDC 不包括与存储容量相关的数据。

  • 网络性能统计信息。FTDC 仅捕获元数据,不捕获或检查任何网络数据包。

注意

如果 mongod 进程在容器中运行,FTDC 将从容器而不是主机操作系统的角度报告利用率统计信息。例如,如果 mongod 在配置了 RAM 限制的容器中运行,FTDC 会根据容器的 RAM 限制(而不是主机操作系统的 RAM 限制)计算内存利用率。

FTDC 在文件轮转或启动时收集以下命令产生的统计数据:

mongod 进程将 FTDC 数据文件存储在 storage.dbPath 实例下的 diagnostic.data 目录中。所有诊断数据文件均存储在此目录中。例如,假定 dbPath/data/db,则诊断数据目录将为 /data/db/diagnostic.data

mongos 进程将 FTDC 数据文件存储在相对于 systemLog.path 日志路径设置的诊断目录中。MongoDB 截断日志路径的文件扩展名并将 diagnostic.data 连接到剩余名称。例如,如果 path 设置为 /var/log/mongodb/mongos.log,则诊断数据目录将为 /var/log/mongodb/mongos.diagnostic.data

FTDC 数据文件是经过压缩的,不适合人直接阅读。它们继承了与 MongoDB 数据文件相同的文件访问权限。只有有权访问 FTDC 数据文件的用户才能传输 FTDC 数据。

没有系统所有者或运营者的明确许可和协助,MongoDB 工程师将无法访问 FTDC 数据。

FTDC 数据在任何情况下都不会包含以下任何信息:

  • 查询、查询谓词或查询结果的样本

  • 从任一最终用户集合或索引中采样的数据

  • 系统或 MongoDB 用户档案或安全证书

FTDC 数据包含某些托管信息,如主机名、操作系统信息以及用于启动 mongodmongos 的选项或设置。某些组织或监管机构可能会将此信息视为受保护或保密信息。对于这些字段配置了受保护、机密或 PII 数据的集群,请在发送 FTDC 数据之前通知MongoDB工程师,以协调适当的安全措施。

您可在 MongoDB GitHub 存储库中查看 FTDC 源代码。ftdc_system_stats_*.ccp 文件专门定义了已捕获的所有特定于系统的诊断数据。

FTDC 按以下默认值运行:

  • 每 1 秒采集一次数据

  • 最大 diagnostic.data 文件夹大小为 250 MB(分片的集群为 500 MB)。

    在版本 8.0.10 中进行了更改:默认值从 200 MB(分片的集群为 400 MB)开始增加。

这些默认值可为MongoDB工程师提供有用数据,同时对性能或存储大小的影响极小。仅当MongoDB工程师出于特定诊断目的提出请求时,才修改这些值。

重要

当文件夹接近其大小限制时, MongoDB会覆盖较旧的数据。为确保保留关键诊断信息,请在事件发生时捕获 diagnostic.data目录。MongoDB清除 FTDC 数据后,就无法再用于诊断分析。

MongoDB仅在本地托管上存储 FTDC 数据。您不能将 OTel 或其他日志传送管道转发的 FTDC 数据用于诊断目的。

在使用临时存储或 Terraform 等自动化工具的本地部署环境中,终止或重建托管时,FTDC 数据会丢失。为了提高 FTDC 数据用于诊断调查的可用性,请考虑采取以下一项或两项操作:

  • diagnostic.data目录存储在持久存储上。

  • 定期将 diagnostic.data目录复制到持久的外部位置。

MongoDB工程师依靠 FTDC 数据进行准确诊断。

警告

不建议在生产环境中使用。

要禁用 FTDC,请在配置文件的 setParameter 设置中使用diagnosticDataCollectionEnabled: false 选项启动 mongodmongos

setParameter:
diagnosticDataCollectionEnabled: false

在 MongoDB 工程师的支持下,禁用 FTDC 可能会增加分析或调试问题时所需的时间或资源。有关 MongoDB 支持的信息,请访问 MongoDB 支持入门

后退

轮换日志文件

在此页面上