ArmbianにMQTT環境をインストール

syslogサーバになっているArmbianにMQTT環境をインストールします。作業内容はこちらの記事を参考にしました。(というか、そのまま)

注)ローカルネットワーク内でのテストのため、ユーザー認証なしの状態で実施しています。

サーバー (Broker) のインストール

$ sudo apt install mosquitto

サーバー(Broker)の起動

$ sudo systemctl start mosquitto
$ sudo systemctl start mosquitto
$ sudo systemctl status mosquitto
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
   Loaded: loaded (/etc/init.d/mosquitto; generated)
   Active: active (running) since Mon 2019-05-13 01:24:52 JST; 40s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 1 (limit: 413)
   CGroup: /system.slice/mosquitto.service
           └─3781 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

 5月 13 01:24:51 armbian systemd[1]: Starting LSB: mosquitto MQTT v3.1 message broker...
 5月 13 01:24:51 armbian mosquitto[3775]:  * Starting network daemon: mosquitto
 5月 13 01:24:52 armbian mosquitto[3775]:    ...done.
 5月 13 01:24:52 armbian systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.

クライアントのインストール

$ sudo apt install mosquitto-clients

リスナー(Subscribe)を動かす

リスナーの起動はサーバ(Broker)の起動後に行う。下記はその後のPublishをした際の記録を含む。トピックは mqtttest としてみた。

$ mosquitto_sub -d -t mqtttest
Client mosqsub|3941-armbian sending CONNECT
Client mosqsub|3941-armbian received CONNACK
Client mosqsub|3941-armbian sending SUBSCRIBE (Mid: 1, Topic: mqtttest, QoS: 0)
Client mosqsub|3941-armbian received SUBACK
Subscribed (mid: 1): 0
Client mosqsub|3941-armbian received PUBLISH (d0, q0, r0, m0, 'mqtttest', ... (18 bytes))
Hello MQTT world !
Client mosqsub|3941-armbian sending PINGREQ
Client mosqsub|3941-armbian received PINGRESP
Client mosqsub|3941-armbian sending PINGREQ
Client mosqsub|3941-armbian received PINGRESP

今回はローカルのサーバ(Broker)に対して接続(subscribe)しているが、リモートのサーバ(Broker)に対して接続(subscribe)する場合は「-h server名」とする。

別のPCでもクライアントのみ起動してサーバー(Broker)を指定してリスナーを起動すると、Publishした瞬間に同時に両方のリスナーで表示される。

Publishを動かす

$ mosquitto_pub -d -t mqtttest -m "Hello MQTT world !"
Client mosqpub|3942-armbian sending CONNECT
Client mosqpub|3942-armbian received CONNACK
Client mosqpub|3942-armbian sending PUBLISH (d0, q0, r0, m1, 'mqtttest', ... (18 bytes))
Client mosqpub|3942-armbian sending DISCONNECT
$

今回はローカルのサーバ(Broker)に対して接続(Publish)しているが、リモートのサーバ(Broker)に対して接続(Publish)する場合は「-h server名」とする。

サーバー(Broker)を自動起動するように設定

$ sudo systemctl enable mosquitto
mosquitto.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mosquitto
$

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)