Skip to content

クラスター設定

EMQXはホットコンフィギュレーション機能を提供しており、EMQXノードを再起動することなくランタイムで設定を動的に変更できます。EMQXダッシュボードはホットコンフィギュレーション機能を備えた視覚的な設定ページを提供し、EMQXの設定を簡単に変更できます。

クラスター設定モジュールは以下のサブモジュールを提供します:

  • MQTT設定
  • クラスター
  • ネームスペース
  • ルールエンジンセキュリティ
  • リスナー
  • ロギング
  • モニタリング
  • クラスターリンク

MQTT設定

MQTT設定ページはMQTTプロトコルに関連する設定機能を提供します。このページでは以下のようなさまざまなMQTT関連パラメータを設定できます。

一般

一般タブページには、アイドルタイムアウト、最大パケットサイズ、最大クライアントID長、最大トピックレベル数、許容される最大QoSレベルなど、MQTTプロトコルの基本的な一般設定項目が含まれています。

セッション

セッションタブページには、セッション有効期限間隔(MQTT 5.0以外の接続のみサポート。MQTT 5.0接続はクライアント側で設定が必要)、最大サブスクリプション数、最大フライトウィンドウ、QoS 0メッセージの保存有無など、MQTTセッション管理に関連する設定項目が含まれています。

Durable Sessions

Durable Sessionsタブページには、MQTT Durable Sessions機能に関連する設定項目が含まれており、メッセージ保持期間、メッセージクエリバッチサイズ、アイドルポーリング間隔、セッションハートビート間隔などを設定できます。

Retainer

Retainerタブページには、保持メッセージに関するMQTTプロトコル関連の設定項目があり、保持メッセージの有効化、メッセージの保存タイプと方法、保持メッセージの最大数、保持メッセージのペイロードサイズ、メッセージ有効期限間隔などを設定できます。詳細は保持メッセージの設定を参照してください。

保持メッセージが無効の場合、既存の保持メッセージは削除されません。

システムトピック

システムトピックタブページでは、EMQXの組み込みシステムトピックの設定項目を提供します。EMQXは定期的に運用状況、使用統計、リアルタイムクライアントイベントを$SYS/で始まるシステムトピックにパブリッシュします。クライアントがこれらのトピックをサブスクライブすると、EMQXは関連情報をパブリッシュします。システムトピックの設定項目にはメッセージパブリッシュ間隔、ハートビート間隔などがあります。

強制シャットダウン

強制シャットダウンタブでは、リソース使用率の閾値に基づく自動シャットダウンの動作を設定できます。この機能は、メッセージキューの長さやヒープサイズなどの過剰なリソース消費によるEMQXの不安定化を防止します。

強制シャットダウンタブページで設定可能な項目は以下の通りです:

  • 強制シャットダウンを有効にする:このトグルスイッチで強制シャットダウン機能の有効・無効を切り替えます。有効時は指定したリソース閾値を超えた場合にクライアントプロセスのシャットダウンを自動的にトリガーします。デフォルトで有効です。
  • 最大ヒープサイズ:システムの最大許容ヒープサイズを指定します。ヒープサイズがこの値を超えると、システムの安定性維持のため強制シャットダウンが開始されます。デフォルト値は32 MBです。
  • 最大メールボックスサイズ:メールボックスのメッセージキューの最大許容長さを定義します。キューがこの長さを超えると、システム過負荷防止のため強制シャットダウンがトリガーされます。デフォルト値は1000です。

クラスター

クラスター設定ページでは、EMQXクラスターのノード管理が可能で、詳細の閲覧、新規ノードの招待、既存ノードの削除が行えます。

注意

EMQX Community Editionをご利用の場合、新規ノードの招待はサポートされていません。クラスタリング機能はトライアル期間中のみ利用可能で、トライアル終了後は商用ライセンスが必要です。ライセンスがない場合、この機能は無効になります。

EMQX v6.0.0以降、クラスター説明を追加できるようになり、クラスターの目的や環境を識別しやすくなりました。入力欄に意味のある説明を入力し、保存をクリックして適用してください。

保存後、クラスター説明はダッシュボードの上部に表示され、クラスタークラスター概要などのページで素早く参照できます。編集アイコンをクリックするとクラスターページに戻り、説明を更新できます。

  • ノードの詳細を確認するには、ノード名をクリックしてください。クラスター表示ページにリダイレクトされ、詳細情報が表示されます。
  • ノードを招待するには、招待をクリックし、ノード名欄にノードのIPアドレスまたはホスト名を入力して確認をクリックします。
  • ノードを削除するには、削除をクリックします。削除前に確認ダイアログが表示されます。
ノード招待

EMQXはコマンドラインインターフェース(CLI)を使ったクラスターの作成・管理もサポートしています。詳細はクラスターの作成と管理を参照してください。

ネームスペース

