在CentOS上优化MongoDB配置涉及多个方面,包括安装、配置、安全性和性能调优等。以下是一个详细的指南:
设置MongoDB的YUM仓库:
创建一个.repo文件来定义如何从官方MongoDB存储库下载软件包。
sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo
添加以下内容:
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
安装MongoDB:
sudo yum install -y mongodb-org
创建必要的目录:
为MongoDB的数据和日志创建相应的目录。
sudo mkdir -p /data/mongodb/data
sudo mkdir -p /data/mongodb/log
sudo chown -R mongod:mongod /data/mongodb
编辑配置文件:
编辑MongoDB的主要配置文件 /etc/mongod.conf
。
sudo vi /etc/mongod.conf
根据需要调整以下参数:
storage.dbPath
: 数据目录路径,例如 /data/mongodb/data
。systemLog.path
: 日志文件路径,例如 /data/mongodb/log/mongod.log
。net.bindIp
: 绑定IP地址,例如 0.0.0.0
以监听所有网络接口。net.port
: 端口号,例如 27017
。processManagement.fork
: 设置为 true
以启用守护进程模式。security.authorization
: 设置为 enabled
以启用访问控制。storage:
dbPath: /data/mongodb/data
systemLog:
path: /data/mongodb/log/mongod.log
net:
bindIp: 0.0.0.0
port: 27017
processManagement:
fork: true
security:
authorization: enabled
启动MongoDB服务:
sudo systemctl start mongod
设置开机自启动:
sudo systemctl enable mongod
SELinux配置(可选):
如果启用了SELinux,可能需要调整SELinux策略以允许MongoDB正常运行。
sudo semanage fcontext -a -t mongod_db_t "/data/mongodb/data(/.*)?"
sudo restorecon -Rv /data/mongodb
环境变量(可选):
将MongoDB的二进制文件路径添加到系统的环境变量中。
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >> /etc/profile
source /etc/profile
调整WiredTiger缓存大小:
通过设置 eviction_trigger
和 eviction_target
参数来控制WiredTiger缓存的使用量。
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "eviction=(threads_min=4,threads_max=4,eviction_trigger=95,eviction_target=80)" })
限制脏页数量:
通过设置 eviction_dirty_trigger
和 eviction_dirty_target
参数来限制缓存中的脏数据数量。
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "eviction=(threads_min=4,threads_max=4,eviction_trigger=20,eviction_dirty_target=5)" })
驱逐线程数量:
通过设置 eviction=(threads_min=4,threads_max=20)
来控制驱逐线程的数量。
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "eviction=(threads_min=4,threads_max=20)" })
启用身份验证:
编辑MongoDB配置文件,将 security.authorization
设置为 enabled
。
security:
authorization: enabled
重启MongoDB服务以应用配置变更。
sudo systemctl restart mongod
创建管理员用户:
连接到MongoDB shell并创建管理员用户。
mongo
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
通过以上步骤,你可以在CentOS上优化MongoDB配置,确保其性能、安全性和可靠性。更多详细内容,请参考官方文档或其他资源获取更多帮助。