首页主机资讯mongodb故障排查centos技巧

mongodb故障排查centos技巧

时间2025-12-15 22:20:04发布访客分类主机资讯浏览1476
导读: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
centos中mongodb定时任务设置 mongodb性能测试centos工具

游客 回复需填写必要信息