EMQXのネームスペース機能は、単一クラスター内で異なるクライアントグループを論理的に分離します。ネームスペースページでネームスペースの管理が可能です。ネームスペースの管理と設定方法の詳細はネームスペースを参照してください。

ルールエンジンセキュリティ

EMQXのコネクター、ブリッジ、アクションは外部サービスへのアウトバウンドネットワーク接続を開きます。制御がないと、誤設定や悪意のあるターゲットによりEMQXが内部や機密宛先に意図しないリクエストを送る可能性があり、これはサーバーサイドリクエストフォージェリ(SSRF)と呼ばれる脆弱性の一種です。

EMQX 6.0.3以降、ルールエンジンセキュリティページでダッシュボードから組み込みのSSRF保護ポリシーを設定できます。有効化すると、EMQXはコネクター、ブリッジ、アクションの作成・更新時にアウトバウンドターゲットを検証します。ブロックされたアドレスに解決されるターゲットはその時点で拒否されます。このチェックは接続時には行われないため、DNSリバインディングなどの接続後のアドレス変更はカバーされません。

TIP

ランタイムのネットワーク制御や委任管理者がいる環境では、ダッシュボードレベルのSSRFポリシーに加え、iptablesnftablesなどのホストレベルのアウトバウンド制御を併用してください。詳細はルールエンジンポリシーとファイアウォールルールによるSSRF緩和を参照してください。

SSRF保護の有効化

SSRF保護を有効にするを切り替えてポリシーをオン/オフにします。有効時、EMQXはコネクター、ブリッジ、アクションの作成・更新ごとにアウトバウンドターゲットを検証します。評価順序は以下の通りです:

  1. 拒否ホスト名に対する完全一致(大文字小文字非区別):一致すれば即拒否
  2. 解決されたIPが許可CIDR範囲に含まれるか確認:含まれれば許可
  3. 解決されたIPが拒否CIDR範囲に含まれるか確認:含まれれば拒否

このポリシーは既存の展開との互換性のためデフォルトで無効です。コネクターやアクションが内部サービスにアクセスする必要がない限り、すべての展開で有効化してください。その場合は有効化前に許可・拒否CIDR範囲を見直し調整してください。

許可CIDR範囲

解決されたIPアドレスが常に許可されるCIDR範囲のリストです。拒否CIDR範囲に関わらず、ここに含まれるIPは許可されます。コネクターがアクセス必須の特定の内部サブネットを明示的に許可する際に使用します。

拒否CIDR範囲

EMQXが接続を拒否するCIDR範囲のリストです。デフォルトではSSRF攻撃でよく悪用されるアドレスをカバーしています:

CIDR説明
127.0.0.0/8IPv4ループバック
::1/128IPv6ループバック
169.254.0.0/16IPv4リンクローカル(AWS/Azureメタデータ含む)
fe80::/10IPv6リンクローカル
10.0.0.0/8プライベートネットワーク(RFC 1918)
172.16.0.0/12プライベートネットワーク(RFC 1918)
192.168.0.0/16プライベートネットワーク(RFC 1918)
fc00::/7IPv6ユニークローカル
0.0.0.0/32未指定アドレス
224.0.0.0/4IPv4マルチキャスト
ff00::/8IPv6マルチキャスト
100.100.100.200/32アリババクラウドメタデータサービス

重要なお知らせ

デフォルトの拒否CIDRリストからのエントリ削除は、EMQXをSSRF攻撃にさらす可能性があります。運用上の特別な理由があり、かつセキュリティ影響を理解している場合のみ削除してください。

コネクターがデフォルトの拒否リストにあるアドレス(例:AWSコネクターがインスタンスメタデータサービス169.254.169.254にアクセスする場合)にアクセスする必要がある場合は、拒否リストから削除するのではなく、許可CIDR範囲に追加してください。許可リストが優先されます。

拒否ホスト名

解決されたIPアドレスに関わらず、EMQXが接続を拒否するホスト名のリストです。ホスト名の一致は完全一致かつ大文字小文字を区別しません。既知のクラウドメタデータエンドポイントを名前でブロックする際に有用です。

変更を適用するには変更を保存をクリックしてください。

リスナー

リスナーページはデフォルトでリスナーの一覧を表示します。EMQXは以下の4つの一般的なリスナーを提供しています:

  • ポート1883のTCPリスナー
  • ポート8883のSSL/TLSセキュア接続リスナー
  • ポート8083のWebSocketリスナー
  • ポート8084のWebSocketセキュアリスナー

image

通常はこれらのデフォルトリスナーを対応するポートとプロトコルタイプで利用します。別のタイプのリスナーを追加するには、右上の**+リスナー追加**ボタンをクリックして新規リスナーを作成します。

リスナー追加

