【问题标题】:Why is my mongodb collection deleted automatically?为什么我的 mongodb 集合会被自动删除?
【发布时间】:2017-05-22 01:23:14
【问题描述】:

我在三个 EC2 实例中有一个 MongoDB 客户端,并且我创建了一个副本集。上次我遇到问题,空间 constraint 停止了我的 mongod 进程,从而停止了应用程序,现在在几天前的一个实例中,我的一些表从数据库中消失了,所以我将日志记录和全部设置到我的数据库只是为了赶上类似的事情是否再次发生。在今天早上的一个新事件中,我无法登录到我的系统,那时我发现整个数据库都是空的。我检查了其他 SO 问题,如 this,它建议设置一个 TTL。我根本没有做过。
现在我该如何调试这种情况并进行适当的根本原因分析?我什至在调试日志中也找不到任何东西。桌子就这样消失了。如何设置正确的日志记录机制以及如何确保我的所有表永远不会再次被删除?

【问题讨论】:

  • 这很奇怪 - 这里的问题几乎相同 - stackoverflow.com/questions/41519988/…
  • 是的...我很快就要投入生产了。不能有这样的事情发生。我读了你的回答。会不会是mongo因为内存不足而删除了你的数据库?
  • 不,它不会只是随机删除集合 - 这将是一件非常糟糕的事情(它不会) - 绝对是意外删除
  • 如何设置日志以便捕获在副本集上执行的所有命令?因此,如果下次发生这种情况,我会知道是什么命令导致的
  • 您运行的是哪个特定版本的 MongoDB?您的副本集是否受到适当保护(请参阅:MongoDB Security Checklist?如果您尚未启用身份验证并锁定对您的副本集的访问,一种可能性是有人正在远程删除数据。如果您确实配置并启用了身份验证,我会查看您的日志以确定数据库何时被删除。首先使用 grepping 查找 dropDatabase(日志行可能因您的版本和配置设置而异)。

标签: mongodb amazon-ec2


【解决方案1】:

今天我收到一封来自亚马逊的邮件,说我可能正在运行一个不安全的 MongoDB 版本,这可能导致了这个问题。因此,遇到此问题的人请通过Security Checklist Provided by MongoDB。那里有一些绝对必要的点。
1. 启用访问控制并执行身份验证
2. 加密通信
3. 限制网络暴露

这三个是核心,取决于有多少人访问您的数据库,您可以Configure Role-Based Access Control

这些都是我做过的事情。在这件事发生之前,我并没有那么认真地对待安全,但是在我被它击中之后。我确保我有所有必要的预防措施。 希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 2010-11-08
    • 2013-03-09
    • 1970-01-01
    • 2013-09-28
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多