温馨提示×

MongoDB配置Ubuntu需要注意什么

小樊
37
2025-10-08 06:12:49
栏目: 云计算

1. 安装前的系统准备
在Ubuntu上安装MongoDB前,需先更新系统包以确保依赖兼容:sudo apt update && sudo apt upgrade -y。此外,需安装必要依赖(如libcurl4openssl),避免安装过程中出现依赖错误。

2. MongoDB源的正确配置
Ubuntu的MongoDB包需通过官方源安装(而非默认仓库)。需完成以下步骤:

  • 导入MongoDB官方GPG密钥:wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -(若密钥过期,需替换为最新密钥);
  • 创建源列表文件:echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list(将$(lsb_release -cs)替换为Ubuntu版本代号,如focal对应20.04、jammy对应22.04);
  • 更新包列表并安装:sudo apt update && sudo apt install -y mongodb-org

3. 配置文件的关键参数调整
MongoDB的主配置文件为/etc/mongod.conf,需重点修改以下参数:

  • 数据存储路径storage.dbPath需指向有效目录(如/var/lib/mongodb),并确保MongoDB用户(mongodb)对该目录有读写权限(sudo chown -R mongodb:mongodb /var/lib/mongodb);
  • 日志设置systemLog.destination设为filesystemLog.path指定日志文件路径(如/var/log/mongodb/mongod.log),logAppend设为true(避免日志覆盖);
  • 网络绑定net.bindIp默认为127.0.0.1(仅本地连接),若需远程访问,可改为0.0.0.0(需配合防火墙限制IP);
  • 端口设置net.port默认为27017,可根据需求修改(需确保端口未被占用);
  • 存储引擎storage.engine默认为wiredTiger(推荐),可通过storage.wiredTiger.engineConfig.cacheSizeGB限制缓存大小(建议为系统内存的50%-70%)。

4. 安全配置的核心措施

  • 启用身份验证:在security section添加authorization: enabled,强制用户登录;
  • 创建管理员用户:连接MongoDB shell(mongo),切换至admin数据库,执行db.createUser({ user: "admin", pwd: "强密码", roles: [{ role: "root", db: "admin" }]})
  • 限制网络访问:若net.bindIp设为0.0.0.0,需通过防火墙(如ufw)限制访问IP:sudo ufw allow from <信任IP> to any port 27017
  • 启用TLS/SSL加密:生成或获取SSL证书,在net.ssl section配置mode: requireSSLPEMKeyFile(证书路径)、CAFile(CA证书路径),加密客户端与服务器通信。

5. 性能优化的关键方向

  • 硬件资源:确保服务器有足够内存(MongoDB对内存需求较高,建议分配系统内存的50%-70%给WiredTiger缓存),使用SSD磁盘(提升IO性能);
  • 索引优化:为常用查询字段创建索引(如db.collection.createIndex({ field: 1 })),避免全表扫描;
  • 分片部署:若数据量超过单机容量(如TB级),可配置分片集群(设置sharding.clusterRoleshardsvr),将数据分布到多个节点;
  • 系统优化:关闭不必要的系统服务(如cronbluetooth),减少系统负载;调整net.maxIncomingConnections(默认10000,可根据需求修改)限制最大连接数。

6. 日志与监控的设置

  • 日志管理:确保systemLog.path指向有效路径,logAppend设为true,定期检查日志(如tail -f /var/log/mongodb/mongod.log)以排查问题;
  • 监控工具:使用MongoDB自带工具(mongostat查看操作速率、mongotop查看集合级IO)或第三方工具(如Percona Monitoring and Management(PMM))监控性能指标(如CPU、内存、磁盘IO、查询延迟)。

7. 备份与恢复策略
定期备份数据是防止数据丢失的关键。可使用mongodump(逻辑备份,导出为BSON文件)或mongorestore(恢复数据)工具:

  • 全量备份:mongodump --host <主机IP> --port 27017 --username <管理员> --password <密码> --authenticationDatabase admin --out /backup/mongodump_$(date +%F)
  • 增量备份:结合oplog(需配置复制集)实现;
  • 恢复数据:mongorestore --host <主机IP> --port 27017 --username <管理员> --password <密码> --authenticationDatabase admin /backup/mongodump_$(date +%F)

8. 版本与更新管理

  • 版本兼容:确保MongoDB版本与Ubuntu版本匹配(如Ubuntu 22.04对应MongoDB 4.4+),避免因版本不兼容导致安装失败;
  • 定期升级:关注MongoDB官方发布的安全补丁和版本更新,及时升级(如sudo apt update && sudo apt upgrade mongodb-org),修复已知漏洞。

0