MQTTブローカーの準備
0. はじめに
OpenBlocksにEclipse Mosquittoをインストールし、MQTTブローカー(サーバー)を設定します。
MQTTブローカーの準備には、次の5つの作業があります。
また、本チュートリアルには次の機材が用いられています。
1. OpenBlocksの初期設定
- WEB-UIを使うスタートアップについてはWEB-UI接続準備をご覧下さい。
- OpenBlocksのFW(Frame Work)をLinuxコンピュータとして動作させるための必要最小限の設定については初期設定をご覧下さい。
初期設定においては、MQTTブローカー用のOpenBlocks と 送信側のOpenBlocks、受信側のOpenBlocks がネットワークで接続されるよう設定して下さい。
本チュートリアルでは3台のOpenBlocksがeth0ポートを介して相互に接続できるよう設定されていることを前提に説明を進めます。
2. OpenBlocks へのログイン
MQTTブローカーを稼働させるOpenBlocksの Linuxコマンドライン にログインします。
console ポートを用いる場合はコンソールからのログインを、 SSH(Secure Shell)を用いる場合は SSHからのログイン を参照して下さい。
3. Mosquitto のインストール
OpenBlocksにmosquittoパッケージをインストールします。
- apt update を実行します。
- apt install -y mosquitto を実行します。
4. Mosquitto MQTTブローカーの設定
mosquittoパッケージでインストールされる
MQTTブローカーはデフォルト状態でユーザー認証を行いません。
チュートリアルではBASIC認証(パスワード認証)を行うよう設定します。
4-1. 設定ファイルの編集
BASIC認証が行われるよう設定ファイル /etc/mosquitto/mosquitto.confにインクルード(追加読込)される /etc/mosquitto/conf.d/password.conf を作成します。
- echoコマンドでlistener 1883を /etc/mosquitto/conf.d/password.confに追記します。
- echoコマンドでallow_anonymous falseを /etc/mosquitto/conf.d/password.confに追記します。
- echoコマンドでpassword_file /etc/mosquitto/pwfileを /etc/mosquitto/conf.d/password.confに追記します。
- catコマンドで /etc/mosquitto/conf.d/password.confの記載を確認します。
mosquittoのデフォルト バインドポートはlocalhost:1883です。listener 1883を設定することで0.0.0.0:1883に設定されます。
4-2. パスワード ファイルの作成
パスワード ファイル /etc/mosquitto/pwfile を作成します。
- touchコマンドで空のパスワード ファイル /etc/mosquitto/pwfile を作成します。
- mosquitto_passwdコマンドでユーザー名deviceGw、パスワードpasswordGwをパスワード ファイル /etc/mosquitto/pwfileに登録します。
- mosquitto_passwdコマンドでユーザー名application、パスワードpasswordAppをパスワード ファイル /etc/mosquitto/pwfileに登録します。
- catコマンドでパスワード ファイル /etc/mosquitto/pwfile の内容を確認します。
4-3. MQTTブローカーの再起動
systemctlコマンドでMQTTブローカー(mosquitto)を再起動します。
4-4. MQTTブローカーの自動起動有効化
systemctlコマンドで OS 起動時にMQTTブローカー(mosquitto)が自動起動するよう設定します。
5. 1883ポートの解放
システム⇒フィルタータブにてMQTTブローカーが接続に使用するTCP 1883ポートを開放します。
上の黒いタブ列にファイル管理タブが表示されていない場合は、ダッシュボートタブをクリックして下さい。
フィルター解放設定ペイン右上の拡張フィルター対応
ボタンをクリックします。
拡張フィルタ設定ファイル編集ペインが表示されます。
- 拡張フィルタ設定ファイル編集ペインの入力フィールドに/sbin/iptables -A INPUT -i eth0 -p tcp --dport 1883 -j ACCEPTと入力します。
ネットワークの接続ポートとしてeth1またはwlan0を使用する場合は -i eth0を -i eth1または -i wlan0として下さい。 保存
ボタンをクリックします。