文档菜单
文档首页
/
MongoDB 手册
/ / /

全天数据诊断数据捕获

本页

  • 行为
  • 详细信息

为了帮助 MongoDB 工程师分析服务器行为,mongodmongos 进程包含一个全时诊断数据捕获(FTDC)机制。FTDC 默认启用。由于其调试部署的重要性,FTDC 线程失败是致命的,并停止父进程 mongodmongos

注意

Windows 上的 FTDC 用户权限

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

  • 性能监控用户

  • 性能日志用户

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

FTDC 定期收集以下命令产生的统计信息

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

  • CPU 利用率

  • 内存利用率

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

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

注意

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

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)。对于配置了受保护、机密或PII数据的集群,请在发送FTDC数据之前通知MongoDB工程师,以协调适当的安全措施。

您可以在MongoDB Github 仓库上查看 FTDC 的源代码。具体的系统诊断数据由 ftdc_system_stats_*.ccp 文件定义。

FTDC 以以下默认设置运行

  • 每秒捕获一次数据

  • 最大 diagnostic.data 文件夹大小为 200MB。

这些默认设置旨在为 MongoDB 工程师提供有用的数据,同时对性能或存储大小的影响最小。只有在 MongoDB 工程师要求用于特定诊断目的时,才需要修改这些值。

要禁用FTDC,请使用配置文件中的 mongodmongos 并在 setParameter 设置中将 diagnosticDataCollectionEnabled: false 选项设置为 false。

setParameter:
diagnosticDataCollectionEnabled: false

禁用FTDC可能会增加分析或调试与MongoDB工程师支持相关问题时所需的时间和资源。有关MongoDB支持的信息,请访问 开始使用MongoDB支持

返回

UNIX ulimit