溫馨提示×

MongoDB配置CentOS要注意啥

小樊
42
2025-10-13 03:08:00
欄目: 云計算

1. 安裝官方YUM倉庫
在CentOS上安裝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安裝,避免從第三方源下載導致的安全風險。

2. 配置文件路徑與關鍵參數設置
MongoDB的主配置文件位于/etc/mongod.conf,需重點調整以下參數:

  • 數據與日志路徑:設置storage.dbPath(如/var/lib/mongo)指定數據存儲目錄,systemLog.path(如/var/log/mongodb/mongod.log)指定日志文件路徑,確保目錄存在且權限正確(chown -R mongod:mongod /var/lib/mongo /var/log/mongodb)。
  • 綁定IPnet.bindIp默認為127.0.0.1(僅本地訪問),若需遠程訪問,可改為0.0.0.0(允許所有IP)或指定具體IP(如192.168.1.100),但需配合防火墻限制訪問源。
  • 端口設置net.port默認為27017,可根據需求修改,但需確保端口未被占用。
  • 日志追加systemLog.logAppend設置為true,避免日志文件被覆蓋,便于故障排查。

3. 安全配置(必做項)

  • 啟用身份驗證:在security section添加authorization: enabled,強制用戶登錄后才能訪問數據庫。修改后需重啟服務(sudo systemctl restart mongod)。
  • 創建管理員用戶:使用mongo命令進入shell,切換至admin數據庫,創建具有管理權限的用戶(如admin):
    use admin
    db.createUser({
      user: "admin",
      pwd: "StrongPassword123!",
      roles: ["root"]
    })
    
  • 限制遠程訪問:若bindIp設置為0.0.0.0,需通過防火墻限制僅信任IP可訪問MongoDB端口(默認27017),例如使用firewall-cmd
    sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
    sudo firewall-cmd --reload
    
  • 啟用SSL/TLS(可選但推薦):通過配置net.ssl.mode: requireSSL、net.ssl.PEMKeyFile(證書路徑)和net.ssl.CAFile(CA證書路徑),加密客戶端與服務器之間的通信,防止數據泄露。

4. 服務管理與開機自啟
安裝完成后,使用以下命令啟動MongoDB服務并設置開機自啟:

sudo systemctl start mongod
sudo systemctl enable mongod

通過sudo systemctl status mongod檢查服務狀態,確保顯示為active (running)。

5. SELinux配置(若啟用)
若系統啟用了SELinux(默認開啟),需調整策略以允許MongoDB訪問數據目錄和日志文件。執行以下命令:

sudo semanage fcontext -a -t mongod_var_lib_t "/var/lib/mongo(/.*)?"
sudo semanage fcontext -a -t mongod_log_t "/var/log/mongodb(/.*)?"
sudo restorecon -Rv /var/lib/mongo /var/log/mongodb

或臨時設置為寬松模式(測試環境使用):編輯/etc/selinux/config,將SELINUX=enforcing改為SELINUX=permissive,然后重啟系統。

6. 性能優化配置

  • WiredTiger緩存大小:在storage section添加wiredTiger.engineConfig.cacheSizeGB,設置為物理內存的50%(如8GB內存設置為4GB),避免內存占用過高影響系統性能。
  • oplog大小:對于副本集,調整replication.oplogSizeMB(默認為磁盤空間的5%),確保足夠空間存儲操作日志,防止復制中斷。
  • 日志輪轉:啟用systemLog.logRotate: reopen,并配置logrotate工具,定期分割日志文件,避免日志過大占用磁盤空間。

7. 監控與維護

  • 定期備份:使用mongodump工具定期備份數據(如每日備份),存儲至異地或云存儲,防止數據丟失。
  • 日志監控:通過tail -f /var/log/mongodb/mongod.log實時監控日志,關注錯誤信息(如連接超時、磁盤空間不足)。
  • 版本更新:定期檢查MongoDB官方更新,及時升級到最新穩定版本,修復安全漏洞并提升性能。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女