📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

112行目: 112行目:
<br>
<br>
==== MQTTブローカーのインストール ====
==== MQTTブローカーのインストール ====
===== パッケージ管理システムからインストール =====
  # RHEL
  # RHEL
  sudo dnf install mosquitto mosquitto-clients
  sudo dnf install mosquitto mosquitto-clients
127行目: 128行目:
  sudo systemctl enable mosquitto
  sudo systemctl enable mosquitto
<br>
<br>
===== ソースコードからインストール =====
Mosquittoのビルドに必要なライブラリをインストールする。<br>
# RHEL
sudo dnf install make cmake gcc gcc-c++ cJSON-devel  \
                  openssl3 openssl3-libs openssl3-devel
                  systemd-devel  # Systemdサービスを使用する場合
# SUSE
sudo zypper install make cmake gcc gcc-c++ cJSON-devel  \
                    libopenssl-devel libopenssl-1_1-devel
                    systemd-devel  # Systemdサービスを使用する場合
<br>
[https://mosquitto.org/download/ Mosquittoの公式Webサイト]または[https://github.com/eclipse-mosquitto/mosquitto Github]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf mosquitto-<バージョン>.tar.gz
cd mosquitto-<バージョン>
<br>
Mosquittoをビルドおよびインストールする。<br>
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=<Mosquittoのインストールディレクトリ> \
      -DWITH_SYSTEMD=ON \  # Systemdサービスユニットを使用する場合
      -DWITH_TLS_PSK=ON \  # TLS-PSKをサポートする場合
      -DWITH_EC=ON \      # 楕円曲線暗号をサポートする場合
      ..
make -j $(nproc)
make install
<br>
Mosquittoをユーザディレクトリにインストールした場合は、Systemdサービスユニットファイルを手動で作成する必要がある。<br>
vi ~/.config/systemd/user/mosquitto.service
<br>
<syntaxhighlight lang="ini">
# ~/.config/systemd/user/mosquitto.serviceファイル
[Unit]
Description=Mosquitto MQTT Broker
Documentation=man:mosquitto.conf(5) man:mosquitto(8)
After=network.target
Wants=network.target
[Service]
Type=notify
NotifyAccess=main
ExecStart=/<Mosquittoのインストールディレクトリ>/sbin/mosquitto -c /<Mosquittoのインストールディレクトリ>/etc/mosquitto/mosquitto.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
ExecStartPre=/bin/mkdir -m 740 -p /<Mosquittoのインストールディレクトリ>/var/log/mosquitto
ExecStartPre=/bin/mkdir -m 740 -p /<Mosquittoのインストールディレクトリ>/run/mosquitto
[Install]
WantedBy=multi-user.target
</syntaxhighlight>
<br>
Systemdデーモンを再読み込みする。<br>
systemctl --user daemon-reload
<br>
Systemdサービスユニットが正常に読み込まれているかどうかを確認する。<br>
systemctl --user mosquitto
<br>
====  ファイアウォールの設定 ====
====  ファイアウォールの設定 ====
MQTTブローカーの動作に必要なポートを開放する。<br>
MQTTブローカーの動作に必要なポートを開放する。<br>