RabbitMQ从终端申报交换 - 拒绝访问:/ api / exchange /

时间:2014-10-01 16:00:18

标签: rabbitmq rabbitmq-exchange rabbitmqctl rabbitmqadmin

我使用rabbitmq来处理我工作的企业应用程序的数据库之间的消息。作为整个过程的一部分,我试图帮助自动化服务器的设置(例如脚本)。在此过程中,我尝试使用rabbitmqadmin从命令提示符声明交换。我有两个不同的服务器正在运行CentOS 5.xCentOS 6.x,两者都有同样的问题。

到目前为止,我宣布了一个管理员用户并设置了密码,然后我将其标记设置为管理员标记,然后我确保它具有对vhost的权限。之后,我尝试声明交换,指定用户和密码,然后失败。

rabbitmqctl add_user administrator password
rabbitmqctl set_user_tags administrator administrator
rabbitmqctl set_permissions -p / administrator ".*" ".*" ".*"
rabbitmqctl add_vhost vhostFoo
rabbitmqctl set_permissions -p vhostFoo administrator ".*" ".*" ".*"
rabbitmqadmin -u administrator -p password declare exchange --vhost=vhostFoo name=exchangeNew type=direct

对于CentOS 5.x框,我必须使用python26 rabbitmqadmin而不是rabbitmqadmin,但得到相同的结果。

最后一个命令导致:

*** Access refused: /api/exchanges/vhostFoo/exchangeNew

我的CentOS 5.x和Cent 6.x盒子都在运行rabbitmq 3.3.5。关于我缺少什么或者如何获得有关错误的更多信息的想法(例如错误日志文件或获得更详细输出的方式)的任何想法?

3 个答案:

答案 0 :(得分:26)

我想出了我的问题,想要发布答案以防其他人遇到同样的问题。我检查了我的/ var / log / rabbitmq /,最后一点显示用户'guest'拒绝访问我的vhostFoo。基于此,它让我认为我的params命令是不正确的,它看起来就是这样。我使用了以下内容并且工作正常:

rabbitmqadmin declare exchange --vhost=vhostFoo name=exchangeNew type=direct -u administrator -p password 

答案 1 :(得分:0)

您可以在系统上本地添加具有管理员权限的用户。 在浏览器中输入http://localhost:15672/#/。在该“管理”选项卡中,您可以创建具有管理员权限的用户。

答案 2 :(得分:0)

将管理员用户的用户和密码(-u 管理员 -p 密码)添加到对我有用的命令中。