mosquitto的编译安装及开机自启
最近我司项目中引入了mosquitto这个轻量级的实现了消息推送协议 MQTT v3.1 的开源消息代理软件,由于此前一直使用RabbitMQ作为消息中间件,因此需要从零开始搭建mosquitto的环境。本文主要针对本次安装的步骤做以记录。
一、mosquitto安装步骤
- 我们使用的是mosquitto-1.4.8,先将其从官网下载后上传至服务器相关目录,这里假设我们上传到/opt/mqtt/mosquitto目录。
- 进入/opt/mqtt/mosquitto,执行命令tar-zxf mosquitto-1.4.8.tar.gz,解压安装包并进入解压目录。
- 执行命令vi config.mk,将其中的WITH_TLS和WITH_TLS_PSK修改为no,以关闭OpenSSL。
- 依次执行以下命令安装相关依赖。
yum install -y gcc-c++.x86_64 yum install -y c-ares-devel e2fsprogs-devel uuuid-devel libuuid-devel
- 执行命令make prefix=/opt/mqtt/mosquitto/mosquitto-1.4.8 && make install编译安装mosquitto。
- 编译安装完成后,会在/etc/mosquitto下生成相关的配置文件的样例,我们将该目录下的mosquitto.conf.example重命名为mosquitto.conf,并使用vi编辑器打开该文件,对如下内容进行修改:
# When run as root, drop privileges to this user and its primary # group. # Leave blank to stay as root, but this is not recommended. # If run as a non-root user, this setting has no effect. # Note that on Windows this has no effect and so mosquitto should # be started by the user you wish it to run as. # user mosquitto 将mosquitto用户注释 user root #新增root用户为mosquitto服务的用户
- 执行命令systemctl stop firewalld,关闭防火墙。
- 执行命令mosquitto -d -c /etc/mosquitto/mosquitto.conf,启动服务。
- 简单验证: 这里使用MQTT.fx工具来进行连接验证。 新建连接 发布消息 订阅消息
二、 设置开机自启
在/etc/rc.d/init.d目录下创建自启动脚本mosquitto_auto_start.sh,内容如下:
#!/bin/bash #chkconfig: 2345 80 90 #description:auto_run /usr/local/sbin/mosquitto -d -c /etc/mosquitto/mosquitto.conf
而后依次执行以下命令:
chmod +x /etc/rc.d/init.d/mosquitto_auto_start.sh chkconfig --add /etc/rc.d/init.d/mosquitto_auto_start.sh chkconfig /etc/rc.d/init.d/mosquitto_auto_start.sh on
重启后,可根据进程以及工具调用查询mosquitto服务是否正常启动。