Ubuntu MongoDB网络配置与优化
导读:Ubuntu 上 MongoDB 的网络配置与安全加固 修改网络监听:编辑配置文件 /etc/mongod.conf,将 net.bindIp 从 127.0.0.1 改为服务器的内网地址或 0.0.0.0(测试环境),生产环境建议仅绑定...
Ubuntu 上 MongoDB 的网络配置与安全加固
- 修改网络监听:编辑配置文件 /etc/mongod.conf,将 net.bindIp 从 127.0.0.1 改为服务器的内网地址或 0.0.0.0(测试环境),生产环境建议仅绑定内网接口,例如:net.bindIp: 127.0.0.1,192.168.1.100。端口保持默认 27017 或按需修改。完成后重启服务:sudo systemctl restart mongod。
- 启用身份认证:在 /etc/mongod.conf 中开启 security.authorization: enabled,重启后用 mongo shell 创建管理员:use admin; db.createUser({ user:“admin”,pwd:“StrongPassword123!”,roles:[“root”]} )。远程连接需指定认证库:mongo --host --port 27017 -u admin -p --authenticationDatabase admin。
- 防火墙限制来源:使用 UFW 仅放行可信网段,例如:sudo ufw allow from 192.168.1.0/24 to any port 27017;如之前放行了 0.0.0.0/0,请删除宽松规则后再添加网段规则。云上同时收紧安全组/防火墙组,仅允许应用所在子网访问 27017/tcp。
- 可选加密传输:为防范窃听与中间人攻击,配置 TLS/SSL(在 mongod.conf 中设置 ssl.mode、证书与密钥路径),强制客户端以加密方式连接。
- 变更验证:本地执行 mongo --host 127.0.0.1 --eval “db.runCommand({ ping:1} )” 应返回 { “ok” : 1 } ;远程仅允许来自已放行网段的连接。
性能优化关键参数与建议
- 内存与缓存:WiredTiger 默认缓存约为 (50% × RAM − 1GB),上限 256MB。若工作集较大,可在 /etc/mongod.conf 调整:storage.wiredTiger.engineConfig.cacheSizeGB(例如 8–12GB,视总内存与应用而定)。通过 db.serverStatus().wiredTiger.cache 观察 cache usage、eviction、overflow 等指标,确认是否需要增减缓存。
- 连接与并发:根据业务峰值设置 net.maxIncomingConnections(默认通常为 65536,实际应结合文件描述符与内存规划调小到合理上限,避免资源被连接耗尽)。
- 慢查询与排序:开启并分级设置 operation.profiling(如 slowOpThresholdMs、mode),定位慢查询;必要时调大 internalQueryExecMaxBlockingSortBytes 以避免磁盘排序,但需控制内存使用。
- 压缩与存储:在 storage.wiredTiger.collectionConfig.blockCompressor 选择 snappy/zstd 平衡 CPU 与压缩率;SSD 能显著改善随机 IO 与检查点性能。
- 监控与诊断:持续使用 mongostat、mongotop 观察吞吐、锁、队列与热点集合;对关键查询使用 explain(“executionStats”) 验证索引命中与扫描方式。
网络与连接排错清单
- 服务与端口:确认 mongod 已启动(sudo systemctl status mongod),端口监听正常(ss -lntp | grep 27017 或 netstat -tulnp | grep 27017)。
- 配置生效:核对 /etc/mongod.conf 中 bindIp/port 是否为期望值,修改后必须重启;日志路径 /var/log/mongodb/mongod.log 无报错(sudo tail -f /var/log/mongodb/mongod.log)。
- 防火墙与安全组:UFW 规则是否仅允许 192.168.1.0/24 等可信网段访问 27017/tcp;云实例安全组同样需要放行对应来源。
- 认证与来源:远程连接必须提供用户名、密码与认证库(–authenticationDatabase admin);若仍失败,临时在本地验证:mongo --host 127.0.0.1 --eval “db.runCommand({ ping:1} )”。
生产环境推荐配置示例
- 网络与端口:net.bindIp: 127.0.0.1,192.168.1.100;net.port: 27017。
- 安全:security.authorization: enabled;启用 TLS/SSL;UFW 规则仅放行 192.168.1.0/24 到 27017/tcp。
- 性能(示例为 16GB 内存主机):storage.wiredTiger.engineConfig.cacheSizeGB: 8;net.maxIncomingConnections: 按并发与 FD 规划设置(如 4096–16384);operation.profiling.mode: slowOp;operation.profiling.slowOpThresholdMs: 100;storage.wiredTiger.collectionConfig.blockCompressor: snappy。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MongoDB网络配置与优化
本文地址: https://pptw.com/jishu/788915.html
