26

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

到目前为止,我声明了一个管理员用户并设置了它的密码,然后我将它的标签设置为管理员标签,然后我确保它具有对虚拟主机的权限。之后,我尝试使用指定的用户名和密码声明交换,但它失败了。

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而不是 just rabbitmqadmin,但得到相同的结果。

最后一条命令导致:

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

我的 CentOS 5.x 和 Cent 6.x 机器都运行 rabbitmq 3.3.5。关于我遗漏的任何想法或关于如何获得更多错误信息的想法(例如错误日志文件或获得更详细输出的方法)?

4

3 回答 3

41

我想出了我的问题并想发布答案,以防其他人遇到同样的问题。我检查了我的 /var/log/rabbitmq/,最后一点显示用户“guest”拒绝访问我的 vhostFoo。基于此,它让我认为我的参数顺序不正确,看起来确实如此。我使用了以下内容,效果很好:

rabbitmqadmin declare exchange --vhost=vhostFoo name=exchangeNew type=direct -u administrator -p password 
于 2014-10-01T16:17:35.307 回答
5

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

于 2020-03-23T14:28:15.053 回答
0

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

于 2017-06-05T05:13:01.987 回答