Mongo服务崩溃了.需要找到崩溃的原因

Cur*_*per 7 mongodb

今天早上我在服务器上发现mongo出现以下错误.

*** System restart required ***
You have mail.
ubuntu@ip-xxx-xx-xx-xx:~$ mongo
MongoDB shell version: 2.4.9
connecting to: test
Wed Nov 25 05:18:51.381 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

它崩溃了我的网站.我怎样才能找到停止mongo服务的内容?mongo有这个日志吗?我在哪里可以找到它们?另外如何确定mongodb是否崩溃然后重启服务呢?

我重新启动了mongodb服务,网站又开始工作了.

输出ps -ef | grep mongod:

mongodb   14756      1  0 05:20 ?        00:00:14 /usr/bin/mongod --config /etc/mongodb.conf
ubuntu    36865  14123  0 06:18 pts/2    00:00:00 grep --color=auto mongod
Run Code Online (Sandbox Code Playgroud)

Nid*_*vid 7

我遇到过同样的问题。经过一番搜索后,我猜想是操作系统牺牲mongod了内存。如果内核杀死了您的mongod,您可以在内核日志中找到日志

大多数情况下,内核日志将位于中/var/log/kern.log,日志可能会轮换。

所以最好做一个grep

grep mongod /var/log/kern.log*

如果日志已存档 find -name \*kern.log.*.gz -print0 | xargs -0 zgrep "mongod"

./kern.log.1:Nov 12 12:55:04 ip-xxx-xxx-xxx-xxx kernel: [8413229.118361] mongod invoked oom-killer: gfp_mask=0x24201ca, order=0, oom_score_adj=0
./kern.log.1:Nov 12 12:55:04 ip-xxx-xxx-xxx-xxx kernel: [8413229.118365] mongod cpuset=/ mems_allowed=0
./kern.log.1:Nov 12 12:55:04 ip-xxx-xxx-xxx-xxx kernel: [8413229.118371] CPU: 0 PID: 1830 Comm: mongod Not tainted 4.4.0-1062-aws #71-Ubuntu
./kern.log.1:Nov 12 12:55:04 ip-xxx-xxx-xxx-xxx kernel: [8413229.118531] [ 1301]   112  1301   300787   181207     485       4        0             0 mongod
./kern.log.1:Nov 12 12:55:04 ip-xxx-xxx-xxx-xxx kernel: [8413229.118680] Out of memory: Kill process 1301 (mongod) score 355 or sacrifice child
./kern.log.1:Nov 12 12:55:04 ip-xxx-xxx-xxx-xxx kernel: [8413229.130161] Killed process 1301 (mongod) total-vm:1203148kB, anon-rss:724828kB, file-rss:0kB
Run Code Online (Sandbox Code Playgroud)

  • @CuriousDeveloper 所以你可以回答自己的问题! (2认同)

Rub*_*wal 3

根据 MongoDB 文档

getLog 命令返回一个带有日志数组的文档,其中包含来自 mongod 进程日志的最新消息。

请尝试在 mongo shell 中执行以下命令以返回包含与 mongod 服务初始化时的错误或警告相关的信息的日志

db.adminCommand({getLog: "startupWarnings" })
Run Code Online (Sandbox Code Playgroud)

有关getLog方法的详细说明,请参阅以下 URL 中提到的文档

https://docs.mongodb.org/manual/reference/command/getLog/