バージョン 1.0.32 · 無料・無制限

すべての人のための MQTT ブローカー

ELX-MQTT Broker は本格的な Web ダッシュボードを備えた Go 製のブローカーです。MQTT 3.1.1 と 5.0 はサードパーティ製ライブラリを使わず、一から完全に実装しました。バイナリ 1 つ、依存関係なし。入れればそのまま動きます。

Debian · Ubuntu · Windows x64 · Linux arm64 と armhf

Debian / Ubuntu へのインストール
$ sudo apt-get install elxmqttbroker
Setting up elxmqttbroker (1.0.32) ...
Created symlink /etc/systemd/system/multi-user.target.wants/elxmqttbroker.service

ELX MQTT Broker 1.0.32 — listening on :1883, :8883, dashboard on :8567
state restored retained=128 sessions=7 subscriptions=34 delayed=2
2 対応するプロトコル版:3.1.1 と 5.0
0 サードパーティ製 MQTT ライブラリ
7 ダッシュボードの言語
6 認証情報の取得元

ブローカーに求めるものすべてに、様子を見守るダッシュボードを添えて

このブローカーはメッセージを配るだけでなく、何が起きているかを正確に示します。誰が接続しているか、どのトピックが生きているか、制限機構が何を捨てているか。

MQTT 5.0 の完全対応

すべてのパケットプロパティ、トピックエイリアス、$share による共有購読、購読識別子、No Local、Retain Handling、Will Delay、Message Expiry、理由コード、AUTH パケット。

動きのあるダッシュボード

メッセージ流量とトラフィックのグラフ、マシンの状態、活動中のトピック、イベントの流れ。WebSocket で配信され、ページの再読み込みは不要です。

トピック単位の権限

フィルター、アクセス種別、許可か拒否かで構成する ACL ルール。既定はすべて拒否で、$u というプレースホルダーを使えば 1 行でクライアントを自分の枝に閉じ込められます。

ブローカー間ブリッジ

サーバー水準での双方向のトピック転送。out/in/both の方向、接頭辞、TLS、ループ防止、自動再接続に対応します。

遅延配信

$delayed/60/topic へ発行すると、購読者には 1 分後に届きます。EMQX 互換で再起動しても残り、待ち行列はダッシュボードで確認・取り消しできます。

フラッド制御とトピック制限

接続ごとのトークンバケットに加え、トピックパターンごとのルール。流量を一定の頻度まで間引く(最新値を保持)ことも、丸ごと捨てることもできます。

6 つの認証情報の取得元

内蔵リスト、MariaDB/MySQL、SQLite、CSV、JWT、外部 HTTP サービス。切り替えは稼働中に行え、ブローカーの再起動は不要です。

REST API

ダッシュボードでできることはすべてベアラートークンで利用できます。自分のシステムからデバイスを作成し、権限を与えられます。読み取り専用トークンにも対応。

再起動しても失われない

retain メッセージ、永続セッション、オフラインキュー、遅延メッセージは純 Go の SQLite に保存されます。CGO も外部データベースも不要です。

インストールは 1 分

Debian と Ubuntu 向けの APT リポジトリのパッケージと、Windows 向けのそのまま使えるバイナリ。Docker も実行環境も、追加のライブラリも要りません。

  1. 鍵とリポジトリを追加する

    sudo wget -qO /usr/share/keyrings/elx-repo.gpg https://repo.um-d.ru/elx-repo.gpg
    echo "deb [signed-by=/usr/share/keyrings/elx-repo.gpg] https://repo.um-d.ru stable main" | sudo tee /etc/apt/sources.list.d/elx-repo.list
  2. パッケージ一覧を更新する

    sudo apt-get update
  3. ブローカーをインストールする

    sudo apt-get install elxmqttbroker
  1. ダウンロードページからインストーラーを入手する

  2. 実行して「Windows サービスとしてインストール」を選ぶ

  3. ダッシュボードを開き admin / admin でログインする

    http://localhost:8567

インストールが済むと、ダッシュボードは :8567、MQTT は :1883、TLS 上の MQTT は :8883 で待ち受けます。初期のログインは admin / admin です。最初のログイン時に変更してください。

すべてのダウンロード方法 →

見た目はこんな具合

ダークとライトのテーマ、7 つの表示言語、動くグラフ。ダッシュボードはブローカーの一部で、別途入れるものはありません。

画面: 見た目はこんな具合

24 画面すべて →

対応している内容

コーデックは 15 種類すべてのパケットを符号化・復号し、トピックの照合は仕様の表どおりに行います。

3.1.1 と 5.0 に共通

  • 完全な手順を踏む QoS 0、1、2
  • 再接続後の再送
  • retain メッセージと枝ごとの消去
  • Last Will and Testament
  • クリーンセッションと永続セッション
  • キープアライブとセッションの引き継ぎ
  • ワイルドカード + と #
  • 統計を持つ $SYS ツリー

MQTT 5.0 のみ

  • すべてのパケットプロパティ
  • 双方向のトピックエイリアス
  • Session Expiry Interval
  • Receive Maximum とフロー制御
  • 購読識別子
  • 共有購読 $share/グループ/フィルター
  • No Local と Retain As Published
  • Retain Handling 0/1/2
  • Will Delay と Message Expiry
  • Content Type、Response Topic、Correlation Data
  • User Properties と理由コード
  • サーバー側 DISCONNECT と AUTH パケット

トランスポート

  • :1883 — TCP 上の MQTT
  • :8883 — TLS 上の MQTT
  • :8567/mqtt — WebSocket 上の MQTT
  • :8567 — Web ダッシュボード
  • 初回起動時に TLS 証明書を生成
  • 自前の証明書は設定ファイルで指定

負荷で確かめた実力

ネットワーク経由とループバックの 2 台構成で負荷試験を実施しました。ここでは要点だけ。手法と表を載せた完全な報告は 1 クリック先にあります。

30,000 同時接続、失敗はゼロ
約 1 ms ネットワーク経由の発行者 → ブローカー → 購読者の遅延
135 万/秒 ファンアウト ×100 で購読者へ届いたメッセージ
0 全試行を通じてブローカーのログに出たエラー

負荷テストの完全な報告 →

入れて試してみてください

ブローカーは無料で、デバイス数もメッセージ数も無制限、登録も不要です。