Skip to content

Extensions

Extensions機能を使用すると、ゲートウェイを介して非MQTTプロトコルの接続およびメッセージのパブリッシュ/受信を行い、プラグインやExHookを利用してシステムの修正や拡張が可能です。Managementをクリックし、下にスクロールしてExtensionsセクションを表示すると、以下が確認できます。

  • Gateways:すべての非MQTTプロトコルの接続、認証、およびメッセージの送受信を処理し、それらに対して統一されたユーザーレイヤーのインターフェースと概念を提供します。
  • ExHook:他のプログラミング言語を用いてEMQXのシステム機能を修正または拡張する機能を提供します。
  • Plugins:Erlangで書かれたプラグインをインストールすることでシステム機能を修正または拡張します。

Gateways

EMQXのマルチプロトコルゲートウェイは、すべての非MQTTプロトコルの接続、認証、およびメッセージの送受信をサポートします。さまざまなプロトコルに対して統一された概念モデルを提供します。

ゲートウェイページでは、ゲートウェイを有効化し、リスナー設定などの基本設定を行うことができます。EMQXはカスタム設定オプションも提供しています。詳細な設定手順については、以下の一般的なゲートウェイのクイックスタートドキュメントを参照してください。

ゲートウェイを有効にする前に、適切にセットアップする必要があります。セットアップ完了後、Gatewaysページで有効化された各プロトコルゲートウェイの接続数を監視し、ゲートウェイの状態(有効/無効)を管理できます。

ゲートウェイ一覧

TIP

ゲートウェイを無効化すると、そのゲートウェイ配下のすべての接続が切断され、再接続が必要になります。ご注意ください。

Gateway Setup

Gatewaysページで有効化したいプロトコルゲートウェイを選択し、Action列のSetupボタンをクリックします。プロトコルゲートウェイの初期設定ページは以下の3ステップで構成されています。

  1. 基本設定の構成
  2. リスナーの設定
  3. 認証の設定

設定項目はプロトコルゲートウェイによって異なります。初期設定完了後も、Gateway Detailsページから設定項目を更新可能です。

ゲートウェイ初期設定

Dashboard経由で設定したゲートウェイ設定はクラスター全体に反映されます。

基本設定

設定項目はプロトコルゲートウェイごとに異なります。詳細な設定方法は各ゲートウェイのドキュメントを参照してください。

リスナー

基本設定完了後、ゲートウェイのリスナー設定に進みます。各ゲートウェイはプロトコルに応じて複数のリスナーを有効化可能です。以下の表は各プロトコルゲートウェイがサポートするリスナー種別を示しています。

TCPUDPSSLDTLSWebsocketWebsocket over TLS
STOMP✔︎✔︎
CoAP✔︎✔︎
ExProto✔︎✔︎✔︎✔︎
MQTT-SN✔︎✔︎
LwM2M✔︎✔︎
OCPP✔︎✔︎
JT/T 808✔︎✔︎
GB/T 32960✔︎✔︎

認証

リスナー設定後、必要に応じてプロトコルゲートウェイのアクセス認証を設定できます。認証機能を設定しない場合は、任意のクライアントが接続可能です。各プロトコルゲートウェイがサポートする認証種別は以下の通りです。

HTTP ServerBuilt-in DatabaseMySQLMongoDBPostgreSQLRedisDTLSJWTScramLDAP
STOMP✔︎✔︎✔︎✔︎✔︎✔︎✔︎✔︎
CoAP✔︎✔︎✔︎✔︎✔︎✔︎✔︎✔︎
MQTT-SN✔︎
LwM2M✔︎
ExProto✔︎✔︎✔︎✔︎✔︎✔︎✔︎✔︎
OCPP✔︎✔︎✔︎✔︎✔︎✔︎✔︎✔︎
GB/T 32960✔︎

Gateway Details

