【问题标题】:RabbitMQ Declare Exchange from Terminal - Access refused: /api/exchanges/RabbitMQ 从终端声明交换 - 拒绝访问:/api/exchanges/
【发布时间】:2014-11-26 12:58:43
【问题描述】:

我正在使用 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 而不仅仅是 rabbitmqadmin,但会得到相同的结果。

最后一条命令的结果是:

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

我的 CentOS 5.x 和 Cent 6.x 机器都在运行 rabbitmq 3.3.5。对我遗漏的内容有什么想法,或者对如何获取有关问题的更多信息(例如错误日志文件或获取更详细输出的方法)有什么想法?

【问题讨论】:

    标签: rabbitmq rabbitmq-exchange rabbitmqctl rabbitmqadmin


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 显然 rabbitmqadmin 现在需要为我们选择执行的任何命令设置用户名和密码......这是一件好事!
        猜你喜欢
        • 2014-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-29
        • 1970-01-01
        • 1970-01-01
        • 2014-11-11
        • 1970-01-01
        相关资源
        最近更新 更多