启动异常
通过解压tar压缩包安装后通过 ./bin/emqx start 启动报错
WARNING: Default (insecure) Erlang cookie is in use.
WARNING: Configure node.cookie in /opt/emqx/etc/emqx.conf or override from environment variable EMQX_NODE__COOKIE
NOTE: Use the same config value for all nodes in the cluster.
!!!
Erlang/OTP 24 [erts-12.3.2.2] [emqx] [64-bit] [smp:4:4] [ds:4:4:8] [async-threads:4]
{“Kernel pid terminated”,application_controller,“{application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,quicer_nif,{{badmatch,{error,{load_failed,“Failed to load NIF library /opt/emqx/lib/quicer-0.0.16/priv/libquicer_nif: ‘libatomic.so.1: cannot open shared object file: No such file or directory’”}}},[{quicer_nif,init,0,[{file,“quicer_nif.erl”},{line,54}]},{init,‘-run_on_load_handlers/2-fun-0-’,1,[]}]}}}},{kernel,start,[normal,[]]}}}”}
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,quicer_nif,{{badmatch,{error,{load_failed,“Failed to load NIF library /opt/emqx/lib/quicer-0.0.16/priv/libquicer_nif: ‘libatomic.so.1: cannot open shared object file: No such file or directory’”}}},[{quicer_nif,init,0,[{file,“quicer_nif.erl”},{line,54}]},{init,‘-run_on_load_handlers/2-fun-0-’,1,[]}]}}}},{kernel,start,[normal,[]]}}})
解决方式:
- 修改解压包后 /opt/emqx/etc/emqx.conf 内的cookie的值 或者通过EMQX_NODE__COOKIE 环境变量定义cookie的值,不能使用默认值有安全风险
- 然后启动命令改为 ./bin/emqx start &
拓展
node.cookie = emqx_dist_cookie 的配置作用是设置 EMQ X Broker 节点的 cookie 值。EMQ X Broker 使用 Erlang/OTP 分布式应用程序框架,节点间通信时需要使用相同的 cookie 值,否则节点间无法进行通信。
如果在一个分布式环境中部署多个 EMQ X Broker 节点,那么这些节点必须使用相同的 cookie 值才能相互通信。因此,如果您在部署多个 EMQ X Broker 节点时,需要确保它们的 cookie 值相同,可以通过修改 emqx.conf 文件中的 node.cookie 配置项来实现。
默认的node.cookie 值有安全风险。