mongoDB CentOS7.2集群部署

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 1.关闭selinuxvi /etc/selinux/configSELINUX=disabledsetenforce 0 2.

1.关闭selinux

vi /etc/selinux/config

SELINUX=disabled

setenforce 0

 

2.配置mongodb源

#yum安装mongodb

vi /etc/yum.repos.d/mongodb.repo

[mongodb-org]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

 

3.yum安装mongodb

yum install mongodb-org (目前安装的版本是3.6.7)

 

4.关闭这三台机器的防火墙

       service iptables stop

       chkconfig iptables off

 

       service firewalld stop

       chkconfig firewalld off

 

5.分别配置三台机器的/etc/mongod.conf

vi /etc/mongod.conf 添加如下内容

replication:   # 取消这行的注释

  oplogSizeMB: 20  # 增加这一行配置定义oplog的大小,注意前面需要有两个空格

      replSetName: zero  # 定义复制集的名称,同样的前面需要有两个空格

 

       在每台机器的/etc/mongod.conf中配置各自ip地址,如下面的0.0.0.0

       vi /etc/mongod.conf

net:

  port: 27017

        bindIp: 127.0.0.1, 0.0.0.0

6.集群初始化

       systemctl start mongod.service  #分别启动三台机器的MongoDB服务

       进入到其中一台机器,执行下面的命令

       mongo

use admin

config={_id:"zero",members:[{_id:0,host:"0.0.0.0:27017"},{_id:1,host:"0.0.0.0:27017"},{_id:2,host:"0.0.0.0:27017"}]}

rs.initiate(config)  # 初始化

rs.status()  # 查看状态

 

注意:如果在slave上出现show dbs报错,not master and slaveOk=false

rs.slaveOk()  # 如果出现以上错误,需要执行这条命令

 

7. 创建具有集群管理权限的用户

       mongo

    use admin

db.createUser({user:"root",pwd:"123456", roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"clusterAdmin",db:"admin" }]})

clusterAdmin具有管理集群的权限

db.auth("root", "123456") #如果返回1,则表示成功。

 

8. 给集群添加安全keyfile安全认证

       #生成key

mkdir -p /var/lib/mongo/authkey/ #在每个节点创建该文件夹

#在主节点上执行以下命令

openssl rand -base64 745 > /var/lib/mongo/authkey/mongodb-keyfile

chmod 600 /var/lib/mongo/authkey/mongodb-keyfile

cd /var/lib/mongo/authkey/

chown mongod:mongod mongodb-keyfile

# 该key的权限必须是600,且所有者是mongod

# 将该key放到集群中机器的每一台上,记住必须保持一致,权限设置成600;

scp mongodb-keyfile root@0.0.0.0:/var/lib/mongo/authkey/

scp mongodb-keyfile root@0.0.0.0:/var/lib/mongo/authkey/

登录修改/var/lib/mongo/authkey/,修改权限

chmod 600 /var/lib/mongo/authkey/mongodb-keyfile

cd /var/lib/mongo/authkey/

chown mongod:mongod mongodb-keyfile

 

9. 分别配置三台机器的/etc/mongod.conf,添加keyfile认证

       取消security的注释,并在下面添加

       keyFile: /var/lib/mongo/authkey/mongodb-keyfile

 

10. 重新启动集群节点的mongodb服务

       systemctl restart mongod.service

 

11. 登录mongodb

mongo admin -u root -p

       输入密码,登录mongo后执行

       rs.status()  # 查看状态,如没有unauth字样,则说明安全认证添加成功

 

12. 测试副本集群

       db.printSlaveReplicationInfo() #查看副本同步状态

       use testdb  # 创建库

switched to db testdb

zero:PRIMARY> db.test.insert({AccountID:1,UserName:"zero"}) 

#创建集合,并且插入一条数据

WriteResult({ "nInserted" : 1 })

zero:PRIMARY> show dbs  # 查看所有的库

zero:PRIMARY> show tables  # 查看当前库的集合

test

在slave上查看数据集,是否已经有新加的数据

如果在slave上出现show dbs报错,not master and slaveOk=false

rs.slaveOk()  # 如果出现以上错误,需要执行这条命令

 

 

添加配置

  1. 设置 /sys/kernel/mm/transparent_hugepage/enabled

echo never >> /sys/kernel/mm/transparent_hugepage/enabled

echo never >> /sys/kernel/mm/transparent_hugepage/defrag

 

添加到/etc/rc.local

#disable transparent_hugepage

echo never >> /sys/kernel/mm/transparent_hugepage/enabled

echo never >> /sys/kernel/mm/transparent_hugepage/defrag

 

重启后仍然好用

编辑 /etc/default/grub,在GRUB_CMDLINE_LINUX加入选项 transparent_hugepage=never
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
2.
重新生成grub配置文件
On BIOS-based machines, issue the following command as root:
# grub2-mkconfig -o /boot/grub2/grub.cfg

systemctl status mongod.service

 

6. 查看是否启动成功

$ sudo systemctl status mongod.service

若显示 active(running)则启动成功!或者

$ sudo cat /var/log/mongodb/mongod.log

如出现

[thread1] waiting for connections on port <port></port>

其中的默认为27017,在 /etc/mongod.conf中配置,则启动成功

 

 

3)开机自启动

systemctl start mongod.service

systemctl enable mongod.service

systemctl status mongod.service

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
5月前
|
Kubernetes Cloud Native Linux
云原生|kubernetes|kubernetes集群部署神器kubekey的初步使用(centos7下的kubekey使用)
云原生|kubernetes|kubernetes集群部署神器kubekey的初步使用(centos7下的kubekey使用)
281 1
|
Kubernetes Linux Docker
百度搜索:蓝易云【CentOS7系统规划搭建 kubernetes 集群详细教程。】
现在,你已经成功规划和搭建了一个基于CentOS 7的Kubernetes集群。你可以使用kubectl命令管理和部署应用程序到集群中。根据需求,你还可以配置和调优集群的各项参数和插件,以满足特定的应用需求。
193 0
|
5月前
|
消息中间件 Kafka Linux
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
134 0
|
1月前
|
分布式计算 Hadoop Java
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
本文是一份详细的Hadoop集群搭建指南,基于Hadoop 3.3.4版本和CentOS 8操作系统。文章内容包括虚拟机创建、网络配置、Java与Hadoop环境搭建、克隆虚拟机、SSH免密登录设置、格式化NameNode、启动Hadoop集群以及通过UI界面查看Hadoop运行状态。同时,还提供了常见问题的解决方案。
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
|
1月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
261 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
9天前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
|
1月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
91 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
2月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
85 4
|
2月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
91 3
|
2月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
80 0