6.5. MQTT Broker

エッジデバイスとのMQTT通信のエンドポイントとなるブローカーです。ICE BackendではオープンソースのMQTT Broker実装のRabbitMQを使用しています。

6.5.1. サービス

  • サービス開始(CentOSの場合)
$ service rabbitmq-server start
  • サービス停止(CentOSの場合)
$ service rabbitmq-server stop

6.5.2. 管理コンソール

MQTT Brokerのリソース状況を確認できるWeb管理画面を提供しています。 管理画面を表示するには以下のURLにアクセスします。

http://<ホスト名>/rabbitmq/

ログイン画面では以下を入力してください。

Usernam e iotadmi n
Passwor d admin

6.5.3. 設定ファイル

MQTT Brokerの設定ファイルは/opt/nec/pf/ice/config/rabbitmq.configです。

6.5.4. 使用ポート

MQTT Brokerでは以下のポートを使用します。

ポート番号 用途
1883 メッセージ通信
22404 管理コンソール

6.5.5. ICE で使用するトピック

6.5.6. その他チューニング

6.5.6.1. ファイルディスクリプタ数制限の緩和

RabbitMQのプロセスは”rabbitmq”という一般権限のユーザで実行されます。 Linuxディストリビューションでは通常、一般ユーザに対してスレッド数や オープンできるファイルディスクリプタ数などのリソースの使用可能数を制限しています。 この制限によって、RabbitMQが使用できるファイルディスクリプタが枯渇すると へッセージ配信の性能が大幅に低下するため、ICEではRabbitMQ用に ファイルディスクリプタ数の制限を既定で32,000に設定します。

この値を変更する場合は、以下のいずれかの手順を実施してください。

  • インストール前の場合

    ansible playbookのconf.ymlを開き、ice.message_broker.limit.nofileの値を変更します。

  • インストール後の場合

    /etc/security/limits.confを開き、次の行の``32000``の値を変更します。

    rabbitmq         soft    nofile          32000
    rabbitmq         hard    nofile          32000
    

    ファイルを保存したら、rabbitmqユーザに切り替えてulimitを再読込します。

    $ sudo su rabbitmq
    $ ulimit -n
    

6.5.7. 公式サイト

RabbitMQに関する一般的な情報は公式サイト( https://www.rabbitmq.com/ )を参照してください。