• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

mongodb误操作查数据表操作日志

Python admin 1年前 (2018-05-25) 1009次浏览 0个评论 扫描二维码

起因

今天早上过来发现生产系统使用的 MongoDB 库被删掉了。说明可能是两种情况:一、误删,连操作者自己也没意识到做了一个删除操作;二、bug,在某个程序中存在一个 bug。后来定位到自己的代码出现 BUG,赶紧代码修改然后测试今天的调度任务

MongoDB 系统日志路径从配置文件中可以查看。MongoDB 进程信息中可以看到配置文件的位置:

[root@10-180-86-57 ~]# ps -ef|grep mongo
root      1564     1  1  2015 ?        2-21:32:34 /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf

日志文件路径配置如下:

[root@10-180-86-57 ~]# more /usr/local/mongodb/mongodb.conf
systemLog:
  destination: file
  path: "/data/mongodb/log/mongodb.log"
  logAppend: true

查看日志信息发现有 dropDatabase 的操作:

[root@10-180-86-57 log]# cat mongodb.log |grep dropDatabase
2016-05-24T11:24:37.994+0800 [repl writer worker 1] dropDatabase md starting
2016-05-24T11:24:38.357+0800 [repl writer worker 1] dropDatabase md finished

md 正是被删除的库。时间范围已经明确,剩下的就是找到删除操作的来源,通过时间查看该时间前有哪些 IP 连接了数据库:

[root@10-180-86-57 log]# cat mongodb.log |grep "2016-05-24T11:24"
2016-05-24T11:24:34.960+0800 [initandlisten] connection accepted from 10.57.172.146:58082 #5171827 (55 connections now open)
2016-05-24T11:24:35.011+0800 [conn5171827]  authenticate db: admin { authenticate: 1, user: "bigdata", nonce: "xxx", key: "xxx" }
2016-05-24T11:24:36.483+0800 [conn5171600] end connection 10.149.13.17:4202 (54 connections now open)
2016-05-24T11:24:37.994+0800 [repl writer worker 1] dropDatabase md starting
2016-05-24T11:24:38.137+0800 [conn5171338] end connection 10.149.13.6:32360 (53 connections now open)
2016-05-24T11:24:38.252+0800 [repl writer worker 1] removeJournalFiles
2016-05-24T11:24:38.357+0800 [repl writer worker 1] dropDatabase md finished

发现在这个时间有一个内容 IP(10.57.172.146) 有连接数据库的操作。虽然问题没有重新,但基本可能定位为误删操作。review 同事代码确定没有问题后,问题没有再现。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mongodb 误操作查数据表操作日志
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!