CentOS中MongoDB如何进行故障排查
导读:CentOS 上 MongoDB 故障排查实操手册 一 快速定位流程 查看服务状态与最近日志,优先从报错入手: 服务状态:systemctl status mongod 实时日志:tail -f /var/log/mongodb/mon...
CentOS 上 MongoDB 故障排查实操手册
一 快速定位流程
- 查看服务状态与最近日志,优先从报错入手:
- 服务状态:
systemctl status mongod - 实时日志:
tail -f /var/log/mongodb/mongod.log
- 服务状态:
- 校验配置文件关键项:
/etc/mongod.conf中的 dbPath、systemLog.path、bindIp 是否配置正确且路径可访问。 - 若服务起不来,前台直接运行以观察初始化报错:
/usr/bin/mongod -f /etc/mongod.conf(便于看到首次启动的致命错误)。 - 修复后重启并复核状态:
systemctl restart mongod & & systemctl status mongod。
二 常见故障与修复对照表
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| 服务启动失败(Job failed) | systemctl status mongod 与日志首屏报错 |
查看 /var/log/mongodb/mongod.log 定位首个错误;前台运行 mongod -f /etc/mongod.conf 获取更详细初始化报错 |
| 端口被占用(如 27017) | `ss -lntp | grep 27017或netstat -tulpen |
| 无法连接(本地或远程) | mongosh 连接失败;服务状态正常 |
检查 bindIp:仅本机可连用 127.0.0.1,远程访问改为 0.0.0.0 并重启;确认防火墙放行 27017/tcp |
| 启动报 “Failed to unlink socket file /tmp/mongodb-27017.sock” | 日志或前台报错指向该 socket | 删除 socket:rm -f /tmp/mongodb-27017.sock,再 systemctl restart mongod |
| 异常退出或“卡死” | top/htop/free -m/df -h 检查资源;查看日志 |
释放内存/磁盘,必要时重启;若频繁崩溃,核查日志与配置、升级版本或回退变更 |
| 数据目录/日志目录权限错误 | ls -ld /var/lib/mongo /var/log/mongodb |
修正属主属组:chown -R mongod:mongod /var/lib/mongo /var/log/mongodb,再启动 |
| 异常关机/断电后无法启动 | 日志提示数据文件不一致 | 以修复模式启动:/usr/bin/mongod --config /etc/mongod.conf --repair,完成后正常启动 |
三 日志与配置的关键检查点
-
日志位置与实时查看:默认在 /var/log/mongodb/mongod.log,使用
tail -f实时跟踪;必要时用grep "关键字" /var/log/mongodb/mongod.log快速筛选错误与警告。 -
配置项核对:在 /etc/mongod.conf 中重点确认以下项是否正确且目录可写:
- storage.dbPath(如:/var/lib/mongo)
- systemLog.path(如:/var/log/mongodb/mongod.log)
- net.bindIp(仅本机:127.0.0.1;允许远程:0.0.0.0)
- 修改配置后执行:
systemctl restart mongod并复核状态与日志。
四 连接与网络问题排查
- 本机能连、远程连不上:
- 将 bindIp 改为 0.0.0.0 并重启;在 firewalld 放行端口:
firewall-cmd --add-port=27017/tcp --permanent & & firewall-cmd --reload。
- 将 bindIp 改为 0.0.0.0 并重启;在 firewalld 放行端口:
- 本地也无法连接或提示 socket 错误:
- 检查是否存在残留 socket:
ls -l /tmp/mongodb-27017.sock - 若存在且报错 “Failed to unlink socket file … Operation not permitted”,删除后重启:
rm -f /tmp/mongodb-27017.sock & & systemctl restart mongod。
- 检查是否存在残留 socket:
- 服务看似运行但连接异常:
- 用前台方式直接启动观察初始化日志:
/usr/bin/mongod -f /etc/mongod.conf,可快速暴露网络/权限/配置类错误。
- 用前台方式直接启动观察初始化日志:
五 数据损坏与版本问题的处理
- 异常关机/断电后启动失败或数据异常:
- 使用修复模式:
/usr/bin/mongod --config /etc/mongod.conf --repair,完成后正常启动;如仍异常,考虑从备份恢复。
- 使用修复模式:
- 频繁崩溃或“卡死”且难以定位:
- 核查系统资源(CPU/内存/磁盘)与日志;在可控窗口内尝试升级到稳定版本或回退最近变更,并保留完整日志用于进一步分析。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS中MongoDB如何进行故障排查
本文地址: https://pptw.com/jishu/781036.html