プロトコルゲートウェイを有効化すると、Gatewaysページにリダイレクトされます。ここでゲートウェイの設定管理やカスタマイズが可能です。

  • 設定のカスタマイズActions列のSettingsボタンをクリックすると、ゲートウェイの基本設定、リスナー設定、認証設定を必要に応じて更新できます。
  • 接続クライアントの表示Actions列のClientsボタンをクリックすると、プロトコルゲートウェイ経由でサーバーに接続しているクライアントの一覧が表示されます。クライアントID、ユーザー名、IPアドレス(Clientsページと同様)、状態、接続または登録時間などの詳細が含まれます。クライアントを切断するには、Actions列のKick Outボタンをクリックしてください。
  • クライアント検索:クライアントID、ユーザー名、ノードでフィルターをかけて特定のクライアントを素早く検索できます。
ゲートウェイクライアント一覧

ExHook

Hookは特定のイベントポイントでカスタムコードを実行できる一般的な拡張機構です。ExHookは他のプログラミング言語を用いてシステム機能を修正または拡張する能力を提供します。EMQXがサポートするHook機構により、モジュール関数呼び出し、メッセージ送受信、イベント配信をインターセプトし、柔軟にシステム機能を修正・拡張できます。

ExHookページでは、現在追加されているHookの基本情報や状態を確認でき、追加や設定も行えます。

ExHookの定義および開発ガイドラインはhooksに記載されています。

ExHook一覧

ExHookの追加

ページ右上の**+ Add**ボタンをクリックすると、ExHook追加ページに遷移します。追加するExHookの基本情報および接続パラメータを設定し、Createをクリックしてデータを送信します。作成に成功するとExHook一覧ページにリダイレクトされます。

ExHook追加画面

詳細の表示

作成後、ExHook一覧ページのExHook名をクリックすると詳細ページにアクセスできます。詳細ページでは、登録済みHookの総数、成功実行数、失敗実行数、現在の実行率などのExHookメトリクスを確認できます。基本情報を編集し、Updateボタンで保存可能です。

ExHook詳細画面

Registered hooksタブをクリックすると、現在ExHookが実装しているHookの一覧および各Hookのパラメータや実行メトリクスを表示できます。

登録済みHook一覧

Plugins

EMQXはプラグインを通じてカスタムビジネスロジックを拡張したり、プラグインのプロトコル拡張インターフェースを利用して他のプロトコル対応を実装したりできます。Pluginsページでは、開発済みプラグインパッケージのインストールや起動、保守・設定が行えます。詳細な利用方法はPluginsを参照してください。

システムプラグインを管理するには、左側メニューのExtensions内のPluginsを選択します。

プラグイン一覧

Pluginsページにはインストール済みプラグインの一覧が表示され、プラグイン名、バージョン、作者、実行状態などの詳細が確認できます。ページ上部のフィルターで名前や実行状態による検索が可能です。

プラグインのインストール

詳細な手順はInstall Plugins via Dashboardを参照してください。

パッケージのインストールに成功するとプラグイン一覧ページにリダイレクトされます。新規インストールされたプラグインはデフォルトで停止状態です。プラグインを有効化するには、該当プラグインの横にあるStartボタンをクリックしてください。

プラグイン実行順序の管理

複数のプラグインがある場合、実行順序は有効化された順序で決まります。順序は以下の方法で調整可能です。

  • ページ上でプラグインをドラッグ&ドロップする
  • Actions列のMoreメニュー内の並び替えオプションを使用する

変更した実行順序は次回ノード再起動時に反映されます。

プラグインのアンインストール

プラグインを削除するには、Actions列のMoreメニュー内のUninstallボタンをクリックしてください。

プラグイン一覧

プラグイン詳細

プラグイン名をクリックすると詳細ページにアクセスできます。このページでは以下を確認できます。

  • ドキュメント:左側パネルにプラグインインストールパッケージ内のREADME.mdファイルが表示されます。
  • プラグイン情報:右側パネルにrelease.jsonファイルのメタデータ(バージョン、作者、その他情報)が表示されます。

プラグインのドキュメントに開発者ウェブサイトのリンクがある場合、右上のRead Moreをクリックしてアクセスできます。

プラグイン詳細画面