溫馨提示×

MongoDB配置CentOS有哪些技巧

小樊
40
2025-10-13 03:11:09
欄目: 云計算

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默認存儲引擎,合理設置緩存大?。ńㄗh為服務器內存的50%-70%),避免內存溢出:
    storage:
      wiredTiger:
        engineConfig:
          cacheSizeGB: 4  # 根據服務器內存調整(如8GB內存可設為4GB)
    
  • 索引優化:為查詢頻繁的字段創建索引,提升查詢速度。例如,為articles集合的title字段創建升序索引:
    db.articles.createIndex({ title: 1 })  // 1表示升序,-1表示降序
    
    復合索引(多字段)適用于多條件查詢,如author_idcreated_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. 高可用性:副本集與分片集群配置

  • 副本集:實現數據冗余與高可用性(主節點故障時自動切換從節點)。配置步驟:
    1. 修改/etc/mongod.conf,添加replication.replSetName(如rs0):
      replication:
        replSetName: rs0
      
    2. 重啟服務:sudo systemctl restart mongod。
    3. 初始化副本集(在mongo shell中執行):
      rs.initiate()
      
    4. 添加從節點(替換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上的安裝、網絡、安全、性能、高可用及監控等核心環節,可根據實際業務需求調整配置參數。

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