自己CA証明書のインストール(Linux)
ターミナル
sudo apt install -y ca-certificates
sudo cp [自己CA証明書のパス] /usr/local/share/ca-certificates
sudo update-ca-certificates
MQTTブローカ
必要なパッケージのインストール
ターミナル
sudo apt install -y curl default-jdk rebar3 build-essential git libcurl4-openssl-dev libkrb5-dev libsasl2-dev jq libssl-dev automake autoconf libncurses5-dev gcc
rebar3 update
rebar3 upgrade
unixODBCのインストール
公式サイトからダウンロード
ターミナル
wget https://www.unixodbc.org/unixODBC-2.3.12.tar.gz
wget https://bx293apen.github.io/html/download/content/unixODBC-2.3.12.tar.gz # バージョン確認済みのモノ
tar -xzf unixODBC-2.3.12.tar.gz
cd unixODBC-2.3.12
./configure
make
sudo make install
sudo apt install unixodbc unixodbc-dev
Erlangインストール(OTP 27.1以上推奨)
ターミナル
wget https://github.com/erlang/otp/releases/download/OTP-27.2.3/otp_src_27.2.3.tar.gz
tar -xzf otp_src_27.2.3.tar.gz
cd otp_src_27.2.3
./configure --prefix=/usr --enable-kernel-poll --enable-dirty-schedulers --enable-jit --enable-odbc --with-ssl
make
# sudo apt remove --purge erlang # 違うバージョンのerlangを消す
# sudo apt autoremove
sudo make install
# sudo apt install erlang erlang-dev
ErlangでunixODBCを使えるようにする
ターミナル
erl
application:load(odbc).
application:start(odbc).
q().
odbcinst -j # インストール確認
EMQX(ブローカー)をリポジトリからクローンし、インストール
ターミナル
git clone https://github.com/emqx/emqx # beta版
cd emqx
export BUILD_WITH_QUIC=1
make
cd _build/emqx-enterprise/rel/emqx
sudo chmod -R 777 data/*
./bin/emqx start # 起動
起動確認
環境変数の設定
ターミナル
sudo nano /etc/profile
エディタ(追記)
EMQX_DIR="/[DLパス]/emqx/_build/emqx-enterprise/rel/emqx"
export EMQX_DIR
ターミナル
sudo reboot
ブローカーの設定(QUIC有効化)
ターミナル
cd ${EMQX_DIR}
nano etc/base.hocon # 設定ファイル
エディタ(追記)
listeners.quic.default {
enabled = true
bind = "0.0.0.0:19080"
max_connections = 1024000
ssl_options {
keyfile = "/[TLSの秘密鍵があるパス]/private_key.pem"
certfile = "/[TLS証明書があるパス]/certificate.pem"
# keypassword = "your_key_password" # 秘密鍵にパスワードがある場合
versions = [tlsv1.3]
verify = verify_none
ciphers = "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256"
}
}
ターミナル
cd ${EMQX_DIR}
./bin/emqx ctl listeners # 開いているポートを確認
sudo netstat -tunlp | grep 19080 # ポートの状態を確認
自動起動化
ターミナル
sudo nano /etc/systemd/system/emqx.service
エディタ
[Unit]
Description=EMQX MQTT Broker
After=network.target
[Service]
Type=simple
ExecStart=/[DLパス]/emqx/_build/emqx-enterprise/rel/emqx/bin/emqx start
Restart=always
[Install]
WantedBy=multi-user.target
ターミナル
sudo systemctl daemon-reload
sudo systemctl enable emqx.service
sudo systemctl restart emqx.service