📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の15版が非表示) | |||
| 34行目: | 34行目: | ||
<br> | <br> | ||
[[ファイル:MQTT Broker 1.png|フレームなし|中央]] | [[ファイル:MQTT Broker 1.png|フレームなし|中央]] | ||
<br><br> | |||
== MQTTブローカーとサブスクライバを兼ねるケース == | |||
以下に示すような代表的なユースケースがある。<br> | |||
<br> | |||
* モニタリング / 管理目的 | |||
*: ブローカー自身が各トピックのメッセージをサブスクライブして監視する場合 | |||
*: システムの健全性を確認する場合 | |||
*: メッセージ統計の収集する場合 | |||
*: アクセスログの記録する場合 | |||
<br> | |||
* ブリッジング | |||
*: 複数のMQTTブローカー間でメッセージを中継する場合 | |||
*: あるブローカーがサブスクライバとして他のブローカーからメッセージを受信して、自身のブローカーとしての機能で配信する場合 | |||
<br> | |||
* データの加工 / 集約 | |||
*: 複数のトピックからメッセージを受信して加工する場合 | |||
*: 加工したデータを新しいトピックとして配信する場合 | |||
<br> | |||
* セキュリティ / フィルタリング | |||
*: メッセージの内容を検証 | |||
*: 不正なメッセージのフィルタリング | |||
<br> | |||
ただし、このような構成をとる場合は注意が必要となる。<br> | |||
* ブローカーの負荷が増加する可能性がある。 | |||
* 設計が複雑になりやすい。 | |||
* 障害発生時の影響範囲が広がる可能性がある。 | |||
<br><br> | |||
== MQTTブローカーがパブリッシャーを兼ねるケース == | |||
MQTTブローカーがパブリッシャーとしても機能することにより、システム管理や監視の効率化が図ることができる。<br> | |||
システムの複雑性とのバランスを考慮する必要がある。<br> | |||
<br> | |||
主な用途として、以下に示すようなものがある。<br> | |||
<br> | |||
* システム状態の通知 | |||
*: ブローカー自身の状態情報(CPU使用率、メモリ使用量など) | |||
*: 接続クライアント数 | |||
*: システムヘルスチェック結果 | |||
*: $SYS/トピック配下での統計情報の配信 | |||
<br> | |||
* 管理機能の提供 | |||
*: クライアントの接続/切断通知 | |||
*: セッション状態の変更通知 | |||
*: 認証/認可の結果通知 | |||
*: システムメンテナンス情報の配信 | |||
<br> | |||
* デバイス管理 | |||
*: デバイスの構成変更指示 | |||
*: ファームウェアアップデート通知 | |||
*: リモートコマンド実行結果 | |||
<br> | |||
* エラーハンドリング | |||
*: エラー状態の通知 | |||
*: 異常検知時のアラート | |||
*: フォールバック処理の実行結果 | |||
<br> | |||
* Last Will and Testament (LWT) の管理 | |||
*: クライアントの異常切断検知時のメッセージ配信 | |||
*: フェイルオーバー通知 | |||
<br> | |||
<u>※運用上の注意</u><br> | |||
* メッセージの優先順位付け (システムメッセージvs通常メッセージ) | |||
* パブリッシュ頻度の適切な設定 | |||
* システムメッセージとアプリケーションメッセージの分離 | |||
* セキュリティ (システムメッセージへのアクセス制御) | |||
<br><br> | <br><br> | ||
== パブリックMQTTブローカーサービス (無料 / 有料) == | == パブリックMQTTブローカーサービス (無料 / 有料) == | ||
==== HiveMQ Cloud (無料枠あり) ==== | |||
*: | 運用・保守では、クラウドサービスであるHiveMQ Cloudの方が管理の手間は少ない。<br> | ||
*: | <br> | ||
*: 10[KB]/ | MQTT機能のみに集中して学習する場合や直感的な管理画面を求める場合は、HiveMQが適している可能性がある。<br> | ||
<br> | |||
https://www.hivemq.com/pricing/<br> | |||
<br> | |||
===== 無料版 ===== | |||
* 料金 | |||
*: 無料 | |||
* デバイス接続数 | |||
*: 100台までのデバイス接続可能 | |||
* 転送速度 | |||
*: 10[KB]/秒 | |||
* データトラフィック | |||
*: 10[GB]データトラフィック/月 | |||
* プロトコル | |||
*: MQTT 3.1 / 3.1.1 / 5.0 | |||
* SSL / TLS暗号化 | |||
*: MQTT over TLS/SSL | |||
* 基本認証ルール | |||
* Websocketサポート | |||
<br> | |||
===== 有料版 ===== | |||
* 料金 | |||
*: 1時間 $0.34 | |||
* デバイス接続数 | |||
*: 無制限 | |||
* 転送速度 | |||
*: 最大1[MB]/秒 | |||
* データトラフィック | |||
*: 10[GB]データトラフィック/月 | |||
* プロトコル | |||
*: MQTT 3.1 / 3.1.1 / 5.0 | |||
* SSL / TLS暗号化 | |||
*: MQTT over TLS/SSL | |||
* クライアント証明書認証 | |||
* Websocketサポート | |||
* REST API | |||
<br> | |||
==== EMQX MQTT (無料枠あり) ==== | |||
フルマネージドMQTTサービスである。<br> | |||
複数のクラウドプロバイダ (AWS、GCP、Azure) に対応している。<br> | |||
<br> | |||
SSL / TLS暗号化にも対応している。<br> | |||
<br> | |||
* サーバーレスプラン | |||
*: 1000台までのデバイス接続が可能。 | |||
*: シングルノード構成であり、データ転送速度は1[TPS] (Transaction Per Second) までとなっている。 | |||
*: <br> | *: <br> | ||
* CloudMQTT (現在はUpstashの一部) | * 専用プラン (料金 : $263 / 月) | ||
*: 専用のクラウド環境内で完全に管理されたMQTTブローカーである。 | |||
*: 無料14日間トライアル付き | |||
*: VPCピアリング、NATゲートウェイ、ロードバランシング等の階層オプションを提供している。 | |||
*: 40以上のクラウドサービスとのアウトオブボックス統合を提供している。 | |||
*: 24時間体制のグローバルな技術サポート付き。 | |||
*: <br> | |||
* Premiumプラン (価格 : カスタム価格) | |||
*: Everything in Dedicated Plan (専用プランの全ての機能を含む) | |||
*: マルチアベイラビリティゾーンによる専用ストレージのサポート | |||
*: 専用データベースに保存される永続的なセッション | |||
*: クラスターリンクによるクロスリージョン通信 | |||
*: ネイティブKafkaプロトコルサポート | |||
<br> | |||
EMQXでは、KafkaおよびWebhookコネクタの機能が使用できる。<br> | |||
<br> | |||
コネクタ機能により、IoTデバイスのデータを他のシステムとの連携、リアルタイムなデータ処理やイベント監視、サーバーレス環境でも外部システムとの統合が容易になる。<br> | |||
例えば、- デバイスから送信されたセンサーデータをKafkaに転送して分析、デバイスの接続/切断イベントをWebhookで監視システムに通知、メッセージの受信をWebhookでアプリケーションサーバに通知する等。<br> | |||
<br> | |||
* Kafkaコネクタ | |||
*: EMQXで受信したMQTTメッセージをApache Kafkaに自動的に転送できる。 | |||
*: MQTT -> Kafka方向のデータ連携が可能。 | |||
*: これは、IoTデバイスからのデータをKafkaのトピックに送信して、ストリーム処理やデータ分析に活用できる。 | |||
*: <br> | |||
* Webhookコネクタ | |||
*: MQTTのイベント (接続、切断、メッセージの発行等) をHTTP/HTTPSのWebhookとして外部システムに通知できる。 | |||
*: 特定のイベントが発生した時、指定したURLにHTTPリクエストを送信する。 | |||
*: 外部のWebアプリケーションやサービスと連携可能である。 | |||
<br> | |||
個人学習用途では、EMQXサーバーレスを推奨する。<br> | |||
これは、デバイス接続数が多いため様々な実験が可能であること、KafkaやWebhook等の連携が無料で使用できるためIoTシステム全体のアーキテクチャを学習できることが挙げられる。<br> | |||
<br> | |||
https://www.emqx.com/ja/pricing<br> | |||
<br> | |||
==== CloudMQTT (現在はUpstashの一部) ==== | |||
*: スモールスケール向けの無料プラン有り。 | *: スモールスケール向けの無料プラン有り。 | ||
*: 管理画面が理解しやすい。 | *: 管理画面が理解しやすい。 | ||
| 52行目: | 198行目: | ||
*: 他のAWSサービスと連携可能 | *: 他のAWSサービスと連携可能 | ||
*: 従量課金制 | *: 従量課金制 | ||
<br> | |||
==== test.mosquitto.org (テスト向けは無料) ==== | |||
<u>テストや学習用に使用される</u><br> | |||
セキュリティの保証が無いため、本番環境での使用は非推奨である。<br> | |||
<br><br> | <br><br> | ||
| 110行目: | 256行目: | ||
* 可能な限り、SSL/TLS通信を使用することを推奨する。 | * 可能な限り、SSL/TLS通信を使用することを推奨する。 | ||
* 定期的にログを確認して、不正なアクセスがないか監視すること。 | * 定期的にログを確認して、不正なアクセスがないか監視すること。 | ||
<br> | |||
==== OpenSSL 3を使用する場合 ==== | |||
OpenSSL 3を使用して、Mosquittoで通信することは可能である。<br> | |||
ただし、いくつか注意点がある。<br> | |||
<br> | |||
Mosquitto 2.0以降では、OpenSSL 3.0との互換性が確保されている。<br> | |||
ただし、古いバージョンのMosquittoを使用している場合は、OpenSSL 3.0との互換性の問題が発生する可能性がある。<br> | |||
<br> | |||
これは、OpenSSL 3.0で非推奨となった古い暗号化アルゴリズムやAPIの使用に関連している。<br> | |||
<br> | |||
これを解決するには、以下に示すような方法が挙げられる。<br> | |||
* Mosquittoを最新バージョンにアップグレードする。(推奨) | |||
* Mosquittoをソースコードからビルドする時に、-DWITH_TLS_PSKオプションをNOに指定する。 | |||
* OpenSSL 3.0のレガシープロバイダを有効にする。<br>これは、/etc/ssl/openssl.cnfファイルの設定が必要となる。 | |||
<br> | |||
# /etc/ssl/openssl.cnfファイル | |||
# OpenSSLのレガシープロバイダを有効にする場合 | |||
openssl_conf = openssl_init | |||
[openssl_init] | |||
providers = provider_sect | |||
[provider_sect] | |||
default = default_sect | |||
legacy = legacy_sect | |||
[default_sect] | |||
activate = 1 | |||
[legacy_sect] | |||
activate = 1 | |||
<br> | <br> | ||
==== MQTTブローカーのインストール ==== | ==== MQTTブローカーのインストール ==== | ||
===== パッケージ管理システムからインストール ===== | |||
# RHEL | # RHEL | ||
sudo dnf install mosquitto mosquitto-clients | sudo dnf install mosquitto mosquitto-clients | ||
| 127行目: | 306行目: | ||
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> | ||
| 140行目: | 381行目: | ||
sudo firewall-cmd --reload | sudo firewall-cmd --reload | ||
<br> | <br> | ||
==== | ==== ユーザの登録 ==== | ||
まず、MQTTユーザを追加する。<br> | まず、MQTTユーザを追加する。<br> | ||
次に、パスワード (プロンプトが表示される) を入力する。<br> | 次に、パスワード (プロンプトが表示される) を入力する。<br> | ||
| 149行目: | 390行目: | ||
<u><code>-c</code>オプションは、既存ファイルを上書きするためである。</u><br> | <u><code>-c</code>オプションは、既存ファイルを上書きするためである。</u><br> | ||
sudo mosquitto_passwd /etc/mosquitto/passwd <追加するユーザ名> | sudo mosquitto_passwd /etc/mosquitto/passwd <追加するユーザ名> | ||
# または | |||
sudo mosquitto_passwd -b /etc/mosquitto/passwd <追加するユーザ名> <パスワード> | |||
<br> | <br> | ||
==== Mosquittoの設定 ==== | ==== Mosquittoの設定 ==== | ||
まず、Mosquittoの設定ファイルを作成する。<br> | まず、Mosquittoの設定ファイルを作成する。<br> | ||
| 155行目: | 399行目: | ||
<br> | <br> | ||
次に、Mosquittoの設定を記述する。<br> | 次に、Mosquittoの設定を記述する。<br> | ||
# | # ポート番号の設定 | ||
# ポート番号を変更することも可能 | |||
listener 1883 | listener 1883 | ||
# 匿名接続の許可 / 不許可 | # 匿名接続の許可 / 不許可 | ||
# <u>trueを指定する場合、MQTTユーザ名およびパスワードの記述無しでパブリッシュすることができる</u> | |||
allow_anonymous false | allow_anonymous false | ||
| 164行目: | 410行目: | ||
password_file /etc/mosquitto/passwd | password_file /etc/mosquitto/passwd | ||
<br> | <br> | ||
また、リスナーごとに異なるallow_anonymous設定を行うことができる。<br> | |||
これにより、用途に応じてポートを使い分けることができる。<br> | |||
* 1883ポート | |||
*: 社内ネットワークなどの信頼できる環境からの接続用 | |||
* 51883ポート | |||
*: 外部からのアクセス等、セキュリティが必要な接続用 | |||
<br> | |||
# 1883ポート : 認証必須 | |||
listener 1883 | |||
allow_anonymous false | |||
# 51883ポート : 匿名ユーザを許可 | |||
listener 51883 | |||
allow_anonymous true | |||
password_file /etc/mosquitto/passwd | |||
<br> | |||
==== 認証の必要性 ==== | |||
認証を使用する理由として、以下のことが挙げられる。<br> | |||
* 不正アクセスの防止 | |||
* デバイスの識別が容易 | |||
* アクセス制御が可能 | |||
* 通信ログの追跡が容易 | |||
<br> | |||
<u>ただし、開発環境やテスト環境では、allow_anonymous trueの設定で認証無しで使用することもある。</u><br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>認証設定はサブスクライバ (受信) とパブリッシャー (送信) の両方に適用される。</u><br> | |||
<u>両方のクライアントが設定されたユーザ名とパスワードを使用して接続する必要がある。</u><br> | |||
<br> | |||
==== セキュリティ設定 (推奨) ==== | ==== セキュリティ設定 (推奨) ==== | ||
TLS/SSL通信を有効にする。<br> | TLS/SSL通信を有効にする。<br> | ||
| 257行目: | 534行目: | ||
<br> | <br> | ||
===== サブスクライバー (購読者) の起動 ===== | ===== サブスクライバー (購読者) の起動 ===== | ||
# 匿名ユーザを許可している場合 | |||
mosquitto_sub -h <IPアドレスまたはホスト名 例: localhost> -t <購読するトピック 例: "test/topic"> -u <MQTTユーザ名> -P <MQTTユーザ名のパスワード> | |||
## または | |||
mosquitto_sub -h <IPアドレスまたはホスト名 例: localhost> -t <購読するトピック 例: "sensors/#"> -v -u <MQTTユーザ名> -P <MQTTユーザ名のパスワード> | |||
# ユーザ認証を使用する場合 | |||
mosquitto_sub -h <IPアドレスまたはホスト名 例: localhost> -t <購読するトピック 例: "test/topic"> -u <MQTTユーザ名> -P <MQTTユーザ名のパスワード> | mosquitto_sub -h <IPアドレスまたはホスト名 例: localhost> -t <購読するトピック 例: "test/topic"> -u <MQTTユーザ名> -P <MQTTユーザ名のパスワード> | ||
# または | ## または | ||
mosquitto_sub -h <IPアドレスまたはホスト名 例: localhost> -t <購読するトピック 例: "sensors/#"> -v | mosquitto_sub -h <IPアドレスまたはホスト名 例: localhost> -t <購読するトピック 例: "sensors/#"> -v -u <MQTTユーザ名> -P <MQTTユーザ名のパスワード> | ||
# QoSを指定する場合 | # QoSを指定する場合 | ||
| 363行目: | 646行目: | ||
* --cafile | * --cafile | ||
*: CA証明書ファイルを指定する。 | *: CA証明書ファイルを指定する。 | ||
<br> | |||
===== 動作確認 ===== | |||
まず、MQTTブローカー (Mosquitto) を起動する。<br> | |||
sudo systemctl start mosquitto | |||
<br> | |||
次に、サブスクライバ側を待機させる。<br> | |||
ここでは、接続先のMQTTブローカーは自身のPC (localhost) とする。<br> | |||
# 匿名ユーザを許可している場合 | |||
mosquitto_sub -h localhost -t hoge/piyo | |||
# ユーザ名 / パスワードを指定する場合 | |||
mosquitto_sub -h localhost -t hoge/piyo -u <ユーザ名> -P <パスワード> | |||
<br> | |||
パプリッシャー側でメッセージをパブリッシュする。<br> | |||
この時、任意のPCやデバイスが同じトピック名を持つメッセージを送信する時、サブスクライバ側は自動的に受信する。<br> | |||
# 匿名ユーザを許可している場合 | |||
mosquitto_pub -h localhost -t hoge/piyo -m "Hello, Mosquitto!" | |||
# ユーザ名 / パスワードを指定する場合 | |||
mosquitto_sub -h localhost -t hoge/piyo -u <ユーザ名> -P <パスワード> | |||
<br> | |||
===== 使用例 ===== | |||
例えば、3台のデバイスに対して「LED照明を付けてほしい」とパブリッシャーが送信する場合、以下に示すようにMQTTトピックを効率的に使用する。<br> | |||
<code>#</code>は、MQTTトピックにおけるワイルドカードであり、該当する全てのトピックを購読することができる。<br> | |||
<br> | |||
* 共通トピックを使用する方法 | |||
# パブリッシャー側 | |||
mosquitto_pub -t "lights/all" -m "ON" -u <ユーザ名> -P <パスワード> | |||
# サブスクライバ側 (各デバイス側) | |||
mosquitto_sub -t "lights/all" -u <ユーザ名> -P <パスワード> | |||
<br> | |||
* 個別制御も可能な階層的トピック構造 | |||
# 全体制御 (パブリッシャー側) | |||
mosquitto_pub -t "lights/#" -m "ON" -u <共通のユーザ名> -P <共通のパスワード> | |||
# 個別制御 (パブリッシャー側) | |||
mosquitto_pub -t "lights/device1" -m "ON" -u <デバイス1のユーザ名> -P <デバイス1のパスワード> | |||
mosquitto_pub -t "lights/device2" -m "OFF" -u <デバイス2のユーザ名> -P <デバイス2のパスワード> | |||
# デバイス側は両方のトピックを購読 (サブスクライバ側) | |||
# オプション1: 共通認証 | |||
mosquitto_sub -t "lights/#" -u <共通のユーザ名> -P <共通のパスワード> | |||
# オプション2: デバイスごとの認証 (サブスクライバ側) | |||
mosquitto_sub -t "lights/#" -u <デバイス1のユーザ名> -P <デバイス1のパスワード> | |||
mosquitto_sub -t "lights/#" -u <デバイス2のユーザ名> -P <デバイス2のパスワード> | |||
<br> | |||
また、実務では、複数のデバイスで同じ認証情報を共有するケースは一般的である。(例: 同一のユーザ名とパスワードを使用するデバイスが3台ある場合)<br> | |||
* メリット | |||
*: 設定管理が簡単 | |||
*: デバイスの追加が容易 | |||
* デメリット | |||
*: セキュリティリスク (認証情報が漏洩した場合の影響大) | |||
*: 個別デバイスの追跡が困難 | |||
<br> | |||
<u>ただし、セキュリティを重視する場合は、デバイスごとに異なる認証情報を設定することが推奨される。</u><br> | |||
<br> | <br> | ||
===== 運用時の注意 ===== | ===== 運用時の注意 ===== | ||
| 377行目: | 718行目: | ||
*: 大量のメッセージを扱う場合はQoSレベルを適切に選択する。 | *: 大量のメッセージを扱う場合はQoSレベルを適切に選択する。 | ||
*: リテインメッセージの使用は必要最小限に抑える。 | *: リテインメッセージの使用は必要最小限に抑える。 | ||
<br><br> | |||
== 接続の制限 == | |||
mosquitto.confファイルでクライアント接続数を制限することができるが、デフォルトの設定では制限を課していない。<br> | |||
しかし、Linux OSでは制限を課しており、各ユーザに対して1024となっている。<br> | |||
<br> | |||
この制限は、許可されるオープンファイルの最大数である。<br> | |||
<br> | |||
==== コマンドラインからMosquittoを実行する場合 ==== | |||
これは、limits.confファイル (/etc/security/limits.conf) を編集することにより、各ユーザごとに変更できる。<br> | |||
<br> | |||
設定を反映させるため、PCを再起動する必要がある。<br> | |||
<br> | |||
PCを再起動した後、制限が変更されているかどうかを確認する。<br> | |||
ulimit -Sn | |||
# または | |||
ulimit -Hn | |||
<br> | |||
ただし、上記の設定は、コマンドラインから起動したmosquittoにのみ影響する。<br> | |||
<br> | |||
==== SystemdサービスからMosquittoを実行する場合 ==== | |||
MosquittoをSystemdサービスとして起動する場合は、MosquittoのSystemdサービスユニットファイルに設定を追記する。<br> | |||
# mosquitto.serviceファイル | |||
[Service] | |||
# 最大接続数を4000に設定する場合 | |||
LimitNOFILE=4000 | |||
<br> | |||
設定を有効にするため、PCを再起動する。<br> | |||
<br> | |||
PCを再起動、および、Mosquittoサービスを実行した後、制限が変更されているかどうかを確認する。<br> | |||
これは、プロセスIDを取得することにより確認できる。<br> | |||
cat /proc/<PID>/limits | |||
<br><br> | <br><br> | ||