温馨提示×

MongoDB Ubuntu配置中注意什么

小樊
33
2026-01-01 10:01:11
栏目: 云计算

MongoDB 在 Ubuntu 配置的注意事项

一 安装与源选择

  • 优先使用 MongoDB 官方 APT 仓库 与对应版本的 GPG 公钥,避免系统自带旧包带来的兼容与安全风险。示例密钥与源(以 Ubuntu 22.04 Jammy 为例):导入密钥 curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg;写入源 echo “deb [signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list;随后 sudo apt update && sudo apt install -y mongodb-org。安装完成后用 sudo systemctl enable --now mongod 启动并设置开机自启。建议锁定版本(如 echo “mongodb-org hold” | sudo dpkg --set-selections)避免非预期升级。

二 核心配置要点

  • 配置文件为 /etc/mongod.conf(YAML 格式),注意缩进使用空格。常用关键项:
    • 网络与端口:net.bindIp(默认 127.0.0.1,仅本地;远程访问可改为内网 IP 或 0.0.0.0,但生产应限制来源)、net.port(默认 27017)。
    • 存储与日志:storage.dbPath(Ubuntu 常见为 /var/lib/mongodb)、storage.journal.enabled: true;systemLog.destination: file、systemLog.path(如 /var/log/mongodb/mongod.log)、systemLog.logAppend: true。
    • 进程管理:processManagement.fork、processManagement.pidFilePath(按需)。
    • 安全:security.authorization: enabled(启用 RBAC 认证)。
    • 性能(可选):storage.wiredTiger.engineConfig.cacheSizeGB(按内存与业务调优)。修改配置后执行 sudo systemctl restart mongod 生效。

三 安全加固

  • 启用认证与最小权限:在 mongod.conf 中设置 security.authorization: enabled,重启后用 mongosh 连接并创建管理员(如 use admin; db.createUser({user:“admin”,pwd:“StrongPass!”,roles:[“root”]})),应用使用独立账号并限定库级权限。
  • 限制网络暴露:优先仅监听内网接口(如 bindIp: 内网IP);若必须公网,配合 TLS/SSL 加密通信(net.ssl.mode: requireSSL,配置 PEMKeyFile/CAFile),并严格限制来源 IP。
  • 防火墙与端口:使用 UFW 仅放行必要来源,例如 sudo ufw allow from 192.168.1.0/24 to any port 27017;避免对 0.0.0.0/0 开放 27017。
  • 审计与监控:可按需开启审计日志(systemLog 与 auditLog 配置项),并使用 mongostat、mongotop 或 PMM 做性能与健康监控。

四 权限目录与常见故障

  • 目录与权限:确保数据目录(如 /var/lib/mongodb)与日志目录(如 /var/log/mongodb)存在且属主为 mongodb:mongodb,否则服务可能启动失败。必要时执行 sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb。
  • 服务与日志排错:使用 sudo systemctl status mongod 查看状态,若失败用 journalctl -u mongod 或查看 /var/log/mongodb/mongod.log 定位;常见原因包括配置项拼写错误、路径不存在、端口被占用(可用 ss -tulnp | grep 27017 或 netstat -tulnp | grep 27017 排查)、权限不足等。
  • 资源与端口冲突:磁盘空间不足(df -h)、内存紧张或 WiredTiger 缓存设置不当都会影响稳定性;端口冲突需调整 net.port 并重启服务。

五 运行与维护

  • 备份与恢复:定期使用 mongodump 做逻辑备份(如 mongodump --out /path/to/backup),重要数据建议结合文件系统快照或云厂商备份方案,并定期演练恢复流程。
  • 性能与稳定性:生产环境建议禁用 透明大页(THP) 以降低延迟抖动;结合 wiredTiger.cacheSizeGB、maxIncomingConnections 等参数按负载调优,并持续通过监控与慢查询分析优化索引与查询。
  • 版本与升级:保持 小版本补丁 及时更新;跨大版本升级前先在测试环境验证,并按需使用包管理器的版本锁定策略避免意外升级。

0