服务依赖配置二

本安装文档以 CentOS 作为运行环境

1.安装MongoDB(副本集)

创建 yum 源文件

cd /etc/yum.repos.d
vim mongodb-org.repo



开启web插件

添加以下内容:(这里使用阿里云的源)

[mongodb-org]
name=MongoDB Repository baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1



安装MongoDB-4.0.19

$sudo yum -y install mongodb-org

修改mongodb配置文件

修改配置文件 vim /etc/mongod.conf


注意冒号与ip之间需要一个空格

bindIp: 127.0.0.1 改为 bindIp: 0.0.0.0

在/opt目录下创建数据库,创建logs文件

$cd /opt
$sudo mkdir mongo
cd mongo



创建文件夹分别存储数据,日志以及配置文件

$sudo mkdir db_master db_slaver1 log conig

复制 mongod.conf 文件,详细配置见:

https://docs.mongodb.com/manual/reference/configuration-options

$sudo cp /etc/mongod.conf /opt/mongo/mongod1.conf
$sudo cp /etc/mongod.conf /opt/mongo/mongod2.conf



修改配置文件

$sudo vim /opt/mongo/mongod1.conf

systemLog:
destination: file
logAppend: true
# 日志文件存放目录
path: /opt/mongo/logs/mongod1.log
storage:
# 数据文件存放目录
dbPath: /opt/mongo/db_master
journal:
enabled: true

# how the process runs
processManagement:
# fork and run in background
fork: true
# location of pidfile
pidFilePath: /opt/mongo/logs/slaver1.pid

# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
#security
#security.authorization: enabled
replication.replSetName: rs



同理修改mongod2.conf, 主要是路径和端口,端口不可重复

systemLog:
destination: file
logAppend: true
# 日志文件存放目录
path: /opt/mongo/logs/mongod2.log
storage:
# 数据文件存放目录
dbPath: /opt/mongo/db_slaver1
journal:
enabled: true
# how the process runs 
processManagement: 
    fork: true # fork and run in background 
    pidFilePath: /opt/mongo/logs/mongod2.pid # location of pidfile 
 
# network interfaces 
net: 
    port: 27018 
    bindIp: 0.0.0.0 
#security 
#security.authorization: enabled 
 
replication.replSetName: rs 



启动多实例

$sudo mongod -f /opt/mongo/mongod1.conf
$sudo mongod -f /opt/mongo/mongod2.conf



实例启动说明

mongod mongodb 守护进程命令
-f(--config) 启动配置文件标志参数
/opt/mongo/mongod2.conf 启动配置的文件



使用该端口号进行登录

$sudo mongo --port 27017


加入副本集集群


进入到27017实例

$sudo mongo -port 27017



切换到admin数据库

mongo_shell> use admin



切换到admin数据库

$sudo mongo -port 27017



初始化一个副本集

mongo_shell> rs.initiate()



查看副本集状态命令

mongo_shell> rs.conf()



加入secondary节点

mongo_shell> rs.add(“your_ip:27018”)



查看副本集状态

mongo_shell> rs.status()



查看副本集状态

mongo_shell> rs.status()

 
Secondary节点允许读取操作在当前节点执行,否则无法复制主节点的数据



进入secondary实例

$sudo mongo -port 27018
mongo_shell> rs.slaveOk()



验证数据复制

主节点

mongo_shell> use test
mongo_shell> db.createCollection('user')
mongo_shell> db.user.insert({'name':'james'})



从节点

mongo_shell> use test
mongo_shell> show collections
mongo_shell> db.user.find()



验证自动切换主节点

关闭主节点实例

$sudo ps -ef|grep 27017
kill -2 进程号

 
同时打开从节点,按几次回车会发现,从节点名称从 secondary 变成 primary 表示进行了自动切换节点
 

副本集开启用户认证模式

 

 

创建用户

mongo_shell>
use admin
db.createUser(
{
user: “root”,
pwd: “your_password”,
roles: [ { role: “root”, db: “admin” } ]
}
)
 
创建 KeyFile 文件

$sudo openssl rand -base64 666 > /opt/keyfile (可自定义文件位置)
$sudo chmod 600 /opt/keyfile

 
修改 MongoDB 配置文件

security:
authorization: enabled
keyFile: /opt/keyfile
clusterAuthMode: keyFile

 
重新启动 mongodb 节点

$sudo mongod --shutdown -f /opt/mongo/mongod1.conf
$sudo mongod --shutdown -f /opt/mongo/mongod2.conf
$sudo mongod -f /opt/mongo/mongod1.conf
$sudo mongod -f /opt/mongo/mongod2.conf

 
配置服务开机自启
编写实例一启动脚本vim/etc/init.d/mongod1
#!/bin/sh 
#chkconfig: 2345 80 90 
#description: mongodb 
start() { 
 /usr/bin/mongod -f /opt/mongo/mongod1.conf 
 
stop() { 
  /usr/bin/mongod -f /opt/mongo/mongod1.conf –shutdown 
case “$1” in 
  start) 
 start 
 ;; 
  stop) 
 stop 
 ;; 
  restart) 
 stop 
 start 
 ;; 
  *) 
 echo $”Usage: $0 {start|stop|restart}” 
 exit 1 
