RabbitMQ-用户“ XYZ”的虚拟主机“ /”关闭。即使用户拥有所有访问权限

Avi*_*Avi 7 rabbitmq

我正在使用RabbitMQ版本3.7.17

由于我的AWS硬盘已被完全占用(100%已满)。由于这些原因,所有服务都停止工作
解决此问题的方法:我扩展了AWS服务器内存,然后尝试启动所有API服务,之后它开始引发错误。(发布此消息后开始出现错误)

Connection.open:(541)INTERNAL_ERROR-用户'XYZ'对虚拟主机'/'的访问被拒绝:虚拟主机'/'已关闭

使用以下代码重新启动RabbitmMQ服务器,但仍出现错误:

sudo service rabbitmq-server restart

如果我使用以下方法检查了我的用户的权限:

sudo rabbitmqctl list_permissions --vhost /

响应显示用户拥有所有访问权限。

Listing permissions for vhost "/" ...
user    configure   write   read
XYZ .*  .*  .*
Run Code Online (Sandbox Code Playgroud)

谢谢。

Avi*_*Avi 8

由于内存已满,正在处理的 RabbitMQ 未完成,导致 vhost 出错。

尝试重新启动 vhostsudo rabbitmqctl restart_vhost时出现错误:

错误:

无法在节点 'rabbit@ip-172-31-16-172' 上启动 vhost '/' 原因:{:shutdown, {:failed_to_start_child, :rabbit_vhost_process, {:error, {{{:function_clause, [{:rabbit_queue_index, :journal_minus_segment1, [{{true, <<230, 140, 82, 5, 193, 81, 136, 75, 11, 91, 31, 232, 119, 30, 99, 112, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 4, 144>>, <<131, 104, 6, 100, 0, 13, 98, 97, 115, 105, 99, 95, 109, 101, 115, 115, 97, 103, 101, 104, 4, 100, 0, 8, 114, 101, 115, 111, 117, 114, ...>>}, :no_del, :no_ack}, {{true, << 230, 140, 82, 5, 193, 81, 136, 75, 11, 91, 31, 232, 119, 30, 99, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 144>>, <<131, 104, 6, 100, 0, 13, 98, 97, 115, 105, 99, 95, 109, 101, 115, 115, 97, 103, 104, 101, 4, 100, 0, 8, 114, 101, 115, 111, 117, ...>>}, :del, :no_ack}], [文件: 'src/rabbit_queue_index.erl', line: 1231]}, {:rabbit_queue_index, :"-journal_minus_segment/3-fun-0-", 4, [file: 'src/rabbit_queue_index.erl', line: 1208]}, { :array, :sparse_foldl_3, 7, [file: 'array.erl', line: 1684]}, {:array, :sparse_foldl_2, 9, [file: 'array.erl', line: 1678]}, {:rabbit_queue_index , :"-recover_journal/1-fun-0-", 1, [file: 'src/rabbit_queue_index.erl', line: 915]}, {:lists, :map, 2, [file: 'lists.erl' , line: 1239]}, {:rabbit_queue_index, :segment_map, 2, [file: 'src/rabbit_queue_index.erl', line: 1039]}, {:rabbit_queue_index, :recover_journal, 1, [file: 'src/rabbit_queue_index.erl' erl', line: 906]}]}, {:gen_server2, :call, [#PID<10397.473.0>, :out, :infinity]}}, {:child, :undefined, :msg_store_persistent, {:rabbit_msg_store, :start_link, [:msg_store_persistent, '/var/lib/rabbitmq/mnesia/rabbit@ip-172-31-16-172/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L', [], {#Function<2.32138423/1 in :rabbit_que: [{:resource, "/", :queue, "xx_queue"}, {:resource, "/", :queue, "app_xxx_queue"}, {:resource, "/", :queue, "default"}, { :resource, "/", :queue, "xx_priority_queue"}, {:resource, "/", :queue, "xxx_queue"}, {:resource, "/", :queue, "xxxx_queue"}, {:resource , "/", :queue, "yyy_queue"}, {:resource, "/", :queue, "zzz_queue"}, {:resource, "/", :queue, "aaa_queue"}]}}]}, :transient, 30000, :worker, [:rabbit_msg_store]}}}}}/var/lib/rabbitmq/mnesia/rabbit@ip-172-31-16-172/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L', [], {#Function<2.32138423/1 in :rabbit_queue,index>, {:资源, "/", :queue, "xx_queue"}, {:resource, "/", :queue, "app_xxx_queue"}, {:resource, "/", :queue, "default"}, {:resource, "/", :queue, "xx_priority_queue"}, {:resource, "/", :queue, "xxx_queue"}, {:resource, "/", :queue, "xxxx_queue"}, {:resource, "/ ", :queue, "yyy_queue"}, {:resource, "/", :queue, "zzz_queue"}, {:resource, "/", :queue, "aaa_queue"}]}}]}, :transient, 30000, :worker, [:rabbit_msg_store]}}}}}/var/lib/rabbitmq/mnesia/rabbit@ip-172-31-16-172/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L', [], {#Function<2.32138423/1 in :rabbit_queue,index>, {:资源, "/", :queue, "xx_queue"}, {:resource, "/", :queue, "app_xxx_queue"}, {:resource, "/", :queue, "default"}, {:resource, "/", :queue, "xx_priority_queue"}, {:resource, "/", :queue, "xxx_queue"}, {:resource, "/", :queue, "xxxx_queue"}, {:resource, "/ ", :queue, "yyy_queue"}, {:resource, "/", :queue, "zzz_queue"}, {:resource, "/", :queue, "aaa_queue"}]}}]}, :transient, 30000, :worker, [:rabbit_msg_store]}}}}}rabbit_queue_index>, {:start, [{:resource, "/", :queue, "xx_queue"}, {:resource, "/", :queue, "app_xxx_queue"}, {:resource, "/", :queue , "default"}, {:resource, "/", :queue, "xx_priority_queue"}, {:resource, "/", :queue, "xxx_queue"}, {:resource, "/", :queue, " xxxx_queue"}, {:resource, "/", :queue, "yyy_queue"}, {:resource, "/", :queue, "zzz_queue"}, {:resource, "/", :queue, "aaa_queue" }]}}]}, :transient, 30000, :worker, [:rabbit_msg_store]}}}}}rabbit_queue_index>, {:start, [{:resource, "/", :queue, "xx_queue"}, {:resource, "/", :queue, "app_xxx_queue"}, {:resource, "/", :queue , "default"}, {:resource, "/", :queue, "xx_priority_queue"}, {:resource, "/", :queue, "xxx_queue"}, {:resource, "/", :queue, " xxxx_queue"}, {:resource, "/", :queue, "yyy_queue"}, {:resource, "/", :queue, "zzz_queue"}, {:resource, "/", :queue, "aaa_queue" }]}}]}, :transient, 30000, :worker, [:rabbit_msg_store]}}}}}:queue, "xx_priority_queue"}, {:resource, "/", :queue, "xxx_queue"}, {:resource, "/", :queue, "xxxx_queue"}, {:resource, "/", :queue , "yyy_queue"}, {:resource, "/", :queue, "zzz_queue"}, {:resource, "/", :queue, "aaa_queue"}]}}]}, :transient, 30000, :worker , [:rabbit_msg_store]}}}}}:queue, "xx_priority_queue"}, {:resource, "/", :queue, "xxx_queue"}, {:resource, "/", :queue, "xxxx_queue"}, {:resource, "/", :queue , "yyy_queue"}, {:resource, "/", :queue, "zzz_queue"}, {:resource, "/", :queue, "aaa_queue"}]}}]}, :transient, 30000, :worker , [:rabbit_msg_store]}}}}}

解决步骤

  1. 通过以下命令停止您的应用程序节点。
sudo rabbitmqctl stop_app
Run Code Online (Sandbox Code Playgroud)
  1. 通过以下命令重置您的节点。从它所属的任何集群中删除节点,从管理数据库中删除所有数据,例如配置的用户和虚拟主机,并删除所有持久消息。(使用时要小心。)
sudo rabbitmqctl reset
Run Code Online (Sandbox Code Playgroud)
  1. 通过以下命令启动您的节点。
sudo rabbitmqctl start_app
Run Code Online (Sandbox Code Playgroud)
  1. 通过以下命令重新启动您的虚拟主机。
sudo rabbitmqctl restart_vhost
Run Code Online (Sandbox Code Playgroud)

如果您正在使用一些依赖于 RabbitMQ 的应用程序。如我使用celery您将不得不再次重新启动它们。

这是帮助我解决问题的链接