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 查看当前状态