esac
 
编写实例二启动脚本vim/etc/init.d/mongod2
#!/bin/sh 
#chkconfig: 2345 80 90 
#description: mongodb 
start() { 
 /usr/bin/mongod -f /opt/mongo/mongod2.conf 
 
stop() { 
  /usr/bin/mongod -f /opt/mongo/mongod2.conf –shutdown 
 
case “$1” in 
  start) 
 start 
 ;; 
  stop) 
 stop 
 ;; 
  restart) 
 stop 
 start 
 ;; 
  *) 
 echo $”Usage: $0 {start|stop|restart}” 
 exit 1 
esac
 
使启动脚本生效

cd /etc/init.d
chkconfig --add mongod1 mongod2
chmod +x mongodb1 mongod2
chkconfig mongod1 on
chkconfig mongod2 on

 
2.安装redis

下载 Fedora 的 epel 仓库

$sudo yum install epel-release

 
安装过程中会有让你确认的,输入y按回车就可以了
 

安装Redis(当前文档的Redis版本为 3.2.12)

$sudo yum install redis

启动Redis并设置服务开机自启动

$sudo systemctl start redis
$sudo systemctl enable redis

查看是否启动成功

$sudo netstat -tunlp | grep redis 
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 6486/redis-server 1 

登录 Redis

修改配置文件/etc/redis.conf

# 允许远程访问
bind 0.0.0.0
# 端口
port 6379
# 以后台方式启动
daemonize yes
# 设置登录密码
requirepass your_password
# 设置日志文件
logfile "/var/log/redis.log"

使用端口登录数据库

$sudo redis-cli -h 127.0.0.1 -p 6379

 
 
3.安装 RabbitMQ

 

安装Erlang

由于 RabbitMQ 是 Erlang 语言编写的,安装 RabbitMQ 之前,需要先安装 Erlang

$sudo wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
$sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
$sudo yum -y install erlang




安装 RabbitMQ (当前版本为 3.6.6)

安装rpm包

$sudo yum install socat
$sudo wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
$sudo yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm



启动服务并设置开机自启动

$sudo systemctl start rabbitmq-server
$sudo systemctl enable rabbitmq-server



查看服务状态:

$sudo systemctl status rabbitmq-server

 
安装 RabbitMQ 延时插件
切换到 RabbitMQ 的安装目录的 plugins 目录,例如

cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.9/plugins

Wget https://dl.bintray.com/rabbitmq/community-plugins/3.6.x/rabbitmq_delayed_message_exchange/rabbitmq_delayed_message_exchange-20171215-3.6.x.zip



解压

$sudo unzip -zxvf rabbitmq_delayed_message_exchange-20171215-3.6.x.zip



切换到sbin目录下面,启用该插件

$sudo ./rabbitmq-plugins enable rabbitmq_delayed_message_exchange



重启服务

$sudo service rabbitmq-server restart



开启web插件

$sudo rabbitmq-plugins enable rabbitmq_management

注意打开端口,防止访问不到。

然后可以用 http://your_ip:15672 访问 用户密码默认值:guest,guest。

 
 
 
4.安装mqtt

 

Shell 脚本一键安装 (Linux)

sudo curl https://repos.emqx.io/install_emqx.sh | bash



后台启动 EMQ X

$sudo emqx start



查看 EMQ X 的状态

$sudo emqx_ctl status



后台启动 EMQ X

$sudo emqx start



访问后台

注意打开端口,防止访问不到。

部署好 EMQ 之后,访问URL地址:http://your_ip:18083,默认账号 admin ,密码 public

 
 
5.安装minio

 

下载文件

$cd /usr/local/bin
$sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio



赋予文件执行权限

$sudo chmod +x minio



访问后台

$cd /usr/local/bin
$sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio



启动 minio 服务

$sudo ./minio server /home/data

启动后会打印出登录地址、Accesskey、Secretkey等信息。
Accesskey为登录账号,默认为minioadmin
Secretkey为登录密码,默认为minioadmin



如果需要后台启动并自定义端口号,用这条命令代替(需使用root权限启动)

$sudo nohup /usr/local/bin/minio server --address your_ip:port /home/data > /home/data/minio.log 2>&1 &

 

 

 

设置服务开机自启动

首先需要添加minio用户

$sudo nohup /usr/local/bin/minio server --address your_ip:port /home/data > /home/data/minio.log 2>&1 &

 

 

新建一个配置文件vim/etc/default/minio

MINIO_ACCESS_KEY="minioadmin"
MINIO_SECRET_KEY="minioadmin"
MINIO_VOLUMES="/home/data"
MINIO_OPTS="--address 127.0.0.1:9000"

 

 

 在/etc/systemd/system新建minio.service

$cd /etc/systemd/system/
$sudo curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

 

正式启用和查看状态

systemctl enable minio.service
systemctl daemon-reload
systemctl start minio
systemctl status minio.service

 

使用minio默认端口访问:

http://your_ip:9000(需要开启相应端口)