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.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/ )を参照してください。