需求背景
需要在linux环境中安装配置mqtt broker,并配置用户名、密码访问及tls加密传输认证;
准备资料
1、centos 6.5 64bit
2、mosquitto1.4.4版本
安装mqtt broker服务
1、解压源码包tar xvf mosquitto-1.4.14.tar.gz
2、进入源码目录,编辑config.mk文件:
分别修改
WITH_SRV:=no —->WITH_SRV:=yes
WITH_UUID:=no —->WITH_UUID:=yes
3、安装必要依赖包
yum install gcc gcc-c++ openssl-devel
4、make && make install 安装即可;
5、启动服务
5.1、默认路径
mqtt broker服务默认安装在/usr/local/bin
配置文件默认在/etc/mosquitto
5.2、添加基本配置
cd /etc/mosquitto/进入配置文件目录;
cp mosquitto.conf.example mosquitto.conf,拷贝基本配置文件;
执行mosquitto -c /etc/mosquitto/mosquitto.conf -v启动服务;
会报错,如下:
1600225060: mosquitto version 1.4.14 (build date 2020-09-16 10:51:44+0800) starting
1600225060: Config loaded from /etc/mosquitto/mosquitto.conf.
1600225060: Opening ipv4 listen socket on port 1883.
1600225060: Opening ipv6 listen socket on port 1883.
1600225060: Error: Invalid user ‘mosquitto’.
默认是用mosquitto帐号启动,添加帐号即可;
useradd mosquitto,然后再启动
看到如下信息,说明broker已经启动成功;
1600225144: mosquitto version 1.4.14 (build date 2020-09-16 10:51:44+0800) starting
1600225144: Config loaded from /etc/mosquitto/mosquitto.conf.
1600225144: Opening ipv4 listen socket on port 1883.
1600225144: Opening ipv6 listen socket on port 1883.
6、验证订阅、发布功能是否正常
6.1、订阅
执行命令:mosquitto_sub -h 127.0.0.1 -p 1883 -t ‘/mqttbroker/test’
mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
报错了,是libmosquitto.so.1库找不到问题,只需要添加到加载搜索的环境变量即可;
默认安装时,libmosquitto.so安装到了/usr/local/lib路径,所以只需要将这个路径添加到ldconfig搜索的路径就行;
echo ‘/usr/local/lib’ > /etc/ld.so.conf.d/local-lib.conf,然后再ldconfig -v | grep mosquitto,看到如下信息,则说明加载成功,再次执行订阅命令;
libmosquitt

本文详细介绍在Linux环境下安装配置MQTTBroker的过程,包括mosquitto版本的选择、源码编译、依赖安装、服务启动、订阅发布功能验证,以及如何配置用户名密码访问和TLS加密双向认证。
最低0.47元/天 解锁文章
1777





