配置文件:

  • EMQ 配置文件: /etc/emqttd/emq.conf
  • 插件配置文件: /etc/emqttd/plugins/*.conf

日志文件

  • 日志文件目录: /var/log/emqttd

数据文件

  • 数据文件目录:/var/lib/emqttd/

启动停止

  • systemctl start|stop|restart emqttd.service

控制台调试模式启动,检查emqttd是否可正常启动:

cd emqttd && ./bin/emqttd console

CTRL+c关闭控制台。

守护进程模式启动:

./bin/emqttd start

启动日志输出在log/emqttd_sasl.log文件。

emqttd消息服务器进程状态查询:

./bin/emqttd_ctl status

  

正常运行状态,查询命令返回:

$ ./bin/emqttd_ctl status
Node 'emqttd@127.0.0.1' is started
emqttd 1.1 is running

emqttd消息服务器提供了状态监控URL:

http://localhost:8083/status

  

停止服务器:

./bin/emqttd stop

  

启用用户名密码:

关闭匿名验证:

修改etc/emq.conf

## Allow Anonymous authentication
mqtt.allow_anonymous = false

  

启用 emq_auth_username 插件:

启用 emq_auth_username 插件(不启用则mqtt.allow_anonymous = false不生效):

emqttd_ctl plugins load emq_auth_username
添加用户:

emqttd_ctl users add xxx xxxxxx

也可以通过修改plugins/emq_auth_clientid.conf的方式。

TCP服务端口占用

emqttd消息服务器默认占用的TCP端口包括:

1883 MQTT协议端口
8883 MQTT(SSL)端口
8083 MQTT(WebSocket), HTTP API端口
18083 Dashboard管理控制台端口

emqttd占用的上述端口,可通过etc/emqttd.config配置文件的listeners段落设置:

{listeners, [
{mqtt, 1883, [
...
]}, {mqtts, 8883, [
...
]},
%% HTTP and WebSocket Listener
{http, 8083, [
...
]}
]},

  

通过注释或删除相关段落,可禁用相关TCP服务启动。

18083端口是Web管理控制占用,该端口由emqttd_dashboard插件启用。

控制台URL: http:://localhost:18083/ ,默认登录用户名: admin, 密码: public。

快速设置

emqttd消息服务器主要配置文件:

etc/vm.args Erlang VM的启动参数设置
etc/emqttd.config emqttd消息服务器参数设置

etc/vm.args中两个重要的启动参数:

+P Erlang虚拟机允许的最大进程数,emqttd一个连接会消耗2个Erlang进程
+Q Erlang虚拟机允许的最大Port数量,emqttd一个连接消耗1个Port

注解

Erlang的Port非TCP端口,可以理解为文件句柄。

+P 参数值 > 最大允许连接数 * 2

+Q 参数值 > 最大允许连接数

警告

实际连接数量超过Erlang虚拟机参数设置,会引起emqttd消息服务器宕机!

etc/emqttd.config文件listeners段落设置最大允许连接数:

{listeners, [
{mqtt, 1883, [
%% TCP Acceptor池设置
{acceptors, 16}, %% 最大允许连接数设置
{max_clients, 8192}, ... ]},

  

emqttd消息服务器详细设置,请参见文档: config

/etc/init.d/emqttd

#!/bin/sh
#
# emqttd Startup script for emqttd.
#
# chkconfig: 2345 90 10
# description: emqttd is mqtt broker. # source function library
. /etc/rc.d/init.d/functions # export HOME=/root start() {
echo "starting emqttd..."
cd /opt/emqttd && ./bin/emqttd start
} stop() {
echo "stopping emqttd..."
cd /opt/emqttd && ./bin/emqttd stop
} restart() {
stop
start
} case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop}"
RETVAL=2
esac

chkconfig:

chmod +x /etc/init.d/emqttd
chkconfig --add emqttd
chkconfig --list

boot test:

service emqttd start

注解

## erlexec: HOME must be set uncomment ‘# export HOME=/root’ if “HOME must be set” error.

最新文章

  1. linux基础-第九单元 利用vi编辑器创建和编辑正文文件
  2. UML- 模型图介绍
  3. 安装Pod时提示ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod
  4. ubuntu NTP server 搭建
  5. JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
  6. jq获取元素到底部的距离
  7. UAC新解(有非正常手段可以绕过)
  8. 转载:详解CSS选择器、优先级与匹配原
  9. Entity Framewor中的 Migration
  10. (十一)if...else&for循环&while循环
  11. Linux系统7个运行级别(runlevel)(转)
  12. 设计模式 --> (17)状态模式
  13. spring cloud eureka显示ip
  14. post上传和压缩、插件模拟请求
  15. 用jQuery写的轮播图
  16. Python编译安装遇到的问题
  17. 【转】C#中的Stream
  18. debian8安装harbor
  19. 使用apache的ab命令进行压测
  20. katalon系列十六:代码运行时实时创建元素对象或列表

热门文章

  1. 【线段树/区间开平方】BZOJ3211-花神游历各国
  2. storm性能优化
  3. CentOS 6.9下KVM虚拟机快照创建、删除、恢复(转)
  4. [Git] git revert ( revert commit 和 revert merge)
  5. URLScan参数说明
  6. Maven Dependencies 不见了
  7. DotNetBar ComboBoxEx
  8. java中调用kettle转换文件
  9. MySql sqlstate代码大全(转载)
  10. JMeter 五:监控服务器