centos

centos mongodb故障排查技巧

小樊
63
2025-08-16 15:15:42
栏目: 云计算

以下是CentOS上排查MongoDB故障的核心技巧,覆盖服务、配置、日志、资源等关键维度:

一、基础服务与状态检查

  1. 服务状态与重启

    sudo systemctl status mongod  # 检查服务是否运行  
    sudo systemctl restart mongod # 重启服务  
    sudo systemctl enable mongod  # 设置开机自启  
    
  2. 配置文件验证

    • 检查/etc/mongod.conf关键参数:
      • dbPath:数据目录是否存在且权限正确(需为mongodb用户)。
      • logPath:日志文件路径是否可写。
      • port:端口是否被占用(默认27017)。
    • 使用mongod --config /etc/mongod.conf --fork手动启动并查看实时错误。

二、日志分析与异常定位

  1. 核心日志文件

    • 系统日志/var/log/mongodb/mongod.log,记录启动失败、连接异常等。
      sudo tail -f /var/log/mongodb/mongod.log  # 实时查看日志  
      
    • 系统级日志journalctl -xe | grep mongod,排查权限或SELinux问题。
  2. 日志分析工具

    • mtools:支持日志过滤(如慢查询)、可视化分析。
      mlogfilter mongod.log --slow  # 筛选慢查询  
      mplotqueries mongod.log --type response_time  # 生成响应时间图表  
      

三、资源与环境排查

  1. 系统资源监控

    • 使用top/htop查看CPU、内存占用,确保无资源耗尽。
    • 检查磁盘空间:df -h,确保数据目录所在分区有足够空间。
  2. 端口与网络

    • 检查端口占用:sudo lsof -i :27017,终止冲突进程。
    • 配置防火墙放行端口:
      sudo firewall-cmd --add-port=27017/tcp --permanent  
      sudo firewall-cmd --reload  
      

四、权限与安全配置

  1. 数据目录权限

    sudo chown -R mongodb:mongodb /var/lib/mongo  # 确保数据目录归属正确  
    sudo chmod -R 755 /var/lib/mongo  
    
  2. SELinux处理

    • 临时关闭SELinux测试:sudo setenforce 0,若问题解决需调整策略。
    • 永久修改:编辑/etc/selinux/config,设置SELINUX=permissive

五、高级故障场景

  1. 崩溃转储分析

    • 若服务异常退出,使用crash工具分析内核转储文件(需安装)。
  2. 版本与升级

    • 检查当前版本:mongod --version,升级到最新稳定版以修复已知问题。

参考来源

0
看了该问题的人还看了