MongoDB配置CentOS有哪些技巧
导读:MongoDB在CentOS上的配置技巧 1. 安装优化:使用YUM仓库确保版本一致性与便捷性 通过MongoDB官方YUM仓库安装,避免第三方源的兼容性问题,且便于后续版本升级。创建仓库文件/etc/yum.repos.d/mongodb...
MongoDB在CentOS上的配置技巧
1. 安装优化:使用YUM仓库确保版本一致性与便捷性
通过MongoDB官方YUM仓库安装,避免第三方源的兼容性问题,且便于后续版本升级。创建仓库文件/etc/yum.repos.d/mongodb-org.repo
(以MongoDB 6.0为例),内容如下:
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
使用sudo yum install -y mongodb-org
安装,安装完成后启动服务并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
验证状态:sudo systemctl status mongod
(显示active (running)
即为成功)。
2. 网络配置:安全开放端口与灵活绑定IP
默认情况下,MongoDB仅绑定到127.0.0.1
(本地访问)。若需远程访问,修改配置文件/etc/mongod.conf
中的bindIp
:
net:
bindIp: 0.0.0.0 # 允许所有IP访问(生产环境建议限制为特定IP)
port: 27017 # 默认端口,可根据需求修改
修改后重启服务:sudo systemctl restart mongod
。
防火墙设置:若启用firewalld
,开放27017端口:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
安全提醒:生产环境应将bindIp
设置为服务器实际IP(如192.168.1.100
),避免暴露给公网。
3. 安全加固:启用认证与权限管理
MongoDB默认无认证,需开启授权并创建管理员账户:
- 启用认证:修改
/etc/mongod.conf
,添加security.authorization: enabled
:
重启服务使配置生效:security: authorization: enabled # 启用用户权限控制
sudo systemctl restart mongod
。 - 创建管理员用户:通过
mongo
shell登录,执行以下命令(替换your_password
为强密码):use admin db.createUser({ user: "admin", pwd: "your_password", roles: [{ role: "userAdminAnyDatabase", db: "admin" } ] } )
- 远程访问认证:若
bindIp
设置为特定IP,连接时需指定用户名和密码:mongo -u admin -p your_password --authenticationDatabase admin
4. 性能优化:内存、存储与网络调优
- WiredTiger缓存配置:WiredTiger是MongoDB默认存储引擎,合理设置缓存大小(建议为服务器内存的50%-70%),避免内存溢出:
storage: wiredTiger: engineConfig: cacheSizeGB: 4 # 根据服务器内存调整(如8GB内存可设为4GB)
- 索引优化:为查询频繁的字段创建索引,提升查询速度。例如,为
articles
集合的title
字段创建升序索引:
复合索引(多字段)适用于多条件查询,如db.articles.createIndex({ title: 1 } ) // 1表示升序,-1表示降序
author_id
和created_at
的组合:db.articles.createIndex({ author_id: 1, created_at: -1 } )
- 日志与连接优化:
- 开启日志轮转,避免日志文件过大:
systemLog: destination: file path: /var/log/mongodb/mongod.log logAppend: true logRotate: reopen # 日志轮转方式(默认支持)
- 调整最大连接数(默认10000,可根据并发需求调整):
net: maxIncomingConnections: 5000
- 开启日志轮转,避免日志文件过大:
- 硬件优化:使用SSD硬盘(降低I/O延迟)、增加内存(缓存更多数据)、多核CPU(提升并发处理能力)。
5. 高可用性:副本集与分片集群配置
- 副本集:实现数据冗余与高可用性(主节点故障时自动切换从节点)。配置步骤:
- 修改
/etc/mongod.conf
,添加replication.replSetName
(如rs0
):replication: replSetName: rs0
- 重启服务:
sudo systemctl restart mongod
。 - 初始化副本集(在
mongo
shell中执行):rs.initiate()
- 添加从节点(替换
secondary_node_ip
为从节点IP):rs.add("secondary_node_ip:27017")
- 修改
- 分片集群:适用于大规模数据(TB级以上),将数据水平切分到多个分片。配置需设置
config servers
(配置服务器)、shard servers
(分片服务器)和mongos
(路由服务器),步骤较复杂,建议参考MongoDB官方文档。
6. 日志与监控:及时发现性能问题
- 日志分析:使用
mongostat
(实时监控操作频率)和mongotop
(监控集合级读写时间)工具:mongostat # 每秒显示操作次数、延迟等指标 mongotop # 显示每个集合的读写时间(默认1秒刷新)
- 慢查询日志:开启慢查询日志,定位性能瓶颈(如未使用索引的查询)。修改
/etc/mongod.conf
:operationProfiling: mode: slowOp # 记录慢查询 slowOpThresholdMs: 100 # 慢查询阈值(单位:毫秒,默认100ms)
- 第三方监控:使用Prometheus+Grafana组合,实现可视化监控(如CPU使用率、内存占用、连接数等)。
以上技巧覆盖了MongoDB在CentOS上的安装、网络、安全、性能、高可用及监控等核心环节,可根据实际业务需求调整配置参数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB配置CentOS有哪些技巧
本文地址: https://pptw.com/jishu/724546.html