LoginSignup
1
2

More than 3 years have passed since last update.

MQTTサーバー(ブローカー)mosquittoを5分で立ち上げる

Last updated at Posted at 2020-06-17

MQTTブローカー mosquitto 立てる

M5Stackを入手。まずは気温・湿度・気圧をグラフにしたい。
データを集約するにはMQTTサーバー(ブローカー)が良いらしい。
あまり面倒な事はしたくないが
登録が必要なサービスを使うと仕様の変更とか制限があったりしてイヤなので
VPSでmosquittoを動かすことにした。
mosuqittoのコンテナイメージがあるとの事でありがたく使わせていただく。

起動する

適当なディレクトリの下に設定ファイルを作成

mkdir -p mosquitto/config
vi mosquitto/config/mosquitto.conf
mosquitto/config/mosquitto.conf
listener 1883  # デフォルトのポート
listener 9001  # WebSocket用
protocol websockets

ユーザー認証なしでの設定なのでご注意ください


起動

docker run -it --rm --name mosquitto \
  -v `pwd`/mosquitto:/mosquitto \
  -p 1883:1883 \
  -p 9001:9001 \
  eclipse-mosquitto:latest

ポート9001はWebsocket用なので無くても問題ないが
あると面白い事ができるので入れておく事をおすすめ

動作テスト

コマンドラインでのテスト
mosquitto を起動した端末とは別の端末から

mosquitto_sub -h localhost -t TOPIC/#

さらに別の端末から

mosquitto_pub -h localhost -t TOPIC/INFO -m "Hello World"

スマホのアプリ「MQTT Dash」でもテストできる
MQTT Dash

TLS接続

ウェブサイトで利用するにはTLS接続できるようにしておくと都合が良い。
その場合には以下のように証明書関連の設定を追加する

mosquitto/config/mosquitto.conf
listener 1883  # デフォルトのポート
listener 9001  # WebSocket用
listener 8883  # TLS接続用
protocol websockets

cafile /etc/letsencrypt/live/<FQDN>/fullchain.pem
certfile /etc/letsencrypt/live/<FQDN>/cert.pem
keyfile /etc/letsencrypt/live/<FQDN>/privkey.pem

起動

docker run -it --rm --name mosquitto \
  -v /etc/letsencrypt:/etc/letsencrypt:ro \
  -v `pwd`/mosquitto:/mosquitto \
  -p 1883:1883 -p 9001:9001 \
  -p 8883:8883 \
  eclipse-mosquitto:latest

letsencryptの場合の例なので適宜修正してください

この内容はさくらインターネットのVPS(Debian10)で確認しています

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2