emq(centos 7) 使用

配置文件:

  • 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.

原文地址:https://www.cnblogs.com/saryli/p/9766412.html