systemctl status mongod命令确认MongoDB服务是否处于active (running)状态。若未运行,可通过sudo systemctl start mongod启动服务,并设置开机自启(sudo systemctl enable mongod)。/var/log/mongodb/mongod.log),使用tail -f /var/log/mongodb/mongod.log实时跟踪最新错误信息;journalctl -xe | grep mongod)筛选与MongoDB相关的系统级错误(如权限拒绝、端口冲突)。检查/etc/mongod.conf配置文件的关键参数是否正确:
bindIp:确保监听IP符合需求(如0.0.0.0允许远程连接,127.0.0.1仅本地访问);port:确认端口未被其他进程占用(默认27017);dbPath:验证数据存储路径存在且具备读写权限(chown -R mongod:mongod /data/db);security.authorization:若启用身份验证,需确保用户凭证正确。ping <服务器IP>测试客户端与服务器的网络可达性;通过telnet <服务器IP> 27017或nc -vz <服务器IP> 27017验证MongoDB端口是否开放。firewalld/ufw)阻止了MongoDB端口,需添加允许规则:
firewall-cmd --zone=public --add-port=27017/tcp --permanent(永久生效);firewall-cmd --reload(重新加载规则)。使用以下命令检查系统资源是否充足:
top/htop:查看CPU、内存使用率(MongoDB对内存需求较高,建议预留足够内存给WiredTiger缓存);df -h:确认磁盘空间(dbPath所在分区剩余空间需大于数据量的20%,避免写入阻塞);iostat -x 1:监控磁盘I/O负载(高I/O延迟可能导致性能下降)。libssl、libcrypto等库,缺失时需通过sudo yum install openssl-devel安装。Enforcing模式,可能阻止MongoDB访问数据目录。可通过以下命令临时设置为Permissive模式排查:
setenforce 0(临时生效);/etc/selinux/config中的SELINUX=permissive(永久生效)。Enforcing模式,需为MongoDB数据目录设置正确安全上下文:chcon -Rv --type=mongod_var_lib_t /data/db。mongostat:实时监控MongoDB的读写操作次数、延迟、锁等待等性能指标;mongotop:统计集合级别的读写时间,定位慢查询集合。db.setProfilingLevel(1, {slowms: 100})开启慢查询记录(阈值设为100ms),通过db.system.profile.find().sort({ts: -1}).limit(10)查看最近的慢查询,使用explain()方法分析查询计划(如是否使用了索引)。db.collection.createIndex({field: 1}));db.collection.createIndex({field1: 1, field2: 1}))优化多条件查询。/var/crash/)。使用crash工具分析转储文件(需安装crash包):
sudo yum install crash;sudo crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/vmcore,查看崩溃原因(如内存溢出、段错误)。mongod --repair命令修复数据文件(需停止服务,且修复过程可能丢失部分数据)。yum update mongod升级);