1、获取安装包
可以网上下载,解压安装,解压目录自选,我这里安装位置是 /usr/local/emqx/
2、安装成功验证
/usr/local/emqx/bin/emqx start
输入网址 http://{ip}:18083 初始用户名密码: admin/public
登录后修改指定密码,开启授权认证,防止非法登录
3、系统级别自启
创建文件 emqx.service 放在 /etc/systemd/system 目录下
[Unit]
Description=EMQ X Broker
After=network.target
[Service]
Type=forking
User=root
ExecStart=/usr/local/emqx/bin/emqx start
ExecStop=/usr/local/emqx/bin/emqx stop
ExecReload=/usr/local/emqx/bin/emqx restart
[Install]
WantedBy=multi-user.target
安装emqx
/usr/local/emqx/bin/emqx install
启用服务以使其在开机时启动
sudo systemctl enable emqx.service
创建或修改 .service 文件后重新加载 systemd 配置
sudo systemctl daemon-reload
执行启动命令:
systemctl start emqx
如果未生效,重启下服务器
这样实现开机自启和系统启动控制
4、错误分析
用户名错误:此处修改对应有权限的用户
5、在离线监听
由于emqx可以监听所有在离线消息,但是无法通过订阅主题定向匹配到某个连接,如果希望监听某个连接设备的在离线,可以通过创建指定账号来实现
在离线监听topic :
$SYS/brokers/+/clients/+/#
$SYS/brokers/emqx@127.0.0.1/clients/GL5022213011912/disconnected 在线
$SYS/brokers/emqx@127.0.0.1/clients/GL5022213011912/connected 离线
1、在线监听
sql:
SELECT
username,connected_at,clientid
FROM
"$events/client_connected"
where
username = 'test'
消息重发布:
订阅主题: tetrabot/gateway/status
{
"sn": "${clientid}",
"time": ${connected_at},
"isOnline": true
}
2、创建离线规则
SELECT
username,disconnected_at,clientid
FROM
"$events/client_disconnected"
where
username = 'test'
消息重发布:
订阅主题: tetrabot/gateway/status
{
"sn": "${clientid}",
"time": ${connected_at},
"isOnline": false
}