MQTT ブローカー

MQTTブローカーは、すべてのクライアントメッセージを受信し、適切な宛先クライアントにメッセージをルーティングするサーバーです。MQTTクライアントは、MQTTライブラリを実行し、ネットワーク経由でMQTTブローカーに接続する任意のデバイス(マイクロコントローラーから本格的なサーバーまで)です。

オープンソースのMQTTブローカーであるLEAPS Mosquittoは、Dockerイメージ eclipse-mosquitto:1.5.11 のコピーで、カスタムの mosquitto.conf ファイルが /mosquitto/config/mosquitto.conf に統合されています。詳細については、eclipse-mosquitto を参照してください。


インストール

システム要件

注釈

Dockerのシステム要件は、オペレーティングシステムによって異なります。

  • Linuxの場合、64ビットアーキテクチャ、互換性のあるカーネルバージョン、および特定のカーネル機能が必要です。

  • Windowsでは、仮想化を有効にしたWindows 10でDocker Desktopを使用してください。

  • macOSでは、macOS 10.13以降でDocker Desktopを使用してください。ハードウェア要件としては、最低2GBのRAMに加え、十分なCPUとディスク容量が必要です。

最新の情報については、Docker 公式ドキュメントを参照してください。


使用方法

  1. PCにDockerをインストールする

LinuxにDocker Desktopをインストールする

さらに、以下のコマンドを参考にしてインストールすることもできる:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo usermod -aG docker $USER
  1. PCでコマンドプロンプトまたはターミナルウィンドウを開き、LEAPS Mosquitto Dockerパッケージをインストールします。次のコマンドを実行します。

docker run -d -p 1883:1883/tcp -p 15675:15675 --name some_name leapslabs/leaps_mosquitto:latest mosquitto ---cfg /mosquitto/config/mosquitto.conf

some_name はコンテナに割り当てる名前、tag は必要な leaps-mosquitto のバージョンを指定するタグです。

  • 推奨される走行オプション

    • --user $(id -u):$(id -g) 特定のユーザーとグループの下でインスタンスを実行する。

    • --restart unless-stopped サーバーがクラッシュした場合にインスタンスを自動的に再起動する。

  1. LEAPS Mosquittoのインストールプロセスが開始されます。

たとえば、Ubuntu (Linux) の場合:

docker run -d -p 1883:1883/tcp -p 15675:15675 --name leaps_mosquitto leapslabs/leaps_mosquitto:latest mosquitto ---cfg /mosquitto/config/mosquitto.conf

Unable to find image 'leapslabs/leaps_mosquitto:latest' locally
latest: Pulling from leapslabs/leaps_mosquitto
f7dab3ab2d6e: Already exists
2a0a6c9fa787: Already exists
a211eff771d6: Already exists
d362e2a9c11b: Already exists
Digest: sha256:a97752d6e2d81e2701c7cd5f807eb4256322983f8aa3135da8235b647e6a9b4e
Status: Downloaded newer image for leapslabs/leaps_mosquitto:latest
1f526e755ad9a356c439003b93c200802628ae9bc046827e7327d0334804b565
  1. インストールが成功したことを確認し、実行する:

たとえば、Ubuntu (Linux) の場合:

docker ps

CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS                          PORTS     NAMES
b1145b72db35   leapslabs/leaps_mosquitto:latest  "sh -c 'cd /app &&  …"   37 seconds ago   11 seconds ago                            leaps_mosquitto

これで、LEAPS MosquittoがPCにインストールされ、起動しました。


はじめに

LEAPSモスキートドッカー

  • LEAPS Mosquittoを起動します。docker start leaps_mosquitto を実行します。

  • LEAPS Mosquittoを停止します。docker stop leaps_mosquitto を実行します。

  • LEAPS Mosquittoを再起動します。docker restart leaps_mosquitto を実行します。

  • LEAPS Mosquittoを削除します。docker rm --force leaps_mosquitto を実行します。


カスタマイズオプション

必須オプション

  • ポート1883 - デフォルトのリスナーポート

  • リスナー1884 - 1884でリスナーを有効化

  • リスナー15675 - 15675でリスナーを有効化

推奨オプション

  • user mosquitto - ルート権限を削除

  • max_inflight_messages 200 - 一度に送信できるQoS1の数が少ないため、クライアントあたりのインファイティングQoSメッセージ数を増やします。

  • max_queued_messages 1000 - クライアントあたりのキューに保持するQoS1およびQoS2メッセージの最大数を、現在処理中のメッセージ数より増やします。

  • allow_zero_length_clientid true - クライアントIDの長さを0にすることを許可

  • persistent_client_expiration 14d - 設計が不適切なクライアントからの自動保護

トラブルシューティング

  • LEAPS Mosquittoを再起動するには、以下のコマンド``docker restart leaps_mosquitto``を使用します。

  • LEAPS Mosquittoの実行中にログを確認し、Dockerデスクトップを開いてleaps_mosquittoコンテナを選択します。