リスナー追加ポップアップパネルにはリスナー追加用のフォームが表示され、基本設定項目が含まれています。リスナーを識別するための名前を入力し、リスナータイプ(TCP、SSL、WS、WSS)を選択し、リスナーアドレス(IPアドレスとポート番号)を入力します。IPアドレスを指定するとリスナーのアクセス範囲を制限でき、ポート番号のみ指定も可能です。

image

レート制限

リスナー追加フォームのリミッターセクションでは、EMQX稼働中のメッセージ受信・パブリッシュレートを制限できます。例:

  • 最大接続レート(リスナー単位)
  • 最大メッセージパブリッシュレート(クライアント単位)
  • 最大メッセージパブリッシュトラフィック(クライアント単位)

レート制限を設定することで、メッセージデータの過負荷や過剰なクライアント要求が発生した場合でもシステムとネットワークの安定性を確保できます。

レート制限の詳細設定はレート制限を参照してください。

リスナー設定の詳細はEMQX Enterprise設定マニュアルをご覧ください。

リスナー管理

リスナーを追加すると一覧に表示されます。リスナー名をクリックすると編集ページに入り、設定の変更や削除が可能です。リスナー名、タイプ、リスナーアドレスは設定画面で変更できません。

編集ページの削除ボタンでリスナーを削除できます。削除時はリスナー名の入力による確認が必要です。トグルスイッチでリスナーの有効/無効切り替えも可能です。リストには各リスナーの接続数も表示されます。

警告

リスナーの変更や削除はリスクの高い操作です。慎重に行ってください。リスナーを更新または削除すると、そのリスナー上のクライアント接続は切断されます。

ロギング

ロギングページにはコンソールログファイルログログスロットリング監査ログのタブがあります。

EMQXはコンソールログとファイルログの2種類のログ出力をサポートし、必要に応じていずれかまたは両方を選択できます。対応する設定ページでログハンドラーの有効・無効、ログレベル、ログフォーマットタイプを設定でき、ファイルログの場合はログファイルのパスやログ名も指定可能です。ログの詳細設定はダッシュボードによるロギング設定を参照してください。

ログスロットリングタブページではログスロットリングの時間ウィンドウを設定できます。詳細はログレート制限を参照してください。

監査ログページではEMQXの監査ログ機能の有効・無効設定および設定が可能です。詳細設定は監査ログをご覧ください。

モニタリング

注意

モニタリング機能はEMQX Enterpriseエディションのみ利用可能です。

モニタリングページには以下の2つのタブがあります:

  • システム:ユーザーのニーズに応じてアラーム機能の閾値やチェック間隔などの設定を調整できます。
  • 統合:サードパーティモニタリングプラットフォームとの統合設定を提供します。

システム

現在のアラームトリガー閾値や監視チェック間隔のデフォルト値が実際のニーズに合わない場合、このページで調整できます。設定はErlang VMオペレーティングシステムの2つのモジュールに分かれており、各設定項目のデフォルト値や説明はアラームに記載されています。

画像

統合

このページは主にサードパーティモニタリングプラットフォームとの統合設定を提供します。現在、EMQXはPrometheusOpenTelemetryDatadogとの統合をサポートしています。

Prometheusを利用する場合、このページで設定を素早く有効化でき、プッシュデータのアドレスやデータ報告間隔などを設定可能です。EMQXが提供するAPI /prometheus/statsを使って監視データを取得できます。このAPI利用時は認証情報は不要です。詳細はPrometheusを参照してください。

ほとんどの場合、EMQXのメトリクス監視にPushgatewayは不要です。Pushgatewayサービスのアドレスを設定して監視データをPushgatewayにプッシュし、PushgatewayPrometheusにデータを送る構成も選択可能です。Pushgatewayの利用タイミングをご覧ください。

ページ下部のヘルプボタンをクリックし、デフォルトまたはPushgateway方式を選択、提供される手順に従って関連サービスのアドレスやAPI情報を設定すると、対応するPrometheus設定ファイルを素早く生成できます。生成した設定ファイルを使ってPrometheusサービスを起動してください。

ユーザーはGrafanaで監視データをカスタマイズ・修正可能です。Prometheusサービス起動後、ヘルプページの最後にあるGrafanaテンプレートをダウンロードボタンをクリックして、弊社提供のデフォルトダッシュボード設定ファイルをダウンロードできます。ファイルをGrafanaにインポートすると、可視化パネルでEMQXの監視データを閲覧できます。テンプレートはGrafana公式サイトからもダウンロード可能です。

image

OpenTelemetryおよびDatadog統合の詳細設定はOpenTelemetryとの統合およびDatadogとの統合を参照してください。

クラスターリンク

クラスターリンク機能は複数の独立したEMQXクラスターを接続し、地理的に分散したクラスター間でクライアント同士の通信を可能にします。ユーザーはこのページでクラスターリンクの作成・設定が可能です。作成および設定の詳細はEMQXクラスターリンクを参照してください。