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

问题描述 投票:5回答:3

今天早上我在服务器上发现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

它崩溃了我的网站。我怎样才能找到停止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
mongodb
3个回答
5
投票

我遇到过同样的问题。经过一番搜索后,我猜测是因为记忆而牺牲了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

3
投票

根据MongoDB文档

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

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

db.adminCommand({getLog: "startupWarnings" })

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

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


0
投票

我的服务器也没有明显的原因崩溃。其他答案没有抛出任何东西。但我发现以下内容正在查看mongod.conf中的/etc/文件。

/var/log/mongodb/mongod.log里面也有日志。似乎默认情况下它有500 Mb的限制。但仍然是一个大文件。

在那里我发现我的服务器在某个时间崩溃了,但找不到原因。

2019-04-17T19:39:11.700+0000 I COMMAND  [conn460] command cge_info_system.expedientes command: find { find: "expedientes", filter: { NoExpediente: "090311-497449" }, limit: 1, $db: "cge_info_system", $readPreference: { mode: "primaryPreferred" }, lsid: { id: UUID("f18d952b-37e7-4a45-bf31-b89a596057d1") } } planSummary: COLLSCAN keysExamined:0 docsExamined:49360 cursorExhausted:1 numYields:386 nreturned:1 reslen:3224 locks:{ Global: { acquireCount: { r: 387 } }, Database: { acquireCount: { r: 387 } }, Collection: { acquireCount: { r: 387 } } } protocol:op_msg 1416ms
2019-04-23T16:35:19.578+0000 I CONTROL  [main] ***** SERVER RESTARTED *****
2019-04-23T16:35:19.599+0000 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] MongoDB starting : pid=741 port=27017 dbpath=/var/lib/mongodb 64-bit host=bb7dd22f-cb77-4c6b-9c4c-9fddcfc2cc00.clouding.host
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] db version v4.0.5
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] git version: 3739429dd92b92d1b0ab120911a23d50bf03c412
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.0g  2 Nov 2017
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] modules: none
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] build environment:
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten]     distmod: ubuntu1804
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten]     distarch: x86_64
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2019-04-23T16:35:19.958+0000 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2019-04-23T16:35:19.961+0000 W STORAGE  [initandlisten] Detected unclean shutdown - /var/lib/mongodb/mongod.lock is not empty.
2019-04-23T16:35:19.962+0000 I STORAGE  [initandlisten] Detected data files in /var/lib/mongodb created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2019-04-23T16:35:19.962+0000 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2019-04-23T16:35:19.962+0000 I STORAGE  [initandlisten]

还有一个名为/var/lib/mongodb/diagnostic.data的目录的引用,但其中的数据是二进制文件。我从那里得到的信息不多。

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.