1、安装依赖的一个工具:

yum install lksctp-tools

2、Emqttd安装和集群搭建(系统版本Centos 7.0 ) 此处使用绿色版本安装

wget http://emqtt.com/static/brokers/emqttd-centos7-v2.2.0.zip

unzip emqttd-centos7-v2.2.0.zip

cd emqttd/bin

./emqttd start

3、开放防火墙端口1883和10183,4369,和6000-6999端口范围

Centos7开放端口

firewall-cmd --zone=public --add-port=1883/tcp --permanent

firewall-cmd --zone=public --add-port=10183/tcp --permanent

firewall-cmd --zone=public --add-port= 4369/tcp --permanent

firewall-cmd –reload

centos 6直接关闭防火墙,禁掉开机自启

service iptables stop

chkconfig iptables off

4、修改节点名称,分别修改成自己的公网IP,2台都要设置

修改文件 emqttd/etc/emq.conf

node.name = emqttd@45.78.4.253  注意是公网IP

5、启动停止命令

systemctl start emqttd.service

systemctl stop emqttd.service

systemctl status emqttd.service

6、启动成功后可以登录  http://ip:18083  账号admin/public 可以看到节点正在运行

7、节点A上加入节点B, 同样或者在节点B里面加入节点A.命令如下:

emqttd_ctl cluster join emqttd@45.78.4.253

离开集群的命令 emqttd_ctl cluster leave

如果找不到emqttd_ctl命令,可以使用whereis emqttd_ctl查找

8、启用客户端用户名密码认证

etc/emqttd/plugins/emq_auth_username.conf中配置默认用户:

auth.user.$N.username = admin

auth.user.$N.password = public

启用emq_auth_username_插件:

emqttd_ctl plugins load emq_auth_username

此时随便一个账号密码都能连接上,因为默认匿名访问是开的,需要关掉

etc/emq.conf配置启用匿名认证:

Allow Anonymous authentication

mqtt.allow_anonymous = true 改为false

9、安装完毕后有可能在测试的时候,连接数在990左右就再也连接不上了,是因为系统的设置, 某些系统设置同时最大打开文件数是1024,所以要去掉这个限制。步骤如下:

1.以此执行命令:

sysctl -w fs.file-max=2097152

sysctl -w fs.nr_open=2097152

echo 2097152 > /proc/sys/fs/nr_open

ulimit -n 1048576

2.设置’fs.file-max’路径是/etc/sysctl.conf

fs.file-max = 1048576

3.设置limits 文件路径是/etc/security/limits.conf

持久化设置允许用户/进程打开文件句柄数:

*      soft   nofile      1048576

*      hard   nofile      1048576

4.让配置立即生效 sysctl -p

5.查看当前配置 ulimit -a

附:通用包安装和常用命令:

yum install lksctp-tools

wget http://emqtt.com/static/brokers/emqttd-centos7-v2.2.0.zip

unzip emqttd-centos7-v2.2.0.zip

./emqttd console 在控制台启动,日志打印在控制台

./emqttd start 以服务方式启动,不是注册到系统服务

./emqttd stop | restart 停止|重启

./emqttd_ctl status 查看当前状态