为什么我在启动RabbitMQ时得到“no access to this vhost”?
主题
为什么我在启动RabbitMQ时看到“no access to this vhost”错误?
描述
RabbitMQ是Xray使用的微服务之一。
它在队列中保存和管理Xray的所有消息,包括事件、索引、持久和分析消息。
RabbitMQ的队列、用户权限、策略和连接都是由一组逻辑实体来管理的。虚拟主机”。
当服务器运行其第一次启动时,它验证数据库是否未初始化或已被删除。一个新的数据库将从以下资源开始:2022世界杯阿根廷预选赛赛程
一个虚拟主机命名为/(斜杠)
默认用户对/虚拟主机具有完全访问权限:
用户名:客人
密码:客人
更多的信息可以在这里找到外部文档RabbitMQ页面。
如果启动失败,则在x射线服务器日志中显示如下错误:
[2019/07/18 12:54:07 EDT] [Error] (www.si-fil.com/xray/internal/xqueue/connector.connectToRabbitMQ:183)连接兔子消息队列检查mq设置错误。错误:Exception(403)原因:" no access to this vhost "
在RabbitMQ日志中,我们将观察到以下内容:
<0.830.0> (127.0.0.1:54910 -> 127.0.0.1:5672, vhost: 'none', user: 'guest', state: open),通道0:
{handshake_error, opening, {amqp_error, internal_error, "用户'guest'无法访问vhost '/': vhost '/' down", 'connection.open'}}
原因:
RabbitMQ上的错误" no access to The vhost ",可能发生在运行RabbitMQ的用户没有为所使用的vhost配置任何权限的情况下(默认为" / "),或者RabbitMQ没有正确关闭的情况下(例如,我们耗尽了磁盘空间的情况下)。
可以通过执行以下命令来测试:
$ curl -user guest:guest http://rabbitmq:15672/api/vhosts
决议
在执行以下步骤之前,我们建议联系JFrog Support,因为以下步骤可能会通过从管理数据库中删除所有数据(例如已配置的用户和vhosts以及所有持久消息)将RabbitMQ节点返回到初始状态。
$ rabbitmqctl stop_app
$ rabbitmqctl reset
$ rabbitmqctl status
$ service rabbitmq-server stop
$ service rabbitmq-server start
$ rabbitmq-plugins启用rabbitmq_management
$ service rabbitmq-server restart
$ curl -user guest:guest http://rabbitmq:15672/api/vhosts
