首页主机资讯MongoDB故障排查在CentOS上怎么操作

MongoDB故障排查在CentOS上怎么操作

时间2025-12-19 22:41:03发布访客分类主机资讯浏览1195
导读:CentOS 上 MongoDB 故障排查实操手册 一 快速定位流程 查看服务状态与系统日志:使用命令 systemctl status mongod 与 journalctl -xe 获取失败原因与调用栈;若服务未起来,优先看这两条输出...

CentOS 上 MongoDB 故障排查实操手册

一 快速定位流程

  • 查看服务状态与系统日志:使用命令 systemctl status mongodjournalctl -xe 获取失败原因与调用栈;若服务未起来,优先看这两条输出。
  • 查看 MongoDB 自身日志:默认路径 /var/log/mongodb/mongod.log,使用 tail -f /var/log/mongodb/mongod.log 实时观察错误关键字(如 ERRORFatalUnlink socket)。
  • 校验配置文件:核对 /etc/mongod.conf 中关键项(如 systemLog.pathstorage.dbPathnet.bindIpnet.port)是否存在且路径可写。
  • 检查资源与权限:用 topdf -h 排查 CPU/内存/磁盘;确认数据目录与日志目录属主为 mongod:mongod(常见目录:/var/lib/mongo/var/log/mongodb)。
  • 重启并验证:完成修复后执行 systemctl restart mongod,再次检查状态与日志是否恢复正常。

二 常见故障与修复对照表

症状 快速检查 修复建议
服务启动失败(systemctl status 报错) 查看状态与 journal;检查配置文件语法与路径 修正 mongod.conf 错误项;确保 dbPath/logPath 存在且可写;必要时重新安装相关包
端口被占用(常见 27017) ss -lntp grep 27017 或 netstat -tulpen
无法远程连接 查看 bindIp 是否为 0.0.0.0 或包含服务器 IP;云主机检查安全组/防火墙 /etc/mongod.conf 设置 net.bindIp: 0.0.0.0;开放 27017/tcp(firewalld/iptables);重启服务
认证失败 查看是否启用 security.authorization /etc/mongod.conf 开启 security.authorization: enabled;用管理员账户登录并校验权限
出现 “Failed to unlink socket file … /tmp/mongodb-27017.sock” 查看 mongod.log 或前台运行 mongod 的输出 删除残留 socket:rm -f /tmp/mongodb-27017.sock;重启服务
数据目录/日志目录权限错误 ls -ld /var/lib/mongo /var/log/mongodb 修正属主:chown -R mongod:mongod /var/lib/mongo /var/log/mongodb;重启服务
异常卡死/无响应 top/htop 观察 CPU/内存;查看最近日志 systemctl restart mongod 恢复业务;再依据日志与资源瓶颈定位根因(慢查询、索引缺失、磁盘/内存不足等)

三 日志与监控要点

  • 日志位置与配置:默认 /var/log/mongodb/mongod.log;在 /etc/mongod.conf 中可配置 systemLog.destination/file/path/logAppend/verbosity,便于定位与审计。
  • 实时查看与关键字过滤:使用 tail -f /var/log/mongodb/mongod.log;结合 grep “error”awk 等做快速筛选与统计。
  • 性能与负载观测:使用 mongostatmongotop 观察 QPS/写入/连接数/锁 等;在 shell 中执行 db.serverStatus() 获取更细指标。
  • 日志轮转与归档:建议配置 logrotatemongod.log 做按日轮转、压缩与保留(如保留 7 天),避免磁盘被撑满。

四 安全与网络配置检查

  • 远程访问:编辑 /etc/mongod.conf,将 net.bindIp 设为 0.0.0.0(或指定内网/公网 IP 白名单);重启服务后从客户端测试连通性。
  • 防火墙放行:在 firewalld 中放行 27017/tcp(如:firewall-cmd --add-port=27017/tcp --permanent & & firewall-cmd --reload)。
  • 启用认证:在 /etc/mongod.conf 开启 security.authorization: enabled;使用 mongosh 连接 admin 库创建管理员并验证登录。
  • 最小权限原则:应用连接使用具备所需库/集合权限的专用账号,避免长期使用 root

五 应急与恢复建议

  • 避免 kill -9 强杀 mongod;优先使用 systemctl stop mongodmongod --shutdown --dbpath 安全关闭。
  • 异常关闭或异常关机后,如出现数据文件不一致,可使用 /usr/bin/mongod --config /etc/mongod.conf --repair 进行修复,再启动服务。
  • 若多轮重启仍失败,保留现场(日志、配置、磁盘空间信息),导出最近日志片段用于进一步分析或提交工单。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MongoDB故障排查在CentOS上怎么操作
本文地址: https://pptw.com/jishu/776745.html
centos oracle数据库如何监控 如何配置MongoDB的认证机制

游客 回复需填写必要信息