# クラスター設定

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

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

- MQTT設定
- クラスター
- ネームスペース
- リスナー
- ロギング
- モニタリング
- クラスターリンク

## MQTT設定

**MQTT設定**ページはMQTTプロトコルに関連する設定機能を提供します。このページでは、以下を含む様々なMQTT関連パラメータを設定できます：

### 一般

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

### セッション

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

### Durable Sessions

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

### Retainer

**Retainer**タブページには、保持メッセージに関するMQTTプロトコル関連の設定項目が含まれており、保持メッセージの有効化、メッセージ保存タイプと方法、最大保持メッセージ数、保持メッセージのペイロードサイズ、メッセージ有効期限間隔などがあります。詳細は[保持メッセージの設定](./retained.md#retainer-settings)を参照してください。

> 保持メッセージを無効にしても、既存の保持メッセージは削除されません。

### システムトピック

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

### 強制シャットダウン

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

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

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

## クラスター

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

ノードの詳細を確認するには、ノード名をクリックしてください。詳細情報のために**クラスター表示**ページにリダイレクトされます。

ノードを招待するには、**招待**をクリックし、**ノード名**欄にノードのIPアドレスまたはホスト名を入力して**確認**をクリックします。

ノードを削除するには、**削除**をクリックします。削除前に確認ダイアログが表示されます。

![cluster-node](./assets/cluster-node.png)

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

## ネームスペース

EMQXのネームスペース機能は、単一クラスター内で異なるクライアントグループを論理的に分離します。ネームスペースは**ネームスペース**ページで管理可能です。管理および設定の詳細は[ネームスペース](../multi-tenancy/namespace-overview.md)を参照してください。

## リスナー

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

- ポート1883を使用するTCPリスナー
- ポート8883を使用するSSL/TLSセキュア接続リスナー
- ポート8083を使用するWebSocketリスナー
- ポート8084を使用するWebSocketセキュアリスナー

![image](./assets/config-listener-list.png)

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

### リスナーの追加

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

![image](./assets/config-listener-add.png)

#### レート制限

**Add Listener**フォームの**Limiter**セクションでは、EMQX稼働中のメッセージ受信およびパブリッシュレートを制限できます。例えば：

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

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

レート制限の詳細設定は[レート制限](../rate-limit/rate-limit.md)を参照してください。

リスナー設定の詳細は[EMQX Enterprise設定マニュアル](https://docs.emqx.com/en/enterprise/v6.2.0/hocon/)をご覧ください。

### リスナーの管理

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

編集ページの**削除**ボタンをクリックするとリスナーを削除できます。削除時は確認のためリスナー名の入力が必要です。また、有効スイッチでリスナーの有効・無効を切り替えられます。リストには各リスナーの接続数も表示されます。

::: tip 注意

リスナーの変更および削除はリスクを伴う操作です。リスナーを更新または削除すると、そのリスナー上のクライアント接続は切断されますので注意してください。

:::

## ロギング

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

EMQXはコンソールログとファイルログの2種類のログ出力をサポートしており、用途に応じていずれかまたは両方を選択可能です。対応する設定ページでログハンドラの有効・無効、ログレベル、ログフォーマットタイプを設定でき、ファイルログではログファイルのパスやログ名も指定できます。ログの詳細設定は[ダッシュボードによるログ設定](../observability/log.md#configure-logging-via-dashboard)を参照してください。

**ログスロットリング**タブページでは、ログスロットリングの時間ウィンドウを設定できます。ログスロットリングの詳細は[ログレート制限](../observability/log.md#log-throttling)を参照してください。

**監査ログ**ページでは、EMQXの監査ログ機能の有効・無効設定および構成が可能です。詳細設定は[監査ログ](./audit-log.md)をご覧ください。

## モニタリング

::: tip 注意

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

:::

**モニタリング**ページは以下の2つのタブを含みます：

- **システム**：ユーザーのニーズに応じて、[アラーム](./diagnose.md#alarms)機能のアラーム閾値やチェック間隔などの設定を調整可能です。
- **統合**：サードパーティのモニタリングプラットフォームとの統合設定を提供します。

### システム

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

<img src="./assets/monitoring-system.png" alt="システムモニタリング画面" style="zoom:67%;" />

### 統合

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

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

通常、EMQXのメトリクスデータ監視に`Pushgateway`を使う必要はありませんが、`Pushgateway`サービスアドレスを設定して監視データを`Pushgateway`にプッシュし、その後`Pushgateway`が`Prometheus`サービスにデータを送信する構成も可能です。詳細は[Pushgatewayの利用タイミング](https://prometheus.io/docs/practices/pushing/)をご覧ください。

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

ユーザーは`Grafana`で監視データをカスタマイズ・修正可能です。`Prometheus`サービス起動後、ヘルプページの最後にある`Download Grafana Template`ボタンをクリックして、当社が提供するデフォルトダッシュボードの設定ファイルをダウンロードできます。ファイルを`Grafana`にインポートすると、可視化パネルでEMQXの監視データを閲覧できます。テンプレートは[Grafana公式サイト](https://grafana.com/grafana/dashboards/17446-emqx/)からも入手可能です。

![image](./assets/emqx-grafana.jpg)

OpenTelemetryおよびDatadog統合の詳細設定は[OpenTelemetryとの統合](../observability/opentelemetry/opentelemetry.md)および[Datadogとの統合](../observability/datadog.md)を参照してください。

## クラスターリンク

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