MQTT研究之EMQ:【EMQX使用中的一些问题记录(3)】

EMQX功能强大,但是帮助信息或者可用资料的确有限,遇到个问题,比较难找到处理的头绪,今天,我要记录的是,使用中出现EMQX宕机,但是呢,启动也启动不了。 今天记录的内容,就以操作EMQX 3.2.3的版本来说吧。

你可能看到有下面的信息:

[root@tkwh-kfcs-app3 emqx]# emqx start
emqx v3.2.3 is started successfully!

但是呢,你查看状态,又会看到下面的内容:

[root@tkwh-kfcs-app3 emqx]# emqx_ctl status
Node 'emqx@10.95.200.13' not responding to pings

这个是什么情况呢?其实就是EMQX启动异常了,然后又shutdown了,看看日志,在/var/log/emqx下面的 erlang.log.1 文件里面可以找到些许的信息。

      1 
      2 =====
      3 ===== LOGGING STARTED Fri Oct 25 10:55:38 CST 2019
      4 =====
      5 Exec: /usr/lib/emqx/erts-10.3/bin/erlexec -boot /usr/lib/emqx/releases/v3.2.3/emqx -mode embedded -boot_var ERTS_LIB_DIR /usr/lib/emqx/erts-10.3/../lib -mnesia dir "/var/lib/emqx/mnesia/emqx@10.95.200.13" -config /var/lib/emqx/c
        onfigs/app.2019.10.25.10.55.38.config -args_file /var/lib/emqx/configs/vm.2019.10.25.10.55.38.args -vm_args /var/lib/emqx/configs/vm.2019.10.25.10.55.38.args -- console^M
      6 Root: /usr/lib/emqx^M
      7 /usr/lib/emqx^M
      8 Erlang/OTP 21 [erts-10.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:128] [hipe]^M
      9 ^M
     10 2019-10-25 10:55:43.487 [info] event=server_setup_successfully driver=tcp socket="#Port<0.8>"^M
     11 2019-10-25 10:55:43.488 [info] event=start^M
     12 Starting emqx on node emqx@10.95.200.13^M
     13 2019-10-25 10:55:43.562 [info] Ekka(Membership): Node emqx@10.95.200.22 up^M
     14 2019-10-25 10:55:43.580 [notice] application: emqx^M
     15     exited: {bad_return,^M
     16              {{emqx_app,start,[normal,[]]},^M
     17               {'EXIT',^M
     18                {{badmatch,^M
     19                  {error,^M
     20                   {shutdown,^M
     21                    {failed_to_start_child,emqx_router_sup,^M
     22                     {shutdown,^M
     23                      {failed_to_start_child,helper,^M
     24                       {{badmatch,{error,{not_active_local,emqx_routing_node}}},^M
     25                        [{emqx_router_helper,init,1,^M
     26                          [{file,^M
     27                            "/emqx_temp/emqx_rel/_checkouts/emqx/src/emqx_router_helper.erl"},^M
     28                           {line,95}]},^M
     29                         {gen_server,init_it,2,^M
     30                          [{file,"gen_server.erl"},{line,374}]},^M
     31                         {gen_server,init_it,6,^M
     32                          [{file,"gen_server.erl"},{line,342}]},^M
     33                         {proc_lib,init_p_do_apply,3,^M
     34                          [{file,"proc_lib.erl"},{line,249}]}]}}}}}}},^M
     35                 [{emqx_app,start,2,^M
     36                   [{file,^M
     37                     "/emqx_temp/emqx_rel/_checkouts/emqx/src/emqx_app.erl"},^M
     38                    {line,32}]},^M
     39                  {application_master,start_it_old,4,^M
     40                   [{file,"application_master.erl"},{line,277}]}]}}}}^M
     41     type: permanent^M
     42 [os_mon] memory supervisor port (memsup): Erlang has closed^M
     43 [os_mon] cpu supervisor port (cpu_sup): Erlang has closed^M
     44 {"Kernel pid terminated",application_controller,"{application_start_failure,emqx,{bad_return,{{emqx_app,start,[normal,[]]},{'EXIT',{{badmatch,{error,{shutdown,{failed_to_start_child,emqx_router_sup,{shutdown,{failed_to_start_chi
        ld,helper,{{badmatch,{error,{not_active_local,emqx_routing_node}}},[{emqx_router_helper,init,1,[{file,"/emqx_temp/emqx_rel/_checkouts/emqx/src/emqx_router_helper.erl"},{line,95}]},{gen_server,init_it,2,[{file,"gen_server.erl
        "},{line,374}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}}}}}}},[{emqx_app,start,2,[{file,"/emqx_temp/emqx_rel/_checkouts/emqx/src/emqx_app
        .erl"},{line,32}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,277}]}]}}}}}"}^M^M
     45 Kernel pid terminated (application_controller) ({application_start_failure,emqx,{bad_return,{{emqx_app,start,[normal,[]]},{'EXIT',{{badmatch,{error,{shutdown,{failed_to_start_child,emqx_router_sup,{sh^M^M
     46 ^M^M
     47 Crash dump is being written to: /var/log/emqx/crash.dump...done^M^M

什么意思呢?其实就是在安装路径的/var/lib/emqx下面有些异常数据,导致emqx启动时做数据同步时,出现错误,最后就宕机了。解决办法,就是将/var/lib/emqx下的数据清除掉,然后重新安装,当然,相关的配置,需要再次配置一下。

最后,再次将emqx安装一遍,就没有什么问题了。

 

原文地址:https://www.cnblogs.com/shihuc/p/11737053.html