2014-10-01 19 views
15

我正在使用rabbitmq處理我的數據庫之間的消息,用於我工作的企業應用程序。作爲這個過程的一部分,我試圖幫助自動化服務器的設置(例如腳本)。在此過程中,我嘗試使用rabbitmqadmin來從命令提示符聲明交換。我有兩臺運行着CentOS 5.xCentOS 6.x的服務器,兩者都有相同的問題。RabbitMQ聲明來自終端的交換 - 訪問被拒絕:/ api/exchanges/

到目前爲止,我宣佈了管理員用戶並設置了其密碼,然後將其標記設置爲管理員標記,然後確保它具有對虛擬主機的權限。之後,我嘗試聲明交換,並指定了用戶名和密碼,並且失敗。

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和6.x的美分箱正在運行的RabbitMQ 3.3.5。任何關於我失蹤的想法或關於如何獲得有關錯誤信息的更多信息的想法(例如錯誤日誌文件或獲取更詳細的輸出的方式)?

回答

18

我想出了我的問題,並希望發佈答案,以防其他人遇到同一問題。我檢查了我的/ var/log/rabbitmq /,最後一點顯示訪問我的vhostFoo的用戶'guest'被拒絕。基於此,這讓我覺得我的params命令是不正確的,看起來是這樣。我使用以下,它工作得很好:

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

顯然rabbitmqadmin現在需要用戶名和密碼設置爲我們選擇執行的任何命令......這是件好事! – kstratis 2015-05-15 13:52:23

0

您可以在系統上本地添加具有管理員權限的用戶。 在您的瀏覽器中鍵入http://localhost:15672/#/。在該管理員選項卡中,您可以創建具有管理員權限的用戶。