Skip to content

インストールとマイグレーション ​

本章では、EMQXの基本的なインストール手順、最低限のハードウェア仕様、将来の設定および保守作業を容易にするためのファイルおよびディレクトリの配置について説明します。また、EMQX Enterpriseのライセンス設定方法やEMQX 4.4からEMQX 5.1へのマイグレーション方法についても解説します。

サポートされているオペレーティングシステム ​

以下の表は、EMQXがサポートするオペレーティングシステムとそのバージョンを示しています。

オペレーティングシステムサポートされているバージョンx86_64/amd64arm64
UbuntuUbuntu 22.04
Ubuntu 24.04
対応対応
DebianDebian 11
Debian 12
Debian 13
対応対応
CentOS/RHELRocky Linux 8
Rocky Linux 9
Rocky Linux 10
対応対応
Amazon LinuxAmazon Linux 2023対応対応
macOS 14+macOS 14
macOS 15
macOS 26
非対応対応

インストール環境 ​

EMQXを動作させるErlang VMは、ファイル名や対話型シェルの端末IOなどのUnicodeサポートを有効にするために、システムのロケール設定に依存しています。

Linux OSを使用する場合は、EMQX起動前にシステム環境でUTF-8ロケールが有効になっていることを推奨します。以下のタブから各プラットフォームでのUTF-8ロケール有効化方法をご確認ください。

ポート使用状況 ​

EMQXはデフォルトで以下のポートを使用します。これらのポートが他のアプリケーションで使用されていないことを確認し、必要に応じてファイアウォールを開放してEMQXが正常に動作するようにしてください。

ポートプロトコル説明
1883TCPTCP上のMQTTリスナーポート。主に暗号化されていないMQTT接続に使用されます。
8883TCPSSL/TLSで暗号化されたMQTT接続用のMQTTリスナーポート。
8083TCPWebSocket経由のMQTT通信のためのMQTTリスナーポート。
8084TCPSSL上のWebSocket(WSS)で暗号化されたWebSocket接続用のリスナーポート。
18083HTTPEMQXダッシュボードおよびREST API用の管理コンソールとAPIインターフェースのポート。
4370TCPErlang分散通信ポート。実際のポートはノード名によりBasePort (4370) + Offsetとなります。
5370TCPクラスターRPCポート(Docker環境では5369)。実際のポートはノード名によりBasePort (5370) + Offsetとなります。

注意

クラスターを形成していなくても、EMQXはポート4370および5370でリスニングします。この2つのポートは固定で変更できません。Offsetはノード名のName部分の数値サフィックスで決まります(Name@Host)。数値サフィックスがない場合は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
libErlangコード./lib/usr/lib/emqx/lib
erts-*Erlangランタイム./erts-*/usr/lib/emqx/erts-*
pluginsプラグイン./plugins/usr/lib/emqx/plugins

EMQX 6.3.0以降、RPMおよびDEBパッケージは/opt/emqxを作成し、上記のFilesystem Hierarchy Standardのパスに対してシンボリックリンクを配置します。これにより、オペレーターやスクリプトはDockerイメージと同様に/opt/emqx/...パスを使用できます。

シンボリックリンク実体パス
/opt/emqx/bin/usr/lib/emqx/bin
/opt/emqx/data/var/lib/emqx
/opt/emqx/etc/etc/emqx
/opt/emqx/lib/usr/lib/emqx/lib
/opt/emqx/log/var/log/emqx
/opt/emqx/plugins/usr/lib/emqx/plugins
/opt/emqx/releases/usr/lib/emqx/releases
/opt/emqx/erts-*/usr/lib/emqx/erts-*

パッケージのインストールまたはアップグレード時にこれらのシンボリックリンクが作成または更新されます。アンインストール時にはシンボリックリンクが削除され、/opt/emqxが空の場合に限り削除されます。/opt/emqx直下に直接追加されたその他のコンテンツは保持されます。

シンボリックリンクは常に上記の実体を指します。カスタムのdata、log、pluginsディレクトリを設定しても対応するシンボリックリンクは更新されません。

TIP

  1. 圧縮パッケージでインストールした場合、ディレクトリはソフトウェアをインストールしたディレクトリを基準とした相対パスです。
  2. Dockerコンテナでインストールした場合、EMQXは/opt/emqxディレクトリにインストールされます。
  3. 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ネイティブの設定ファイル形式に変換してランタイムに適用します。