2012-05-22 31 views

Trả lời

73

Bạn nên bật plugin quản lý.

rabbitmq-plugins enable rabbitmq_management 

Xem ở đây:

http://www.rabbitmq.com/plugins.html

Và đây để biết cụ thể về quản lý.

http://www.rabbitmq.com/management.html

Cuối cùng khi thiết lập, bạn sẽ cần phải làm theo các hướng dẫn dưới đây để cài đặt và sử dụng công cụ rabbitmqadmin. Có thể được sử dụng để tương tác hoàn toàn với hệ thống. http://www.rabbitmq.com/management-cli.html

Ví dụ:

rabbitmqadmin get queue=<QueueName> requeue=false 

sẽ cung cấp cho bạn những thông điệp đầu tiên ra khỏi hàng đợi.

+7

@Shears - nếu bạn hài lòng với câu trả lời, bạn có thể đánh dấu nó là được chấp nhận không? – nullPainter

+0

Cảm ơn, hãy làm việc cho tôi! điều này có thể đóng góp: theo mặc định, không thể gọi thỏmqadmin từ mọi nơi. Vị trí của nó nằm ở /var/lib/rabbitmq/mnesia/[email protected]/rabbitmq_management-3.1.3/priv/www/cli. Một trong những nhu cầu sửa chữa quyền cho nó (chmod 755 rabbitmqadmin) và có thể sao chép nó vào/usr/local/bin, xem http://www.rabbitmq.com/management-cli.html –

+0

Không, bạn có thể tải xuống từ các liên kết và làm cho nó có thể truy cập bằng cách đặt nó ở đâu đó trong con đường của bạn. – robthewolf

25

Dưới đây là các lệnh tôi sử dụng để có được nội dung của hàng đợi:

RabbitMQ phiên bản 3.1.5 trên Fedora Linux sử dụng https://www.rabbitmq.com/management-cli.html

Dưới đây là trao đổi của tôi:

[email protected] ~ $ sudo python rabbitmqadmin list exchanges 
+-------+--------------------+---------+-------------+---------+----------+ 
| vhost |  name  | type | auto_delete | durable | internal | 
+-------+--------------------+---------+-------------+---------+----------+ 
|/ |     | direct | False  | True | False | 
|/ | kowalski   | topic | False  | True | False | 
+-------+--------------------+---------+-------------+---------+----------+ 

Đây là hàng đợi của tôi:

[email protected] ~ $ sudo python rabbitmqadmin list queues 
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+ 
| vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag |  idle_since  | memory | messages | messages_ready | messages_unacknowledged |  node   | policy | status | 
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+ 
|/ | myqueue | False  | 0   | True |      | 2014-09-10 13:32:18 | 13760 | 0  | 0    | 0      |[email protected]|  | running | 
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+ 

Cram một số mặt hàng vào dung dịch:

curl -i -u guest:guest http://localhost:15672/api/exchanges/%2f/kowalski/publish -d '{"properties":{},"routing_key":"abcxyz","payload":"foobar","payload_encoding":"string"}' 
HTTP/1.1 200 OK 
Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact) 
Date: Wed, 10 Sep 2014 17:46:59 GMT 
content-type: application/json 
Content-Length: 15 
Cache-Control: no-cache 

{"routed":true} 

RabbitMQ thấy thông điệp trong hàng đợi:

[email protected] ~ $ sudo python rabbitmqadmin get queue=myqueue requeue=true count=10 
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+ 
| routing_key | exchange | message_count |      payload  | payload_bytes | payload_encoding | properties | redelivered | 
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+ 
| abcxyz  | kowalski | 10   | foobar        | 6    | string   |   | True  | 
| abcxyz  | kowalski | 9    | {'testdata':'test'}     | 19   | string   |   | True  | 
| abcxyz  | kowalski | 8    | {'mykey':'myvalue'}     | 19   | string   |   | True  | 
| abcxyz  | kowalski | 7    | {'mykey':'myvalue'}     | 19   | string   |   | True  | 
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+ 
+0

Lệnh là 'sudo python rabbitmqadmin nhận hàng đợi = myqueue requeue = true count = 10' để xem tin nhắn hoặc dequeue các tin nhắn từ cuối và sau đó requeue chúng vào phía trước. Có cách nào để chỉ xem các tin nhắn thay vì dequeing chúng. –

+0

Tôi giả sử có được và requeue = true về cơ bản cho chúng ta biết rằng các thông điệp được dequeued và hiển thị và requeued (push_back để phía trước). –

+0

Khi 'rabbitmqadmin' kết nối với API dựa trên web, có cần sudo ở đây không? – Richlv

12

tôi đã viết rabbitmq-dump-queue cho phép các thông điệp bán phá giá từ một hàng đợi RabbitMQ các tập tin địa phương và requeuing các thông điệp theo thứ tự ban đầu của họ.

Ví dụ sử dụng (để đổ 50 thông điệp đầu tiên của hàng đợi incoming_1):

rabbitmq-dump-queue -url="amqp://user:[email protected]:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp 
1

một chút muộn để điều này, nhưng có RabbitMQ có một xây dựng trong tracer cho phép bạn xem các thông điệp incomming trong một bản ghi . Khi được bật, bạn chỉ có thể tail -f /var/tmp/rabbitmq-tracing/.log (trên mac) để xem tin nhắn.

các Discription chi tiết ở đây http://www.mikeobrien.net/blog/tracing-rabbitmq-messages

+1

Liên kết bị hỏng. Gương: http://web.archive.org/web/20160319074032/http://www.mikeobrien.net/blog/tracing-rabbitmq-messages. Trang lỗi tùy chỉnh đẹp BTW :) – xtreak

+0

đây là liên kết mới: http://www.mikeobrien.net/blog/tracing-rabbitmq-messages – domi

3

bạn có thể sử dụng RabbitMQ API để có được đếm hoặc tin nhắn:

/api/queues/vhost/name/get 

Nhận tin nhắn từ một hàng đợi. (Đây không phải là một HTTP GET vì nó sẽ thay đổi trạng thái của hàng đợi.) Bạn nên đăng một cơ thể trông giống như:

{"count":5,"requeue":true,"encoding":"auto","truncate":50000} 

đếm kiểm soát số lượng thư tối đa để nhận. Bạn có thể nhận được ít thư hơn số này nếu hàng đợi không thể cung cấp ngay cho họ.

requeue xác định xem thư có bị xóa khỏi hàng đợi hay không. Nếu requeue là đúng, họ sẽ được requeued - nhưng cờ được gửi lại của họ sẽ được thiết lập. Mã hóa phải là "tự động" (trong trường hợp đó tải trọng sẽ được trả về dưới dạng chuỗi nếu nó hợp lệ UTF-8 và mã hóa base64 khác) hoặc "base64" (trong trường hợp đó tải trọng sẽ luôn được mã hóa base64) . Nếu truncate là hiện tại, nó sẽ cắt bớt tải trọng tin nhắn nếu nó lớn hơn kích thước đã cho (tính theo byte). cắt ngắn là tùy chọn; tất cả các khóa khác là bắt buộc. Xin lưu ý rằng các đường dẫn publish/get trong HTTP API được dùng để tiêm các thông điệp kiểm tra, chẩn đoán, vv - chúng không thực hiện phân phối đáng tin cậy và vì vậy nên được coi là công cụ của sysadmin thay vì API chung cho nhắn tin.

http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html

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