2012-05-22 19 views

Respuesta

73

Debe habilitar el complemento de administración.

rabbitmq-plugins enable rabbitmq_management 

Ver aquí:

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

Y aquí por las características específicas de gestión.

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

Por último, una vez configurado tendrá que seguir las siguientes instrucciones para instalar y utilizar la herramienta rabbitmqadmin. Que se puede usar para interactuar completamente con el sistema. http://www.rabbitmq.com/management-cli.html

Por ejemplo:

rabbitmqadmin get queue=<QueueName> requeue=false 

le dará el primer mensaje de la cola.

+7

@Shears - si está satisfecho con la respuesta, puede que lo marca como aceptada? – nullPainter

+0

¡Gracias, funciona para mí! esto puede contribuir: por defecto, rabbitmqadmin no se puede llamar desde cualquier lugar. Está ubicado en /var/lib/rabbitmq/mnesia/[email protected]/rabbitmq_management-3.1.3/priv/www/cli. Hay que arreglar los permisos para ello (chmod 755 rabbitmqadmin) y tal vez copiarlo en/usr/local/bin, ver http://www.rabbitmq.com/management-cli.html –

+0

No, puedes descargarlo de el enlace y hazlo accesible poniéndolo en algún lugar en tu camino. – robthewolf

25

Éstos son los comandos que utilizo para obtener el contenido de la cola:

RabbitMQ versión 3.1.5 en Fedora Linux usando https://www.rabbitmq.com/management-cli.html

Éstos son mis intercambios:

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

Aquí está mi cola:

[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 algunos artículos en 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 ver los mensajes en la cola:

[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

Es el comando 'sudo python rabbitmqadmin get queue = myqueue requeue = true count = 10' para ver mensajes o para quitar la cola de los mensajes y luego volverlos a colocar en la cola. ¿Hay alguna forma de ver los mensajes en lugar de eliminarlos? –

+0

Supongo que get y requeue = true básicamente nos dice que los mensajes se quitan de la cola, se muestran y se vuelven a poner en la cola (push_back al frente). –

+0

Como 'rabbitmqadmin' se conecta a la API basada en web, ¿es sudo necesario aquí? – Richlv

12

escribí rabbitmq-dump-queue el cual permite que los mensajes de una cola de dumping RabbitMQ a archivos locales y requeuing los mensajes en su orden original.

Ejemplo de uso (para volcar los 50 primeros mensajes de la cola incoming_1):

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

un poco tarde para esto, pero sí RabbitMQ tiene una acumulación de trazador que le permite ver los mensajes incomming en un registro . Cuando está habilitado, puede simplemente tail -f /var/tmp/rabbitmq-tracing/.log (en mac) para ver los mensajes.

la ULA detallada aquí es http://www.mikeobrien.net/blog/tracing-rabbitmq-messages

+1

El enlace está roto. Mirror: http://web.archive.org/web/20160319074032/http://www.mikeobrien.net/blog/tracing-rabbitmq-messages. Buena página de error personalizado BTW :) – xtreak

+0

aquí está el nuevo enlace: http://www.mikeobrien.net/blog/tracing-rabbitmq-messages – domi

3

puede utilizar RabbitMQ API para obtener el recuento o mensajes:

/api/queues/vhost/name/get 

Recibe mensajes de una cola. (Esto no es un HTTP GET es como se va a alterar el estado de la cola.) Usted debe enviar un cuerpo que parece:

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

recuento controla el número máximo de mensajes de conseguir. Puede obtener menos mensajes que esto si la cola no puede proporcionarlos de inmediato.

reau determina si los mensajes se eliminarán de la cola. Si el reabastecimiento es verdadero, se pondrán en cola, pero se establecerá su bandera reenviada. La codificación debe ser "automática" (en cuyo caso la carga útil se devolverá como una cadena si es válida UTF-8 y base64 codificada de otra manera), o "base64" (en cuyo caso la carga útil siempre estará codificada en base64) . Si está truncado, truncará la carga útil del mensaje si es mayor que el tamaño dado (en bytes). truncado es opcional; todas las demás teclas son obligatorias.

Tenga en cuenta que las rutas de publicación/obtención en la API HTTP están destinadas a inyectar mensajes de prueba, diagnósticos, etc. No implementan la entrega confiable y deben tratarse como una herramienta de administrador de sistemas en lugar de una API general para mensajes.

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

Cuestiones relacionadas