CentOS 上 MongoDB 故障排查手册
一 快速定位流程
sudo systemctl status mongodsudo systemctl start|restart mongodss -lntp | grep 27017 或 netstat -tulpen | grep 27017sudo tail -f /var/log/mongodb/mongod.logsudo mongod -f /etc/mongod.conf/etc/mongod.confnet.bindIp、net.port、storage.dbPath、systemLog.pathsudo chown -R mongod:mongod /var/lib/mongosudo chown -R mongod:mongod /var/log/mongodbbindIp 设为 0.0.0.0(或按需加入内网网段)二 常见故障与修复
systemctl status 提示 Address already in usess -lntp | grep 27017 找到 PID,sudo kill -9 <PID> 后重启;或调整 net.portsudo rm -f /tmp/mongodb-27017.sock,再 sudo systemctl restart mongodsudo chown -R mongod:mongod /var/lib/mongo /var/log/mongodbsystemctl status 或前台 mongod 输出语法/路径错误/etc/mongod.conf 中 dbPath、logpath、bindIp 等;必要时用 mongod -f /etc/mongod.conf 前台验证bindIp: 0.0.0.0,放行防火墙/安全组 27017,并确认客户端使用正确主机与端口三 日志与性能分析
tail -f /var/log/mongodb/mongod.logdb.getLogComponents()、db.adminCommand({ getLog: 1 })mtools(mlogfilter、mloginfo、mplotqueries)做慢查询与统计可视化mongostat、mongotopdb.serverStatus()(连接、锁、内存、页面错误等)logrotate 管理,示例 /etc/logrotate.d/mongodb:/var/log/mongodb/mongod.log {
daily
rotate 7
compress
missingok
notifempty
sharedscripts
copytruncate
dateext
size 200M
postrotate
/bin/kill -SIGUSR1 $(cat /var/run/mongodb/mongod.pid 2>/dev/null || cat /var/log/mongodb/mongod.lock 2>/dev/null) 2>/dev/null || true
endscript
}
四 应急与恢复
sudo mongod -f /etc/mongod.confsudo /usr/bin/mongod --config /etc/mongod.conf --repairsudo systemctl start mongodmongod --shutdown --dbpath /var/lib/mongokill -9 终止进程五 一键排查命令清单
# 1) 服务与端口
sudo systemctl status mongod
sudo systemctl restart mongod
ss -lntp | grep 27017
# 2) 日志与前台启动
sudo tail -f /var/log/mongodb/mongod.log
sudo mongod -f /etc/mongod.conf
# 3) 配置与权限
grep -E '^(net\.|storage\.|systemLog\.)' /etc/mongod.conf
ls -ld /var/lib/mongo /var/log/mongodb
sudo chown -R mongod:mongod /var/lib/mongo /var/log/mongodb
# 4) 远程连通性
ping <服务器IP>
nc -vz <服务器IP> 27017
# 云上需同时放行安全组与系统防火墙的 27017
# 5) 运行与性能
mongostat
mongotop
db.serverStatus()
# 6) 日志分析
db.getLogComponents()
db.adminCommand({ getLog: 1 })
# 可结合 mtools:mlogfilter、mloginfo、mplotqueries
以上命令覆盖了服务状态、端口连通、配置核对、权限修复、日志定位与性能诊断的关键环节,可据此快速缩小问题范围并恢复服务。