MongoDB配置Ubuntu要注意哪些
导读:1. 安装官方源与版本选择 在Ubuntu上配置MongoDB时,优先通过官方源安装以确保版本兼容性与安全性。避免直接使用apt install mongodb(可能安装较旧版本),应执行以下步骤添加MongoDB官方仓库:导入GPG公钥(...
1. 安装官方源与版本选择
在Ubuntu上配置MongoDB时,优先通过官方源安装以确保版本兼容性与安全性。避免直接使用apt install 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
),更新包列表后安装mongodb-org
。需注意Ubuntu版本与MongoDB版本的适配性(如Ubuntu 22.04对应jammy
源)。
2. 配置文件路径与关键参数调整
MongoDB的主配置文件位于/etc/mongod.conf
,修改后需重启服务(sudo systemctl restart mongod
)生效。关键参数需重点设置:
- 网络配置:
net.bindIp
默认为127.0.0.1
(仅本地访问),若需远程连接可改为0.0.0.0
(需配合防火墙限制IP);net.port
默认27017
,可根据需求修改(需确保端口未被占用)。 - 安全配置:
security.authorization
需设置为enabled
(启用身份验证,防止未授权访问);若启用TLS/SSL,需添加net.ssl.mode: requireSSL
及证书路径(PEMKeyFile
、CAFile
)。 - 存储配置:
storage.dbPath
指定数据存储路径(默认/var/lib/mongodb
),需确保目录存在且权限正确(chown -R mongodb:mongodb /var/lib/mongodb
);storage.journal.enabled
需设为true
(启用日志,确保数据持久性)。 - 进程管理:
processManagement.fork
设为true
(后台运行),pidFilePath
指定PID文件路径(如/var/run/mongodb/mongod.pid
)。
3. 安全配置要点
- 启用身份验证:在
security
section添加authorization: enabled
,重启服务后,需通过mongo
shell创建管理员用户(use admin; db.createUser({ user: "admin", pwd: "强密码", roles: [{ role: "root", db: "admin"} ]} )
),避免未授权访问。 - 限制网络访问:通过
net.bindIp
仅允许可信IP连接(如127.0.0.1,192.168.1.100
),并结合Ubuntu防火墙(ufw
)开放MongoDB端口(sudo ufw allow from 192.168.1.100 to any port 27017
)。 - 禁用透明大页面(THP):THP会影响MongoDB性能,需创建服务文件
/etc/systemd/system/disable-thp.service
,内容为[Unit] Description=Disable Transparent Huge Pages (THP); [Service] Type=simple; ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled & & echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"; [Install] WantedBy=multi-user.target
,然后执行sudo systemctl daemon-reload; sudo systemctl enable --now disable-thp.service
。 - 设置资源限制:编辑
/etc/security/limits.d/mongodb.conf
,增加mongod soft nproc 64000; mongod hard nproc 64000; mongod soft nofile 64000; mongod hard nofile 64000
(限制进程数与文件描述符,避免资源耗尽)。
4. 性能优化技巧
- 内存配置:调整
storage.wiredTiger.engineConfig.cacheSizeGB
(WiredTiger存储引擎缓存大小),建议设置为系统总内存的50%-70%(如16GB内存可设为8GB),避免占用过多内存导致系统卡顿。 - 索引优化:为常用查询字段创建索引(如
db.collection.createIndex({ field: 1} )
),提升查询性能;避免过度索引(会增加写入开销)。 - 日志与监控:开启操作日志(
operationProfiling.mode: slowOp
,记录慢查询)、审计日志(auditLog.destination: file
,记录用户操作),使用mongostat
(监控操作速率)、mongotop
(监控集合级读写时间)或第三方工具(如PMM)实时监控性能。 - 分片与复制集:数据量大时启用分片(
sharding.clusterRole: shardsvr
,分散数据到多个节点);高可用需求启用复制集(replication.replSetName: myReplSet
,自动故障转移)。
5. 日志与维护管理
- 日志配置:
systemLog.destination
设为file
(日志输出到文件),systemLog.path
指定路径(如/var/log/mongodb/mongod.log
),logAppend: true
(追加日志,避免覆盖)。 - 数据备份:定期使用
mongodump
(逻辑备份,mongodump --host localhost --port 27017 --out /backup/mongodump
)或mongorestore
(恢复数据)备份数据,建议备份到异地存储。 - 日志轮转:配置日志轮转(如使用
logrotate
),避免日志文件过大占用磁盘空间(示例配置:/etc/logrotate.d/mongodb
,内容为/var/log/mongodb/mongod.log { daily; rotate 7; compress; missingok; notifempty; sharedscripts; postrotate; systemctl reload mongod; endscript; }
)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB配置Ubuntu要注意哪些
本文地址: https://pptw.com/jishu/720578.html