2014-10-01 14 views
15

Tôi đang sử dụng rabbitmq để xử lý các thông báo giữa các cơ sở dữ liệu của mình cho một ứng dụng doanh nghiệp mà tôi làm việc. Là một phần của quy trình, tôi đang cố gắng giúp tự động hóa việc thiết lập máy chủ (ví dụ: tập lệnh). Trong quá trình này, tôi đã cố gắng sử dụng rabbitmqadmin để khai báo trao đổi từ dấu nhắc lệnh. Tôi có 2 máy chủ khác nhau chạy CentOS 5.xCentOS 6.x và cả hai máy chủ đều gặp sự cố tương tự.RabbitMQ Tuyên bố Exchange từ Terminal - Access bị từ chối:/api/exchang/

Cho đến nay tôi đã tuyên bố một người dùng quản trị viên và đặt mật khẩu của nó, sau đó tôi đặt thẻ của thẻ thành thẻ quản trị viên, sau đó tôi đảm bảo rằng nó có quyền đối với vhost. Sau đó tôi cố gắng khai báo trao đổi, với người dùng và mật khẩu được chỉ định và nó không thành công.

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 

Đối với hộp CentOS 5.x tôi phải sử dụng python26 rabbitmqadmin thay vì chỉ rabbitmqadmin, nhưng có được kết quả tương tự.

Lệnh kết quả cuối cùng trong:

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

Cả 5.x CentOS của tôi và Cent hộp 6.x đang chạy RabbitMQ 3.3.5. Bất kỳ suy nghĩ nào về những gì tôi đang bỏ lỡ hoặc suy nghĩ về cách tôi có thể nhận thêm thông tin về những gì sai (ví dụ: tệp nhật ký lỗi hoặc cách để có được kết xuất chi tiết hơn)?

Trả lời

18

Tôi đã tìm ra sự cố của mình và muốn đăng câu trả lời trong trường hợp người khác gặp phải vấn đề tương tự. Tôi đã kiểm tra/var/log/rabbitmq/và bit cuối cùng cho thấy quyền truy cập vào vhostFoo của tôi đã bị từ chối cho người dùng 'khách'. Dựa trên điều này, nó làm cho tôi nghĩ rằng thứ tự của tôi params là không chính xác, mà nó có vẻ là trường hợp. Tôi đã sử dụng thông tin sau và hoạt động tốt:

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

Dường như bây giờ thỏmqadmin cần tên người dùng và mật khẩu được đặt cho bất kỳ lệnh nào chúng tôi chọn để thực thi ... và đó là một điều tốt! – kstratis

0

Bạn có thể thêm người dùng có quyền quản trị cục bộ trên hệ thống của mình. Nhập http://localhost:15672/#/ trong trình duyệt của bạn. Trong tab Quản trị đó, bạn có thể tạo người dùng có quyền quản trị.

Các vấn đề liên quan