【环境搭建】linux centos7安装mosquitto消息代理软件操作步骤以及遇到问题日常记录

最近需要用到mqtt, 选择安装mosquitto。由于安装mosquitto花了我一点时间,简单记录下。安装环境是linux centos7,  其他像windows、mac或者ubuntu 参考下  https://mosquitto.org/download/  英文官网,或者别人写的文章。

服务器建立mqtt文件夹

wget https://mosquitto.org/files/source/mosquitto-2.0.18.tar.gztar -xvf mosquitto-2.0.18.tar.gzcd mosquitto-2.0.18/make && make install

问题:安装mosquitto时报g++:命令未找到

解决方案:

安装编译工具 yum install -y gcc-c++

问题:重新执行make && make install,继续报错config.h:86:12: fatal error: cjson/cJSON.h: No such file or directory

图片

解决方案:那就网上找cJSON包安装下, 在mqtt目录下执行安装

先确认下是否已经安装git,没有的话。yum install git

git clone https://github.com/DaveGamble/cJSON.git

cd cJSON/

make && make install

安装完

### 安装和配置 Mosquitto MQTT 服务器 要在 CentOS 7安装并配置 Mosquitto MQTT 服务器,以下是详细的说明: #### 1. 更新系统包 在开始之前,建议先更新系统的软件包以确保兼容性和安全性。 ```bash sudo yum update -y ``` #### 2. 安装 EPEL 软件Mosquitto 不属于 CentOS 的默认仓库,因此需要启用 EPEL(Extra Packages for Enterprise Linux)扩展库。 ```bash sudo yum install epel-release -y ``` #### 3. 安装 Mosquitto 通过 `yum` 命令安装 Mosquitto: ```bash sudo yum install mosquitto mosquitto-clients -y ``` #### 4. 配置 Mosquitto 编辑 Mosquitto 的主要配置文件 `/etc/mosquitto/mosquitto.conf`。 打开配置文件: ```bash sudo nano /etc/mosquitto/mosquitto.conf ``` 添加或修改以下内容以满足基本需求: ```plaintext listener 1883 protocol mqtt allow_anonymous true # 如果需要身份验证,则改为 false 并配置用户名密码认证 persistence true # 启用持久化存储会话数据 persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log ``` 保存并退出。 #### 5. 启动服务并设置开机自启 启动 Mosquitto 服务并将之设为随系统启动自动运行: ```bash sudo systemctl start mosquitto sudo systemctl enable mosquitto ``` 检查状态以确认其正常工作: ```bash sudo systemctl status mosquitto ``` #### 6. 测试连接 可以通过客户端测试本地连接功能。例如,在同一台机器上发布消息: ```bash mosquitto_pub -h localhost -t test/topic -m "Hello MQTT" ``` 订阅该主题的消息: ```bash mosquitto_sub -h localhost -t test/topic ``` 如果一切正常,应该能够看到发布的消息。 --- ### 边缘节点的配置 为了使边缘设备与 Mosquitto 通信并与 KubeEdge 协同工作,需完成以下几个步骤: #### 1. 安装 KubeEdge 组件 根据已有资料[^1],Keadm 工具可用于部署 KubeEdge 的云端和边缘端组件。由于目标操作系统是 CentOS 7,这完全符合当前的支持范围[^3]。 下载最新版 keadm 工具到边缘节点,并初始化边缘环境: ```bash curl -sSL https://get.kubeedge.io | bash / keadm join --cloudcore-ipport=<CLOUD_CORE_IP>:<PORT> --edgenode-name=edge-node-01 ``` 其中 `<CLOUD_CORE_IP>` 替换为主节点的实际 IP 地址,而 `<PORT>` 则替换为云核心监听的服务端口,默认通常是 `10000`。 #### 2. 连接至 Mosquitto 中心代理 为了让边缘节点上的应用能访问中心的 Mosquitto 服务,可能需要调整防火墙规则允许外部流量进入指定端口 (如 TCP/1883),或者直接将 Mosquitto 设定成仅接受来自可信子网内的请求。 假设已经完成了上述操作,则可以在应用程序层面集成 MQTT SDK 实现双向通讯机制;比如 Python 库 paho-mqtt 或者 Node.js 下对应的模块均可作为开发选项之一。 最后一步就是编写业务逻辑代码来处理具体场景下的事件触发行为模式了! ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值