为什么启动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)连接到rabbit消息队列检查mq设置错误。错误:异常(403)原因:“没有访问此vhost”
在RabbitMQ日志中,我们将观察到以下内容:
[error] <0.830.0> AMQP连接错误<0.830.0> (127.0.0.1:54910 -> 127.0.0.1:5672,vhost: 'none',用户:'guest',状态:打开),通道0:
{handshake_error, open, {amqp_error, internal_error, "访问vhost '/'拒绝用户'guest': vhost '/' is down", 'connection.open'}}
原因:
在RabbitMQ上出现“no access to The vhost”错误,可能发生在运行RabbitMQ的用户没有为所使用的vhost配置任何权限(默认为“/”),或者RabbitMQ没有正确关闭的情况下(例如当我们耗尽磁盘空间时)。
可以通过执行以下命令进行测试:
$ curl -user guest:guest http://rabbitmq:15672/api/vhosts
决议
在执行以下步骤之前,我们建议联系JFrog支持,因为以下步骤可能会通过删除管理数据库中的所有数据(如已配置的用户和vhosts以及所有持久化消息)将RabbitMQ节点恢复到原始状态。
$ rabbitmqctl stop_app
$ rabbitmqctl reset
$ rabbitmqctl状态
$ 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