emqx集群部署
2024-01-03
emqx集群部署
描述
emqx版本:5.0以上(5.0以上ssl配置可以在页面上配置)
官方链接:https://www.emqx.io/docs/zh/latest
所需端口
18083: dashboard访问端口
1883: mqtt连接端口
8883: mqtts连接端口
部署
所有节点
vim /etc/profile
在末尾加上,例:export DEPLOY_DIR=/data
export DEPLOY_DIR={脚本的目录}
source /etc/profile
执行之前,需要先拉取一下初始的数据,并授予文件对应的权限
docker run -d --name emqx emqx/emqx
docker cp emqx:/opt/emqx/bin ${DEPLOY_DIR}/emqx/
docker cp emqx:/opt/emqx/etc ${DEPLOY_DIR}/emqx/
docker cp emqx:/opt/emqx/lib ${DEPLOY_DIR}/emqx/
docker cp emqx:/opt/emqx/data ${DEPLOY_DIR}/emqx/
docker cp emqx:/opt/emqx/log ${DEPLOY_DIR}/emqx/
chown -R 1000:1000 ${DEPLOY_DIR}/emqx/
chmod -R 755 ${DEPLOY_DIR}/emqx/emqx/
docker rm -f emqx
创建docker-compose文件并输入以下内容:#标注的内容需要更改为对应的ip地址
sudo cat > ${DEPLOY_DIR}/emqx/docker-compose.yml << EOF
version: '3'
services:
emqx:
image: emqx/emqx:latest
container_name: emqx
network_mode: "host"
privileged: true
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime
- ${DEPLOY_DIR}/data/emqx/etc:/opt/emqx/etc
- ${DEPLOY_DIR}/data/emqx/data:/opt/emqx/data
- ${DEPLOY_DIR}/data/emqx/log:/opt/emqx/log
- ${DEPLOY_DIR}/data/emqx/lib:/opt/emqx/lib
environment:
EMQX_ALLOW__ANONYMOUS: "false"
SET_CONTAINER_TIMEZONE: "true"
CONTAINER_TIMEZONE: Asia/Shanghai
EMQX_HOST: "192.168.1.20" #{该机器局域网的ip地址}
EMQX_NODE_NAME: "node1@192.168.1.20" #{该机器局域网的ip地址}
EMQX_CLUSTER__DISCOVERY_STRATEGY: "static"
EMQX_CLUSTER__STATIC__SEEDS: "[node1@192.168.1.183,node2@192.168.1.109,node3@192.168.1.25]" # 多个节点的EMQX_NODE_NAME中的内容都放在这里,有几个放几个。
EOF
启动命令
docker-compose -f ${DEPLOY_DIR}/emqx/docker-compose.yml up -d
随机单个节点操作(一个节点操作,其余两个节点会同步)
访问dashboard
#{公网ip}:18083
默认用户名:admin 密码:public
节点都启动后,可以在集群概览中看到所有节点信息