You are here
Home > IT > EC2にMQTTブローカー(vernemq)を設定する。

EC2にMQTTブローカー(vernemq)を設定する。

作業用ディレクトリに移動してコンパイルするためのライブラリをインストールする。

cd /tmp
sudo amazon-linux-extras install -y epel
sudo yum -y install git openssl openssl-devel gcc-c++ unixODBC unixODBC-devel fop ncurses  ncurses-devel wxGTK-devel leveldb-devel snappy-devel

今回はerlangをコンパイルするか下記からダウンロードすることも可能

Download Erlang Packages

https://www.erlang-solutions.com/resources/download.html

ソース取得して展開してコンパイルしてインストール。

wget http://erlang.org/download/otp_src_23.2.tar.gz
tar -zxf otp_src_23.2.tar.gz
cd otp_src_23.2/
./configure
make
sudo make install

amazon linux 2向けのバイナリをダウンロードしてインストールする。

cd /tmp
wget https://github.com/vernemq/vernemq/releases/download/1.11.0/vernemq-1.11.0.amzn2.x86_64.rpm
sudo yum install -y vernemq-1.11.0.amzn2.x86_64.rpm

リソースの制限を確認しておく(open files)。

ulimit -aS

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30446
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

ついでにシステム上限であるハードリミットも確認(open files)

ulimit -aH

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30446
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

状態を確認する。

systemctl status vernemq
● vernemq.service - VerneMQ Server
   Loaded: loaded (/etc/systemd/system/vernemq.service; enabled; vendor preset: disabled)
   Active: inactive (dead)

停止しているから起動させる。

sudo systemctl start vernemq

Job for vernemq.service failed because the control process exited with error code. See "systemctl status vernemq.service" and "journalctl -xe" for details.

コマンドを実行すると、ライセンスOKしろよと出ている。

journalctl -xe
 1月 29 07:44:26 nhmasaaazu systemd[1]: Unit vernemq.service entered failed state.
 1月 29 07:44:26 nhmasaaazu systemd[1]: vernemq.service failed.
 1月 29 07:44:59 nhmasaaazu sudo[9968]: ec2-user : TTY=pts/0 ; PWD=/tmp ; USER=root ; COMMAND=/bin/systemctl start vernemq
 1月 29 07:44:59 nhmasaaazu sudo[9968]: pam_unix(sudo:session): session opened for user root by ec2-user(uid=0)
 1月 29 07:44:59 nhmasaaazu polkitd[1237]: Registered Authentication Agent for unix-process:9969:1924499 (system bus name :1.346
 1月 29 07:44:59 nhmasaaazu systemd[1]: Cannot add dependency job for unit epmd@0.0.0.0.socket, ignoring: Unit not found.
 1月 29 07:44:59 nhmasaaazu systemd[1]: Starting VerneMQ Server...
-- Subject: Unit vernemq.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit vernemq.service has begun starting up.
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: Before you can continue, the product license
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: must be accepted. The license can be viewed at
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: https://vernemq.com/end-user-license-agreement
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: If you do not accept this license you will
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: not be able to use VerneMQ.
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: Accepting the product license will modify the
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: VerneMQ config file
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: /etc/vernemq/vernemq.conf
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: setting the "accept_eula" config to "yes".
 1月 29 07:44:59 nhmasaaazu vernemq[9975]: Product license not accepted. Stopping.
 1月 29 07:44:59 nhmasaaazu sudo[9968]: pam_unix(sudo:session): session closed for user root
 1月 29 07:44:59 nhmasaaazu systemd[1]: vernemq.service: control process exited, code=exited status=2
 1月 29 07:44:59 nhmasaaazu polkitd[1237]: Unregistered Authentication Agent for unix-process:9969:1924499 (system bus name :1.34
 1月 29 07:44:59 nhmasaaazu systemd[1]: Failed to start VerneMQ Server.
-- Subject: Unit vernemq.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit vernemq.service has failed.
--
-- The result is failed.

HPにもちゃんと書いてある。

Accepting the VerneMQ EULA

https://docs.vernemq.com/installation/accepting-the-vernemq-eula

systemctl使わずに直接起動してみる。

sudo vernemq start

Before you can continue, the product license
must be accepted. The license can be viewed at

    https://vernemq.com/end-user-license-agreement

If you do not accept this license you will
not be able to use VerneMQ.

Accepting the product license will modify the
VerneMQ config file

    /etc/vernemq/vernemq.conf

setting the "accept_eula" config to "yes".

Do you accept the product license (yes/no)? yes
!!!!
!!!! WARNING: ulimit -n is 65535; 65536 is the recommended minimum.
!!!!
vmq_cluster_node_sup

使用許諾契約にYESしろと聞いてくるのでyesする(個人や非営利以外の場合は開発元に連絡をとってくださいって書いてある。1.9.2までのパッケージはこの契約は適用されない)

Software End User License Agreement

https://vernemq.com/end-user-license-agreement/

ライセンスに許諾したので停止させてから起動させてみる。

sudo vernemq start

最終ログイン: 2021/01/29 (金) 08:02:08 UTC日時 pts/0
!!!!
!!!! WARNING: ulimit -n is 65535; 65536 is the recommended minimum.
!!!!
vmq_cluster_node_sup

ファイルリミットの話が出たので設定する。

sudo cp -pr /etc/security/limits.conf /etc/security/limits.conf_`date +%Y%m%d_%H%M%S`
sudo vi /etc/security/limits.conf

vernemq               soft     nofile          65536
vernemq               hard     nofile          65536

設定した後に再度起動。成功

sudo vernemq start

最終ログイン: 2021/01/29 (金) 09:10:43 UTC日時 pts/2
vmq_cluster_node_sup

コメントを残す

Top