错误信息
从错误信息中可以得知,未匹配到src/rabbit_mgmt_agent_sup.erl
文件,怀疑Erlang安装有问题
[root@VM-0-17-centos ~]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@VM-0-17-centos:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@VM-0-17-centos...
Stack trace:
** (CaseClauseError) no case clause matching: {:could_not_start, :rabbitmq_management_agent, {:rabbitmq_management_agent, {{:shutdown, {:failed_to_start_child, :rabbit_mgmt_agent_sup, {:undef, [{:pg2, :create, [:management_db], []}, {:rabbit_mgmt_agent_sup, :maybe_enable_metrics_collector, 0, [file: 'src/rabbit_mgmt_agent_sup.erl', line: 36]}, {:rabbit_mgmt_agent_sup, :init, 1, [file: 'src/rabbit_mgmt_agent_sup.erl', line: 23]}, {:supervisor, :init, 1, [file: 'supervisor.erl', line: 330]}, {:gen_server, :init_it, 2, [file: 'gen_server.erl', line: 423]}, {:gen_server, :init_it, 6, [file: 'gen_server.erl', line: 390]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, {:rabbit_mgmt_agent_app, :start, [:normal, []]}}}}
(rabbitmqctl 3.8.0-dev) lib/rabbitmq/cli/plugins/plugins_helpers.ex:210: RabbitMQ.CLI.Plugins.Helpers.update_enabled_plugins/2
(rabbitmqctl 3.8.0-dev) lib/rabbitmq/cli/plugins/plugins_helpers.ex:107: RabbitMQ.CLI.Plugins.Helpers.update_enabled_plugins/4
(rabbitmqctl 3.8.0-dev) lib/rabbitmq/cli/plugins/commands/enable_command.ex:121: anonymous fn/6 in RabbitMQ.CLI.Plugins.Commands.EnableCommand.do_run/2
(elixir 1.10.4) lib/stream.ex:1325: anonymous fn/2 in Stream.iterate/2
(elixir 1.10.4) lib/stream.ex:1538: Stream.do_unfold/4
(elixir 1.10.4) lib/stream.ex:1609: Enumerable.Stream.do_each/4
(elixir 1.10.4) lib/stream.ex:956: Stream.do_enum_transform/7
(elixir 1.10.4) lib/stream.ex:1609: Enumerable.Stream.do_each/4
{:case_clause, {:could_not_start, :rabbitmq_management_agent, {:rabbitmq_management_agent, {{:shutdown, {:failed_to_start_child, :rabbit_mgmt_agent_sup, {:undef, [{:pg2, :create, [:management_db], []}, {:rabbit_mgmt_agent_sup, :maybe_enable_metrics_collector, 0, [file: 'src/rabbit_mgmt_agent_sup.erl', line: 36]}, {:rabbit_mgmt_agent_sup, :init, 1, [file: 'src/rabbit_mgmt_agent_sup.erl', line: 23]}, {:supervisor, :init, 1, [file: 'supervisor.erl', line: 330]}, {:gen_server, :init_it, 2, [file: 'gen_server.erl', line: 423]}, {:gen_server, :init_it, 6, [file: 'gen_server.erl', line: 390]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, {:rabbit_mgmt_agent_app, :start, [:normal, []]}}}}}
原因
Erlang相关包依赖不正常
解决方法
检查RabbitMQ版本和Erlang的版本依赖问题
1、查看RabbitMQ版本
[root@VM-0-17-centos ~]# rabbitmqctl --version
3.8.13
2、查看Erlang版本
[root@VM-0-17-centos ~]# erl --version
Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
然后通过官方提供的依赖对照表,查看依赖是否对应
官方提供的依赖对照表:https://www.rabbitmq.com/which-erlang.html
明显3.8.13
版本的RabbitMQ需要Erlang/OTP 23.x
,然后根据自己的实际情况安装合适版本的Erlang和RabbitMQ即可解决