RabbitMQ开启Web后台管理插件报错

错误信息

从错误信息中可以得知,未匹配到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即可解决

### MQTT连接时出现 'bad user name or password' 的原因分析 当使用MQTT客户端(如MQTT.fx)尝试连接到RabbitMQ-MQTT插件时,如果遇到 `bad user name or password` 错误,可能的原因如下: #### 1. 用户名或密码不匹配 用户名和密码在配置过程中可能存在输入错误。即使管理员账户可以在Web端成功登录,也不代表该账户可以用于MQTT协议的认证[^2]。需要确认以下几点: - RabbitMQ服务器上是否已启用对应用户的权限。 - 是否存在针对MQTT协议的具体用户设置。 #### 2. 字符编码问题 根据MQTT协议规范,用户名和密码必须遵循UTF-8编码格式[^3]。如果使用的字符集不符合此标准,可能会导致解析失败并触发 `bad user name or password` 错误。 #### 3. 配置文件中的授权机制差异 某些情况下,RabbitMQ的默认配置可能不允许通过MQTT协议访问特定资源。需检查RabbitMQ的配置文件以及相关日志记录来验证是否存在额外的安全策略限制。 --- ### 解决方案 以下是几种常见的排查与解决方案: #### 方法一:重新校验凭证 仔细对比实际填写的用户名和密码与预期值的一致性,并注意区分大小写敏感度。此外还需确保这些凭据已被正确授予操作所需队列/交换机的权利。 #### 方法二:测试简单场景下的连通性 创建一个新的独立测试环境,仅包含基本功能而不涉及复杂业务逻辑。这样有助于排除其他干扰因素的影响。 ```bash mosquitto_pub -h localhost -p 1883 -u testuser -P testpass -t topic/test -m "hello" ``` 上述命令展示了如何利用 mosquitto 工具发送消息给指定主题的同时提供身份验证信息[^1]。 #### 方法三:调整协议版本及其他参数 有时尽管提供了正确的证书组合仍会遭遇拒绝服务的情况发生。此时可考虑更改General选项卡内的Protocol Version字段至适合目标代理接受的形式之一。 #### 方法四:审查后台日志详情 深入挖掘RabbitMQ的日志文档寻找更精确的报错描述可以帮助定位具体位置所在何处出现问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值