Чи можливо переглядати вміст повідомлення RabbitMQ безпосередньо з командного рядка?
sudo rabbitmqctl list_queues
перелічує черги.
Чи є якась така команда sudo rabbitmqctl list_queue_messages <queue_name>
?
Чи можливо переглядати вміст повідомлення RabbitMQ безпосередньо з командного рядка?
sudo rabbitmqctl list_queues
перелічує черги.
Чи є якась така команда sudo rabbitmqctl list_queue_messages <queue_name>
?
Відповіді:
Вам слід включити плагін управління.
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>
Ось команди, які я використовую для отримання вмісту черги:
RabbitMQ версії 3.1.5 на Linux Linux Fedora за допомогою https://www.rabbitmq.com/management-cli.html
Ось мої біржі:
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 |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
Затисніть деякі елементи в мій черзі:
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-чергу, яка дозволяє скидати повідомлення з черви RabbitMQ у локальні файли та подавати повідомлення в їх початковому порядку.
Приклад використання (для скидання перших 50 повідомлень черги incoming_1
):
rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp
ви можете використовувати API RabbitMQ для отримання підрахунку чи повідомлень:
/api/queues/vhost/name/get
Отримуйте повідомлення з черги. (Це не HTTP GET, оскільки це змінить стан черги.) Ви повинні розмістити тіло, схоже на:
{"count":5,"requeue":true,"encoding":"auto","truncate":50000}
count контролює максимальну кількість повідомлень для отримання. Ви можете отримати менше повідомлень, ніж це, якщо черга не може негайно їх надати.
requeue визначає, чи будуть повідомлення видалені з черги. Якщо реквізит відповідає дійсності, вони будуть повернені, але їх встановлений прапор буде встановлено. кодування має бути або "auto" (у цьому випадку корисне навантаження буде повернуто у вигляді рядка, якщо воно дійсне UTF-8, а base64 закодовано в іншому випадку), або "base64" (у такому випадку корисне навантаження завжди буде закодовано base64). Якщо усікання присутнє, воно обрізає корисне навантаження повідомлення, якщо воно перевищує заданий розмір (у байтах). усікати необов’язково; всі інші клавіші є обов'язковими.
Зауважте, що шляхи публікації / отримання в HTTP API призначені для введення тестових повідомлень, діагностики тощо - вони не реалізують надійну доставку, і тому їх слід розглядати як інструмент sysadmin, а не загальний 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
(на комп'ютері) переглядати повідомлення.
докладний опис тут http://www.mikeobrien.net/blog/tracing-rabbitmq-messages