インストールとマイグレーション
本章では、EMQXの基本的なインストール手順、最低限のハードウェア仕様、および将来の設定やメンテナンス作業を容易にするためのファイルとディレクトリの場所について説明します。また、EMQX Enterpriseのライセンス設定方法やEMQX 4.4からEMQX 5.1へのマイグレーション方法についても解説します。
サポートされているオペレーティングシステム
以下の表は、EMQXがサポートするオペレーティングシステムとそのバージョンを示しています。
| オペレーティングシステム | サポートされているバージョン | x86_64/amd64 | arm64 |
|---|---|---|---|
| Ubuntu | Ubuntu 18.04 Ubuntu 20.04 Ubuntu 22.04 Ubuntu 24.04 | 対応 | 対応 |
| Debian | Debian 10 Debian 11 Debian 12 | 対応 | 対応 |
| CentOS/RHEL | CentOS 7 Rocky Linux 8 Rocky Linux 9 | 対応 | 対応 |
| Amazon Linux | Amazon Linux 2 Amazon Linux 2023 | 対応 | 対応 |
| macOS 13 | macOS 13 | 対応 | 非対応 |
| macOS 14+ | macOS 14 macOS 15 | 非対応 | 対応 |
インストール環境
EMQXを動作させるErlang VMは、ファイル名や対話型Erlangシェルの端末IOなどのUnicode対応機能を有効にするために、システムのロケール設定に依存しています。
Linux OSを使用する場合は、EMQX起動前にシステム環境でUTF-8ロケールが有効になっていることを確認することを推奨します。以下のタブをクリックすると、各プラットフォームでUTF-8ロケールを有効にする方法が表示されます。
ポート使用状況
EMQXはデフォルトで以下のポートを使用します。これらのポートが他のアプリケーションで使用されていないことを確認し、必要に応じてファイアウォールを開放してEMQXが正常に動作するようにしてください。
| ポート | プロトコル | 説明 |
|---|---|---|
| 1883 | TCP | 主に暗号化されていないMQTT接続に使用される、TCP上のMQTTリスナーポート。 |
| 8883 | TCP | 暗号化されたMQTT接続のためのSSL/TLS上のMQTTリスナーポート。 |
| 8083 | TCP | WebSocket経由のMQTT通信のためのMQTT over WebSocketリスナーポート。 |
| 8084 | TCP | 暗号化されたWebSocket接続のためのMQTT over WSS(SSL上のWebSocket)リスナーポート。 |
| 18083 | HTTP | EMQXダッシュボードおよびREST APIの管理コンソールとAPIインターフェース用ポート。 |
| 4370 | TCP | Erlang分散通信ポート。実際のポートはノード名によりBasePort (4370) + Offsetとなる場合があります。 |
| 5370 | TCP | クラスターRPCポート(Docker環境では5369)。実際のポートはノード名によりBasePort (5370) + Offsetとなる場合があります。 |
注意
クラスターを形成していない場合でも、EMQXはポート4370と5370でリッスンします。これら2つのポートは固定で変更できません。Offsetはノード名のName@HostのName部分の数値サフィックスによって決まります。数値サフィックスがない場合はデフォルトで0です。詳細はポートマッピングを参照してください。
ファイルとディレクトリ
インストール後、EMQXは実行ファイルや設定ファイル、データ、ログを保存するためのいくつかのディレクトリを作成します。以下の表は、インストール方法ごとに作成されるディレクトリとそのパスを示しています。
| ディレクトリ | 説明 | tar.gzでインストール時のパス | RPM/DEBでインストール時のパス |
|---|---|---|---|
etc | 静的設定ファイル | ./etc | /etc/emqx |
data | データベースと設定 | ./data | /var/lib/emqx |
log | ログファイル | ./log | /var/log/emqx |
releases | 起動指示ファイル | ./releases | /usr/lib/emqx/releases |
bin | 実行ファイル | ./bin | /usr/lib/emqx/bin |
lib | Erlangコード | ./lib | /usr/lib/emqx/lib |
erts-* | Erlangランタイム | ./erts-* | /usr/lib/emqx/erts-* |
plugins | プラグイン | ./plugins | /usr/lib/emqx/plugins |
TIP
- 圧縮パッケージでインストールした場合、ディレクトリはソフトウェアをインストールしたディレクトリからの相対パスです。
- Dockerコンテナでインストールした場合、EMQXは
/opt/emqxディレクトリにインストールされます。 data、log、pluginsディレクトリは設定ファイルで変更可能です。パフォーマンス向上のため、dataディレクトリは高速ディスクにマウントすることを推奨します。同一クラスターに属するノードではdataディレクトリの設定を統一してください。クラスターの詳細はクラスターを参照してください。
以下の表は、各ディレクトリのファイルやサブフォルダの概要を示しています。
| ディレクトリ | 説明 | パーミッション | ファイル |
|---|---|---|---|
| bin | 実行ファイル | 読み取り | emqx と emqx.cmd: EMQXの実行ファイル。詳細はコマンドラインインターフェースを参照。 |
| etc | 設定ファイル | 読み取り | base.hocon: ランタイム設定変更で上書き可能な基本設定。emqx.conf: 上書き不可の静的設定。emqx-example-en.conf: EMQXの全設定項目を含むサンプル設定ファイル。acl.conf: デフォルトのACLルール。vm.args: Erlang仮想マシンの起動パラメータ。certs/: EMQXのSSLリスナー用X.509鍵と証明書ファイル。外部システム連携時のSSL/TLS接続にも使用可能。 |
| data | 実行データ | 書き込み | authz: REST APIやダッシュボードからアップロードされたファイル認可ルールを保存。詳細は認可 - ファイル参照。certs: REST APIやダッシュボードからアップロードされた証明書ファイルを保存。configs: 起動時に生成される設定ファイルやAPI/CLIからの設定上書きを保存。mnesia: EMQXの実行データを格納する組み込みデータベース。アラーム記録、クライアントの認証・認可情報、ダッシュボードユーザー情報などを含む。このディレクトリを削除すると、これらの実行データはすべて失われます。— ノード名を冠したサブディレクトリ(例: emqx@127.0.0.1)を含む場合があります。ノード名変更時は対応するサブディレクトリも削除または移動してください。— 組み込みデータベースのクエリには emqx ctl mnesiaコマンドを使用します。詳細は管理コマンドCLIを参照。patches: ホットパッチとしてEMQXが読み込む.beamファイルを保存。迅速な修正に利用可能。trace: オンライントレースログファイル。本番環境では、データの安全性確保のため、定期的に dataディレクトリ(traceフォルダを除く)をバックアップすることを推奨します。 |
| log | 実行ログ | 読み取り | emqx.log.*: EMQXの操作ログ。詳細はログを参照。 |
TIP
EMQXは設定情報をdata/configsとetcディレクトリに保存します。etcディレクトリは読み取り専用の設定ファイルを格納し、ダッシュボードやREST APIからの設定更新はdata/configsに保存され、ランタイムでのホットリロードをサポートします。
etc/base.hocon: ランタイム設定変更で上書き可能な基本設定。etc/emqx.conf: 上書き不可の静的設定。data/configs/cluster.hocon: ランタイム設定の上書き。
EMQXはこれらのファイルから設定項目を読み込み、Erlangネイティブの設定ファイル形式に変換してランタイムに適用します。