首页主机资讯CentOS MongoDB集群配置步骤是什么

CentOS MongoDB集群配置步骤是什么

时间2026-01-21 03:00:04发布访客分类主机资讯浏览1415
导读:CentOS 上搭建 MongoDB 分片集群的标准步骤 一 架构与端口规划 组件与角色 Config Server(CSRS):存储集群元数据,建议3 节点副本集,端口示例:27019。 Shard:实际存储数据,每个分片为副本集,常...

CentOS 上搭建 MongoDB 分片集群的标准步骤

一 架构与端口规划

  • 组件与角色
    • Config Server(CSRS):存储集群元数据,建议3 节点副本集,端口示例:27019
    • Shard:实际存储数据,每个分片为副本集,常用端口示例:27018
    • mongos:查询路由,入口服务,常用端口:27017,可按需部署多个。
  • 典型端口与目录
    • 配置服务器:dbPath /var/lib/configdb,日志 /var/log/mongodb/configsvr.log
    • 分片服务器:dbPath /var/lib/mongo,日志 /var/log/mongodb/mongod.log
    • mongos:日志 /var/log/mongodb/mongos.log
  • 系统前置
    • 建议开启 NTP 时间同步、关闭 SELinux、配置 /etc/hosts 解析、放通防火墙端口(见下文命令)。

二 安装 MongoDB

  • 添加 YUM 源(以 4.4 为例,可按需调整版本)
    • 新建文件:/etc/yum.repos.d/mongodb-org-4.4.repo
    • 内容:
      • [mongodb-org-4.4]
      • name=MongoDB Repository
      • baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
      • gpgcheck=1
      • enabled=1
      • gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
  • 安装与目录权限
    • 安装:sudo yum install -y mongodb-org
    • 建议创建 mongod 系统用户并调整目录属主(/var/lib/mongo、/var/log/mongodb 等)。

三 部署与初始化

    1. 配置服务器副本集(CSRS)
    • 配置文件示例(/etc/mongod.conf 或分文件):
      • storage.dbPath: /var/lib/configdb
      • net.port: 27019;net.bindIp: 0.0.0.0(或内网 IP)
      • replication.replSetName: configReplSet
      • sharding.clusterRole: configsvr
    • 启动每个节点后连接任一节点初始化:
      • mongo --port 27019
      • rs.initiate({ _id: “configReplSet”, configsvr: true, members: [ { _id: 0, host: “cfg1_ip:27019” } , { _id: 1, host: “cfg2_ip:27019” } , { _id: 2, host: “cfg3_ip:27019” } ] } )
    1. 分片副本集(示例创建 3 个分片,每个分片 3 节点)
    • 分片配置文件示例(/etc/mongod-shardX.conf):
      • storage.dbPath: /var/lib/mongo
      • net.port: 27018;net.bindIp: 0.0.0.0
      • replication.replSetName: shardX(X=1,2,3)
      • sharding.clusterRole: shardsvr
    • 启动各分片节点后,连接任一节点初始化(以 shard1 为例):
      • mongo --port 27018
      • rs.initiate({ _id: “shard1”, members: [ { _id: 0, host: “s1a_ip:27018” } , { _id: 1, host: “s1b_ip:27018” } , { _id: 2, host: “s1c_ip:27018” } ] } )
    • 重复为 shard2shard3 执行相同步骤(注意 replSetName 与端口不同)。
    1. mongos 路由
    • 启动命令(示例):
      • mongos --configdb configReplSet/cfg1_ip:27019,cfg2_ip:27019,cfg3_ip:27019 --port 27017 --bind_ip 0.0.0.0
    • 连接 mongos:mongo --port 27017
    • 添加分片:
      • sh.addShard(“shard1/s1a_ip:27018,s1b_ip:27018,s1c_ip:27018”)
      • sh.addShard(“shard2/s2a_ip:27018,s2b_ip:27018,s2c_ip:27018”)
      • sh.addShard(“shard3/s3a_ip:27018,s3b_ip:27018,s3c_ip:27018”)
    • 启用数据库与集合分片(示例库 test,集合 t1,按 id 哈希分片):
      • sh.enableSharding(“test”)
      • sh.shardCollection(“test.t1”, { id: “hashed” } )
    1. 验证
    • 查看分片状态:sh.status()
    • 查看各副本集:rs.status()(在各分片/配置服务器上执行)。

四 防火墙与系统优化

  • 防火墙放通(CentOS 7+ firewalld)
    • 放通端口:27017(mongos)、27018(shard)、27019(configsvr)
    • 命令示例:
      • firewall-cmd --zone=public --add-port=27017/tcp --permanent
      • firewall-cmd --zone=public --add-port=27018/tcp --permanent
      • firewall-cmd --zone=public --add-port=27019/tcp --permanent
      • firewall-cmd --reload
  • 系统资源与内核参数(示例)
    • limits.conf:
        • soft nofile 1048576;* hard nofile 1048576
        • soft nproc 524288;* hard nproc 524288
    • 可选:/etc/profile 增加 ulimit -s 1024;必要时安装 numactl 并校验 ulimit -a 输出。

五 生产环境安全与运维要点

  • 安全加固
    • 启用 keyFile 实现内部认证(各 mongod/mongos 一致),并开启 authorization: enabled;key 文件权限 600,属主 mongod:mongod
    • 建议启用 TLS/SSL 加密节点间与客户端通信;限制 bindIp 为内网网段;为管理员设置强口令与最小权限角色。
  • 高可用与容量
    • Config Server 与每个 Shard 均使用 3 节点副本集;可按需部署多个 mongos 作为入口,避免单点。
    • 合理选择 分片键(shard key)hashed 分片 策略,避免热点与跨分片排序/聚合性能劣化;上线前评估均衡器与迁移窗口。
  • 监控与备份
    • 常用工具:mongostat、mongotop、MongoDB Compass;结合 日志轮转备份策略(如文件系统快照/逻辑备份)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS MongoDB集群配置步骤是什么
本文地址: https://pptw.com/jishu/788010.html
MongoDB在CentOS如何进行日志管理 centos redis如何配置安全组规则

游客 回复需填写必要信息