备注:

mongodb学习资料 http://www.runoob.com/mongodb/mongodb-tutorial.html

一、 集群的三个组件:

  1. mongos(query routers):查询路由,负责client的连接,并把任务分配给shards,然后收集结果。
  2. config server:配置服务器,保存了集群的元数据信息,查询路由通过配置服务器的配置信息决定把任务分配+到哪个shards上。
  3. shards server:分片,存储数据和执行计算。

二、 集群架构图:

MongoDB高可用集群+MMS集群监控搭建-LMLPHP

三、 集群的IP及端口规划:

RouterMongos(17017)Mongos(17017) 
ConfigConfig server1(27017)Config server2(27017)Config server3(27017)
 Shard1-主(37017)Shard2-主(47017)Shard3-主(57017)
ShardShard2-从(47017)Shard1-从(37017)Shard1-从(37017)
 Shard3-从(57017)Shard3-从(57017)Shard2-从(47017)

四、 集群在LINUX上的目录规划:

MongoDB高可用集群+MMS集群监控搭建-LMLPHP

五、 开始搭建集群:

1.下载软件:https://www.mongodb.com/download-center#community

2.创建目录:

3.解压和复制:

4.配置config server

1) 新建config实例启动所需的配置文件,并启动实例。【每台服务器顺序执行以下操作】

2) 初始化config server。任意进入一台服务器,配置config server的副本集

5.启动mongos server(路由服务)

6.配置shard server(分片服务)

1) 新建config实例启动所需的配置文件,并启动实例。每台服务器顺序执行以下操作

2) 初始化shard server。任意进入一台服务器,配置每个shard的副本集

[root@mini1 bin]# ./mongo 192.168.141.201:37017
>rs.initiate({_id:"shard1RS",members:[{_id:1,host:"192.168.141.201:37017",priority:2},{_id:2,host:"192.168.141.202:37017"},{_id:3,host:"192.168.141.203:37017"}]})
{ "ok" : 1 } [root@mini1 bin]# ./mongo 192.168.141.201:47017
>rs.initiate({_id:"shard2RS",members:[{_id:1,host:"192.168.141.202:47017",priority:2},{_id:2,host:"192.168.141.201:47017"},{_id:3,host:"192.168.141.203:47017"}]})
{ "ok" : 1 } [root@mini1 bin]# ./mongo 192.168.141.201:57017
>rs.initiate({_id:"shard3RS",members:[{_id:1,host:"192.168.141.203:57017",priority:2},{_id:2,host:"192.168.141.201:57017"},{_id:3,host:"192.168.141.202:57017"}]})
{ "ok" : 1 }

7.配置分片

[root@mini1 /]# cd /home/mongo/router/bin/
[root@mini1 bin]# ./mongo --port 17017
>use admin
>db.runCommand({"addShard":"shard1RS/192.168.141.201:37017" ,"maxsize":1024})
>db.runCommand({"addShard":"shard2RS/192.168.141.202:47017" ,"maxsize":1024})
>db.runCommand({"addShard":"shard3RS/192.168.141.203:57017" ,"maxsize":1024})
注:可用命令db.runCommand({listshards:1}) 查看分片的状态信息

8.使用

在使用的时候,需要对数据库开启分片功能,并对数据库下的表的字段指定分片算法。
>use admin
--对库hdctest开启分片
>db.runCommand({"enablesharding":"hdctest"})
--对库hdctest下的表person按字段ID配置hash分库算法
>db.runCommand({"shardcollection":"hdctest.person","key":{_id:'hashed'}})

9.其他注意

在登陆从库查看数据信息的时候,会报一个错误,如下图:
MongoDB高可用集群+MMS集群监控搭建-LMLPHP
解决办法:执行命令db.getMongo().setSlaveOk()后,即可。

六、集群监控(mongodb-mms)

MongoDB的管理服务(MMS)是用于监控和备份MongoDB的基础设施服务,提供实时的报告,可视化,警报,硬件指标,并以直观的Web仪表盘展现数据。只需要安装上一个轻量级的监控代理,来收集mongodb运行信息并传回给MMS。MMS用户界面允许用户查看可视化的数据和设置警报。其中监控的服务是免费的,备份的服务是需要收费的。

1.分配一台符合MMS硬件要求的服务器.

2.安装一个单独的mongodb复本集作为MMS应用数据库。(此步骤略)

3.安装SMTP邮件服务器

4. 安装MMS应用程序包

https://www.mongodb.com/download-center#ops-manager
MongoDB高可用集群+MMS集群监控搭建-LMLPHP

5. 配置MMS服务的URL、电子邮件、mongo URI连接串

修改/mms/conf/conf-mms.properties文件,以下参数必须设置:
## MMS的监控服务,完整的URL
mms.centralUrl=http://mini1:8080
## MMS备份服务的用户名和端口
mms.backupCentralUrl=http://mini1:8081
##发送一般的电子邮件
mms.fromEmailAddr=
## 发送回复到一般的电子邮件
mms.replyToEmailAddr=
## 从MMS管理员发送消息
mms.adminFromEmailAddr=
## 发送信息或回复到MMS管理员
mms.adminEmailAddr=
## 发送退回邮件
mms.bounceEmailAddr=
## MMS连接mongodb服务器的连接串,即MMS应用程序数据库
mongo.mongoUri
## 如果mongo.mongoUri使用的是复制集,需要指定复制集的名称
mongo.replicaSet

6.启动MMS服务

启动mongodb-mms服务:mongodb-mms start
MongoDB高可用集群+MMS集群监控搭建-LMLPHP
至此,mms 的监控功能就安装好了。

7.访问http://mini1:8080来进行管理。

MongoDB高可用集群+MMS集群监控搭建-LMLPHP

8.把已有的集群部署到MMS上。

MongoDB高可用集群+MMS集群监控搭建-LMLPHP

9.部署完成后,即可看到整个集群的运行状况。

MongoDB高可用集群+MMS集群监控搭建-LMLPHP

转自:https://blog.csdn.net/silentwolfyh/article/details/54136867

05-08 08:14