MongoDB容器遭未知SIGTERM终止,重启后Express无法连接求助
MongoDB容器不定期收到SIGTERM终止及连接异常问题
问题详情
- MongoDB容器(
mongo:4.2.1-bionic)不定期收到Signal 15(SIGTERM)而终止,重启后Node Express容器无法连接该MongoDB容器(容器重启策略配置为restart: always) - 未使用容器编排工具,仅通过docker-compose配置重启策略
- 终止现象多在负载较高时出现,信号具体来源未知,dockerd进程自身也收到了SIGTERM,但无法定位触发源
已执行的排查步骤
- 查看MongoDB容器日志,仅显示收到Signal 15,无信号来源信息:
2023-10-14T11:54:18.185+0000 I CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
- 检查
/var/log/syslog日志文件,未找到Signal 15发生时段的有效关联信息 - 通过
systemctl -u docker.service查看Docker服务日志,仅显示以下内容,未发现明确触发原因:
Oct 14 11:54:18 server-dev dockerd[38876]: time="2023-10-14T13:54:18.154260979+02:00" level=info msg="Processing signal 'terminated'" Oct 14 11:54:18 server-dev systemd[1]: Stopping Docker Application Container Engine...
- 确认系统CPU、内存、磁盘空间等资源使用率均处于正常范围
- 检查防火墙规则,确认配置无异常
auditd排查尝试
在/etc/audit/audit.rules中添加规则:
-a always,exit -F arch=b64 -S kill -F a0=15 -k container-sigterm-signal
通过ausearch -k container-sigterm-signal查询,仅返回规则添加记录,无信号触发相关日志:
---- time->Wed Oct 11 09:57:42 2023 type=CONFIG_CHANGE msg=audit(1697011062.804:17): auid=4294967295 ses=4294967295 op=add_rule key="container-sigterm-signal" list=4 res=1 ---- time->Sat Oct 14 13:54:52 2023 type=CONFIG_CHANGE msg=audit(1697284492.872:17): auid=4294967295 ses=4294967295 op=add_rule key="container-sigterm-signal" list=4 res=1
strace跟踪尝试
通过pgrep dockerd获取Docker进程ID后,执行:
nohup strace -p 38876 -o /home/web/strace.log &
重启发生后查看日志文件,仅包含以下内容:
futex(0x55e9b2a69e88, FUTEX_WAIT_PRIVATE, 0, NULL <detached ...>
疑问
还有哪些排查步骤或方法可以定位该Signal 15的来源?
内容的提问来源于stack exchange,提问作者Kana
相关产品推荐
相关产品推荐

