CentOS系统下离线部署EMQX
前言
随着国产化的趋势,越来越多的中间件也要求国产化,EMQTT是国产化MQTT协议通讯的中间件。本篇详解EMQTT中间件的离线部署和使用。
1.EMQX下载
EMQX官网提供了历史版本下载的渠道,虽然隐藏了,但是还是可以找到历史版本下载的地址。EMQX历史版本下载
在历史版本页面,可以根据自己的需要和系统内核下载EMQX离线包。
注意:需要先确定自己的安装方式和自己的系统内核。本次安装通过tar.gz包进行部署。
如果服务器有外网,可以直接在服务器使用wget命令下载EMQX:
# 1创建一个文件夹存储emqtt
mkdir /usr/local/emqtt
# 2进入emqtt存储路径
cd mkdir /usr/local/emqtt
# 下载emqtt
wget https://www.emqx.com/zh/downloads/broker/5.6.1/emqx-5.6.1-el8-amd64.tar.gz
2.EMQX上传
如果服务器没有外网,则本地访问emqtt的历史版本下载页面,将emqtt的离线包下载到本地,然后通过SSH远程连接到服务器,先创建一个文件夹,将emqtt的离线包上传到服务器的目录下。
# 创建一个文件夹存储emqtt
mkdir /usr/local/emqtt
2.EMQX解压
EMQX上传到服务器后,需要对tar.gz压缩包进行解压。
#进入EMQTT压缩包目录下
cd /usr/local/emqtt
#解压EMQTT压缩包
tar -zxvf emqx-5.6.0-el8-amd64.tar.gz
3.EMQTT启动
EMQTT的tar.gz压缩包解压后,会生成/emqtt/bin目录,可以直接运行/bin目录下的程序,启动emqtt。(出现报错看第4步,没有报错看第5步)
#进入EMQTT解压目录下
cd /usr/local/emqtt/bin
#启动emqtt
./emqx start
emqtt常用命令如下(需要进入自己解压目录/emqtt/bin下):
#启动emqtt
./emqx start
#查看emqtt运行状态
./emqx status
#停止 emqtt
./emqx stop
4.EMQX报错解决办法
如果在执行emqtt启动命令时,发现emqtt启动时间过长,最后出现报错,那么需要查看emqtt的启动日志。
进入emqtt日志目录,查看日志信息:
#进入emqtt日志目录
cd /usr/local/emqtt/log
#查看日志文件
vi erlang.log.1
查看日志发现,缺少libatomic依赖项,缺少系统补丁。那么,需要安装系统补丁。
如果服务器有外网,可以直接通过yum下载系统补丁:
yum -y install libatomic
如果服务器没有外网,可以本地下载系统补丁,上传到服务器离线部署。参考另一篇博文:
Linux系统补丁离线安装
5.EMQX自启动
如果需要配置emqtt开机自启动,那么需要将emqtt添加到系统服务。
#进入/etc/rc.d/init.d目录下
cd /etc/rc.d/init.d
#创建一个名为emqtt的文件,用于注册系统服务
touch emqtt
#编辑emqtt自启动文件
vi emqtt
在自启动文件中填入下方内容:
#!/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..."
#此处根据实际安装目录修改下面的路径为自己的安装路径
#/usr/local/emqtt是压缩包解压目录,&&后面接emqtt启动命令
cd /usr/local/emqtt && ./bin/emqx start
}
stop() {
echo "stopping emqttd..."
#此处根据实际安装目录修改下面的路径为自己的安装路径
#/usr/local/emqtt是压缩包解压目录,&&后面接emqtt停止命令
cd /usr/local/emqtt && ./bin/emqx stop
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop}"
RETVAL=2
esac
创建emqtt自启动文件后,需要将emqtt注册为系统服务:
# 1赋予脚本文件可执行权限
chmod +x /etc/init.d/emqtt
# 2将emqtt添加到系统服务
chkconfig --add emqttd
# 3查看 emqtt服务列表
chkconfig --list
将emqtt注册为系统服务之后,可以通过systemctl命令对emqtt进行管理:
#启动服务
systemctl start emqtt
#停止服务
systemctl stop emqtt
#重启服务
systemctl restart emqtt
6.访问EMQX页面
EMQX默认的端口是18083,因此需要开启防火墙端口,才能访问emqtt页面。
#需要先开启防火墙emqtt的默认端口18083
firewall-cmd --zone=public --add-port=18083/tcp --permanent
#重启防火墙,使配置的端口生效
firewall-cmd --reload
通过本地浏览器访问emqtt的页面:http://服务器IP:18083
Emqtt默认账户密码是:admin/public
参考文档:
EMQTT官方部署文档