Mosquitto MQTT Serverは、MQTTプロトコル上で動作するメッセージブローカーです。 MQTTは、TCP/IPプロトコルの上で使用するためのISO標準である軽量メッセージングプロトコルです。これは主に、モノのインターネットデバイスとの通信に使用されます。 Ubuntu 16.04サーバーにMosquittoをインストールし、MQTT-spyソフトウェアからメッセージを送信します。 MosquittoはEclipseプロジェクトであり、EDLライセンスの下で配布されます。では始めましょう。
ソースからのMosquittoMQTTサーバーのコンパイル
モスキートをインストールするには、次の手順を実行する必要があります。最初にソースlisを更新し、依存関係を取得します
apt update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
デフォルトでは非rootとして実行されるため、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
解凍してディレクトリに挿入します
tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/
次に、ソフトウェアをコンパイルしてインストールします
make && sudo make install
MosquittoMQTTサーバーの構成
インストールが完了したら、新しいユーザーのパスワードを作成する必要があります。
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
クライアントからの接続に使用する新しいmqtt-spyユーザーのパスワードを作成するように求められます。これは、蚊のユーザー、つまり蚊のサーバーを実行するためのシステムユーザーとは異なります。このmosquittoユーザーの権限を関連するすべてのディレクトリに追加する必要があります
sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
次に、Mosquitto MQTT Serverの構成ファイルを作成する必要があるので、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
構成は長いようですが、より詳細なログとパスワードファイルを追加しました。
構成が保存されたら、ldconfig
を実行します。sudo ldconfig
systemdユニットファイルを追加しましょう
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のセットアップ-スパイと接続g
MQTT-Spyは、MQTTサーバーへの接続に使用するJavaベースのクライアントです。 githubから入手できますが、OracleJDKがインストールされている必要があることに注意してください。 OpenJDKでは動作しません。 MQTT-spyを見つめた後、最初に行うことは、新しい接続を作成することです。サーバーのIPとデフォルトのポート1883を追加します。
次に、前に作成したパスワードとユーザー名を追加します。私の場合はmqtt-spyで、パスワードはパスワードです。
次に、サーバーでターミナルウィンドウを開き、次のコマンドを入力します
mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password
フラグを説明するために、-vは冗長性を表し、-tはトピックの後に引用符で囲まれたトピックを表し、-uはユーザーを表し、-Pはパスワードを表します。このコマンドを入力するとハングしたように見えますが、MQTT-spyを使用して新しいトピックを作成し、次の図のように同じトピックにメッセージを送信する必要があります。
結論
MQTT3.1プロトコルを介して接続されたIoTデバイスのネットワークを持つことができるMosquittoMQTTサーバーが正常にインストールされました。ほとんどの人が開発と学習の目的で使用するクラシックx86PCのUbuntuにインストールしました。実際のIoTの場合、ARMデバイスが必要になります。この記事はこれですべてです。読んでいただきありがとうございます。