运维知识体系

运维知识体系

运维知识体系总结,持续更新,欢迎转载。
缓存知识体系

缓存知识体系

运维知识体系之缓存,分层多级缓存体系。
K8S实践指南

K8S实践指南

Docker和Kubernetes实践指南(每周更新)
新运维课堂

新运维课堂

全新体系化课程,开启运维新征程!

MongoDB集群搭建:副本+分片

weillee 发表了文章 • 0 个评论 • 1325 次浏览 • 2019-03-08 15:43 • 来自相关话题

环境规划服务器规划 192.168.3.167                    192.168.3.168                    192.168.3.170 mongos                       ...查看全部
环境规划服务器规划
192.168.3.167                    192.168.3.168                    192.168.3.170
mongos                             mongos                              mongos
config server                     config server                       config server
shard server1 主节点         shard server1 副节点           shard server1 仲裁
shard server2 仲裁            shard server2 主节点           shard server2 副节点
shard server3 副节点         shard server3 仲裁              shard server3 主节点
端口分配:
mongos:20000 
config:27017
shard1:27001 
shard2:27002 
shard3:27003
 
配置yum源并安装mongodb3.6
cat > /etc/yum.repos.d/mongodb-org-3.6.repo << EOF
[mongodb-org-3.6]
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
EOF

yum install mongodb-org -y
目录创建:
分别在每台机器建立conf、mongos、config、shard1、shard2、shard3目录,因为mongos不存储数据,只需要建立日志文件目录即可
配置服务:
可以根据业务需求创建相应目录,此文档按yum安装所产生的/etc/mongo.ocnf文件默认配置,如果自行创建记得修改目录权限
chown -R mongod:mongod /var/lib/mongo
vim /etc/mongod.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: csReplSet
sharding:
clusterRole: configsvr
启动所有的mongo config server服务
mongod --config /etc/mongod.conf

 副本服务登录任意一台配置服务器,初始化配置副本集
mongo --port 27017
#创建配置
config = {
_id : "csReplSet",
members : [
{_id : 1, host : "192.168.3.167:27017" },
{_id : 2, host : "192.168.3.168:27017" },
{_id : 3, host : "192.168.3.170:27017" }
]
}
#初始化副本集
rs.initiate(config)
#查看状态
rs.status()

其中,"_id" : " csReplSet "应与配置文件中配置的 replicaction.replSetName 一致,"members" 中的 "host" 为三个节点的 ip 和 port
 
分片服务:
配置分片副本集(三台机器)
1.设置第一个分片副本集
vim /etc/shard1.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/shard1.log
storage:
dbPath: /var/lib/mongo/shard1/data
journal:
enabled: true
processManagement:
fork: true
pidFilePath: /var/run/mongodb/shard1.pid
timeZoneInfo: /usr/share/zoneinfo
net:
port: 27001
bindIp: 0.0.0.0
maxIncomingConnections: 20000
replication:
replSetName: shard1
sharding:
clusterRole: shardsvr

#启动所有的shard1 server
mongod --config /etc/shard1.conf

#登陆任意一台shard1服务器,初始化副本集
mongo --port 27001
use admin
#定义副本集配置
config = {
_id : "shard1",
members : [
{_id : 1, host : "192.168.3.167:27001",priority:2 },
{_id : 2, host : "192.168.3.168:27001",priority:1 },
{_id : 3, host : "192.168.3.170:27001",arbiterOnly: true }
]
}
#初始化副本集配置
rs.initiate(config);

#查看分区状态
rs.status()

====================
#配置第二个分片和副本集
vim /etc/shard2.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/shard2.log
storage:
dbPath: /var/lib/mongo/shard2/data
journal:
enabled: true
processManagement:
fork: true
pidFilePath: /var/run/mongodb/shard2.pid
timeZoneInfo: /usr/share/zoneinfo
net:
port: 27002
bindIp: 0.0.0.0
maxIncomingConnections: 20000
replication:
replSetName: shard2
sharding:
clusterRole: shardsvr

#启动所有的shard2 server
mongod --config /etc/shard2.conf

#登陆任意一台非仲裁节点服务器,初始化副本集
mongo --port 27002
use admin

#定义副本集配置
config = {
_id : "shard2",
members : [
{_id : 1, host : "192.168.3.167:27002",arbiterOnly: true },
{_id : 2, host : "192.168.3.168:27002",priority:2 },
{_id : 3, host : "192.168.3.170:27002",priority:1 }
]
}
#初始化副本集配置
rs.initiate(config);

#查看分区状态
rs.status()

#配置第三个分片和副本集
vim /etc/shard3.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/shard3.log
storage:
dbPath: /var/lib/mongo/shard3/data
journal:
enabled: true
processManagement:
fork: true
pidFilePath: /var/run/mongodb/shard3.pid
timeZoneInfo: /usr/share/zoneinfo
net:
port: 27003
bindIp: 0.0.0.0
maxIncomingConnections: 20000
replication:
replSetName: shard3
sharding:
clusterRole: shardsvr

#启动所有的shard3 server
mongod --config /etc/shard3.conf

#初始化副本集配置
rs.initiate(config)

#查看分区状态
rs.status()

