mongodb故障排查centos技巧
导读:MongoDB 故障排查 CentOS 技巧 一 快速定位流程 服务状态与端口连通 检查服务:sudo systemctl status mongod;异常时查看:sudo journalctl -xeu mongod 端口连通:ss...
MongoDB 故障排查 CentOS 技巧
一 快速定位流程
- 服务状态与端口连通
- 检查服务:sudo systemctl status mongod;异常时查看:sudo journalctl -xeu mongod
- 端口连通:ss -lntp | grep 27017;远程测试:nc -vz 服务器IP 27017
- 配置与访问控制
- 配置文件路径:/etc/mongod.conf;重点项:net.bindIp、net.port、security.authorization
- 防火墙放行:firewall-cmd --list-ports 与 firewall-cmd --add-port=27017/tcp --permanent & & firewall-cmd --reload
- 日志优先
- 默认日志:/var/log/mongodb/mongod.log;实时跟踪:tail -f /var/log/mongodb/mongod.log
- 资源与负载
- 系统资源:top/htop、vmstat 1 5、iostat -xkdz 1、free -h、df -h
- MongoDB 内部:mongostat、mongotop、db.serverStatus()、db.currentOp()、db.getLogComponents() / db.adminCommand({ getLog:1} )
二 常见故障与修复
- 服务无法启动或反复重启
- 查看日志定位 FATAL/ERROR;检查配置语法与目录权限(dbPath、logPath 所属用户为 mongod)
- 磁盘空间不足:df -h;清理或扩容后再启动
- 本地或远程连接失败
- 服务未起:systemctl start mongod
- 端口不通:ss -lntp | grep 27017;云主机安全组/本机防火墙放行 27017
- 绑定地址过严:net.bindIp 设为 0.0.0.0(或包含客户端网段),并开启认证
- 认证失败:使用正确用户名/密码与认证库连接
- 启动时报 “Failed to unlink socket file /tmp/mongodb-27017.sock”
- 原因:异常退出导致 socket 残留且权限异常
- 处理:rm -f /tmp/mongodb-27017.sock;systemctl restart mongod
- 性能突然变差或“卡死”
- 资源瓶颈:iostat 看磁盘 util%、top 看 CPU steal/内存压力、vmstat 看 si/so
- 慢查询/锁:开启慢查询日志(见下文),用 mongotop、db.currentOp() 定位长事务与扫描
- 必要时安全重启:先尝试 graceful 停止,再启动
三 日志与性能分析
- 日志位置与实时查看
- 路径:/var/log/mongodb/mongod.log;实时:tail -f /var/log/mongodb/mongod.log
- 组件与动态查看:db.getLogComponents()、db.adminCommand({ getLog:1} )
- 慢查询与关键事件筛选
- 配置阈值:在 /etc/mongod.conf 的 operationProfiling 设置 slowOpThresholdMs(如 100),并开启 profiling
- 工具链:mtools(mlogfilter、mplotqueries、mloginfo)做时间窗筛选、慢查询统计与可视化
- 运行期指标与可视化
- 实时监控:mongostat(吞吐、连接、锁)、mongotop(集合读写耗时)
- 深入诊断:db.serverStatus()(内存、连接、索引/缓存命中)、db.currentOp()
- 集中化:Filebeat/Logstash → Elasticsearch → Kibana;或 Prometheus + Grafana 做指标大盘
四 系统层面排查命令清单
| 目标 | 命令示例 |
|---|---|
| CPU/负载 | top/htop、vmstat 1 5、mpstat -P ALL 1 |
| 内存 | free -h、vmstat 1 5 |
| 磁盘 I/O | iostat -xkdz 1、iotop -bod5 |
| 网络 | ss -lntp |
| 系统综合 | sar -u 1、sar -r 1、sar -n DEV 1、sar -d 1、nmon |
| 进程/调用 | pidstat -d 1、strace -tttT -p |
| 日志采集 | tail -f /var/log/mongodb/mongod.log、journalctl -xeu mongod |
五 配置与运维加固建议
- 日志轮转与保留
- 使用 logrotate 按日轮转、压缩与保留策略,避免日志无限增长
- 日志级别
- 生产环境优先 warning/error,必要时动态调高排查,排查后恢复
- 安全基线
- 仅开放必要网段到 27017;开启 authentication;最小权限分配
- 备份与恢复
- 定期物理/逻辑备份(mongodump/mongorestore 或文件系统快照),并验证可恢复性
- 变更留痕
- 调整参数前备份 /etc/mongod.conf;变更后观察日志与监控指标至少 15–30 分钟
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: mongodb故障排查centos技巧
本文地址: https://pptw.com/jishu/772133.html
