CentOS 7 yum安装mosquitto

1,604 阅读3分钟

环境

CentOS 7.6 64bitmosquitto-1.6.10

官网简介

mosquitto.org/

Eclipse Mosquitto 是一个开源(EPL/EDL 许可)的、轻量级的消息代理,实现了 MQTT 5.0、3.1.1 和 3.1 的协议版本。
Mosquitto 项目提供了一种使用发布/订阅模型执行消息传递的轻量级方法。适用于物联网消息传递,例如低功耗传感器或移动设备(如电话、嵌入式计算机或微控制器)。还提供了一个用于实现 MQTT 客户端的 C 库,以及非常流行的 mosquitto_pub 和 mosquitto_sub 命令行 MQTT 客户端。

安装

下载地址 mosquitto.org/files/binar…,本例在云环境中使用yum安装,不用下载上传

  1. 添加 EPEL 软件库 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  2. 查看安装的软件库信息 yum repolist all | grep enabled,本机没查看成功,报了 Repository epel is listed more than once in the configuration,貌似跟EPEL源重复有关,查看源配置文件所在目录 cd /etc/yum.repos.d
  3. 查找 mosquitto 软件包 yum list all | grep mosquitto
  4. 查看 mosquitto 信息 yum info mosquitto
  5. 安装 mosquitto 软件包 yum -y install mosquitto
  6. 控制台方式启动 mosquitto,测试是否安装成功 mosquitto

修改配置

修改配置后需要重启服务才能生效

  • 编辑配置信息 配置相关文件默认位置 /etc/mosquitto/,可看到目录下有些文件,这些文件用于存放通过命令添加的配置信息: image.png 先备份文件 cp -i aclfile.example ./aclfilecp -i pwfile.example pwfile,再编辑配置文件 vim/vi mosquitto.conf,进入后,键入 /,此时左下角出现文本字样,键入关键字可进行内容查找(键入 i 编辑后可键入 ESC 重复上述步骤查找配置),wq! 保存退出。配置如下:
# 是否允许匿名访问,即无需账号密码,此处设置为不允许
allow_anonymous false
# 修改默认端口1883,改为1884(查找时可搜索 “port 1883”)
port 1884
# 指定用户密码信息存放位置
password_file /etc/mosquitto/pwfile
# 指定配置用户及topic信息存放位置
acl_file /etc/mosquitto/aclfile
  • 添加用户 启动服务后,使用命令添加用户/密码:mosquitto_passwd -c /etc/mosquitto/pwfile 用户名,注意第二次创建用户时不用加 -c,如果加了会把第一次创建的用户覆盖。 image.png 查看 pwfile 文件如下: image.png
  • 添加用户和Topic访问关系 找到配置的文件 vim /etc/mosquitto/aclfile,追加用户与topic的绑定关系如下,wq! 保存重启服务
# 指定用户
user chalice
# 指定topic,配置订阅权限
topic read report-booway-data-topic/#
# 指定topic,配置发布权限
topic write report-booway-command-topic/#
# 指定topic,配置订阅和发布权限
topic report-topic/#

如图:
image.png

相关命令

  • 查看版本:mosquitto -v
  • 启动服务:service mosquitto startsystemctl start mosquitto.service
  • 停止服务:service mosquitto stop
  • 重启服务:service mosquitto restart修改配置后需要重启服务才能生效
  • 查看服务状态:service mosquitto status
  • 查看服务开机时自启状态:systemctl list-unit-files
  • 设置服务开机自启:systemctl enable mosquitto
  • 禁止服务开机自启:systemctl disable mosquitto
  • 开放默认使用端口(1883):firewall-cmd --permanent --add-port=1883/tcp、刷新防火墙配置规则 firewall-cmd --reload

可视化工具

MQTT.fx 下载
mqttfx-1.7.1-windows-x64.exe
image.png image.png image.png

MQTTX 下载
MQTTX.Setup.1.7.1.exe

参考链接