답변:
관리 플러그인을 활성화해야합니다.
rabbitmq-plugins enable rabbitmq_management
여기를 보아라:
http://www.rabbitmq.com/plugins.html
그리고 여기에 관리의 세부 사항이 있습니다.
http://www.rabbitmq.com/management.html
마지막으로 설정이 완료되면 아래 지침에 따라 rabbitmqadmin 도구를 설치하고 사용해야합니다. 시스템과 완전히 상호 작용하는 데 사용할 수 있습니다. http://www.rabbitmq.com/management-cli.html
예를 들면 :
rabbitmqadmin get queue=<QueueName> requeue=false
대기열에서 첫 번째 메시지를 제공합니다.
requeue=false
rabbitmqadmin get queue=<QueueName>
큐의 내용을 가져 오는 데 사용하는 명령은 다음과 같습니다.
https://www.rabbitmq.com/management-cli.html을 사용하는 Fedora linux의 RabbitMQ 버전 3.1.5
내 교환은 다음과 같습니다.
eric@dev ~ $ sudo python rabbitmqadmin list exchanges
+-------+--------------------+---------+-------------+---------+----------+
| vhost | name | type | auto_delete | durable | internal |
+-------+--------------------+---------+-------------+---------+----------+
| / | | direct | False | True | False |
| / | kowalski | topic | False | True | False |
+-------+--------------------+---------+-------------+---------+----------+
내 대기열은 다음과 같습니다.
eric@dev ~ $ 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 |rabbit@ip-11-1-52-125| | running |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
myqueue에 몇 가지 항목을 넣습니다.
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는 대기열에서 메시지를 봅니다.
eric@dev ~ $ 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 |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
메시지를 보거나 끝에서 메시지를 대기열에서 빼고 맨 앞으로 다시 대기열에 넣는 명령 입니다. 메시지를 빼는 대신 메시지를 볼 수있는 방법이 있습니까?
rabbitmqadmin
웹 기반 API에 연결, sudo는 여기에 필요합니까?
requeue=True
나는 rabbitmq-dump-queue를 썼다.RabbitMQ 큐에서 로컬 파일로 메시지를 덤프하고 메시지를 원래 순서대로 다시 큐에 넣을 수있는 를 .
사용 예 (queue의 처음 50 개 메시지 덤프 incoming_1
) :
rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp
RabbitMQ API를 사용하여 개수 또는 메시지를 가져올 수 있습니다.
/api/queues/vhost/name/get
대기열에서 메시지를 가져옵니다. (이것은 큐의 상태를 변경하므로 HTTP GET이 아닙니다.) 다음과 같은 본문을 게시해야합니다.
{"count":5,"requeue":true,"encoding":"auto","truncate":50000}
count는 가져올 최대 메시지 수를 제어합니다. 큐에서 즉시 제공 할 수없는 경우 이보다 적은 메시지를받을 수 있습니다.
requeue는 메시지를 큐에서 제거할지 여부를 결정합니다. requeue가 true이면 다시 대기열에 추가되지만 redeliivered 플래그가 설정됩니다. 인코딩은 "auto"(유효한 UTF-8이면 페이로드가 문자열로 반환되고 그렇지 않으면 base64로 인코딩 됨) 또는 "base64"(이 경우 페이로드는 항상 base64로 인코딩 됨) 여야합니다. truncate가있는 경우 주어진 크기 (바이트)보다 크면 메시지 페이로드를 자릅니다. 자르기는 선택 사항입니다. 다른 모든 키는 필수입니다.
HTTP API의 게시 / 가져 오기 경로는 테스트 메시지, 진단 등을 주입하기위한 것입니다. 신뢰할 수있는 전달을 구현하지 않으므로 메시징을위한 일반 API가 아닌 시스템 관리자의 도구로 취급해야합니다.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
이것에 조금 늦었지만 네 rabbitmq에는 로그에서 들어오는 메시지를 볼 수있는 추적 프로그램이 있습니다. 활성화되면 tail -f /var/tmp/rabbitmq-tracing/.log
(Mac에서) 메시지를 볼 수 있습니다.
자세한 설명은 여기 http://www.mikeobrien.net/blog/tracing-rabbitmq-messages