MongoDB活动诊断日志文件太大

MongoDB活动诊断日志文件太大,mongodb,logging,Mongodb,Logging,我有一个mongodb副本集。数据文件的大小相当大,因为有很多写操作。一个mongodb节点崩溃,因为一个diaglog文件为38GB,磁盘空间不足 有没有办法使diaglog文件不那么大,而是创建了多个小文件(2GB或4GB),这样我就可以删除未使用的文件?这些文件应该只出现在有配置服务器的地方,或者在启动mongod时显式设置了命令行选项的地方 --configsvr or --diaglog 由于这是用于诊断特定问题的,您可能不希望一直打开它。在这种情况下,从启动中删除--diaglog

我有一个mongodb副本集。数据文件的大小相当大,因为有很多写操作。一个mongodb节点崩溃,因为一个diaglog文件为38GB,磁盘空间不足


有没有办法使diaglog文件不那么大,而是创建了多个小文件(2GB或4GB),这样我就可以删除未使用的文件?

这些文件应该只出现在有配置服务器的地方,或者在启动mongod时显式设置了命令行选项的地方

--configsvr or --diaglog
由于这是用于诊断特定问题的,您可能不希望一直打开它。在这种情况下,从启动中删除
--diaglog
选项,除非您特别将其放在那里

关键是,
--diaglog
选项的存在是为了非常详细的日志记录,以便您诊断问题。它应该而不是通常用于生产环境

如果您真的需要它,那么您将看到日志轮换和归档方法,这些方法对于这里提出的这类问题来说有点超出范围

请参阅。

副本集不需要。它会创建一个非常详细的日志,用于故障排除,默认情况下绝对不应启用

您可以安全地从
mongod
配置中删除此参数,还可以删除
dbpath
中的diaglog.*文件


我怀疑您将
diaglog
输出与复制混淆了。
oplog
存储在名为
oplog.rs
的集合中的
local
数据库中,并在初始化复制集时预先分配。对于大多数64位操作系统,默认情况下可用磁盘空间的5%;正如MongoDB手册中所述,OS X和32位系统存在一些例外情况。

什么是对话框文件?您的意思是像编程语言一样?diaglog.XXX是这样的数据文件旁边的文件(dialog.4d65d6d)。MongoDb服务器会编写操作的诊断日志。写|读+写等等。哦,好吧,你的意思是,不,我认为将日志输出到文件是非常基本的atm,你最好使用服务器密度之类的监控工具。你在找命令吗?我想把它作为一个答案发布,但我在这方面的知识还不够。正如我所知,diaglog=1对于oplog的副本集是必需的。我弄错了吗?我已经为副本集启用了diaglog=1。@Zango这不应该是强制性的,正如您所说的,对于副本集,我为您提供了它存在的条件。按照建议,从启动中删除此选项,除非您需要它进行调试。否则,请继续使用它,并按照建议旋转日志。@Zango重新完整阅读回答,以理解使用此选项的意义option@NeilLunn:
diaglog
不特定于配置服务器或副本集。此参数启用写入和/或读取操作的常规诊断转储,您几乎不希望启用此功能。我不相信有任何简单的选项可以旋转diaglog,除非重新启动
mongod
;如果在某个非零日志记录级别启用了
diaglog
,则会生成一个新的二进制diaglog。文件将在启动时创建。@Stennie不是我说的吗。是否删除--diaglog,因为它不是必需的?我想我已经说过了。注意:
diaglog
参数在MongoDB 2.5.5开发版本(参考:)中已被弃用,并将在未来的MongoDB服务器版本中删除。