Skip to content

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

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

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

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

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

インストール環境

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

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

ポート使用状況

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

ポートプロトコル説明
1883TCP主に暗号化されていないMQTT接続に使用される、TCP上のMQTTリスナーポート。
8883TCP暗号化されたMQTT接続のためのSSL/TLS上のMQTTリスナーポート。
8083TCPWebSocket経由のMQTT通信のためのMQTT over WebSocketリスナーポート。
8084TCP暗号化されたWebSocket接続のためのMQTT over WSS(SSL上のWebSocket)リスナーポート。
18083HTTPEMQXダッシュボードおよびREST APIの管理コンソールとAPIインターフェース用ポート。
4370TCPErlang分散通信ポート。実際のポートはノード名によりBasePort (4370) + Offsetとなる場合があります。
5370TCPクラスター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
libErlangコード./lib/usr/lib/emqx/lib
erts-*Erlangランタイム./erts-*/usr/lib/emqx/erts-*
pluginsプラグイン./plugins/usr/lib/emqx/plugins

TIP

  1. 圧縮パッケージでインストールした場合、ディレクトリはソフトウェアをインストールしたディレクトリからの相対パスです。
  2. Dockerコンテナでインストールした場合、EMQXは/opt/emqxディレクトリにインストールされます。
  3. datalogpluginsディレクトリは設定ファイルで変更可能です。パフォーマンス向上のため、dataディレクトリは高速ディスクにマウントすることを推奨します。同一クラスターに属するノードではdataディレクトリの設定を統一してください。クラスターの詳細はクラスターを参照してください。

以下の表は、各ディレクトリのファイルやサブフォルダの概要を示しています。

ディレクトリ説明パーミッションファイル
bin実行ファイル読み取りemqxemqx.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/configsetcディレクトリに保存します。etcディレクトリは読み取り専用の設定ファイルを格納し、ダッシュボードやREST APIからの設定更新はdata/configsに保存され、ランタイムでのホットリロードをサポートします。

  • etc/base.hocon: ランタイム設定変更で上書き可能な基本設定。
  • etc/emqx.conf: 上書き不可の静的設定。
  • data/configs/cluster.hocon: ランタイム設定の上書き。

EMQXはこれらのファイルから設定項目を読み込み、Erlangネイティブの設定ファイル形式に変換してランタイムに適用します。