如何在Ubuntu 16.04上设置MoSquitto MQTT服务器

时间:2020-03-05 15:29:31  来源:igfitidea点击:

MoSquitto MQTT服务器是一名邮件经纪,它适用于MQTT协议。
MQTT是轻量化消息传递协议,它是用于TCP/IP协议顶部的ISO标准。
它主要用于与设备互联网通信。
我们将在Ubuntu 16.04服务器上安装Mosquitto,我们将从MQTT-SPY软件发送消息。
Mosquitto是一个Eclipse项目,它是在EDL许可证下分发的。
所以让我们开始。

从源代码编译Mosquitto MQTT服务器

要安装MoSquitto,我们需要执行以下步骤。
第一个更新来源lis并获得依赖项

apt update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc

添加Mosquitto用户,因为默认情况下,它运行为非根。

adduser mosquitto

为方便起见,我们将为此用户提供SUDO权限,因为我们将根据此用户执行其余的安装过程

usermod -aG sudo mosquitto

然后我们将作为本用户和CD登录到他的家中

su mosquitto
cd

接下来我们将下载Mosquitto源代码,最新版本在写作时为1.4.9,但我建议我们查看下载页面查看是否有新版本。

所以,让我们下载最新版本

wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz

让我们解开它和CD进入目录

tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/

然后我们编译并安装软件

make && sudo make install

配置MoSquitto MQTT服务器

安装完成后,我们需要为新用户进行密码。

sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy

系统将提示我们为新的MQTT-SPY用户进行密码,我们将用于连接客户端。
这与蚊子用户不同,这是用于运行MoSquitto服务器的系统用户。
我们需要将此Mosquitto用户添加到所有相关目录的权限

sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/

我们接下来需要为Mosquitto MQTT服务器制作配置文件,因此让我们使用nano制作新文件

sudo nano /etc/mosquitto/mosquitto.conf

在那里,你可以粘贴这个

persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile

Config似乎很长,但我们添加了更详细的日志和密码文件。

保存配置后,我们运行ldconfig

sudo ldconfig

让我们添加系统文件

sudo nano /etc/systemd/system/mosquitto.service

粘贴这个:

[Unit]
Description=Insite MQTT Broker
[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always
[Install]
WantedBy=multi-user.target

让我们开始服务

sudo systemctl start mosquitto.service

并检查其状态

systemctl status mosquitto.service

要使启动启动执行此命令

sudo systemctl enable mosquitto.service

设置mqtt-spy和connectiong

MQTT-SPY是基于Java的客户端,我们将用于连接到MQTT服务器。
我们可以从GitHub中获取它,但请注意,我们必须安装Oracle JDK。

它不适用于OpenJDK。
盯着MQTT-SPY后,首先要做的是创造新的连接。
我们添加了服务器IP和默认端口1883.

然后,我们添加了我们之前制作的密码和用户名,在我的情况下,它是mqtt-spy和密码是密码。

然后我们可以在服务器上打开终端窗口并键入以下命令

mosquitto_sub -v -t 'theitroad/topic' -u mqtt-spy -P password

要解释标志,-V是用于详细的,--T是主题后跟主题引号,-U为用户和-p是密码。