说明:
mongodb副本集模式中有primary节点(也就是主mongo), secondary节点(从mongo)
判断主mongo,从mongo的方法:
分别在所有包含mongo服务的节点上执行如下命令:
mongo
如果有某个节点的输出是:
ceilometer:PRIMARY>
就表明这个节点是主mongodb
如果有某个节点的输出是:
ceilometer:SECONDARY>
就表明这个节点是从mongodb
1 修改mongodb副本集模式中默认端口的的思路
先进入主mongo中,
先移除第一个从mongo,将从mongo中配置的端口号修改,然后重新启动该从mongo,
最后再从主mongo中将该从mongo加入到mongo集群中;
然后对另一个从mongo也进行上述操作,至此,就完成了两个从mongo的端口号的修改。
最后,停止主mongo,让其发生主备切换,在新的主mongo中移除原来老的主mongo,
并修改默认端口,然后将重启老的主mongo,并将该老的主mongo加入到集群中。
只此,mongodb副本集模式中的所有mongo服务都已经修改了端口号。
2 修改mongodb的默认端口号
步骤0: 放行新的mongodb端口号
在每个包含mongodb的节点执行如下命令:
iptables -I INPUT -p tcp -m tcp --dport 27117 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
注意:
这里27117是新的mongodb端口号,如果需要修改为其他的,请自行修改,并确保后面
的步骤中也将27117替换为自己待修改的mongodb端口号
步骤1: 修改从Mongo的默认端口号
进入primary结点(主mongo)后,选择一个从mongo, 然后回到primary结点,执行如下命令:
mongo
use admin;
db.auth('admin', 'xxx')
注意:
请将xxx替换为ceilometer的mongodb的密码,
具体可以查看
cat /etc/ceilometer/ceilometer.conf|grep mongo
类似如下输出中:
connection = mongodb://ceilometer:o3gZttHa@192.168.200.101,192.168.200.102,192.168.200.103/ceilometer
ceilometer:和@之间的部分就是密码
然后执行:
rs.remove("192.168.200.101:27017")
注意:
请将上述: 192.168.200.101 替换为待配置的secondary结点的ip,
样例输出结果如下:
{ "ok" : 1 }
然后执行:
rs.status()
样例输出结果如下:
{
"set" : "ceilometer",
"date" : ISODate("2019-04-23T11:47:35.808Z"),
"myState" : 1,
"members" : [
{
"_id" : 1,
"name" : "192.168.200.103:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1216,