回答:
管理プラグインを有効にする必要があります。
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
Webベースの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は、メッセージがキューから削除されるかどうかを決定します。再キューイングがtrueの場合、それらは再キューイングされますが、再配信フラグが設定されます。エンコーディングは、「auto」(有効なUTF-8であればペイロードは文字列として返され、それ以外の場合はbase64でエンコードされます)または「base64」(ペイロードは常にbase64でエンコードされます)でなければなりません。truncateが存在する場合、指定されたサイズ(バイト単位)より大きい場合、メッセージペイロードを切り捨てます。truncateはオプションです。他のすべてのキーは必須です。
HTTP APIのパブリッシュ/ゲットパスは、テストメッセージや診断などを注入することを目的としていることに注意してください。これらは信頼できる配信を実装していないため、メッセージング用の一般的なAPIではなく、sysadminのツールとして扱う必要があります。
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