路由服务:
配置路由服务器 mongos
先启动配置服务器和分片服务器,后启动路由实例启动路由实例:(三台机器)
vim /etc/mongos.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongos.log
processManagement:
fork: true
pidFilePath: /var/run/mongodb/mongos.pid
timeZoneInfo: /usr/share/zoneinfo
net:
port: 20000
bindIp: 0.0.0.0
maxIncomingConnections: 20000
sharding:
configDB: csReplSet/192.168.3.167:27017,192.168.3.168:27017,192.168.3.170:27017

#注意监听的配置服务器,只能有1个或者3个 csReplSet为配置服务器的副本集名字
configDB: csReplSet/192.168.3.167:21000, 192.168.3.168:21000, 192.168.3.170:21000

#启动路由服务器
mongos --config /etc/mongos.conf

#检查状态
netstat -tunlp | grep mongo
tcp 0 0 0.0.0.0:27001 0.0.0.0:* LISTEN 8810/mongod
tcp 0 0 0.0.0.0:27002 0.0.0.0:* LISTEN 6962/mongod
tcp 0 0 0.0.0.0:27003 0.0.0.0:* LISTEN 12671/mongod tcp 0 0 0.0.0.0:20000 0.0.0.0:* LISTEN 13577/mongos tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 10328/mongod
启用分片
目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效
#登录其中的一台路由节点,手动启用分片
mongo --port 20000
use admin
#添加分片到mongos
sh.addShard("shard1/192.168.3.167:27001,192.168.3.168:27001,192.168.3.170:27001")
sh.addShard("shard2/192.168.3.167:27002,192.168.3.168:27002,192.168.3.170:27002")
sh.addShard("shard3/192.168.3.167:27003,192.168.3.168:27003,192.168.3.170:27003")

#查看集群状态
sh.status()

opencmdb有使用手册吗?

回复

发起了问题 • 1 人关注 • 0 个回复 • 1258 次浏览 • 2018-11-09 22:11 • 来自相关话题

opencmdb 的默认用户和密码是什么呢?

赵班长 回复了问题 • 2 人关注 • 2 个回复 • 1711 次浏览 • 2018-11-06 09:46 • 来自相关话题

Centos服务器配置双网卡双外网 请问该如配置?

回复

回复了问题 • 1 人关注 • 2 个回复 • 1272 次浏览 • 2018-10-18 21:11 • 来自相关话题

海外网络运维工程师

发表了文章 • 1 个评论 • 1531 次浏览 • 2018-08-24 15:27 • 来自相关话题

薪资:13K-18K ,13薪,老员工有期权奖金 职责范围; 1.负责公司办公业务的正常运行 2.负责公司线上业务的正常运行 岗位要求: 1、熟悉AD/DNS server ...查看全部

薪资:13K-18K ,13薪,老员工有期权奖金
职责范围;
1.负责公司办公业务的正常运行
2.负责公司线上业务的正常运行


岗位要求:
1、熟悉AD/DNS server部署和管理,在系统集成商或者cisco/h3c代理商待个2-3年,有一定的项目经验,不然没有好的解决方案,最好在培训机构培训过ccnp 或以上科目。
2、公司有大约100台物理linux服务器,热烈欢迎对linux感兴趣的人员,也是一个方向
3、具备较强的学习能力,沟通能力,应变能力、组织协调能和抗压能力。
4、对工作要负责,主动......为人低调,纯搞技术那种,不要忽悠........
5、可能会有桌面的一些技术支持,主要是应急一下,有负责桌面技术支持的专用人员
 

网易下属子公司寻找运维工程师,Linux、系统运维、业务部署、大型服务器

回复

xxy 发起了问题 • 3 人关注 • 0 个回复 • 2253 次浏览 • 2017-11-02 14:50 • 来自相关话题

年龄偏大,还适合去学运维么

回复了问题 • 5 人关注 • 3 个回复 • 3997 次浏览 • 2018-08-10 20:25 • 来自相关话题

【驻外】【12-25K】优凯软件 招募运维工程师 2人

回复

回复了问题 • 2 人关注 • 1 个回复 • 3195 次浏览 • 2018-07-19 13:26 • 来自相关话题

Google Python命名规范

liushiqi_1001 发表了文章 • 0 个评论 • 1235 次浏览 • 2018-01-18 15:37 • 来自相关话题

module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_VAR_NAME, instance_var_name, function_para ...查看全部
module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.

CentOS7云主机,通过mail命令发,使用465端口(smtps协议)发送邮件

liushiqi_1001 发表了文章 • 0 个评论 • 4596 次浏览 • 2017-12-25 12:20 • 来自相关话题

#创建证书 mkdir -p /root/.certs/ echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-EN ...查看全部
#创建证书
mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs
#信任证书
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu"  -d ./ -i qq.crt 

# 配置/etc/mail.rcE繁忙
set smtp="smtps://smtp.qq.com:465"
set smtp-auth=login
set smtp-auth-user="228444347@qq.com"  #换成你的qq邮箱
set smtp-auth-password="fwmazaxbllqrcajg"  # 换成你的qq邮箱第三方登录密码
set ssl-verify=ignore 
#set nss-config-dir=/etc/pki/nssdb
set nss-config-dir=/root/.certs

说明:
#smtp-auth-password的密码是qq邮箱里面设置的第三方登录密码,不是你qq的密码,在qq邮箱设置界面配置

 
测试:
echo message3 | mail -v -r "228444347@qq.com" -s "hello world" 228444347@qq.com
注意:一定要带-r参数,生产上去掉-v参数